DeepSeek API latency: timings, errors and raw data

40 requests, three prompts, one client. Abliterated returned 20 visible answers; regular DeepSeek returned 20 HTTP 503 errors. Here are the measurements, including the failures.

Results: 5 November 2026

The run lasted from 12:21:30 to 12:22:34 UTC. These observations describe that window, not current availability or an uptime estimate.

Availability update, 5 November: the regular model was subsequently retired. New requests now return HTTP 404 model_not_found and name DeepSeek V4.1 Flash Abliterated as the replacement. The recorded 503 errors below remain unchanged.

Client timings; successful streams only. Failures are counted separately.
MetricDeepSeek V4.1 FlashFlash Abliterated
Requests2020
Completed streams / visible answers0 / 020 / 20
HTTP errors20 × HTTP 5030
Median first token, including reasoningNot available594 ms
Median first visible contentNot available3,063 ms
Sample p95 first visible contentNot available4,495 ms
Median total timeNot available3,563 ms
Sample p95 total timeNot available4,832 ms
Output-limit stopsNot available3 of 20
Median completion tokens, including reasoningNot available331

First token is not first answer. The abliterated route emitted reasoning despite the request’s disable flags. Its median first visible content arrived about 2.47 seconds after its median first token. Three streams ended with finish_reason: length; transport completion does not mean a complete answer.

Twenty measured first-visible-content timings for DeepSeek V4.1 Flash Abliterated, grouped by prompt; median 3.06 seconds.
Each dot is one measured response. Raw timings are available in CSV. No regular-model dots are plotted because all 20 requests failed.

The regular route returned service_unavailable. A separate diagnostic request returned the same public error, stating that the request was not charged. This identifies a service failure in the test window; it does not establish its upstream cause.

Method and limits

A macOS ARM client running Node 26.12.1 sent requests sequentially to https://api.excessionlabs.ai/v1/chat/completions. Concurrency was one. The starting model alternated each round; both models received the same prompt in a round. There were no warm-up requests or retries.

This is one short time window on one client/network; region was not independently verified. Repeated prompts may benefit from caching. Output lengths differ. We did not measure sustained throughput, answer quality, regional latency, long-context use or competitors. This is not a speed ranking or an SLA.

Cost of this run

The 20 abliterated requests have a combined token-price estimate of $0.0048034, calculated from returned usage and the catalog snapshot captured before the run. The failed regular requests returned no usage, so their token-price estimate is unavailable. The test account reported zero charged cost on its successful requests; this does not mean the public API is free.

For your own workload, use the monthly API cost calculator. It compares actual plan fees, unused credit and additional balance. A plan’s effective token rates require full use of its credit.

Reproduce and inspect

Download the standalone Node script, set EXCESSION_API_KEY in your environment, then run:

node api-benchmark.mjs --samples 20 --max-tokens 512 \
  --disable-thinking --out ./deepseek-latency-run

This sends 40 metered requests and writes results.json and requests.csv. It also accepts an existing CLI login. Credentials and response headers are not written to the results. An exit code of 1 means at least one request failed; the evidence is still saved.

To compare runs, keep the prompt mix, output cap, reasoning settings, client environment and concurrency fixed. Repeat in several time windows and report errors and actual completion lengths alongside latency.

Earlier sample: 2 November

The original ten requests remain available unchanged. Six requests with default reasoning exhausted a 160-token cap without visible answers. Four requests with explicit disable flags returned visible content: two per model. In that earlier run, no reasoning was emitted with the disable flags.

ModelRequestsMedian first contentMedian total
Flash2904 ms2,878 ms
Flash Abliterated2290 ms909 ms

The prompt mix, output cap and observed reasoning behavior differ from the new run, so these numbers are not a before-and-after speed comparison. Historical cost estimates use the older catalog rates captured that day.

Continue reading