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

MCPhttps://kxdushqmihjyuddcwkpw.supabase.co/functions/v1/api-mcp
RESThttps://kxdushqmihjyuddcwkpw.supabase.co/functions/v1/api-v1
Submithttps://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.

Apply to use the API →

REST API

Plain HTTP for scripts, CI, and partner integrations. The MCP server calls these same paths.

Operation Method Path Auth Input
search_products

Plain-language search across live listings.

GET /products None q, limit, offset
get_product

The full listing for one product.

GET /products/{slug} None slug
check_launch_readiness

Preflight audit: duplicates, badge, suggested listing.

GET /launch-readiness None url
submit_product

Open 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_submission

Fetch 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. 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. 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. 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. 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-mcp

Claude 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

ToolAuth
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

400Bad request — invalid JSON, missing url, or invalid draft UUID
404Product or draft not found (or draft expired)
500Server error — retry or contact support

Roadmap

ItemStatus
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 →