Status API › Analytics
Get analytics across pages
Every page the caller can see, together: views, visitors, feed and AI reads, subscriber growth (signed up, confirmed, unsubscribed, removed) and incidents published with time to first publication, as totals, a series, per page and top lists.
from and to go together: dates (to inclusive) or RFC 3339 instants,
widened to whole UTC days; default the last 30 days, at most 366. Two days or
less gives an hourly series. compare adds the previous period's or last
year's headline numbers.
Permission (API-key scope): status:page:read.
Authorization
bearerAuth(status:page:read)apiKeyHeader(status:page:read)
Parameters
Query parameters
fromstringYYYY-MM-DDor RFC 3339.tostringYYYY-MM-DD(inclusive) or RFC 3339.team_idstringOnly this team's pages. A team the caller cannot see gives an empty list.page_idstring (uuid)Only this page (404 if the caller cannot see it).comparestring
Responses
200
The analytics.
dataOrgAnalytics requiredShow OrgAnalytics properties
rangeAnalyticsRangeShow AnalyticsRange properties
fromstring (date-time)tostring (date-time)granularitystringtzstring
totalsobjectpagesintegerviewsintegervisitorsintegerfeed_readsintegerai_requestsintegersubscribers_confirmedintegersubscribersSubscriberEventsShow SubscriberEvents properties
signed_upintegerconfirmedintegerunsubscribedintegerremovedintegernetinteger
incidentsIncidentStatsShow IncidentStats properties
publishedintegerby_impactarray of objectimpactIncidentImpactcountinteger
time_to_first_publicationDurationStatsShow DurationStats properties
countintegerp50_secondsnumber | nullp90_secondsnumber | nullavg_secondsnumber | null
seriesarray of objectHourly for a range of two days or less (then the per-day counters arenull), daily otherwise.bucketstring (date-time)viewsintegervisitorsinteger | nullfeed_readsinteger | nullai_requestsinteger | nullsubscribersSubscriberEvents | null- SubscriberEvents
Show SubscriberEvents properties
signed_upintegerconfirmedintegerunsubscribedintegerremovedintegernetinteger
- null
incidents_publishedinteger
pagesarray of objectpage_idstringnamestringslugstringteam_idstringcustom_domainstring | nullanalytics_enabledbooleanviewsintegervisitorsintegerfeed_readsintegerai_requestsintegersubscribers_confirmedintegersubscribersSubscriberEventsShow SubscriberEvents properties
signed_upintegerconfirmedintegerunsubscribedintegerremovedintegernetinteger
incidentsIncidentStatsShow IncidentStats properties
publishedintegerby_impactarray of objectimpactIncidentImpactcountinteger
time_to_first_publicationDurationStatsShow DurationStats properties
countintegerp50_secondsnumber | nullp90_secondsnumber | nullavg_secondsnumber | null
routesarray of objectroutestringviewsinteger
referrersarray of objecthoststringviewsinteger
countriesarray of objectcodestringviewsinteger
devicesarray of objectdevicestringviewsinteger
feedsarray of objectkindstringcountinteger
aiarray of objectkindstringcountinteger
ai_agentsarray of objectagentstringcountinteger
compareobject | null- object
modestringfromstring (date-time)tostring (date-time)viewsintegervisitorsintegerfeed_readsintegerai_requestsintegersubscribersSubscriberEventsShow SubscriberEvents properties
signed_upintegerconfirmedintegerunsubscribedintegerremovedintegernetinteger
incidentsIncidentStatsShow IncidentStats properties
publishedintegerby_impactarray of objectimpactIncidentImpactcountinteger
time_to_first_publicationDurationStatsShow DurationStats properties
countintegerp50_secondsnumber | nullp90_secondsnumber | nullavg_secondsnumber | null
- null
successboolean required
400
from/to or compare is not valid (VALIDATION_FAILED, each field in details).
errorobject requiredcodestring requiredmessagestring requiredrequest_idstringdetailsarray of object requiredfieldstringmessagestring
401
No API key was sent, or it is unknown, revoked or expired (UNAUTHORIZED).
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.request_idstringThis request's id, also inX-Request-ID.
403
The key lacks the scope this endpoint needs (FORBIDDEN).
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.request_idstringThis request's id, also inX-Request-ID.
404
page_id is not a page the caller can see (NOT_FOUND).
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.request_idstringThis request's id, also inX-Request-ID.
429
Too many requests (RATE_LIMITED). Wait Retry-After seconds.
Retry-AfterintegerSeconds to wait.
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.request_idstringThis request's id, also inX-Request-ID.
500
Something went wrong on EvoHub's side (INTERNAL_ERROR). Retry later.
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.request_idstringThis request's id, also inX-Request-ID.
Example request
curl -X GET 'https://evohub.io/api/v1/pages/analytics' \
-H 'Authorization: Bearer <TOKEN>'