{"openapi":"3.1.0","info":{"title":"Featherless (BYOK) API","version":"0.1.0","description":"Featherless (BYOK) lets an AI assistant read your own Featherless data through the Featherless API with a key you supply (Featherless API key). Read-only: 6 tools (list_models, get_model, get_plan, get_credit_balance, get_usage_summary, list_usage_requests). 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...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-featherless.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-featherless/docs"},"termsOfService":"https://connectorbay.com/byok-featherless/terms"},"servers":[{"url":"https://byok-featherless.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-featherless/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":"Search the model catalogue (active models by default) with context length, maximum output tokens, gating and plan availa","description":"Search the model catalogue (active models by default) with context length, maximum output tokens, gating and plan availability. Up to 100 per page. Use for \"Which Featherless models support tool use with at least 32k context\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Search text matched against model name or id.","title":"Q"},"capabilities":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated capability filter, for example chat,tool-use.","title":"Capabilities"},"context_length_min":{"anyOf":[{"maximum":10000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only models with at least this context size in tokens.","title":"Context Length Min"},"available_on_current_plan":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to list only models the key's plan can use.","title":"Available On Current Plan"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Results per page (1 to 100).","title":"Per Page"}},"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 model: context size, per-token prices in USD, features, live hot or cold availability, license, parameter size a","description":"Get one model: context size, per-token prices in USD, features, live hot or cold availability, license, parameter size and modalities. Use for \"What does the Meta-Llama-3-8B-Instruct model cost on Featherless and is it available\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"model_id":{"description":"Model id in owner/model form, as returned by list_models.","maxLength":200,"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/get_plan":{"post":{"operationId":"get_plan","summary":"Show the plan the key belongs to: id, name, maximum context length (null means no plan cap), largest model size in billi","description":"Show the plan the key belongs to: id, name, maximum context length (null means no plan cap), largest model size in billions of parameters and concurrency allowance. Use for \"What are my Featherless plan limits\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_planArguments","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_credit_balance":{"post":{"operationId":"get_credit_balance","summary":"Show the prepaid credit balance in US dollars: balance, reserved for in-flight requests and available. Needs a key from ","description":"Show the prepaid credit balance in US dollars: balance, reserved for in-flight requests and available. Needs a key from an organization admin on request pricing. Use for \"How many Featherless credits do I have left\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_credit_balanceArguments","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_usage_summary":{"post":{"operationId":"get_usage_summary","summary":"Summarise spend between two Unix timestamps: totals, a daily breakdown and a per-model breakdown with request and token ","description":"Summarise spend between two Unix timestamps: totals, a daily breakdown and a per-model breakdown with request and token counts and cost in billionths of a US dollar (strings). Needs an organization admin key. Use for \"How much did I spend on Featherless last month and on which models\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start":{"description":"Start of the range as a Unix timestamp in seconds (inclusive).","minimum":0,"title":"Start","type":"integer"},"end":{"description":"End of the range as a Unix timestamp in seconds (exclusive); must be later than start.","minimum":0,"title":"End","type":"integer"}},"required":["start","end"],"title":"get_usage_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_usage_requests":{"post":{"operationId":"list_usage_requests","summary":"List individual requests between two Unix timestamps, newest first, with model, token counts, cost in billionths of a US","description":"List individual requests between two Unix timestamps, newest first, with model, token counts, cost in billionths of a US dollar and cost status. When next_cursor is not null pass it as cursor. Needs an organization admin key. Use for \"Show my latest Featherless requests and what each cost\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start":{"description":"Start of the range as a Unix timestamp in seconds (inclusive).","minimum":0,"title":"Start","type":"integer"},"end":{"description":"End of the range as a Unix timestamp in seconds (exclusive); must be later than start.","minimum":0,"title":"End","type":"integer"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Requests per page (1 to 200).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"next_cursor value from the previous page.","title":"Cursor"}},"required":["start","end"],"title":"list_usage_requestsArguments","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}}}}