Skip to content
FasterTokens

API reference

Base URL: https://api.fastertokens.com. Authenticate with Authorization: Bearer ft_live_… (or X-API-Key).

POST /v1/chat/completions

Create a completion. The request and response follow the OpenAI chat completions format.

Request body

Field Notes
model deepseek-v4.1-flash. May be omitted.
messages Required. System, user, assistant and tool messages.
tools, tool_choice, parallel_tool_calls Function tools, as in the OpenAI API.
stream true for server-sent events. Recommended for voice.
stream_options.include_usage Adds a final chunk with token usage.
max_tokens / max_completion_tokens Default 500, capped at 2,000.
temperature, top_p, stop, presence_penalty, frequency_penalty, seed, response_format Passed through.
user Used as the session ID when no X-Session-Id header is sent.

Other fields are ignored. Reasoning is always off. The request body may be up to 512 KB.

Request headers

Header Notes
X-Session-Id One ID per call. Turns that share it are served consistently and can reuse the cached prompt.
X-First-Token-Deadline-Ms How long to wait for the first real output, 300 to 10,000. Default 2,000.

Response headers

Header Notes
x-request-id The request's ID. Quote it when you write to us.
x-ttft-ms Milliseconds from the request arriving to the first real output (text or a tool call).

Errors

Errors use the OpenAI shape: {"error": {"message": "…", "type": "…", "code": "…"}}.

Status code Meaning
400 invalid_request, invalid_json, model_not_found The request is malformed.
401 unauthorized, invalid_api_key Missing, unknown or revoked key.
413 request_too_large Body over 512 KB.
429 rate_limited Over the key's requests per minute.
429 too_many_concurrent_requests Over the key's requests in flight.
429 monthly_limit_reached The account's monthly allowance is used up.
502 upstream_failed The request failed upstream before producing output. Safe to retry or fall back.
503 capacity_paused The preview's capacity for the day is used up. It reopens at 00:00 UTC.
504 first_token_timeout No output was produced before the deadline. Safe to retry or fall back.

502 and 504 are returned before any part of a response is sent. If a response is cut off after it has started, a streamed response ends with an error event instead of [DONE].

GET /v1/models

Lists the available model.

GET /v1/usage

Your completions and tokens by day, your own time-to-first-token percentiles, and the month's allowance.

Query Notes
from, to YYYY-MM-DD, UTC. Default: this month to date.
key=this Only the key making the request.
{
  "from": "2026-11-01", "to": "2026-11-13", "requests": 1840,
  "ttft_ms": { "p50": 412, "p95": 655, "completions": 1836 },
  "month": { "used": 1840, "limit": 2000 },
  "days": [{ "date": "2026-11-12", "key_id": "key_…", "requests": 320, "prompt_tokens": 401220, "completion_tokens": 9180 }]
}

The numbers in this example are illustrative.

GET /benchmark

Public, no key. The live benchmark summary shown on the benchmark page: percentiles overall, by scenario, by day and by hour, with a single provider's figures for comparison.

Limits

Limit Default
Requests per minute, per key 300
Requests in flight, per key 20
Completions per month, per account (preview) shown in the dashboard

Write to [email protected] to raise a limit.

What is stored

Timings, token counts, the request ID and the key used. Messages and model output are not written to our database or logs.