Most of the Swarme catalog is visible a an API key and still refuses a execute. That is not an auth bug. It is execution.machine_run_status.
The catalog currently holds 1940 tools: 560 Gratis, 1380 Premium. Machine status splits differently: 1491 describe_only, 439 supported, 10 requires_worker. Docs at https://swarme.io/developers state that describe_only blocks quote/run. Treat missing or unknown values as describe_only and re-describe before execution.
Access level is not machine status
Gratis and Premium describe commercial access. They do not tell you whether the API will run the herramienta.
Observed describe calls:
- aac-converter — Gratis, describe_only, client_browser
- add-image-a-pdf — Gratis, describe_only, client_browser
- accessibility-statement-generator — Gratis, supported, server_sync
- anchor-text-analyzer — Premium, supported, server_sync
- 3-2-1-backup-planning-tool — Premium, describe_only, client_browser
- file-chunker — Gratis, requires_worker, async_worker
A Gratis badge on the directory Página does not mean POST /quote will succeed. A Premium badge does not mean it will fail. Read machine_run_status on GET /api/capabilities/{slug}.
Crear keys at https://swarme.io/dashboard?tab=developers. /dashboard/developers is 404. Scopes capabilities:read, capabilities:quote, and capabilities:run do not override describe_only.
What describe_only is for
describe_only means the schema is published and quote/run are blocked. Many of those tools are client_browser operations: they are meant a run in a Página, not as a server job keyed by an API token.
The safety gate values are:
- supported — executes in the declared mode
- requires_worker — preserves the worker-required response until that runtime is ready
- Plan_only — returns a client Plan without server processing
- describe_only — blocks quote/run
The legacy value runnable is accepted as supported. Unknown values are not a green light.
If you POST quote on a describe_only slug, stop. Do not retry run. Do not send Archivos. Open the herramienta Página if the work belongs in the browser, or pick a supported slug with a compatible contract.
Supported is a smaller set, and quote is still required
439 tools are supported. That is the set where machine quote/run is in play, not a promise that empty input will pass.
A completed supported run of uuid-generator returned UUID 4cd3c7b6-0495-447a-8efd-9a1374f7599c at $0.00 included after a 900-second quote lock, with idempotency_required_for_client true. Public URL: https://swarme.io/herramienta/uuid-generator. Wallet on that account was still $0.00 / metered_observe. Included did not skip quote.
Other supported tools quoted and then returned HTTP 422 on run:
- Use labeled address lines in key: value Formulario or provide JSON.
- Domain must contain valid ASCII hostname labels.
- backlinks must contain between 1 and 1,000 records.
- Enter valid Base64URL input.
Those are input-schema failures, not evidence that describe_only can be bypassed. Fix the Campo. Do not lower machine_run_status.
10 tools are requires_worker. Describe smoke included file-chunker, video-a-gif, barcode-scanner, and document-translator. Docs say quote/run may be issued for requires_worker, and the worker-required response is preserved until that runtime is ready. Do not treat requires_worker as supported in your own gating logic. Branch on the status you received.
How a filter before you waste a quote
- Buscar GET /api/capabilities. Note the 500-item cap on a single call.
- Describe the slug. Read execution.machine_run_status.
- If the value is describe_only, missing, or unknown: do not quote.
- If the value is supported, requires_worker, or Plan_only: quote, then run with quote_id.
- On HTTP 422, read the labeled error. Adjust input. Quote again if the 900-second lock expired.
MCP follows the same gate. tools/list on Swarme Capability MCP Alpha 2026.07.15-wallet-alpha returned 22 tools. That list is the protocol surface (swarme_capability_describe, swarme_herramienta_quote, swarme_herramienta_run, …). It is not 1940 executable MCP tools. Buscar still yields catalog slugs. Most of those slugs remain describe_only.
Unauthenticated quote is HTTP 419. The login toast Your secure Formulario token expired. Please go back and try again. is a form-token failure. Neither converts a describe_only herramienta into supported.
A practical Dividir for clients
Keep three buckets in the client, not one "tools" array:
- Readable: 1940 catalog entries from Buscar/describe.
- Executable via API: 439 supported, plus 10 requires_worker if you handle that status.
- Browser or blocked: 1491 describe_only.
Surface the bucket a the caller before you ask for Archivos or spend. Wallet $0.00 with metered_observe is enough for the included UUID path after quote. It is not a reason a fire quote against a describe-only slug.
A first GET /api/capabilities?limit=500 will not even show the full readable set. Walk categories if you need all 1940 slugs, then apply the status gate. Listing more tools does not raise the 439 supported count.
For routing a request onto a compatible contract, see AI herramienta routing. For tools that still process Archivos in the browser or on a server, see how a choose a secure en línea Archivo herramienta before you Subir.
