Products
Search the catalog and read a single listing over HTTP.
Two anonymous endpoints over live launches. Drafts and pending submissions are never returned, so
these are safe to call from a browser and are served with Access-Control-Allow-Origin: *.
List products
GET /api/v1/products/
Query parameters
querystringFree text, matched against name, tagline, description and categories.
categorystringRestrict to one category slug.
limit1-50default: 10How many results to return.
cursorstringOpaque cursor from a previous response. Pass it back verbatim.
Request
curl "https://nicklaunches.com/api/v1/products/?query=ai%20writing&limit=5"Response
{
"results": [
{
"slug": "example-writer",
"name": "Example Writer",
"tagline": "Draft blog posts from a single outline",
"url": "https://nicklaunches.com/products/example-writer/",
"productUrl": "https://example.com",
"categories": ["AI Writing", "Content"],
"pricing": "freemium",
"upvotes": 128,
"launchDate": "2026-06-15"
}
],
"nextCursor": "eyJvIjoxMH0"
}resultsobject[]Matching products, newest and highest ranked first.
nextCursorstring | nullPass as cursor to get the next page. null when there are no more.
Paging is cursor based so results stay stable while new launches arrive. Do not build a cursor by hand; treat it as opaque.
Get one product
GET /api/v1/products/{slug}/
Path parameters
slugstringrequiredThe product slug. For https://nicklaunches.com/products/example-writer/ that is example-writer.
Request
curl https://nicklaunches.com/api/v1/products/example-writer/Response
The list fields plus the full listing body, screenshots, the maker handle, and comment and changelog counts.
{
"slug": "example-writer",
"name": "Example Writer",
"tagline": "Draft blog posts from a single outline",
"description": "Example Writer turns an outline into a finished draft...",
"url": "https://nicklaunches.com/products/example-writer/",
"productUrl": "https://example.com",
"categories": ["AI Writing", "Content"],
"pricing": "freemium",
"screenshots": ["https://nicklaunches.com/uploads/example-writer-1.png"],
"maker": { "handle": "examplemaker" },
"upvotes": 128,
"commentCount": 14,
"changelogCount": 3,
"launchDate": "2026-06-15"
}Errors
404 NOT_FOUNDNo live product with that slug. A product that exists but has not launched answers the same way, on purpose, so this endpoint cannot be used to discover unpublished listings.
MCP equivalents
search_products and
get_product call the same functions and return the same shapes.