What's available
SpecWhale publishes two free, public, no-key, no-rate-limit JSON endpoints with the full tool catalog. There is no signup, no authentication, and no usage cap -- they're plain static files served from Cloudflare's edge, refreshed on every deploy.
GET https://specwhale.com/tools.json
The full catalog: every tool's title, slug, canonical URL, category, engine type, data source, description, and keywords, plus the list of categories and curated collections. Shape:
{
"name": "SpecWhale",
"origin": "https://specwhale.com",
"generatedAt": "ISO-8601 timestamp",
"totalTools": 3763,
"collections": [ { "title", "slug", "url", "description", "count" } ],
"categories": [ { "id", "name", "url", "description" } ],
"tools": [ { "title", "slug", "url", "category", "categoryName", "engine", "api", "description", "keywords" } ]
}
GET https://specwhale.com/search-index.json
A lighter-weight version of the same catalog (one compact entry per tool), intended for client-side search and command-palette style integrations. Shape:
{
"schemaVersion": 1,
"name": "SpecWhale",
"origin": "https://specwhale.com",
"generatedAt": "ISO-8601 timestamp",
"totalTools": 3763,
"searchUrlTemplate": "https://specwhale.com/tools/?q={searchTerms}",
"tools": [ { "title", "slug", "url", "absoluteUrl", "description", "category", "categoryName", "type", "typeName", "api", "keywords", "collections" } ]
}
SpecWhale's own Ctrl+K search doesn't read this file directly -- it loads a separate, unlisted, more compact file sized purely for that one UI (no field-stability promise, and its shape may change at any time without notice). If you're integrating externally, build against tools.json or search-index.json above, both of which carry the stability guarantee below.
Using it
- Build your own directory, comparison table, or "best free X tools" page by reading
tools.jsondirectly -- credit and a link back to the relevantspecwhale.com/tools/<slug>/page is appreciated but not required by any license restriction; these files are public data. - Embed any individual tool with the
<iframe>snippet on that tool's own page (see "Embed this tool" on any tool page). - Cache responses on your end if you're polling frequently -- the catalog changes rarely, and
generatedAttells you when it last did.
Stability
Field names in tools.json and search-index.json are treated as a stable public contract. New fields may be added; existing fields will not be renamed or removed without a notice in the changelog.