skmtcdocs

How to check which APIs the catalog tracks

Hand the hub a list of service names and get back, per name, whether it is in the catalog, how fresh the schema is, and where to fetch it — from a browser, a curl, or an MCP client.

When to use this

You plan to build against some third-party APIs. Before you start, you want three facts for each one. Does skmtc-hub track it? How current is the schema? Which addresses give an agent or a script the rest?

Prerequisites

  • A list of service names as a developer types them: stripe, twilio, google sheets. The hub reads an owner/slug such as stripe/spec3 directly.
  • No account. Public APIs answer without credentials. A personal access token adds the APIs your account can read.

Steps

In a browser

Open skmtc.dev/lookup, paste the list with one name on each line, and press Check. The list goes into the URL, so the result is a link you can send.

From a script

curl -s https://api.skmtc.dev/v1/apis/lookup \
  -H 'content-type: application/json' \
  -d '{"items":[{"name":"stripe"},{"name":"twilio","hint":"sms"},{"name":"sendgrid"}]}'

Up to 25 names for each call. Each result carries:

  • status: found, ambiguous or not_found.
  • matchedBy: how the name matched. owner means the name is a publisher's handle or display name, and the match is that publisher's API. api means the name appeared only in an API's own name, slug or provider name. That pass never claims a match; it offers candidates. direct means you gave owner/slug.
  • match (for found) or candidates (up to five, ranked by size) with candidateTotal, the count before the cap.
  • On each match: lastCheckedAt (when the hub last looked at a source) and lastUpdatedAt (when the schema last changed). Also operationCount, specType, refetchEnabled, sourceUrl, and links.

links are the addresses to use next:

linkwhat it serves
htmlthe API's page
apithe API's JSON record
markdownthe page as markdown: description, license, source, counts
llmsTxtevery operation, one fetch, each linked to its markdown
schemathe OpenAPI document pinned by content ref (stable bytes); absent when the latest revision holds no document
schemaLatestthe floating address; redirects to schema
feedthe publisher's change feed (JSON Feed)

Cite the unversioned addresses. An address that contains a content ref always returns the same bytes.

Narrow a publisher with many APIs

A name that matches a publisher with some APIs comes back ambiguous with its five largest. Add a hint:

{ "items": [{ "name": "hubspot", "hint": "contacts" }, { "name": "github", "hint": "rest" }] }

A hint equal to a candidate's slug selects it. Otherwise it keeps the candidates whose name, slug or summary contain it. The hub ignores a hint that matches nothing, so the result stays as it was.

From an MCP client

The same answer, plus five more tools, over the hub's MCP server. No authentication.

claude mcp add --transport http skmtc https://mcp.skmtc.dev/mcp

For VS Code, add to .vscode/mcp.json:

{ "servers": { "skmtc": { "type": "http", "url": "https://mcp.skmtc.dev/mcp" } } }

The tools:

  • lookup_apis: this endpoint.
  • search_apis: ranked cards with facets.
  • get_api: the JSON record.
  • list_operations: the llms.txt, whole or one path prefix.
  • get_operation: one operation as markdown, with its recorded changes.
  • ask_catalog: a question answered from the indexed schemas, with citations.

What a miss means

not_found means no live API you can read matches by publisher, name, slug or provider name. The hub logs every name you ask for. The misses are the list it harvests next. So a request for an API that is not there is useful, even when the answer is no.

  • Search — ranked search and questions across the catalog.
  • Subscribe on an API's page at skmtc.dev to get a pull request when a schema you build against changes.

On this page