API reference
Point any OpenAI SDK at https://api.logits.com/v1 with your API key as a bearer token. Use the model catalog and status endpoint to inspect current availability.
Quickstart
Sign in to the console and create a key on the API keys page. The secret is shown once and cannot be recovered; if the key is restricted to specific models, allow the model you call.
export API_KEY="logits_live_..." # the key you created
curl https://api.logits.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "deepseek/deepseek-v4.1-flash", "messages": [{"role": "user", "content": "Hello"}]}'These endpoints are on https://api.logits.com:
| Endpoint | Returns |
|---|---|
GET /v1/models | The catalog |
GET /models | The detailed provider feed with per-modality pricing and supported parameters |
GET /status | The live per-model health snapshot |
Models
| Model | Provider context | Max output | Notes |
|---|---|---|---|
moonshotai/kimi-k3.1-pro | 1,048,576 | 1,048,576 | Reasoning, tools, vision. Sparse attention for cheaper long-context decode. The earlier kimi-k3.1-pro ID still works as an alias. The retired kimi-k3, kimi-k3-base and moonshotai/kimi-k3 IDs are not accepted and return model_not_found |
deepseek/deepseek-v4.1-flash | 1,048,576 | 393,216 | The earlier deepseek-v4.1-flash ID still works as an alias. Dated IDs, when listed in the catalog, are compatibility aliases and do not guarantee a particular serving snapshot |
logits/deepseek-v4.1-flash-abliterated | 1,048,576 | 393,216 | Reasoning, tools, vision, logprobs. Also accepts deepseek-v4.1-flash-abliterated as an alias; shares the same parameter support as deepseek/deepseek-v4.1-flash |
Text requests up to 457,728 bytes are admitted on a byte estimate; larger ones are counted with the model's own tokenizer and admitted up to 4 MiB of request body when the counted prompt plus the requested output fits the 1,048,576-token context (dense English reaches roughly one million prompt tokens within that cap; JSON string escaping counts toward it). Check the model feed for the current limits.
Supported parameters
| Parameter | deepseek/deepseek-v4.1-flash | logits/deepseek-v4.1-flash-abliterated | moonshotai/kimi-k3.1-pro |
|---|---|---|---|
temperature | Supported (0-2) | Supported (0-2) | Supported (0-1); 1.0 recommended |
top_p | Supported | Supported | Passed through (0.95 recommended) |
max_tokens, max_completion_tokens | Supported | Supported | Supported |
stop (up to 4, 1024 bytes each) | Supported | Supported | Supported |
stream, stream_options.include_usage | Supported | Supported | Supported |
tools | Supported | Supported | Supported |
tool_choice | auto, none, required, named function | auto, none, required, named function | auto, none; required and named function: best effort |
response_format (json_object, strict json_schema) | Supported | Supported | Passed through |
logprobs, top_logprobs (0-20) | Supported | Supported | Passed through |
reasoning_effort | All efforts | All efforts | All efforts; minimal runs as low, xhigh as max; default max |
seed, frequency_penalty, presence_penalty, repetition_penalty, top_k | Applied (seed 0 means unset) | Applied (seed 0 means unset) | Ignored |
n | Must be 1 | Must be 1 | Must be 1 |
store | Must be false | Must be false | Must be false |
temperatureranges are enforced, not clamped: a value outside the model's range returns HTTP 400invalid_parameter.- Passed through: the model receives the parameter, but it is not yet qualified, so the provider feed does not declare it.
- Ignored: accepted for SDK compatibility but not applied to the output.
- Best effort: passed to the model without a retry, so a forced tool call is not guaranteed.
- Reasoning efforts are
none, minimal, low, medium, high, xhigh, max;noneturns reasoning off. Every model also acceptsinclude_reasoningand the OpenRouter-stylereasoning: {effort, exclude}object. - Vision:
image_urlparts with public HTTPS or base64 PNG/JPEG/WebP/GIF/BMP/TIFF/PPM. Source inputs fit within the 32 MiB request body (12 MiB on Responses) or the 12 MiB remote-source limit, with at most 12 MiB of each request besides its image data URLs; each prepared data URL must be under 5 MB, and prepared data URLs must total under 32 MiB. Larger sources and images above the model'smax_pixelsresize target are downscaled and re-encoded to fit, not rejected. Usage reportsimage_tokens.
Usage, errors and rate limits
- Usage: the OpenAI shape, with
completion_tokens_details.reasoning_tokensandprompt_tokens_details.cached_tokens. Cached input is billed at the cached rate shown in the feed. - Errors: always
{"error":{"message","type","code","param"}}. Unknown models return 404model_not_found; unknown parameters return 400 naming the parameter. - Rate limits: a per-account, per-model rolling-minute budget of 600 requests, 8M input tokens and 2M output tokens. Responses after account/model quota admission carry
x-ratelimit-limit/remainingheaders for requests, input tokens and output tokens, plusx-ratelimit-reset; quota rejections addRetry-After. Validation failures and earlier rejections do not carry these headers. - Request IDs: every response carries
X-Request-Id; quote it in support requests. - Long requests: a non-streaming request sends nothing until the whole answer is ready, and NAT gateways and firewalls on your network can drop a connection that stays idle for a few minutes (350 seconds on AWS NAT Gateway, 4 minutes by default on Azure, 10 minutes for the Google Cloud VPC firewall). The answer is then lost, often without an error. Use
stream: truefor requests that may run longer than a few minutes. Kimi K3.1 Pro streams keep the connection active every 15 seconds. If you must use non-streaming, enable TCP keepalive with an idle time of about 60 seconds and raise your client's request timeout.