Developers
MakerRadar API & MCP server
Read MakerRadar's directory of launched products from code or an AI agent: a read-only REST API described by an OpenAPI 3.1 spec, a Model Context Protocol server, and a Markdown version of our pages. No key, no sign-up.
On this page
Quickstart
This week's launch board, most upvoted first:
curl -s https://api.makerradar.io/v1/launches/currentThe five newest products, then the full details of the first one:
curl -s "https://api.makerradar.io/v1/products?limit=5"
SLUG=$(curl -s "https://api.makerradar.io/v1/products?limit=1" | jq -r '.data[0].slug')
curl -s "https://api.makerradar.io/v1/products/$SLUG"The full contract is the OpenAPI document at https://makerradar.io/openapi.json (also served by the API at https://api.makerradar.io/v1/openapi.json). Every operation has an operationId, typed parameters and a response schema, so it loads straight into an OpenAPI client or an LLM's function calling.
Access and keys
- Free, no key, no sign-up. Every read — the directory, search, categories, alternatives and launch weeks — is free to call, rate-limited per IP address (the quota is in every response's
RateLimit-Policyheader). - JSON over HTTPS at
https://api.makerradar.io/v1, open to any origin (CORS). - Safe to try. Reads change nothing, and
POST /v1/draftsonly stores a draft listing that a person must sign in and submit before anything is published — so there's no separate sandbox to ask for. - Self-serve keys for acting for a person. Their listings, launches and checkouts need an agent token (
mr_…) the person approves: they make one in Dashboard › AI agents, approve your agent's connect code (POST /v1/agent/connect), or sign in from an MCP client's Connect button. The steps for agents are in /auth.md. - Voting, commenting and reviewing stay with signed-in people on the website: no token can do them.
- Makers' words are theirs. A listing's name, tagline and description are written by its makers and unverified by MakerRadar; quote them as theirs.
Endpoints
| Endpoint | operationId | Returns |
|---|---|---|
| GET /v1/products | listProducts | List listed products, newest first |
| GET /v1/products/{slug} | getProduct | Get one product by slug |
| GET /v1/products/{slug}/alternatives | listProductAlternatives | List a product's alternatives |
| GET /v1/categories | listCategories | List the categories |
| GET /v1/launches/current | listCurrentLaunches | List this week's live launches |
| GET /v1/launches/{week} | getLaunchWeek | Get one launch week's results |
| GET /v1/me | getMe | The account your agent token acts for |
| GET /v1/me/listings | listMyListings | The listings of the account your token acts for |
| POST /v1/me/listings | submitMyListing | Submit a product as your person's draft listing |
| GET /v1/me/listings/{id} | getMyListing | One of your person's listings |
| PATCH /v1/me/listings/{id} | updateMyListing | Edit any of a listing's details |
| GET /v1/me/listings/{id}/launch | getLaunchOptions | The launch weeks open to a listing |
| POST /v1/me/listings/{id}/launch | chooseLaunch | Choose a launch and send the listing for review |
| POST /v1/me/listings/{id}/ownership | startOwnershipCheck | Start proving the listing's site is your person's |
| POST /v1/me/listings/{id}/ownership/verify | verifyOwnership | Verify the token is in place |
| POST /v1/me/listings/{id}/images | addListingImage | Add the listing's logo or a photo from a URL |
| GET /v1/me/listing-options | getListingOptions | What a listing's fields accept |
| PUT /v1/me/listings/{id}/answers | setQuickAnswers | Replace a listing's quick answers |
| DELETE /v1/me/listings/{id}/images/{photoId} | removeListingPhoto | Remove a photo from a listing |
| POST /v1/me/listings/{id}/images/{photoId}/cover | setListingCover | Make a photo the listing's cover |
| GET /v1/me/listings/{id}/badge | getBadgeSnippet | The badge for the listing's site |
| GET /v1/pricing | getPricing | What a listing can buy, at today's prices |
| POST /v1/me/checkouts | startCheckout | Start a checkout for the person to pay |
| GET /v1/me/orders | listMyOrders | The person's orders |
| POST /v1/agent/connect | startAgentConnect | Ask a person to let your agent act for their account |
| POST /v1/agent/token | finishAgentConnect | Trade your device code for an agent token |
| POST /v1/drafts | createDraft | Draft a listing for a person to submit |
Success is { "data": … }. A product's url is its canonical page here, logoUrl the logo its page shows, and websiteUrl is null while our safety scan has its domain flagged.
GET /v1/products narrows with q (keywords in the name or tagline), category (a slug from GET /v1/categories), platform, audience and useCase (a term's slug, as on /platforms, /for and /use-cases), country (where it's based: a two-letter code or the country's slug) and updatedSince (an ISO 8601 date, or a date-time with its zone); filters combine. The MCP search_products tool takes the same ones. It pages by cursor: up to 100 at a time with limit, and while more remain the answer carries a nextCursor (and a Link: rel="next" header) to send back as cursor. To keep a copy in sync, ask for what changed since your last run and follow the cursor until it is null:
curl -s "https://api.makerradar.io/v1/products?updatedSince=2026-10-01T00%3A00%3A00Z&limit=100" | jq '{ count: (.data | length), nextCursor }'MCP server
For AI assistants: a Model Context Protocol server at https://api.makerradar.io/mcp (Streamable HTTP, JSON-RPC 2.0, no key), with 29 tools over the same directory — searching, reading a listing, alternatives, comparisons, launch weeks and, for an agent a person approved, their own listings. In Claude Code:
claude mcp add --transport http makerradar https://api.makerradar.io/mcpEvery tool, connecting Claude.ai, ChatGPT, Cursor or VS Code, and acting for a person: MakerRadar MCP server docs.
Command line
The official MakerRadar CLI wraps this API for terminals, scripts and agents — search, launch weeks, drafts and, once you log in, your own listings — with --json for the API's own output. It's open source: https://github.com/makerradar-io/makerradar-cli.
npx makerradar search "analytics"Every command, signing in and exit codes: MakerRadar CLI docs.
Markdown for agents
The home page, the Top 100 and every product, category, alternatives, comparison, launch-week and monthly-report page answer a request for text/markdown with a Markdown version of themselves, at the same URL (and say Vary: Accept). Browsers still get HTML. Each monthly report also publishes its launches as CSV.
curl -s -H 'Accept: text/markdown' https://makerradar.io/
curl -s -H 'Accept: text/markdown' https://makerradar.io/p/<slug>The same documents live at /index.md and, for every other page, its URL plus /md (/p/<slug>/md), and /llms.txt indexes every listed product, category and guide.
Rate limits
Each surface (the REST API, the MCP server, badges) allows a number of requests per minute from one IP address. Every response states that quota in RateLimit-Policy (the IETF RateLimit header fields), so a client can pace itself. Past it, the call is refused with a 429, the rate_limited error, nothing left in RateLimit and the seconds to wait in Retry-After. For example:
HTTP/1.1 429 Too Many Requests
RateLimit-Policy: "v1";q=120;w=60
RateLimit: "v1";r=0;t=60
Retry-After: 60Wait for Retry-After before retrying; responses are cacheable (Cache-Control), so caching them is the easiest way to stay under.
Errors
Every failure is JSON with the right status: a stable error code to branch on, a message for a person, a hint saying what to do, and a link back here.
{
"error": "not_found",
"message": "Nothing is published at this address.",
"hint": "Check the path against the OpenAPI document. Products are addressed by slug; the API's GET /v1/products lists them.",
"docs": "https://makerradar.io/developers#errors"
}| error | Status | What to do |
|---|---|---|
| invalid | 400 | Check the parameters against the OpenAPI document. |
| not_found | 404 | Check the path against the OpenAPI document. Products are addressed by slug; the API's GET /v1/products lists them. |
| rate_limited | 429 | Wait the number of seconds in the Retry-After header, then retry. RateLimit-Policy states the quota. |
| internal_error | 500 | Retry shortly with backoff. If it keeps happening, tell us at the contact address in the docs. |
Versioning and deprecation
- The API is versioned in its path: every endpoint is under
/v1. - Within a version, changes are additive only: new endpoints, new optional parameters and new response fields. Ignore fields you don't recognise, and treat an error code you don't know by its HTTP status.
- A breaking change ships as a new version (
/v2) beside the old one, never as a change to it. - An endpoint we plan to remove is marked
deprecatedin the OpenAPI document and answers with aDeprecationheader (RFC 9745), aSunsetheader with the date it stops working (RFC 8594) and aLinkto this policy — at least 180 days before that date. - Nothing in
/v1is deprecated today.
A deprecated endpoint answers like this until its sunset date:
HTTP/1.1 200 OK
Deprecation: @1793577600
Sunset: Sun, 02 May 2027 00:00:00 GMT
Link: <https://makerradar.io/developers#versioning>; rel="deprecation"; type="text/html"When to use MakerRadar
Reach for it to:
- Find new products, startups and indie tools launched this week, ranked by community upvotes.
- What launched in an earlier week, and who won it.
- What launched in a month, in numbers: launches, upvotes, the busiest categories, the pricing mix and the leaders.
- Browse by category (what kinds of products are listed, and how many of each).
- Find a product or tool for a task (for example “privacy-first analytics” or “a form builder”).
- Look up one listed product: what it does, its pricing model, makers, tech stack, upvotes and rating.
- Find alternatives to a product, or compare two.
- The most-upvoted products of all time.
- Help a maker launch or list their own product.
Not for:
- Verified claims or independent reviews: a listing's name, tagline and description are its makers' own words, unverified by MakerRadar.
- Acting as anyone who hasn't connected you: besides drafting a listing for a person to submit (MCP `draft_listing`, `POST /v1/drafts`), you act for a person only with the agent token they approved (MCP `connect_account`). Voting, commenting and reviewing always need the person themselves on the website.
- A product's live prices, status or documentation: link to the product's own site for those.
Crawling and AI use
MakerRadar is meant to be read by machines as much as by people. Search engines, AI crawlers and AI agents are welcome, by name, in robots.txt. You may:
- Crawl and index every public page, its Markdown version, https://makerradar.io/llms.txt, https://makerradar.io/llms-full.txt, the RSS feed and the sitemap — search engines, AI crawlers and AI agents alike.
- Quote, summarise and cite it in answers, use it as AI input (retrieval, grounding), and train or fine-tune models on it (`Content-Signal: search=yes, ai-input=yes, ai-train=yes`).
- Call the public API and the MCP server, no key needed.
We ask that you:
- Say who you are in your user agent, keep to robots.txt, and slow down when told to (a 429 carries Retry-After).
- Link to the page you used: every page names its canonical URL.
- Quote a listing's name, tagline and description as its makers' words, not MakerRadar's.
Off limits:
- The signed-in app, checkout and billing links, internal search and the endpoints under /api/: robots.txt keeps crawlers out of them.
- Voting, commenting, reviewing, submitting or signing up by automation: those need a person (Terms, section 4).
Machine-readable files
- /openapi.json — the OpenAPI 3.1 document.
- /.well-known/api-catalog — the API catalog (RFC 9727) pointing at the spec and these docs.
- /.well-known/agent-skills/index.json — the agent skills (SKILL.md files for finding products and listing one), each with the digest of what it serves.
- /.well-known/mcp/server-card.json — the MCP server card: where the server is and how to connect, before connecting (also at /.well-known/mcp.json, and on the API host).
- /llms.txt — the site index for AI crawlers, with when-to-use guidance.
- /llms-full.txt — every listed product's facts and description in one Markdown file.
- /robots.txt — every AI crawler welcome by name, with Content Signals allowing search, AI input and training.
- /sitemap.xml — every indexable page.
- /feed.xml — the latest launches as RSS; every category and tag page has its own at
/category/<slug>/feed.xmland/tag/<slug>/feed.xml, and the blog at /blog/feed.xml.
Support
Found a bug, need something the API doesn't do yet, or planning heavy use? Email support@makerradar.io. More ways to reach us are on the contact page.