{"openapi":"3.1.0","info":{"title":"Cloudflare Workers AI (BYOK) API","version":"0.1.0","description":"Cloudflare Workers AI (BYOK) lets an AI assistant read your own Cloudflare Workers AI data through the Cloudflare Workers AI API with a key you supply (Cloudflare API token with Workers AI read permission). Read-only: 7 tools (search_models, search_tasks, search_authors, list_finetunes, list_public_finetunes, get_model_schema, list_markdown_formats). The BYOK key travels with each request, is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-cloudflare-workers-ai.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-cloudflare-workers-ai/docs"},"termsOfService":"https://connectorbay.com/byok-cloudflare-workers-ai/terms"},"servers":[{"url":"https://byok-cloudflare-workers-ai.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-cloudflare-workers-ai/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/search_models":{"post":{"operationId":"search_models","summary":"Search the Workers AI model catalog by text, task, author or source, optionally hiding experimental models. Returns the ","description":"Search the Workers AI model catalog by text, task, author or source, optionally hiding experimental models. Returns the catalog entries as the service sends them. Reads the catalog only: it runs no model and uses no neurons. Use for \"Which text generation models are available on Cloudflare Workers AI\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Cloudflare account id (32-character hex string shown in the dashboard URL or returned by the Cloudflare connector's list_accounts).","maxLength":40,"title":"Account Id","type":"string"},"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to look for in model names and descriptions.","title":"Search"},"task":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only models for this task name, for example 'Text Generation' or 'Text Embeddings'.","title":"Task"},"author":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only models from this author, for example 'meta'.","title":"Author"},"hide_experimental":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to hide experimental models.","title":"Hide Experimental"},"include_deprecated":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include models deprecated within the last three months.","title":"Include Deprecated"},"per_page":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many models to return per page (1 to 50 here).","title":"Per Page"},"page":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["account_id"],"title":"search_modelsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_tasks":{"post":{"operationId":"search_tasks","summary":"List the task types Workers AI models are grouped by, such as text generation, embeddings, image classification and spee","description":"List the task types Workers AI models are grouped by, such as text generation, embeddings, image classification and speech recognition. Reads the catalog only: it runs no model and uses no neurons. Use for \"What kinds of tasks do Cloudflare Workers AI models cover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Cloudflare account id (32-character hex string shown in the dashboard URL or returned by the Cloudflare connector's list_accounts).","maxLength":40,"title":"Account Id","type":"string"}},"required":["account_id"],"title":"search_tasksArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_authors":{"post":{"operationId":"search_authors","summary":"List the authors and organizations that publish models on Workers AI. Reads the catalog only: it runs no model and uses ","description":"List the authors and organizations that publish models on Workers AI. Reads the catalog only: it runs no model and uses no neurons. Use for \"Which organizations publish models on Cloudflare Workers AI\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Cloudflare account id (32-character hex string shown in the dashboard URL or returned by the Cloudflare connector's list_accounts).","maxLength":40,"title":"Account Id","type":"string"}},"required":["account_id"],"title":"search_authorsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_finetunes":{"post":{"operationId":"list_finetunes","summary":"List the fine-tuned model adapters (LoRAs) created in the account, with name, base model, description and dates. Reads t","description":"List the fine-tuned model adapters (LoRAs) created in the account, with name, base model, description and dates. Reads the catalog only: it runs no model and uses no neurons. Use for \"What fine-tunes have I created on Cloudflare Workers AI\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Cloudflare account id (32-character hex string shown in the dashboard URL or returned by the Cloudflare connector's list_accounts).","maxLength":40,"title":"Account Id","type":"string"}},"required":["account_id"],"title":"list_finetunesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_public_finetunes":{"post":{"operationId":"list_public_finetunes","summary":"List publicly available fine-tuned adapters that can be used with Workers AI models, with name, base model and dates. Re","description":"List publicly available fine-tuned adapters that can be used with Workers AI models, with name, base model and dates. Reads the catalog only: it runs no model and uses no neurons. Use for \"Which public fine-tunes can I use on Cloudflare Workers AI\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Cloudflare account id (32-character hex string shown in the dashboard URL or returned by the Cloudflare connector's list_accounts).","maxLength":40,"title":"Account Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many fine-tunes to return (default 20).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many fine-tunes to skip, for paging.","title":"Offset"}},"required":["account_id"],"title":"list_public_finetunesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_model_schema":{"post":{"operationId":"get_model_schema","summary":"Get the input and output JSON schema of one Workers AI model, to see which request fields it accepts. Reads the catalog ","description":"Get the input and output JSON schema of one Workers AI model, to see which request fields it accepts. Reads the catalog only: it runs no model and uses no neurons. Use for \"What input fields does the Cloudflare model @cf/meta/llama-3.1-8b-instruct accept\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Cloudflare account id (32-character hex string shown in the dashboard URL or returned by the Cloudflare connector's list_accounts).","maxLength":40,"title":"Account Id","type":"string"},"model":{"description":"Model identifier with its namespace, for example '@cf/meta/llama-3.1-8b-instruct'.","maxLength":200,"title":"Model","type":"string"}},"required":["account_id","model"],"title":"get_model_schemaArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_markdown_formats":{"post":{"operationId":"list_markdown_formats","summary":"List the file extensions and MIME types the Workers AI Markdown conversion accepts. Reads the catalog only: it runs no m","description":"List the file extensions and MIME types the Workers AI Markdown conversion accepts. Reads the catalog only: it runs no model and uses no neurons. Use for \"Which file types can Cloudflare Workers AI convert to Markdown\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Cloudflare account id (32-character hex string shown in the dashboard URL or returned by the Cloudflare connector's list_accounts).","maxLength":40,"title":"Account Id","type":"string"}},"required":["account_id"],"title":"list_markdown_formatsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}