Everything the dashboard shows is available as JSON, at https://millimetry.app/api/v1. Create a read-only token under your organization’s settings → API tokens (admins and owners), then:
curl -H " Authorization: Bearer mt_… " \
" https://millimetry.app/api/v1/apps/42/overview?from=2026-09-01&to=2026-09-30 "
Requests carry a read-only org token (Authorization: Bearer mt_…) or the dashboard’s session cookie. Common query parameters for stats endpoints:
from, to: UTC dates, inclusive.
debug=true: debug data instead of production data.
filter=dimension:value: repeatable, for example filter=country:CA&filter=app_version:1.5.0.
compare=previous: adds the previous period of the same length.
Answers are cached for 30 seconds. Busy periods answer 503 with Retry-After. A query too heavy for its time or memory budget answers 422: narrow the dates or the filters.
The machine-readable document is at /api/v1/openapi.json .
Auth Sign-in links, sessions.
POST /auth/logoutEnds this session.
POST /auth/magic-linkSends a sign-in link.
Body: LinkRequest
202 If the address can sign in, a link is on its way400429503POST /auth/verifyUses a sign-in link: starts a session (the cookie) and returns who signed in. Needs
`X-Requested-With`, which a cross-site form cannot send. 404 when the link is unknown, used or
expired.
Body: VerifyRequest
200 LinkInfo Signed in; the session cookie is set403404GET /meWho is signed in, and their orgs and roles.
GET /me/sessionsThe signed-in person's active sessions.
DELETE /me/sessions/{id}Signs out one session (another device).
Parameter In Type Description idpath string The session id from /me/sessions
Apps Apps, web sites and their keys.
GET /appsThe apps the caller may see, across their orgs.
POST /appsCreates an app or web site with its first key.
Body: NewApp
GET /apps/{id}One app.
Parameter In Type Description idpath integer (int32)
PATCH /apps/{id}Renames an app, replaces a site's origins, or pauses and resumes ingest.
Parameter In Type Description idpath integer (int32)
Body: AppChange
DELETE /apps/{id}Deletes an app. Its keys stop at once; its data is purged after a 7-day undo window (§15.6).
Parameter In Type Description idpath integer (int32)
POST /apps/{id}/exportExports every event of the app to a file; poll `GET /jobs/{id}` for the download link (valid 7
days). Admins and owners: an export holds everything the app ever sent.
Parameter In Type Description idpath integer (int64)
Body: ExportRequest
POST /apps/{id}/forwarding-secretIssues a new forwarding secret for a proxied web install (§12.2).
Parameter In Type Description idpath integer (int32)
GET /apps/{id}/funnelsThe app's saved funnels.
Parameter In Type Description idpath integer (int32)
POST /apps/{id}/funnelsSaves a funnel for everyone in the org to reuse.
Parameter In Type Description idpath integer (int32)
Body: NewSavedFunnel
DELETE /apps/{id}/funnels/{funnel_id}Deletes a saved funnel.
Parameter In Type Description idpath integer (int32) funnel_idpath integer (int64)
GET /apps/{id}/keysThe app's keys, active and revoked.
Parameter In Type Description idpath integer (int32)
POST /apps/{id}/keysAdds a key. Rotation is an overlap: add, ship it, revoke the old one later.
Parameter In Type Description idpath integer (int32)
DELETE /apps/{id}/keys/{key}Revokes a key. Ingest stops accepting it within a minute (its key cache).
Parameter In Type Description idpath integer (int32) keypath string
GET /jobs/{id}A job the caller's org started (exports).
Parameter In Type Description idpath integer (int64)
Orgs Orgs, members and API tokens.
GET /invitationsWhat an invitation link is for, before signing in to accept it. 404 when used or expired.
Parameter In Type Description tokenquery string
POST /invitations/acceptJoins the org. The signed-in address must be the invited one; otherwise, and when the link is
used or expired, 404.
Body: AcceptInvitation
POST /orgsCreates an org with the caller as its owner, on the free plan.
Body: NewOrg
PATCH /orgs/{id}Renames the org.
Parameter In Type Description idpath integer (int64)
Body: OrgChange
DELETE /orgs/{id}Deletes the org: every app stops at once and all its data is purged within minutes (§15.6).
Owners only, and the body must repeat the org's name.
Parameter In Type Description idpath integer (int64)
Body: DeleteOrg
GET /orgs/{id}/invitationsPending invitations.
Parameter In Type Description idpath integer (int64)
POST /orgs/{id}/invitationsInvites someone by email. Inviting the same address again replaces the earlier invitation.
Parameter In Type Description idpath integer (int64)
Body: NewInvitation
DELETE /orgs/{id}/invitations/{invitation_id}Withdraws a pending invitation; its link stops working.
Parameter In Type Description idpath integer (int64) invitation_idpath string
GET /orgs/{id}/membersThe org's members and roles. Invitations come with Milestone B (§20 phase 7).
Parameter In Type Description idpath integer (int64)
PATCH /orgs/{id}/members/{user_id}Changes a member's role. Admins change admins, members and viewers; owners also owners.
Parameter In Type Description idpath integer (int64) user_idpath integer (int64)
Body: RoleChange
DELETE /orgs/{id}/members/{user_id}Removes a member; any member may remove themselves (leave). The last owner cannot go.
Parameter In Type Description idpath integer (int64) user_idpath integer (int64)
GET /orgs/{id}/tokensThe org's API tokens (never the tokens themselves).
Parameter In Type Description idpath integer (int64)
POST /orgs/{id}/tokensCreates a read-only API token for the org.
Parameter In Type Description idpath integer (int64)
Body: NewToken
DELETE /orgs/{id}/tokens/{token_id}Revokes an API token at once.
Parameter In Type Description idpath integer (int64) token_idpath integer (int64)
Stats Dashboard queries.
GET /apps/{id}/breakdownTop values of one dimension by events, sessions or users (§16).
Parameter In Type Description idpath integer (int32) dimensionquery string metric (optional)query string limit (optional)query integer (int32) from (optional)query string to (optional)query string filter (optional)query string[]
GET /apps/{id}/eventsThe app's events by count, each with a daily series for a sparkline (§14.3).
Parameter In Type Description idpath integer (int32) limit (optional)query integer (int32) from (optional)query string to (optional)query string filter (optional)query string[]
GET /apps/{id}/events/{name}One event: its trend, its text properties' top values, its number properties' statistics,
and optionally one number property by a dimension (revenue by version, §13).
Parameter In Type Description idpath integer (int32) namepath string property (optional)query string by (optional)query string from (optional)query string to (optional)query string filter (optional)query string[]
POST /apps/{id}/funnelOrdered steps within a session and a time window (§13 funnel), optionally per dimension value.
Parameter In Type Description idpath integer (int32) from (optional)query string to (optional)query string filter (optional)query string[]
Body: FunnelRequest
GET /apps/{id}/heatmapSessions by weekday and hour (§13).
Parameter In Type Description idpath integer (int32) from (optional)query string to (optional)query string filter (optional)query string[]
GET /apps/{id}/liveSessions active in the last 5 minutes (§14.3). Never cached.
Parameter In Type Description idpath integer (int32) debug (optional)query boolean
GET /apps/{id}/overviewKPIs and the daily series, from `daily_totals` when unfiltered and raw `events` when filtered.
Parameter In Type Description idpath integer (int32) from (optional)query string to (optional)query string debug (optional)query boolean filter (optional)query string[] dimension:value, repeatable compare (optional)query string
POST /apps/{id}/pathsWhat happens next after an event, within a session (§13).
Parameter In Type Description idpath integer (int32) from (optional)query string to (optional)query string filter (optional)query string[]
Body: PathsRequest
GET /apps/{id}/sessionsRecent sessions and the window's session statistics. No user identity exists to show (§14.3).
Parameter In Type Description idpath integer (int32) limit (optional)query integer (int32) from (optional)query string to (optional)query string filter (optional)query string[] platform, country, os_name or app_version only
GET /apps/{id}/sessions/{session_id}One session's events in order.
Parameter In Type Description idpath integer (int32) session_idpath string debug (optional)query boolean
GET /apps/{id}/usageIngest health and the org's quota (§16).
Parameter In Type Description idpath integer (int32) from (optional)query string to (optional)query string
Billing Plans, usage and Stripe billing.
GET /orgs/{id}/billingThe org's plan, usage and the plans on offer.
Parameter In Type Description idpath integer (int64)
POST /orgs/{id}/billing/checkoutStarts a subscription: a Stripe Checkout Session for the plan's Price. The plan changes only
when Stripe's webhook confirms it. An org that already pays changes plan in the Portal.
Parameter In Type Description idpath integer (int64)
Body: CheckoutRequest
POST /orgs/{id}/billing/portalOpens the Stripe Customer Portal: change plan, update the card, invoices, cancel.
Parameter In Type Description idpath integer (int64)
Schemas AcceptInvitation Field Type Description tokenstring
AppChange Field Type Description name (optional)string, nullable origins (optional)string[] paused (optional)boolean, nullable A paused app's events are dropped and counted (§15.1).
AppView Field Type Description created_atstring has_forwarding_secretboolean idinteger (int32) kindstring `app` (SDK batches) or `web` (the tracker). namestring org_idinteger (int64) originsstring[] Web only: origins allowed to send events. pausedboolean
BillingView Field Type Description billing_enabledboolean Whether Checkout and the Portal are available on this server. cancel_at (optional)string, nullable When the subscription ends instead of renewing (cancelled at period end); `null` while it renews. effective_events_per_monthinteger (int64) The limit in force: the free plan's once a past-due grace period has ended. events_per_monthinteger (int64) The plan's monthly events. grace_until (optional)string, nullable hard_limit_percentinteger (int64) Events are accepted up to this share of the limit, then dropped (§15.4). has_billing_accountboolean Whether the org has a Stripe customer, so the Portal can open. period_end (optional)string, nullable planstring plansPlanView[] statusstring `none`, `active`, `past_due` or `canceled`. used_this_monthinteger (int64)
Breakdown Field Type Description dimensionstring metricstring rowsRow2[] sampledboolean sourcestring
CheckoutRequest Field Type Description planstring The plan to subscribe to, e.g. `pro_1m`.
CreatedApp Field Type Description appAppView keystring The first public key (`ak_…` or `wk_…`).
DayPoint Field Type Description daystring eventsinteger (int64) sessionsinteger (int64) usersinteger (int64)
DeleteOrg Field Type Description confirmstring The org's name, typed back: deleting is irreversible.
EventDetail Field Type Description namestring number_propertiesNumberProperty[] property_by (optional)PropertyGroup[] With `property` and `by`: the number property per value of the dimension. sampledboolean seriesDayPoint[] string_propertiesStringProperty[]
EventSummary Field Type Description eventsinteger (int64) namestring seriesinteger (int64)[] Events per day over the window, oldest first, one entry per day (zeros included). usersinteger (int64)
EventsList Field Type Description eventsEventSummary[] sampledboolean
ExportRequest Field Type Description format (optional)ExportFormat `parquet` (default) or `csv`.
ForwardingSecret Field Type Description secretstring Shown once; the previous secret stops working.
Funnel Field Type Description groupsFunnelGroup[] One group without a breakdown; with one, the biggest groups by first-step sessions. more_groupsboolean Whether groups beyond the first 20 were left out. sampledboolean
FunnelGroup Field Type Description groupstring The breakdown value, or empty without a breakdown. stepsFunnelStep[]
FunnelRequest Field Type Description breakdown (optional)string, nullable stepsstring[] window_seconds (optional)integer (int32)
FunnelStep Field Type Description conversionnumber (double) Share of the first step's sessions. namestring sessionsinteger (int64) Sessions that reached this step. step_conversionnumber (double) Share of the previous step's sessions.
FunnelView Field Type Description breakdown (optional)string, nullable created_atstring idinteger (int64) namestring stepsstring[] window_secondsinteger (int32)
HeatCell Sessions active in one weekday-hour: a session spanning two hours counts in both.
Field Type Description hourinteger (int32) 0–23, UTC. sessionsinteger (int64) weekdayinteger (int32) 1 = Monday … 7 = Sunday.
Heatmap Field Type Description cellsHeatCell[] sampledboolean
InvitationInfo Field Type Description emailstring org_namestring rolestring
InvitationView Field Type Description emailstring expires_atstring idstring rolestring
JobStarted Field Type Description job_idinteger (int64)
JobView Field Type Description created_atstring error (optional)string, nullable idinteger (int64) kindstring result (optional)object, nullable statestring `pending`, `running`, `done` or `failed`.
Joined Field Type Description org_idinteger (int64)
KeyView Field Type Description created_atstring keystring revoked_at (optional)string, nullable
LinkInfo Field Type Description emailstring The address the link signs in as.
LinkRequest Field Type Description emailstring
Live Field Type Description eventsinteger (int64) minutesinteger (int32) sessionsinteger (int64)
Me Field Type Description orgsobject[] userobject
Member Field Type Description emailstring name (optional)string, nullable rolestring `owner`, `admin`, `member` or `viewer`. user_idinteger (int64)
NewApp Field Type Description kindstring `app` or `web`. namestring org_idinteger (int64) origins (optional)string[]
NewInvitation Field Type Description emailstring rolestring `admin`, `member` or `viewer`; `owner` only from an owner.
NewKey Field Type Description keystring
NewOrg Field Type Description namestring
NewSavedFunnel Field Type Description breakdown (optional)string, nullable namestring stepsstring[] window_seconds (optional)integer (int32)
NewToken Field Type Description namestring
NumberProperty Field Type Description countinteger (int64) keystring meannumber (double) mediannumber (double) p95number (double) sumnumber (double)
OrgChange Field Type Description namestring
OrgCreated Field Type Description idinteger (int64)
Overview Field Type Description currentPeriod previous (optional)Period | null sampledboolean sourcestring `daily_totals` (rollup) or `events` (raw, when filtered).
Paths Field Type Description afterstring nextRow2[] sampledboolean
PathsRequest Field Type Description afterstring
Period Field Type Description fromstring seriesDayPoint[] tostring totalsTotals
PlanView Field Type Description events_per_monthinteger (int64) idstring price_usd_monthinteger (int32) purchasableboolean Whether it can be bought now (its Stripe Price is configured).
PropertyGroup Field Type Description countinteger (int64) mediannumber (double) sumnumber (double) valuestring
Redirect Field Type Description urlstring Stripe's page; the browser goes there.
RoleChange Field Type Description rolestring `owner`, `admin`, `member` or `viewer`.
Row2 Field Type Description countinteger (int64) valuestring
SessionInfo Field Type Description created_atstring currentboolean expires_atstring idstring
SessionItem Field Type Description app_versionstring countrystring duration_secondsinteger (int64) endedstring entrystring First page (web) or `screen` property (apps). eventsinteger (int64) exitstring idstring pageviewsinteger (int64) platformstring referrer_sourcestring startedstring
SessionSummary Field Type Description bounce_ratenumber (double) events_per_sessionnumber (double) median_secondsnumber (double) sessionsinteger (int64)
Sessions Field Type Description sessionsSessionItem[] summarySessionSummary
StringProperty Field Type Description keystring valuesRow2[]
TimelineEvent Field Type Description namestring pathnamestring propertiesobject screenstring tsstring
TokenView Field Type Description created_atstring idinteger (int64) namestring
Totals Field Type Description bounce_ratenumber (double) Sessions with at most one page view and one event (web). eventsinteger (int64) events_per_sessionnumber (double) median_session_secondsnumber (double) pageviewsinteger (int64) sessionsinteger (int64) usersinteger (int64) Daily-rotating visitors: a person counts once per day (§19).
Usage Field Type Description events_per_monthinteger (int64) fromstring org_events_this_monthinteger (int64) Accepted events this calendar month for the whole org (the quota counts per org). outcomesobject Ingest outcomes for this app over the window (§6 ingest_counters). planstring tostring
VerifyRequest Field Type Description tokenstring