Get started
API & MCP
Search the Launch Llama catalog, audit a site before it launches, and open a listing draft — from an agent or from curl. Everything a founder does in the browser is reachable programmatically through an MCP server and a small REST API.
OpenAPI spec → Discovery JSON →
MCP and REST share one backend — the same catalog search, readiness checks, and draft creation either way.
What an agent can do
Reads are anonymous. Your agent can search the catalog, pull a full listing, and run a launch readiness audit against any URL without credentials.
Draft creation is also anonymous — pass a product URL to POST /submissions and the response includes a review_url. The UUID in that link is the secret.
What an agent cannot do
Anonymous agents open drafts only — they cannot publish, pay, or install the badge. MCP cannot publish.
Approved partners with an X-Partner-Key can publish live via publish: true, founder email, and marketing_consent: true. That path skips free upvote/badge gates. Partners must collect consent before calling publish. Keep the key on your server — never in a webpage or public repo.
Endpoints at a glance
| MCP | https://kxdushqmihjyuddcwkpw.supabase.co/functions/v1/api-mcp |
| REST | https://kxdushqmihjyuddcwkpw.supabase.co/functions/v1/api-v1 |
| Submit | https://tools.launchllama.co/submit |
Preflight: launch readiness
Before submit_product, run check_launch_readiness on the product URL for duplicate checks, badge detection, and a suggested listing.
Quickstart
No API keys to create. Run a catalog search, audit the URL, then open a draft.
1. Search the catalog
curl -s "https://kxdushqmihjyuddcwkpw.supabase.co/functions/v1/api-v1/products?q=ai&limit=5" \ -H "Accept: application/json"
2. Audit the URL
curl -s "https://kxdushqmihjyuddcwkpw.supabase.co/functions/v1/api-v1/launch-readiness?url=https://yourproduct.com" \ -H "Accept: application/json"
3. Open a draft
curl -s -X POST "https://kxdushqmihjyuddcwkpw.supabase.co/functions/v1/api-v1/submissions" \
-H "Content-Type: application/json" \
-H "X-Partner-Source: your-agent" \
-d '{"url":"https://yourproduct.com"}'
Authentication
Public reads and drafts
Search, readiness, and draft creation need no key. The draft UUID is the secret. X-Partner-Source is attribution only.
Partner publish
Live publish needs an issued X-Partner-Key on your server — never in a browser. MCP cannot publish.
Got a directory? Apply to use our API
If you run a startup or AI directory, you can publish listings live with a partner key. Agents and MCP still only open drafts. Approved partners skip the free badge, upvote, and wait gates.
Keep the key on your server. Collect founder email and newsletter consent before you publish.
REST API
Plain HTTP for scripts, CI, and partner integrations. The MCP server calls these same paths.
| Operation | Method | Path | Auth | Input |
|---|---|---|---|---|
search_productsPlain-language search across live listings. |
GET | /products | None | q, limit, offset |
get_productThe full listing for one product. |
GET | /products/{slug} | None | slug |
check_launch_readinessPreflight audit: duplicates, badge, suggested listing. |
GET | /launch-readiness | None | url |
submit_productOpen a draft, or partner-publish a live listing (skips badge/upvote gates). |
POST | /submissions | None (draft) · X-Partner-Key (publish) | url, partner, email, marketing_consent, publish, … |
get_submissionFetch a draft you already created (resume in the browser). |
GET | /submissions/{id} | UUID secret | id |
Products
search_products
Plain-language search across live listings.
- Method:
- GET /products
- Auth:
- None
- Input:
- q, limit, offset
curl -s "https://kxdushqmihjyuddcwkpw.supabase.co/functions/v1/api-v1/products?q=ai&limit=5" \ -H "Accept: application/json"
get_product
The full public listing for one product slug.
- Method:
- GET /products/{slug}
- Auth:
- None
- Input:
- slug
curl -s "https://kxdushqmihjyuddcwkpw.supabase.co/functions/v1/api-v1/products/clawteams" \ -H "Accept: application/json"
Launch readiness
check_launch_readiness
Preflight audit: duplicate check, free badge detection, badge HTML snippet, suggested listing.
- Method:
- GET /launch-readiness
- Auth:
- None
- Input:
- url
curl -s "https://kxdushqmihjyuddcwkpw.supabase.co/functions/v1/api-v1/launch-readiness?url=https://yourproduct.com" \ -H "Accept: application/json"
Submissions
submit_product
Anonymous draft, or partner publish (live, skips free gates).
- Method:
- POST /submissions
- Auth:
- None (draft) · X-Partner-Key (publish)
- Input:
- url, partner, email, marketing_consent, publish, …
curl -s -X POST "https://kxdushqmihjyuddcwkpw.supabase.co/functions/v1/api-v1/submissions" \
-H "Content-Type: application/json" \
-H "X-Partner-Source: your-agent" \
-d '{"url":"https://yourproduct.com"}'
Partner publish
curl -s -X POST "https://kxdushqmihjyuddcwkpw.supabase.co/functions/v1/api-v1/submissions" \
-H "Content-Type: application/json" \
-H "X-Partner-Key: YOUR_PARTNER_KEY" \
-d '{
"url":"https://yourproduct.com",
"publish":true,
"email":"founder@yourproduct.com",
"marketing_consent":true,
"partner":"your-partner-slug",
"product_name":"Your Product",
"short_description":"One-line tagline"
}'
get_submission
Fetch an open draft by UUID from POST /submissions (the id field). Placeholders like {draft-id} are not valid.
- Method:
- GET /submissions/{id}
- Auth:
- UUID secret
- Input:
- id
# 1) Open a draft (copy the "id" UUID from the JSON response)
curl -s -X POST "https://kxdushqmihjyuddcwkpw.supabase.co/functions/v1/api-v1/submissions" \
-H "Content-Type: application/json" \
-d '{"url":"https://yourproduct.com"}'
# 2) Fetch that draft — use the real UUID, not the literal text "{draft-id}"
curl -s "https://kxdushqmihjyuddcwkpw.supabase.co/functions/v1/api-v1/submissions/00000000-0000-0000-0000-000000000000" \
-H "Accept: application/json"
Recommended workflow
-
1. Look around
search_products tells you what already exists in the category you are launching into — the fastest way to write a tagline that is not a duplicate of three others.
GET /products?q=… -
2. Audit before you write anything
check_launch_readiness returns whether the URL is already listed, whether the free badge is installed, a suggested listing, and the exact badge snippet if it is missing.
GET /launch-readiness?url=… -
3. Open the draft (or partner-publish)
Anonymous submit_product returns a review_url for the founder. Approved partners can pass publish=true with X-Partner-Key, email, and marketing_consent=true to go live immediately (skips badge + upvote gates).
POST /submissions -
4. Founder finishes in the browser (draft path)
For drafts: edit copy, upload media, install the free badge or pick Instant Launch, and submit. Partner-published listings are already live.
/submit?draft=…
Anonymous drafts need a human at /submit. Partner publish (X-Partner-Key) goes live immediately and skips free badge/upvote gates.
Install
Streamable HTTP MCP — hosted, nothing to install from npm.
https://kxdushqmihjyuddcwkpw.supabase.co/functions/v1/api-mcpClaude Code
claude mcp add --transport http launchllama https://kxdushqmihjyuddcwkpw.supabase.co/functions/v1/api-mcp
Cursor / Claude Desktop
{
"mcpServers": {
"launchllama": {
"url": "https://kxdushqmihjyuddcwkpw.supabase.co/functions/v1/api-mcp"
}
}
}
Verify it works
curl -i https://kxdushqmihjyuddcwkpw.supabase.co/functions/v1/api-mcp -X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}'
Tools
| Tool | Auth |
|---|---|
| search_products | None |
| get_product | None |
| check_launch_readiness | None |
| submit_product | None (draft) · X-Partner-Key (publish) |
| get_submission | UUID secret |
Rate limits
Public reads and draft creation are open today with no API keys. Rate limit headers are on the roadmap.
Errors
| 400 | Bad request — invalid JSON, missing url, or invalid draft UUID |
| 404 | Product or draft not found (or draft expired) |
| 500 | Server error — retry or contact support |
Roadmap
| Item | Status |
|---|---|
| Pretty /api/mcp URL on tools.launchllama.co | Planned |
| Account pairing for “my submissions” | Planned |
| Rate limit headers on public reads | Planned |
Ready to submit?
Start in the browser or call the API. Either way, you review before it ships.
Submit your tool →