The API: what it is, and how to call it

Everything else in this section describes the llms.txt standard. This page describes the other half of the site: the hub’s own tooling — lint, index, abstract, search — reached through an account instead of a terminal.

What you’re actually buying

LLMS-Explorer is the concept-family-tree explorer with the hub’s llms tooling hung off its nodes: lint or optimize an llms file, turn notes into one, abstract a concept out of a corpus, deepen it with a research wave, map its family. Reading is free everywhere on this site, with no account and no key — the reference, the blog, the directory, the public concept tree, and every served llms file (/d/ /m/ /t/). What a key buys is the tooling that spends model tokens or GPU time on your behalf: linting with the model passes, semantic search, indexing your own docset, publishing to the shared catalogue. One ledger records every token that gets spent; the plan you’re on decides how far it goes before you hit a wall. See Pricing for what each plan actually includes.

Three ways in

Web. Sign in with a passkey, GitHub, or Google at /login/, then /keys/ to mint an API key and /usage/ to watch what it’s spent.

REST API, at api.llms-explorer.com. A key is lx_<prefix>_<secret> — shown once at creation, sent as a bearer token, scoped to what it’s allowed to do:

Scope Grants
read Queries within your quota; read your own artifacts
run Create metered jobs — lint model passes, indexing, concept packs
publish Contribute to the shared catalogue

Routes worth knowing: GET /api/usage (ledger aggregates by component, model, day), GET /api/billing/plans (the price table, no sign-in needed), GET/POST/DELETE /api/keys (list, create with scopes, revoke). A metered call past your quota answers with a structured error naming the plan that would lift the limit, not a bare 402.

MCP, hosted or local. The hub runs its own MCP server for tools you point at your own machine — semantic search, docset indexing, concept-tree queries — and it’s unauthenticated by design, meant for localhost only. The hosted gateway is what puts that same tool surface behind a key without exposing the hub process itself: it terminates the session, resolves your key to an account, applies your plan’s limits, and only then forwards the call over loopback. Five things it enforces that a bare tunnel wouldn’t:

  1. Some tools aren’t hosted at all. hub_ask, hub_distill_run, and the hub’s own memory and corpus tools are refused by name before your key’s scopes are even checked — refused with the same message an unknown tool gets, so the hosted surface can’t be enumerated by trying things.
  2. Your docsets are walled. A docset key beginning u_ belongs to exactly one account; arguments are checked going in and results are filtered coming back.
  3. A path is never just an argument. Anything that names a file on the hub’s own filesystem is resolved inside your own store — an unconfined path is a local-file-read primitive, so escaping your store is refused.
  4. One limit, one place. Every quota comes from the same plan table /billing/ describes; nothing is hardcoded in the gateway.
  5. A ledger row is written once, after the hub confirms the work happened — not before (billing a failure) and not twice.

Third-party full text is never served hosted, at any tier — a mirrored llms-full.txt you don’t own stays on the hub, and the concept surface links out to the source instead.

CLI, llmsx: llmsx login, llmsx keys create --scopes read,run, llmsx usage [--month], llmsx jobs <id>. See Downloads for install.

The free tier’s semantic and hybrid search is a fixed 16-document demo, rate-limited and not billed — it’s there to show what the retrieval looks like, not to serve your own corpus. Indexing your own docset, and querying it, both need a paid plan. The recorded three-leg run (keyword, vector, the fusion of both) is at /demo/ if you want to see the retrieval quality before paying for it.

What’s deterministic and free even with a key

Not every tool call spends a token. Lint’s deterministic passes — the ones that don’t run a model — are free and unlimited-frequency-within-quota on every plan; only the model passes (P4/P8/P12) are metered. Keyword search (FTS5, no embedding call) is free up to a daily count that scales with your plan. The pattern throughout: cheap path first, deterministic before model, local Ollama before Claude — every metered step has a free deterministic shadow, and the lint that gates this site’s own published files is exactly that free path.