Most of the Swarme catalog is visible से an API key and still refuses से execute. That is not an auth bug. It is execution.machine_run_status.

The catalog currently holds 1940 tools: 560 मुफ़्त, 1380 प्रीमियम. 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

मुफ़्त and प्रीमियम describe commercial access. They do not tell you whether the API will run the टूल.

Observed describe calls:

  • aac-converter — मुफ़्त, describe_only, client_browser
  • add-image-से-pdf — मुफ़्त, describe_only, client_browser
  • accessibility-statement-generator — मुफ़्त, supported, server_sync
  • anchor-text-analyzer — प्रीमियम, supported, server_sync
  • 3-2-1-backup-planning-tool — प्रीमियम, describe_only, client_browser
  • file-chunker — मुफ़्त, requires_worker, async_worker

A मुफ़्त badge on the directory पेज does not mean POST /quote will succeed. A प्रीमियम badge does not mean it will fail. Read machine_run_status on GET /api/capabilities/{slug}.

बनाएँ 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 से run in a पेज, 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
  • प्लान_only — returns a client प्लान 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 फ़ाइलें. Open the टूल पेज 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/टूल/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 फ़ॉर्म 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 फ़ील्ड. Do not lower machine_run_status.

10 tools are requires_worker. Describe smoke included file-chunker, video-से-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 से filter before you waste a quote

  1. खोज GET /api/capabilities. Note the 500-item cap on a single call.
  2. Describe the slug. Read execution.machine_run_status.
  3. If the value is describe_only, missing, or unknown: do not quote.
  4. If the value is supported, requires_worker, or प्लान_only: quote, then run with quote_id.
  5. 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_टूल_quote, swarme_टूल_run, …). It is not 1940 executable MCP tools. खोज still yields catalog slugs. Most of those slugs remain describe_only.

Unauthenticated quote is HTTP 419. The login toast Your secure फ़ॉर्म token expired. Please go back and try again. is a form-token failure. Neither converts a describe_only टूल into supported.

A practical विभाजित for clients

Keep three buckets in the client, not one "tools" array:

  • Readable: 1940 catalog entries from खोज/describe.
  • Executable via API: 439 supported, plus 10 requires_worker if you handle that status.
  • Browser or blocked: 1491 describe_only.

Surface the bucket से the caller before you ask for फ़ाइलें or spend. Wallet $0.00 with metered_observe is enough for the included UUID path after quote. It is not a reason से 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 टूल routing. For tools that still process फ़ाइलें in the browser or on a server, see how से choose a secure ऑनलाइन फ़ाइल टूल before you अपलोड.