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
- بحث 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 باقة_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_أداة_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 رفع.
