api documentation

One OpenAI-compatible endpoint.

Point any OpenAI SDK at https://api.thinwire.ai/v1 with your API key as a bearer token. Everything documented here is verified against the live service.

Models

GET https://api.thinwire.ai/v1/models lists the catalog; GET https://api.thinwire.ai/models is the detailed provider feed with per-modality pricing and supported parameters, and GET https://api.thinwire.ai/status is the live per-model health snapshot.

  • kimi-k3 (also kimi-k3-base, a lower-priority tier) — 1,048,576-token context, 943,718 max output, reasoning, tools, vision, logprobs.
  • deepseek-v4.1-flash — the DeepSeek-V4.1-Flash-1017 snapshot; same context and output limits; also answers to dated aliases such as deepseek-v4.1-flash-1017.
  • muse-spark-open — Meta Muse Spark Open; same context and output limits.

Large prompts: text requests are admitted up to 4 MiB of request body with native token counting; dense English reaches roughly one million prompt tokens within that cap. JSON string escaping counts toward the 4 MiB.

Supported parameters

All models: temperature (0-2), top_p, max_tokens / max_completion_tokens, stop (up to 4, 1024 bytes each), stream with stream_options.include_usage, tools, response_format (json_object and strict json_schema), logprobs + top_logprobs (0-20), reasoning_effort, include_reasoning and the OpenRouter-style reasoning: {effort, exclude} object, n (must be 1) and store (must be false).

  • tool_choice: auto/none everywhere; required and named functions on kimi-k3 and deepseek-v4.1-flash. muse-spark-open rejects forced selection with a clear 400 because its engine does not enforce it.
  • Sampling controls seed, frequency_penalty, presence_penalty, repetition_penalty and top_k are honored on deepseek-v4.1-flash (seed 0 means unset). On kimi-k3 and muse-spark-open they are accepted for SDK compatibility but ignored: the serving engines do not apply them.
  • Reasoning efforts: kimi and deepseek accept none, minimal, low, medium, high, xhigh, max; muse accepts minimal, low, medium, high, max and cannot disable thinking. Give muse generous max_tokens: hidden thinking consumes the budget first.
  • Vision: image_url parts with public HTTPS or base64 PNG/JPEG, up to 4 MiB and 4096 px per side; usage reports image_tokens.

Usage, errors, and rate limits

  • Usage follows the OpenAI shape: completion_tokens_details.reasoning_tokens and prompt_tokens_details.cached_tokens; cached input is billed at the cached rate shown in the feed.
  • Errors are always {"error":{"message","type","code","param"}}. Unknown models return 404 model_not_found; unknown parameters return 400 naming the parameter.
  • Per-account-per-model rolling-minute budget: 600 requests, 8M input tokens, 2M output tokens. Every response carries x-ratelimit-limit/remaining headers for requests, input tokens and output tokens plus x-ratelimit-reset; 429 responses add Retry-After.
  • Every response carries X-Request-Id; quote it in support requests.