This page documents the Reporting API for reading analytics data. If you want to send pageview
tracking events to Siteline, use the Direct HTTP API instead.
Base URL
Authentication
Create a public API key in your Siteline workspace under Team settings > Public API Key. Only team admins can view, create, copy, or regenerate the key. Pass the key as a bearer token:Authorization model
The API key scopes every request to the Siteline team that owns the key and its managed teams.GET /v1/productsreturns primary products owned by that team or its managed teams- Product-specific routes only return data for products owned by that team or its managed teams
- Competitor products linked through comparison data are not authorized as primary products
- Missing keys, invalid keys, revoked keys, malformed product IDs, and unauthorized products all return the same
401response
Production client checklist
- Keep requests server-side; never expose the API key to end users
- Cache low-churn discovery calls like
GET /v1/products - Use RFC3339 timestamps for all date ranges, for example
2026-05-01T00:00:00Z - Keep date windows bounded to the reporting period your workflow needs
- Retry transient
5xxfailures with exponential backoff and jitter - Do not retry
400or401responses until inputs or credentials are fixed - Log request path, status code, and a correlation ID, but never log the full API key
- Prefer
labelIds[],platforms[], andgroupByfilters over downloading broad datasets and filtering later
Query conventions
Repeated filters use bracket notation:
Invalid or missing query parameters return:
Error behavior
Recommended sync pattern
For production ingestion jobs:- Call
GET /v1/productsand cache product IDs. - Call
GET /v1/products/{productId}/websitesand cache authorized domains. - Use
websiteIdon analytics timeseries requests when you need one website instead of all product websites combined. - Run narrow date-window requests for each product and domain.
- Store the exact
dateFrom,dateTo, endpoint path, and filters used for every sync batch. - On retries, re-run the same idempotent
GETrequest with the same filters.