API key

Manage

Usage and request logs

What Paranine records about every request, where to see it, and what each timing means.

What's recorded

For every request made with your keys, Paranine records its metadata: the model, key and project, the status, how the request ended, its timings, token counts, cost, the client's user agent and any X-P9-Meta-* tags you sent.

The content of prompts and completions is never stored. Request records are kept for 12 months.

In the dashboard

  • Request logs: every request, newest first. Search by request id or tag; filter by time, project, key, model, status, how the request ended and cost; open any row to see every field; export to CSV.
  • Overview: requests, latency, time to first token, throughput and tokens by key, project and model, over 24 hours, 7 days or 30 days.
  • Each key's page: that key's usage and spend over the last 30 days.
  • Activity: who changed what in your organisation, such as sign-ins and keys created, changed or revoked.

Timings

A request's time splits into four parts:

Total = Upload + Paranine + Time to first token + Generation

PartWhat happensField
UploadYour request body arrivesclient_upload_ms
ParanineParanine checks the key, limits and balance and routes the requestgateway_processing_us (microseconds)
Time to first tokenThe model reads your prompt and starts its replyttft_ms
GenerationThe model writes the rest of the replytpot_ms, per output token

total_ms runs from your request arriving at Paranine to the last byte of the reply leaving it. Upload depends on your connection and the size of your prompt; it is not Paranine's time.

Your own stopwatch reads longer, because it also counts connecting and the network in both directions. Time to first token and generation speed exist for streaming requests only; for other requests they read null, not 0, and an average over a period with no requests is null too.

How a request ended

Each record carries a termination_reason: success, client_disconnect, proxy_guillotine (the five-minute limit) or upstream_stream_aborted, or the error code of a refused request. See Errors and retries.

A request refused before its key could be identified (a wrong key, an unknown model, a malformed body) is not in your logs: read the error response itself.

From code

Pull usage summaries, time series and the request log itself with the Account API.

Something unclear or wrong on this page? Tell us. Machine-readable copies: llms.txt.