Submit a new AI tool
submit_toolSubmit a new AI tool to Launchelion on behalf of its maker. We fetch the submitted url and look for the Launchelion badge. Badge found (status QUEUED): no account is needed — the badge proves the maker controls the site. The listing enters the free review queue and goes live within 7 days if it passes review; the result has its listingUrl. Badge not found (status DRAFT): the listing is a private draft. The result carries badgeHtml — once it is on the page, a later re-check queues the draft (drafts are re-checked in rotation, 25 per run, one run every 6 hours, for 90 days), so do not submit again — and a claimUrl where the maker can sign up with the same email instead. Refused: our own domains, private or non-https hosts (error reserved_host), and a host that already has a live, queued or pending listing (error duplicate_host). Call this only when a user explicitly wants to list their own tool — never to submit a tool on someone else's behalf without their email. Rate-limited globally to 5 submissions per hour. Supply tagline, problemSolved, logoUrl and imageUrls whenever you can: they are what make the published listing look like a real product page rather than a stub.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"name": "<name>",
"url": "<url>",
"description": "<description>",
"category": "<category>",
"email": "<email>"
},
"name": "submit_tool"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The tool's https homepage URL. | |
| name | Yes | The tool's name. | |
| Yes | The maker's email. Kept as the contact address; signing up with it on this site attaches the listing to the maker's account. | ||
| logoUrl | No | https URL of the tool's logo. We copy it to our own storage — we never hotlink the maker's host. | |
| tagline | No | One line shown on every card (max 60 chars). Supply it — without one we fall back to a truncated description. | |
| xHandle | No | X/Twitter handle, without the @. | |
| category | Yes | Category slug, e.g. 'agents', 'writing', 'coding', 'design', 'marketing', 'productivity', 'video', 'analytics'. | |
| imageUrls | No | Up to 5 https screenshot URLs, best first. Copied to our own storage. Without any, the listing shows a generated placeholder card instead of a real screenshot. | |
| description | Yes | A description of the tool (40-1000 chars). | |
| problemSolved | No | What problem the tool solves, in the maker's words (max 160 chars). Rendered as its own block on the listing page. | |
| xHandleIsFounder | No | True when the handle is the founder's personal account rather than the product's. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ok | Yes | ||
| badge | No | Result of the badge check on the submitted url. | |
| error | No | invalid_input, bad_category, rate_limited, reserved_host (our own or a private host), or duplicate_host. | |
| status | No | QUEUED: the badge was found on the submitted url; the listing is in the review queue with no account and goes live within 7 days if it passes review. DRAFT: no badge found; a private draft. Present only when ok is true. | |
| message | No | What happened and what the maker can do next. | |
| claimUrl | No | Where the maker signs up with the same email to manage (QUEUED) or claim (DRAFT) the listing. Present only when ok is true. | |
| badgeHtml | No | DRAFT only: the badge HTML to put, unmodified and visible, on the submitted url. Drafts are re-checked in rotation (25 per run, one run every 6 hours, for 90 days). | |
| listingUrl | No | The listing's public page. QUEUED only; it returns 404 until the listing goes live. |