{"openapi":"3.1.0","info":{"title":"Respan Models (BYOK) API","version":"0.1.0","description":"Respan Models (BYOK) lets an AI assistant read your own Respan Models data through the Respan Models API with a key you supply (Respan API key (read permission is enough)). Read-only: 7 tools (list_models, search_models, list_models_by_provider, list_custom_models, get_model_summary, list_custom_providers, get_custom_provider). The BYOK key travels with each request, is used for that one call...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-respan-models.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-respan-models/docs"},"termsOfService":"https://connectorbay.com/byok-respan-models/terms"},"servers":[{"url":"https://byok-respan-models.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-respan-models/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 models in the Respan catalog (built-in and your own) with price per million input and output tokens, context window","description":"List models in the Respan catalog (built-in and your own) with price per million input and output tokens, context window, tool and image support and provider. Use for \"Which models are in the Respan catalog and what do they cost per million tokens\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Models per page (1 to 1000).","title":"Page Size"},"sort_by":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":"model_name","description":"Sort field; prefix with - for descending, for example model_name or -input_cost.","title":"Sort By"}},"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/search_models":{"post":{"operationId":"search_models","summary":"List models whose name contains some text (case-insensitive; dashes, dots and spaces are ignored), with prices and conte","description":"List models whose name contains some text (case-insensitive; dashes, dots and spaces are ignored), with prices and context windows. Use for \"Find Respan models with 'sonnet' in the name\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name_contains":{"description":"Text the model name must contain, for example 'sonnet'.","maxLength":100,"title":"Name Contains","type":"string"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Models per page (1 to 1000).","title":"Page Size"},"sort_by":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":"model_name","description":"Sort field; prefix with - for descending, for example model_name or -input_cost.","title":"Sort By"}},"required":["name_contains"],"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/list_models_by_provider":{"post":{"operationId":"list_models_by_provider","summary":"List the models of one provider (for example openai or anthropic) with prices and context windows. Use for \"Which anthro","description":"List the models of one provider (for example openai or anthropic) with prices and context windows. Use for \"Which anthropic models does Respan list\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"provider_id":{"description":"Provider id, for example 'openai' or 'anthropic'.","maxLength":100,"title":"Provider Id","type":"string"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Models per page (1 to 1000).","title":"Page Size"},"sort_by":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":"model_name","description":"Sort field; prefix with - for descending, for example model_name or -input_cost.","title":"Sort By"}},"required":["provider_id"],"title":"list_models_by_providerArguments","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_custom_models":{"post":{"operationId":"list_custom_models","summary":"List only the custom models defined in your own organization with their prices and base model. Use for \"Which custom mod","description":"List only the custom models defined in your own organization with their prices and base model. Use for \"Which custom models did I define in Respan\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Models per page (1 to 1000).","title":"Page Size"},"sort_by":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":"model_name","description":"Sort field; prefix with - for descending, for example model_name or -input_cost.","title":"Sort By"}},"title":"list_custom_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_summary":{"post":{"operationId":"get_model_summary","summary":"Count the models visible to the key: total, built-in and organization-specific. Use for \"How many models and custom mode","description":"Count the models visible to the key: total, built-in and organization-specific. Use for \"How many models and custom models does my Respan account have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_model_summaryArguments","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_custom_providers":{"post":{"operationId":"list_custom_providers","summary":"List the custom providers configured in your organization (id, name and dates only; connection settings are not returned","description":"List the custom providers configured in your organization (id, name and dates only; connection settings are not returned). Use for \"Which custom model providers are configured in my Respan account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Providers per page (1 to 500).","title":"Page Size"}},"title":"list_custom_providersArguments","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_custom_provider":{"post":{"operationId":"get_custom_provider","summary":"Get one custom provider by id (id, name and dates only; connection settings are not returned). Use for \"Show the Respan ","description":"Get one custom provider by id (id, name and dates only; connection settings are not returned). Use for \"Show the Respan custom provider my_azure\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"provider_id":{"description":"Custom provider id, as returned by list_custom_providers.","maxLength":200,"title":"Provider Id","type":"string"}},"required":["provider_id"],"title":"get_custom_providerArguments","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}}}}