Free — 0 credits deducted. Everything you need to decide about your plan BEFORE the API refuses you: spend by endpoint, burn rate, the date you are projected to run out, and the tier that would clear it (with a headless checkout you can POST). Two windows, and every field says which one it is in its name: * ALL TIME — `usage_by_endpoint`, `recent_activity`, `all_time`, `all_time_by_endpoint`. Every call this key has ever made. This is the original meaning of `usage_by_endpoint` and `recent_activity` and it has not changed. Because it spans every billing period the key has lived through, it will normally be LARGER than `credits_used` — that is not a discrepancy, the two are measuring different things. * CURRENT BILLING PERIOD — `usage_by_endpoint_period`, `recent_activity_period`, plus `credits_used` / `credits_remaining` / `period_start` / `next_reset_at`. The credits in `usage_by_endpoint_period` sum to `credits_used`. Use these to reconcile a bill. `all_time_by_endpoint` is an exact alias of `usage_by_endpoint`, kept because it shipped. Nothing in the all-time pair changed on 2026-08-18; if you saw those two numbers step down earlier that day, this restored them.
X-API-Key
curl 'https://api.puntersedge.online/v1/usage' \
-H 'X-API-Key: YOUR_KEY'
| Name | In | Type | Required | Description |
|---|---|---|---|---|
format |
query | string | no | `csv` returns the per-endpoint breakdown as a spreadsheet instead of the JSON document. Same rows, same numbers, no row cap. Free, like the JSON. |
Status codes: 200, 401, 402, 422, 429, 500. Response bodies are JSON; the full schema is in /openapi.json.
200 application/json
Field names and types are as the API returns them; values are a real sample, trimmed to a few items.
{
"all_time": {
"calls": 310,
"credits": 402,
"endpoints": 1
},
"all_time_by_endpoint": [
{
"calls": 310,
"credits": 402,
"endpoint": "/v1/sports"
}
],
"burn_rate_per_day": 6.0,
"credits_limit": 1000,
"credits_remaining": 958,
"credits_used": 42,
"next_reset_at": "2026-08-01T00:00:00",
"period_start": "2026-07-01T00:00:00",
"plan": "free",
"plans": {
"free": {
"credits_per_month": 500,
"price_aud": 0
}
},
"projected_month_end_credits": 186,
"recent_activity": [
{
"credits": 1,
"endpoint": "/v1/sports",
"ts": "2026-06-07T02:20:00"
}
],
"recent_activity_period": [
{
"credits": 1,
"endpoint": "/v1/sports",
"ts": "2026-06-07T02:20:00"
}
],
"reset_at": "2026-07-01T00:00:00",
"upgrade": {
"checkout": {
"body": {
"email": "you@example.com",
"plan": "hobby"
},
"endpoint": "https://api.puntersedge.online/v1/signup",
"method": "POST"
},
"covers_projected_need": true,
"credits_per_month": 7500,
"price_aud": 9,
"recommended_plan": "hobby",
"sized_for_credits_per_month": 186,
"url": "https://puntersedge.online/api/pricing?plan=hobby&utm_source=api_usage"
},
"usage_by_endpoint": [
{
"calls": 310,
"credits": 402,
"endpoint": "/v1/sports"
}
],
"usage_by_endpoint_period": [
{
"calls": 42,
"credits": 42,
"endpoint": "/v1/sports"
}
]
}
GET /v1/account — Your account: email, plan, password, billing and consent statusPOST /v1/account/marketing — Turn promotional emails on or off for your accountPOST /v1/account/password — Set or change your account passwordGET /v1/billing/overage — Overage: state, rate and ceilingPOST /v1/billing/overage — Switch overage on or offGET /v1/billing/portal — Self-service billing portal linkPOST /v1/billing/portal — Billing portal link (console; confirms your password)GET /v1/billing/upgrade-link — A signed link to your prorated upgrade pageThe free tier needs no credit card, and the sandbox endpoints need no key at all.
Get a free API key Quickstart