DocsAPIUsage

Usage

How API calls count against your plan, and what your keys have been doing: totals, calls per day, and the latest calls with their request_ids.

01How calls are counted

Each call the API accepts uses one research run from your plan's monthly allowance: 3 on Free, 40 on Pro, 100 on Researcher. Runs started in the ResearchAnything app draw on the same allowance, and it resets each calendar month. The run is counted when the call is accepted, whether or not it then completes. See Limits.

Your profile page in ResearchAnything shows how many runs you have used this month. When none are left, calls fail with 429 and quota_exceeded, which reports the limit and how many you have used.

API calls are not billed per token. The token figures below are estimates for your own reference.

02Usage in the Console

The Usage page of the API Console, researchanything.ai/console/usage, shows your call history. It reads this endpoint:

GET/api/console/usage

It serves the Console in your signed-in browser session and doesn’t accept an API key.

A call is recorded when it finishes, with the key that made it. Calls refused for quota are recorded with status rejected. Calls made from the Console's Playground are recorded against the key you picked there. A stream closed before its final event is not recorded, though its research run is still used.

03Response shape

Three parts. summary totals every recorded call on your account, across all keys. daily counts calls per day. recent lists the latest calls.

summary

FieldTypeDescription
total_callsnumberAll recorded calls, including rejected ones.
ok_callsnumberCalls whose run completed.
error_callsnumberCalls whose run ended with status: "error".
tokens_innumberSum of the per-call tokens_in estimates.
tokens_outnumberSum of the per-call tokens_out estimates.
avg_latency_msnumberMean latency across recorded calls, in milliseconds.
last_24hnumberCalls in the last 24 hours.
last_7dnumberCalls in the last seven days.

daily

An array of { "day", "calls" } entries for the last 14 days, oldest first, with day as YYYY-MM-DD. Only days with at least one call appear; fill in the gaps yourself if you plot it.

recent

The 25 most recent calls, newest first.

FieldTypeDescription
idstringThe usage record's id. Not the request_id.
key_idstringThe key that made the call.
key_namestring or nullThat key's name.
querystringThe question, cut to its first 1,000 characters.
statusstringok, error or rejected.
latency_msnumberHow long the call took. 0 for rejected calls.
tokens_innumberEstimate, as in the response envelope.
tokens_outnumberEstimate, as in the response envelope.
request_idstringThe call's request_id. Open its run timeline in the Console.
created_atstringISO 8601 timestamp of when the call was recorded.

04Example response

JSON — abbreviated
{
  "summary": {
    "total_calls": 38,
    "ok_calls": 35,
    "error_calls": 2,
    "tokens_in": 612,
    "tokens_out": 30150,
    "avg_latency_ms": 96200,
    "last_24h": 4,
    "last_7d": 17
  },
  "daily": [
    { "day": "2026-09-22", "calls": 3 },
    { "day": "2026-09-25", "calls": 6 },
    { "day": "2026-09-28", "calls": 4 }
  ],
  "recent": [
    {
      "id": "c1d2e3f4-…",
      "key_id": "0b6f4c1e-2a7d-4e39-9f15-7c8d3e2a1b04",
      "key_name": "prod-backend",
      "query": "Compare GDPR and CCPA on the right to have personal data deleted.",
      "status": "ok",
      "latency_ms": 101482,
      "tokens_in": 16,
      "tokens_out": 840,
      "request_id": "3f1c9a2e-7b4d-4e8a-9c61-2d5f0b8e4a17",
      "created_at": "2026-09-28T14:23:49"
    }
  ]
}
CautionThese figures cover your whole account. If you serve several customers from one account, count each customer's calls in your own system rather than showing them these totals.

Can’t find what you need?

Write to us and a person will answer.