API reference
Usage
Monitor how your integration uses the API: daily request counts with a per-endpoint breakdown, and 7-day/30-day totals per key.
Get usage
GET
/api/v1/usageRequest counts for your merchant over the trailing 30 days. Requires the read scope. The same numbers power the usage chart in Dashboard → Settings.
bash
curl https://useshelfready.com/api/v1/usage \
-H "Authorization: Bearer $SHELFREADY_API_KEY"response.json
{
"data": {
"window_days": 30,
"days": [
{ "day": "2026-07-17", "total": 412, "endpoints": { "products": 300, "catalog": 100, "feeds": 12 } },
{ "day": "2026-07-18", "total": 87, "endpoints": { "products": 80, "audit": 7 } }
],
"keys": [
{
"id": "1a2b3c4d-5e6f-7081-92a3-b4c5d6e7f809",
"name": "CI pipeline",
"prefix": "sr_ab12cd34",
"revoked": false,
"requests_7d": 499,
"requests_30d": 2310
}
]
},
"rate_limit": { "requests_per_minute": 60 }
}Response fields
| Parameter | Type | Description |
|---|---|---|
data.window_days | integer | Size of the reporting window (30). |
data.days[].day | date | UTC calendar day. |
data.days[].total | integer | All authenticated requests that day, across your keys. |
data.days[].endpoints | object | Per-endpoint-group breakdown (products, catalog, syncs, feeds, audit, webhooks, usage). |
data.keys[] | array | Every key on the account (including revoked) with requests_7d / requests_30d totals. |
rate_limit.requests_per_minute | integer | The per-key rate limit (sliding window). |
Counting & retention
A request is counted once its API key authenticates successfully — 401/403 rejections and 429 rate-limited requests are not counted. Counters are per UTC day and retained for 90 days. Counting is fire-and-forget: it never slows down or fails your request.
Approaching the rate limit? Batch catalog changes through POST /api/v1/catalog (many items per request) instead of item-by-item calls.