Graine AI

API request counts over recent days

How much your organization uses this API, day by day.

How much your organization uses this API, day by day.

Counts every authenticated /v2 request — reads and writes alike — including requests that were refused with a 429 (reported separately under denied, so you can see throttling pressure, not just admitted traffic). Unauthenticated requests are not counted: without a valid key there is no organization to attribute them to.

Counting began when this endpoint shipped; days before that report zero rather than being back-filled from any other source.

This is REQUEST traffic. For calls, minutes and spend, use GET /v2/usage.

Rate limit: 1000 requests per minute per organization (bucket default). Exceeding it returns 429 with Retry-After; the X-RateLimit-* response headers report your remaining allowance on every call.

GET
/v2/usage/requests
/v2/usage/requests?days=30

The Authorization access token

Authorization

Authorization
Required
Bearer <token>

Your Graine API key. Create one in the dashboard under Developers, or via POST /v2/api-keys. Send it as Authorization: Bearer <key>.

In: header

Query Parameters

daysDays

Window, ending today (UTC).

Default: 30Minimum: 1Maximum: 90

organization_idOrganization Id

Must match the organisation the API key belongs to.

Response Body

200

Daily request totals for your organization, throttled requests included.

days
Required
Days

Window length that was applied.

series
Required
Series

Oldest first, one row per day — zero rows included, so a quiet day reads as quiet, not missing.

totals
Required
Totals

Sums over the window; date is empty.

401

1100 — missing, unknown or inactive API key. 1101 — a browser session token was presented instead of an API key.

error
Required
Error

Stable integer code from the /v2 error table. Branch on this.

message
Required
Message

One human-readable sentence. Wording may change; the code will not.

403

1102 — the key is valid but lacks the scope this endpoint requires, or names another organization. GET /v2/scopes reports what a key holds.

error
Required
Error

Stable integer code from the /v2 error table. Branch on this.

message
Required
Message

One human-readable sentence. Wording may change; the code will not.

422

1001 — the body or query failed validation; the message names the first offending field.

error
Required
integer

Stable integer code from the error table. Branch on this, not on the message.

message
Required
string

One human-readable sentence. Wording may change; the code will not.

429

1300 — the per-organization request rate or concurrent-call limit was reached. Carries Retry-After.

error
Required
Error

Stable integer code from the /v2 error table. Branch on this.

message
Required
Message

One human-readable sentence. Wording may change; the code will not.

503

1501 — a service this endpoint depends on is unreachable or returned a 5xx.

error
Required
Error

Stable integer code from the /v2 error table. Branch on this.

message
Required
Message

One human-readable sentence. Wording may change; the code will not.

curl -X GET "https://api.graine.ai/v2/usage/requests?days=30&organization_id=string" \
  -H "Authorization: Bearer <token>"

Daily request totals for your organization, throttled requests included.

{
  "days": 30,
  "series": [
    {
      "date": "2026-09-04",
      "total": 1382,
      "denied": 4,
      "buckets": {
        "default": 900,
        "calls.create": 482
      }
    }
  ],
  "totals": {
    "date": "2026-09-04",
    "total": 1382,
    "denied": 4,
    "buckets": {
      "default": 900,
      "calls.create": 482
    }
  }
}