Partner API
Submit your customers' products to Noonlaunch straight from your own platform. Authenticate with your partner token, send the product once, hand over a checkout link with your discount already applied, and track the listing until it is live.
The API is JSON over HTTPS. Send Accept: application/json
on every request. The maker named in a submission always ends up owning the listing:
once it goes live they receive an email with their launch page and a link to claim
their Noonlaunch account.
base_url and partner_token collection variables and go.
curl https://noonlaunch.com/api/v1/meta \
-H "Authorization: Bearer nl_pat_XXXX" \
-H "Accept: application/json"
awaiting_payment
Paid submission created; the checkout has not been completed yet.
in_review
Free submission waiting for the Noonlaunch team's review.
live
Approved and public; live_url points to the listing.
Authentication
Partner tokens are issued personally by the Noonlaunch team and start with
nl_pat_. Send yours as a bearer
header on every request. Your token is your identity, your quota and your discount
in one string, so keep it server-side and out of client code, repositories and logs.
We store only a hash of it. If it leaks, tell us and we rotate it: the old token
stops working the same second, and requests with it return
401.
Authorization: Bearer nl_pat_XXXXXXXXXXXXXXXXXXXX
Accept: application/json
Content-Type: application/json
Errors
Errors are JSON with a human-readable message;
validation failures add an errors object
keyed by field. Nothing is ever partially created: a failed request stores nothing.
401
422
429
502
{
"message": "The tagline field must be at least 10 characters.",
"errors": {
"tagline": [
"The tagline field must be at least 10 characters."
]
}
}
{
"message": "Monthly submission quota reached.",
"quota": 100,
"used": 100
}
Get the catalog
/meta
One call returns everything needed to build a submission: your own standing
(partner: monthly quota, usage,
discount), the plan catalog with live prices, the launch calendar, and the category
list. Read it instead of hardcoding any of these. Three of its values feed straight
into POST /submissions:
plans[].slug
is what you send as
plan
e.g. "bundle_featured"
launch_weeks[].start
is what you send as
launch_week
e.g. "2026-09-14"
categories[].slug
is what you send as
category
e.g. "ai-tools"
launch_weeks lists only weeks that
still have free-launch slots, soonest first. Paid plans have no weekly cap: they may use
any Monday within the next 24 weeks, listed or not. And
launch_week is optional either way;
leave it out and we schedule the next available week automatically. Quotas reset on the
first of the month.
free
Standard launch
$0 once
bundle_featured
Premium Launch
$11 once
bundle_spotlight
Spotlight Launch
$49 once
Free submissions share the weekly launch capacity with every other free launch, and each maker has a lifetime allowance of 2 free launches. Paid submissions skip both limits.
{
"partner": {
"name": "AI Directories",
"monthly_quota": 100,
"used_this_month": 12,
"remaining_this_month": 88,
"discount": "25% off"
},
"plans": [
{
"slug": "free",
"name": "Standard launch",
"price_usd": 0,
"dofollow": false,
"approval": "manual_review"
},
{
"slug": "bundle_featured",
"name": "Premium Launch",
"price_usd": 11,
"dofollow": true,
"approval": "on_payment"
},
{
"slug": "bundle_spotlight",
"name": "Spotlight Launch",
"price_usd": 49,
"dofollow": true,
"approval": "on_payment"
}
],
"launch_weeks": [
{
"start": "2026-09-14",
"week_number": 38,
"free_slots_remaining": 7
},
{
"start": "2026-09-21",
"week_number": 39,
"free_slots_remaining": 20
}
],
"categories": [
{
"id": 1,
"slug": "ai-tools",
"name": "AI Tools"
},
{
"id": 2,
"slug": "developer-tools",
"name": "Developer Tools"
}
]
}
Create a submission
/submissions
Creates the listing and, for paid plans, a checkout. The response splits by plan:
paid returns a checkout_url to
open (your discount is locked in and cannot be replaced at checkout; payment approves
the listing automatically), free enters our review queue with no payment step.
Pass success_url so the payer
returns to your portal after paying, where you can show your own confirmation and
poll the submission until it is live.
website_url
required
The product's site. Resubmitting a URL you already have awaiting payment or review updates that submission in place (returning 200 and, for paid, a fresh checkout link), so an abandoned checkout never blocks a retry. A site that is already listed can only be relaunched on a paid plan, never free again.
name
required
2-100 characters.
tagline
required
10-70 characters, one line.
description
required
30-600 characters.
category
required
The slug (or id) of a category from the categories list in /meta, e.g. "ai-tools".
maker_email
required
The maker who owns the listing. We create their account if needed and email them once the listing is live.
plan
required
A slug from the plan catalog.
launch_week
optional
The start date of a week from /meta, as YYYY-MM-DD (always a Monday), e.g. "2026-09-14". Never the week_number. Omit it and we pick the next available week for you.
success_url
optional
Where the payer lands on your portal after a successful checkout. Strongly recommended for paid plans; without it they land on noonlaunch.com. Ignored for free.
return_url
optional
Where the payer lands if they back out of the checkout without paying.
logo_url
optional
Public image URL; we fetch and host it.
screenshots
optional
Up to 4 public image URLs, shown as the product's gallery in the order given. One that fails to download is skipped, never blocking the submission.
maker_name
optional
Used for the maker's account.
twitter_handle
optional
With or without the @.
curl -X POST https://noonlaunch.com/api/v1/submissions \
-H "Authorization: Bearer nl_pat_XXXX" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"website_url": "https://example-tool.com",
"name": "Example Tool",
"tagline": "One line that says what it does",
"description": "What it does, who it is for, and why it beats doing it by hand.",
"category": "ai-tools",
"maker_email": "maker@example-tool.com",
"plan": "bundle_featured"
}'
{
"id": 123,
"status": "awaiting_payment",
"checkout_url": "https://polar.sh/checkout/…",
"launch_week": "2026-09-14"
}
{
"id": 124,
"status": "in_review",
"checkout_url": null,
"launch_week": "2026-09-14"
}
Retrieve a submission
/submissions/{id}
Returns the current state of one of your submissions. You only ever see your own;
anything else is a 404.
Poll it after payment or while a free submission is in review.
awaiting_payment
Paid submission created; the checkout has not been completed yet.
in_review
Free submission waiting for the Noonlaunch team's review.
live
Approved and public; live_url points to the listing.
rejected
Did not pass review.
{
"id": 123,
"name": "Example Tool",
"status": "live",
"launch_week": "2026-09-14",
"live_url": "https://noonlaunch.com/product/example-tool",
"created_at": "2026-09-09T12:00:00+05:30"
}
Partner access is set up personally: we agree on a quota and a discount for your audience, then hand you your token. If you run a directory, a launch platform or a maker community, reach out to the Noonlaunch team and mention the partner program.