Free · Read-only · No key
JSON API
You can use this list from code. The JSON API needs no key or sign-up. To search it from Claude, ChatGPT, or another assistant instead, add the MCP server.
What the data is
The data is the whole list: 742 places where a founder can share a startup, from directories and launch sites to communities and editorial sites. I try each place by submitting my own site, SubmitMyStartup, and write down what happened. So far I have tried 633 of them.
Each entry has the public list's row (its Free? label, notes, and Last checked date) and structured facts: whether it is free and what the catch is, what kinds of product and which regions it takes, what the free path needs (an account, a badge, an email on your own domain, upvotes), and how long the wait is. Every fact says where it came from: the public list, or my own attempt on a date. When a fact is not on record it is null, not a guess.
Directories change their rules, so check a site before you rely on a fact. The data is rebuilt whenever the list changes, and it was last updated on 2026-10-14.
JSON endpoints
- https://submitmystartup.com/api/v1/directories.json: every entry, with its facts and the status of my attempt.
https://submitmystartup.com/api/v1/directories/{id}.json: one entry by id, for example https://submitmystartup.com/api/v1/directories/ai-agents-directory.json.- https://submitmystartup.com/api/v1/meta.json: counts, the date it was generated, the allowed values for every filterable field, and the license.
Responses are application/json, open to any origin (CORS), and cached for a few minutes. A path under /api/v1/ that doesn't exist, such as an unknown id, gets a 404 with a JSON error object. Here is one entry as directories/ai-agents-directory.json returns it:
{
"schema": "submitmystartup-api/v1",
"generatedAt": "2026-10-14T06:16:41.845Z",
"docs": "https://submitmystartup.com/api/",
"license": "MIT, Copyright (c) 2026 mmmmingos. https://github.com/mmmmingos/where-to-submit-your-startup/blob/main/LICENSE",
"directory": {
"id": "ai-agents-directory",
"name": "AI Agents Directory",
"url": "https://aiagentsdirectory.com/submit-agent",
"category": "specialist",
"section": "Only for some startups",
"free": "Yes*",
"notes": "AI agents and AI tools only (it filed SubmitMyStartup under MCP). Free listing after sign-in (Google works), only with its \"Featured on AI Agents Directory\" badge and a backlink on your website (homepage or footer), added within 72 hours of submitting; the listing stays pending until the badge is detected automatically. One submitted on 2026-10-07 was approved the same day, once the badge was up. The free listing's link is nofollow and carries the site's own tracking tags in place of yours, and the website field takes at most 100 characters. Paid, one-time, with no badge: Fast Track $19, Starter $49, Growth $99, Ecosystem Partner $499.",
"lastChecked": "2026-10-07",
"tried": true,
"facts": {
"format": "directory",
"state": "live",
"stateNote": null,
"accepts": {
"products": [
"ai-tools"
],
"audience": "any",
"stage": "any",
"region": {
"scope": "global"
},
"excludes": [],
"rule": "AI agents and AI tools only"
},
"cost": {
"free": "free-with-catch",
"paidOption": true,
"cheapestPaid": {
"amount": 19,
"currency": "USD",
"period": "one-time",
"name": "Fast Track"
}
},
"requirements": {
"account": "required",
"badge": "required",
"domainEmail": "no",
"engagement": "no",
"socialProfile": "no",
"phone": "no",
"captcha": "no",
"ownDomain": null,
"invitation": "no",
"revenueProof": "no",
"domainRatingAbove": null,
"other": [
"The badge must go up within 72 hours of submitting; the listing stays pending until it is detected",
"The website field takes at most 100 characters, so a long tracking link doesn't fit"
]
},
"wait": {
"minDays": 0,
"maxDays": 0,
"basis": "observed",
"text": "Approved automatically once the badge is detected; one submitted on 2026-10-07 was approved the same day"
},
"review": "moderated",
"backlink": "nofollow",
"lastChecked": "2026-10-07",
"sources": [
{
"source": "submission-report",
"date": "2026-10-07",
"facts": [
"format",
"state",
"accepts.products",
"accepts.audience",
"accepts.stage",
"accepts.region",
"accepts.rule",
"cost.free",
"cost.paidOption",
"cost.cheapestPaid",
"requirements.account",
"requirements.badge",
"requirements.domainEmail",
"requirements.engagement",
"requirements.socialProfile",
"requirements.phone",
"requirements.captcha",
"requirements.invitation",
"requirements.revenueProof",
"requirements.other",
"wait",
"review",
"backlink"
]
},
{
"source": "public-list",
"date": "2026-10-07",
"facts": [
"state",
"accepts.products",
"accepts.audience",
"accepts.stage",
"accepts.region",
"cost.free",
"accepts.rule",
"cost.paidOption",
"cost.cheapestPaid",
"requirements.badge"
]
}
]
},
"myAttempt": {
"status": "published",
"statusText": "Complete: listing live",
"date": "2026-10-07",
"publishedOn": "2026-10-07"
},
"links": {
"self": "https://submitmystartup.com/api/v1/directories/ai-agents-directory.json",
"list": "https://github.com/mmmmingos/where-to-submit-your-startup#only-for-some-startups",
"site": "https://submitmystartup.com/#site-ai-agents-directory"
}
}
}Fields
The same reference is in meta.json under fields, and the allowed values are under filters.
id: Stable id from the list: the name lowercased, with other characters turned into hyphens.category: Section of the list: directories, paid, specialist (only for some startups), reddit, or problems (reported problems).free: The list's Free? label: Yes, Yes* (free with a material catch), No (paid only), or Unknown.notes: The list's notes for the row.lastChecked: The row's Last checked date on the list.tried: true when I have tried the place by submitting my own site to it, or null if its facts are not recorded yet.myAttempt: The status of my own attempt as the website shows it (submitted, published, rejected, or blocked), its date, or null.links: self: this entry's JSON. list: the section of the public list that holds its row. site: its row on the website.facts: Structured facts, or null if they are not recorded yet. A fact that is not on record is null, never guessed.facts.format: How a listing happens: directory, launch (a dated launch), profile (a company profile), editorial (a pitch for coverage), community (a post), app-review, review-site (G2 and similar), gallery (a design gallery), or beta-testing.facts.state: live, or for reported problems: broken (the submission path doesn't work), inactive (abandoned), closed (doesn't take listings), or dead (gone).facts.stateNote: What was seen, with the date, for problems and for live sites with a quirk worth knowing.facts.accepts.products: "any" (no product-type restriction on record), or a list of product tags: it takes products with at least one of them.facts.accepts.audience: any, b2b (business products only), or b2c (business-to-business products aren't covered).facts.accepts.stage: any, pre-release (unreleased or beta only), released (no alpha or beta software), or early-stage (young startups only; the rule is in accepts.rule).facts.accepts.region: {"scope": "global"}, or a limited region: {scope: "limited", basis, label, areas}. basis headquarters: the startup must be based there. basis market: the site covers that market or language. areas are ISO 3166 codes (AU, US-WA).facts.accepts.excludes: Product tags it turns down.facts.accepts.rule: The eligibility or posting rule in words.facts.cost.free: free, free-with-catch, or paid-only.facts.cost.paidOption: Whether a paid option for the listing (paid listing, queue skip, upgrade, or promotion) was seen.facts.cost.cheapestPaid: {amount, currency, period, name}: the lowest regular price seen for such an option. period is one-time, day, week, month, year, or null.facts.requirements.<key>: What the free path needs: required, alternative (one of the alternatives is needed), optional (helps but isn't needed), or no. Keys: account, badge (a badge or backlink on your site), domainEmail (an email on your own domain; Gmail is refused), engagement (upvotes, comments, or ratings on other products first), socialProfile, phone, captcha, ownDomain, invitation, revenueProof.facts.requirements.domainRatingAbove: Your site's domain rating must be above this.facts.requirements.other: Other requirements and quirks of the free path.facts.wait: The free path's wait until the listing is live: {minDays, maxDays, basis, text}. basis stated: the site's own figure. basis observed: a date or queue position I was given.facts.review: none (live without a review), moderated (reviewed, usually accepted), or curated (editors choose, so a listing isn't guaranteed).facts.backlink: dofollow, nofollow, or conditional (dofollow only in some cases), as the site describes its free listing's link.facts.lastChecked: The newest date behind the facts. Never older than lastChecked.facts.sources: Where each fact came from: public-list (the row, on its Last checked date) or submission-report (my attempt on that date), with the facts it supports.
MCP server
To use the list from Claude, ChatGPT, or another AI assistant, add the MCP server. How to add it, the Claude plugin and skill, and the tools it has are on their own page: MCP server.
License and attribution
The list is open source under the MIT License, Copyright (c) 2026 mmmmingos. You can use, copy, change, and share the data, including in commercial products. Keep the copyright and license notice with any substantial copy, and please credit “Where to Submit Your Startup” with a link to the list on GitHub.
Corrections and new places are welcome on GitHub. More for assistants is in llms.txt.