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 העלאה.