Simple action report with advanced families gated by profile
GET /v1/reports/actions
Mixed route family. The strict-safe slice covers bounded simple actions
(ui.click, outbound.click, file.download, form.submit). Richer
families such as goals, errors, and custom events remain profile-gated
and are marked through availability.sections as actions_advanced.
Use availability.readModel to distinguish the stable baseline from
the enriched families unlocked by Extended.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Header Parameters
Section titled “Header Parameters ”Optional idempotency/request correlation identifier.
Query Parameters
Section titled “Query Parameters ”Stable tenant identifier. Use this for tenant-scoped analytics and
tenant-scoped access control. site_id identifies the shared product,
tenant_id identifies one tenant.
Inclusive UTC start date (YYYY-MM-DD). Defaults to last 7 days.
Inclusive UTC end date (YYYY-MM-DD). Defaults to today.
Compare current range against the previous equivalent period.
Traffic segment to include.
Number of rows returned by top lists for report endpoints.
Filter action reports by normalized action family.
Filter action reports by normalized action key.
Responses
Section titled “ Responses ”OK. Mixed route: the strict-safe bounded action slice succeeded.
availability.readModel shows what belongs to the strict-safe
baseline, while availability.sections reports whether
actions_advanced remains locked or only partially compatible
for the requested period.
object
object
object
Family summary for the current action envelope. On Strict sites,
simple bounded families remain available; richer families are
exposed through availability.sections as actions_advanced.
object
object
object
Exact action rows for the active envelope. On Strict sites, this
list is limited to bounded simple actions and stays readable in
HTTP 200; advanced families remain section-gated.
object
Stable element/action identifier when the action row can be narrowed by it.
Target host when the action row can be narrowed by outbound or download target.
Form identifier when the form action row can be narrowed by it.
Form action path when the form action row can be narrowed by it.
Shared breakdown context for the active action envelope. Advanced
action families can remain unavailable even when the route itself
succeeds; inspect availability.sections.
object
object
object
object
object
object
Family summary for the current action envelope. On Strict sites,
simple bounded families remain available; richer families are
exposed through availability.sections as actions_advanced.
object
object
object
Exact action rows for the active envelope. On Strict sites, this
list is limited to bounded simple actions and stays readable in
HTTP 200; advanced families remain section-gated.
object
Stable element/action identifier when the action row can be narrowed by it.
Target host when the action row can be narrowed by outbound or download target.
Form identifier when the form action row can be narrowed by it.
Form action path when the form action row can be narrowed by it.
Shared breakdown context for the active action envelope. Advanced
action families can remain unavailable even when the route itself
succeeds; inspect availability.sections.
object
object
object
object
object
Availability contract for profile-aware reads.
For mixed routes, HTTP 200 means the strict-safe base slice was
returned successfully. readModel tells you which slices belong to
the strict-safe baseline and which belong to Extended.
Section-level locks or partial compatibility for enriched sub-slices
are reported in sections.
object
Backend route-family identifier echoed in availability.route.
Public /v1/reports/* responses currently use overview, content,
acquisition, actions, and goals.
audience_* values are reserved for dashboard/internal query families
and do not imply standalone /v1/reports/audience* public endpoints.
Route-level availability for the current range. On mixed routes,
status=available means the strict-safe base slice is readable;
inspect sections for enriched sub-slices that remain locked or
partial.
object
object
Section-level availability for mixed routes. Each entry describes
an enriched sub-slice that may remain locked or partially
compatible while the enclosing route still returns HTTP 200.
Section-level availability for mixed routes. A mixed route can return
HTTP 200 while one or more enriched sections remain locked or only
partially compatible for the requested period.
object
Section identifier for mixed-route sub-slices.
Current meanings:
overview_regions: region list inside the overview audience sliceoverview_cities: city list inside the overview audience sliceacquisition_attribution: source/medium/campaign slices on acquisition routesactions_advanced: advanced action families outside bounded simple actionsaudience_top_campaigns: optionaltop_campaignslist on the internalaudience_summaryfamilytechnology_regions,technology_cities: geo detail slices on technology routes
overview_acquisition is kept as a legacy compatibility identifier but
is not emitted by the current lot2 overview contract because
acquisition-lite now lives in the route-level mixed envelope itself.
object
object
object
Example
{ "route": "acquisition", "classification": "mixed", "currentProfile": "strict", "collectionProfileEffectiveAt": null, "current": { "status": "available", "reason": null, "requestedStart": "2026-04-01T00:00:00.000Z", "requestedEnd": "2026-04-30T23:59:59.999Z", "compatibleStart": "2026-04-01T00:00:00.000Z", "compatibleEnd": "2026-04-30T23:59:59.999Z" }, "compare": null, "readModel": { "strictSafe": [ "acquisition_lite" ], "extended": [ "acquisition_attribution" ] }, "sections": [ { "id": "acquisition_attribution", "classification": "extended_only", "current": { "status": "locked_by_profile", "reason": "extended_data_required", "requestedStart": "2026-04-01T00:00:00.000Z", "requestedEnd": "2026-04-30T23:59:59.999Z", "compatibleStart": null, "compatibleEnd": null }, "compare": null } ]}object
object
Additive launch-readiness metadata for reports and metrics.
object
Freshness metadata for a report or metrics surface.
object
Compare window metadata for report and metrics surfaces.
object
Export availability for the returned surface and selected plan.
object
Examples
Strict site with simple actions available and advanced families locked
{ "current": { "active_family": "forms", "totals": { "total_sessions": 980, "meaningful_action_sessions": 121, "meaningful_occurrences": 156, "error_sessions": 0, "instrumentation_sessions": 42 }, "families": [ { "family": "forms", "sessions": 44, "occurrences": 51 }, { "family": "outbound", "sessions": 39, "occurrences": 55 }, { "family": "downloads", "sessions": 18, "occurrences": 22 }, { "family": "instrumentation", "sessions": 42, "occurrences": 28 } ], "actions": [ { "action_key": "forms::demo_request", "action_name": "demo_request", "event_name": "form.submit", "family": "forms", "form_id": "demo_request", "sessions": 44, "occurrences": 51, "top_page": "/pricing", "top_source": "Search" } ], "context": { "pages": [ { "scope": "family", "path_canon": "/pricing", "sessions": 44 } ], "sources": [ { "scope": "family", "channel": "Search", "sessions": 31 } ], "segments": [ { "scope": "family", "kind": "device", "label": "desktop", "sessions": 28 } ] } }, "compare": null, "range": { "start": "2026-04-01T00:00:00.000Z", "end": "2026-04-30T23:59:59.999Z", "compare_start": null, "compare_end": null }, "availability": { "route": "actions", "classification": "mixed", "currentProfile": "strict", "collectionProfileEffectiveAt": null, "current": { "status": "available", "reason": null, "requestedStart": "2026-04-01T00:00:00.000Z", "requestedEnd": "2026-04-30T23:59:59.999Z", "compatibleStart": "2026-04-01T00:00:00.000Z", "compatibleEnd": "2026-04-30T23:59:59.999Z" }, "compare": null, "readModel": { "strictSafe": [ "actions_simple" ], "extended": [ "actions_advanced" ] }, "sections": [ { "id": "actions_advanced", "classification": "extended_only", "current": { "status": "locked_by_profile", "reason": "extended_data_required", "requestedStart": "2026-04-01T00:00:00.000Z", "requestedEnd": "2026-04-30T23:59:59.999Z", "compatibleStart": null, "compatibleEnd": null }, "compare": null } ] }, "meta": { "units_charged": 6, "billable_overage": false, "usage": { "used_units": 32, "overage_units": 0, "included_units": 100, "hard_cap_units": 250 } }}Headers
Section titled “Headers ”Request identifier for troubleshooting.
Maximum requests allowed during current short window.
Remaining requests in current short window.
Unix timestamp when short window resets.
Invalid or revoked API token.
object
object
object
Headers
Section titled “Headers ”Request identifier for troubleshooting.
Billing hard cap reached for current month.
object
object
object
Headers
Section titled “Headers ”Request identifier for troubleshooting.
Token scope/site/plan does not allow this request.
object
object
object
Headers
Section titled “Headers ”Request identifier for troubleshooting.
Request parameters are invalid.
object
object
object
Headers
Section titled “Headers ”Request identifier for troubleshooting.
Request was throttled.
object
object
object
Headers
Section titled “Headers ”Request identifier for troubleshooting.
Maximum requests allowed during current short window.
Remaining requests in current short window.
Unix timestamp when short window resets.