The catalog, readable by machines
A catalog of software products built by crawling their own sites. Every claim carries the quote it rests on. Reads need no key and no account — the first request below works from a terminal right now.
Open the API console to try any of these with the request built for you — or start here:
curl https://www.superfluidity.ai/api/v1/productsREST, GraphQL and MCP are façades over the same functions, so they cannot disagree about what a listing says or who is allowed to change it. Pick whichever suits the client you are writing.
- /api/v1REST. Plain JSON, cacheable, no client library needed.
- /api/graphqlGraphQL. One round trip when you need several things at once.
- /mcpMCP over streamable-http, read-only. Point an agent at it and it can browse the catalog itself.
| /api/v1/products | The catalog, paginated and filtered.
|
| /api/v1/products/{slug} | One listing with its readings, screenshots and vouch counts.
|
| /api/v1/products/{slug}/readings | The measurements alone, for polling.
|
| /api/v1/products/{slug}/vouches | Counts and tenure distribution. Never the statements.
|
| /api/v1/search | Hybrid retrieval over the catalog. No answer model, no credits charged — the query is embedded, which costs us and not you.
|
| /api/v1/categories | Categories with at least one published product. |
| /api/v1/gaps | Measured demand: questions the catalog could not answer.
|
| /api/v1/gaps/{number} | One gap, with the closest things already listed.
|
| /api/v1/stats | Platform figures, as of computed_at. |
Writes authenticate by header only, never by session cookie, and require the `write` scope. A key is opt-in to writes at the moment it is issued.
| POST /api/v1/ask | Ask the catalog a question and get an answer with the listings it rests on. Charged to the key's owner; an answer of "nothing here answers this" is free and says so. 1 credits. Needs an ask-scoped key; spends the key owner's credits.
|
| POST /api/v1/products | Submit a URL for crawling. 25 credits. Needs a write-scoped key; spends the key owner's credits.
|
| POST /api/v1/products/{slug}/refresh | Pay to re-crawl a listing you own. 10 credits. Needs a write-scoped key.
|
Reads work without a key at a low rate. A key raises the tier. Keys are issued at /settings/keys. Send it as Authorization: Bearer sf_live_… or X-API-Key: sf_live_….
Every response carries RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset, so a client can pace itself rather than discover the limit as a 429. Issue a key.
The same surface as OpenAPI 3.1: /api/v1/openapi.json. Import it into Postman or Insomnia, or generate a client from it.
llms-full.txt — the whole thing as one document, for a model · this page as JSON · what our crawler does