Get overview metrics
const url = 'https://api.justcrawl.io/api/v1/analytics/overview';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.justcrawl.io/api/v1/analytics/overview \ --header 'Authorization: Bearer <token>'Headline metrics for the dashboard’s overview card — total requests, success rate, p50/p95 latency, total spend, freshness timestamp. Org-scoped.
This is a cached read populated by the analytics service on its own cadence
(typically every 1–5 minutes). When the cache is cold (new org, never-rolled window,
or post-Redis-restart), the endpoint returns a zeroed object rather than 404 so the
dashboard renders empty state without a second probe. Use latestDataAt to tell
“no activity” from “cache not ready.”
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Lookback window in hours (default 24, max 720 = 30 days). Out-of-range values clamp to the default rather than 400.
Responses
Section titled “Responses”Overview metrics for the organization (zeroed object when cache is cold).
object
Examplegenerated
{ "totalRequests": 1, "successCount": 1, "successRate": 1, "avgLatencyMs": 1, "p95LatencyMs": 1, "totalCost": 1, "latestDataAt": "2026-04-15T12:00:00Z"}Missing or invalid authentication token
object
Example
{ "error": "Missing or invalid authentication token"}Insufficient permissions for this operation
object
Example
{ "error": "No organization. Complete onboarding first."}Unexpected server error. Logs and PostHog $exception capture
object
Example
{ "error": "Something went wrong"}