Reports
Shared reports, report templates and report automations.
List shared reports
/v1/reportsShared reports, newest first, with headline reach numbers, element ids, scope and share URLs. search matches title, template id or network name.
SDKlistener.reports.list()client.reports.list()
Query parameters
- Case-insensitive text filter.
searchstring - Page size, 1–100 (default 25).
limitintegerDefault
25 - Opaque cursor from the previous page's next_cursor.
cursorstring
Returns
200OK
objectstringrequiredurlstringrequireddataarray of objectsrequiredShow child attributesHide child attributes
has_morebooleanrequired- Pass as
next_cursorstringrequiredcursorto get the next page; null on the last page. - The result's non-list fields (window, coverage, freshness, totals, note …).
metaobjectrequiredShow child attributesHide child attributes
Errors
400parameter_invalid401credential_invalid403scope_missing404resource_not_found429rate_limited500internal_error
Retrieve a report
/v1/reports/{report_id}One shared report: metadata, scope, headline numbers, every element (KPIs, charts, tables, text) and, with include_data=true, the stored snapshot the public page renders. The snapshot is what was computed when the report was published; arrays over 200 items are truncated (data_truncated).
SDKlistener.reports.retrieve()client.reports.retrieve()
Path parameters
- Shared report id (see GET /v1/reports).
report_idstringrequired
Query parameters
include_databooleanDefault
true
Returns
200OK
idstringrequiredtitlestringrequiredheadlineobjectrequiredShow child attributesHide child attributes
urlsobjectrequiredShow child attributesHide child attributes
computed_atstringrequiredcache_age_secondsnumberrequiredobjectstringrequirednetwork_namestringtime_rangestringcomparison_modestringcreated_atstringupdated_atstringcreated_bystringcreated_viastringis_automatedbooleanDefault
falseis_testbooleanDefault
falsetemplate_idstringelement_countintegerDefault
0element_idsarray of stringselement_metricsarray of stringselement_typesmap of integerreport_scopeobjectShow child attributesHide child attributes
has_databooleanDefault
falseelementsarray of objectsShow child attributesHide child attributes
- The stored data snapshot (arrays truncated to 200 items when data_truncated).
dataobject data_keysarray of stringsdata_truncatedbooleanDefault
falsenotestring
Errors
400parameter_invalid401credential_invalid403scope_missing404resource_not_found429rate_limited500internal_error
List report templates
/v1/report-templatesReport templates: the built-in ones plus the workspace's custom templates, with their element ids. Use a template's id as template_id in POST /v1/reports.
SDKlistener.reportTemplates.list()client.report_templates.list()
Query parameters
- Case-insensitive text filter.
searchstring - Page size, 1–100 (default 25).
limitintegerDefault
25 - Opaque cursor from the previous page's next_cursor.
cursorstring
Returns
200OK
objectstringrequiredurlstringrequireddataarray of objectsrequiredShow child attributesHide child attributes
has_morebooleanrequired- Pass as
next_cursorstringrequiredcursorto get the next page; null on the last page. - The result's non-list fields (window, coverage, freshness, totals, note …).
metaobjectrequiredShow child attributesHide child attributes
Errors
400parameter_invalid401credential_invalid403scope_missing404resource_not_found429rate_limited500internal_error
Save a report template
/v1/report-templatesSave a custom report template from a list of element ids (see GET /v1/report-templates for the elements the built-ins use). Nothing is published; use the returned id as template_id in POST /v1/reports.
- Send
"dry_run": trueto get{"object": "dry_run", "would_write": …}without writing anything.
SDKlistener.reportTemplates.create()client.report_templates.create()
Headers
- Any unique string (≤ 255 chars). Replays within 24 h return the stored response with Idempotent-Replayed: true.
Idempotency-Keystring
Request body
application/json- Name.
namestringrequired element_idsarray of stringsrequired- Free-text description.
descriptionstringDefault
"" - previous_period or none.
comparison_modestringOne ofprevious_periodnoneDefault
"previous_period" - true returns exactly what would be written without writing anything (the API's test mode).
dry_runbooleanDefault
false
Returns
200OK
One of:
WriteResult
DryRun
Errors
400parameter_invalid401credential_invalid403scope_missing404resource_not_found409confirmation_required413body_too_large429rate_limited500internal_error
List report automations
/v1/report-automationsScheduled report automations: template, frequency, time range, shows, delivery (email masked, Slack configured or not, never the webhook), enabled flag, last and next run, last report URLs and delivery guardrails.
SDKlistener.reportAutomations.list()client.report_automations.list()
Returns
200OK
objectstringrequiredurlstringrequireddataarray of objectsrequiredShow child attributesHide child attributes
has_morebooleanrequired- Pass as
next_cursorstringrequiredcursorto get the next page; null on the last page. - The result's non-list fields (window, coverage, freshness, totals, note …).
metaobjectrequiredShow child attributesHide child attributes
Errors
400parameter_invalid401credential_invalid403scope_missing404resource_not_found429rate_limited500internal_error
Disable a report automation
/v1/report-automations/{automation_id}/disableDisable a scheduled report automation so it stops emailing or posting reports. Creating, enabling and deleting automations send outbound email and are app-only.
- Send
"dry_run": trueto get{"object": "dry_run", "would_write": …}without writing anything.
SDKlistener.reportAutomations.disable()client.report_automations.disable()
Path parameters
- Report automation id (see GET /v1/report-automations).
automation_idstringrequired
Headers
- Any unique string (≤ 255 chars). Replays within 24 h return the stored response with Idempotent-Replayed: true.
Idempotency-Keystring
Request body
application/json- true returns exactly what would be written without writing anything (the API's test mode).
dry_runbooleanDefault
false
Returns
200OK
One of:
WriteResult
DryRun
Errors
400parameter_invalid401credential_invalid403scope_missing404resource_not_found409confirmation_required413body_too_large429rate_limited500internal_error