{"openapi":"3.1.0","info":{"title":"Anthropic API models and batches (BYOK) API","version":"0.1.0","description":"Anthropic API models and batches (BYOK) lets an AI assistant read your own Anthropic data through the Anthropic API with a key you supply (Anthropic API key). Read-only: 4 tools (list_models, get_model, list_message_batches, get_message_batch). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to api.anthropic.com....\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-anthropic.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-anthropic/docs"},"termsOfService":"https://connectorbay.com/byok-anthropic/terms"},"servers":[{"url":"https://byok-anthropic.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-anthropic/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/list_models":{"post":{"operationId":"list_models","summary":"List the Claude models available to the key, newest first (retired models are left out), with display name, lifecycle (a","description":"List the Claude models available to the key, newest first (retired models are left out), with display name, lifecycle (active or deprecated), release and retirement dates, context size and output limit. Reads metadata only: it sends no prompt and uses no tokens. Use for \"Which Claude models can my API key use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Limit"},"after_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor for paging: the last_id of the previous page, to get the next page.","title":"After Id"},"before_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor for paging: the first_id of the next page, to get the previous page.","title":"Before Id"}},"title":"list_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/get_model":{"post":{"operationId":"get_model","summary":"Get one Claude model by id or alias: display name, lifecycle, retirement date, context window, maximum output tokens and","description":"Get one Claude model by id or alias: display name, lifecycle, retirement date, context window, maximum output tokens and supported capabilities. Reads metadata only: it sends no prompt and uses no tokens. Use for \"What is the context window of claude-opus-5-5\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"model_id":{"description":"Model id or alias, for example 'claude-opus-5-5'.","maxLength":100,"title":"Model Id","type":"string"}},"required":["model_id"],"title":"get_modelArguments","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_message_batches":{"post":{"operationId":"list_message_batches","summary":"List your message batches (newest first) with processing status, request counts by outcome and key dates. Does not retur","description":"List your message batches (newest first) with processing status, request counts by outcome and key dates. Does not return the batch results. Reads metadata only: it sends no prompt and uses no tokens. Use for \"Are any of my Anthropic message batches still processing\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Limit"},"after_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor for paging: the last_id of the previous page, to get the next page.","title":"After Id"},"before_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor for paging: the first_id of the next page, to get the previous page.","title":"Before Id"}},"title":"list_message_batchesArguments","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_message_batch":{"post":{"operationId":"get_message_batch","summary":"Get the status of one message batch by id: processing status, counts of succeeded, errored, canceled and expired request","description":"Get the status of one message batch by id: processing status, counts of succeeded, errored, canceled and expired requests, and dates. Does not return the batch results. Reads metadata only: it sends no prompt and uses no tokens. Use for \"What is the status of message batch msgbatch_013Zva2CMHLNnXjNJJKqJ2EF\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"message_batch_id":{"description":"Message batch id, for example 'msgbatch_013Zva2CMHLNnXjNJJKqJ2EF'.","maxLength":100,"title":"Message Batch Id","type":"string"}},"required":["message_batch_id"],"title":"get_message_batchArguments","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}}}}