Skip to main content
The Reports API lets you create, list, and manage saved analytics reports in Cano Analytics. You can define one-off or scheduled reports — with results delivered by email as PDF or CSV — and trigger immediate runs to retrieve structured data programmatically. Use this API to power custom reporting workflows or automate data delivery to stakeholders.

GET /v1/reports — List Reports

Retrieve all saved reports in your workspace. This endpoint requires the read scope.

Request example

cURL

Response — 200 OK

200 OK
string
Unique identifier for the report.
string
Human-readable name of the report.
string
The report type. One of event_volume, funnel, retention, or custom.
string
ISO 8601 timestamp of when the report was created.
string
ISO 8601 timestamp of the most recent time this report was executed. null if the report has never been run.

POST /v1/reports — Create a Report

Create a new saved report with an optional recurring delivery schedule. This endpoint requires the write scope.

Body parameters

string
required
A human-readable name for the report (e.g. "Q3 Retention by Cohort").
string
required
The analysis type. Must be one of:
  • event_volume — total occurrences of events over time
  • funnel — conversion rates through an ordered sequence of events
  • retention — percentage of users who return after an initial event
  • custom — arbitrary SQL or saved query (available on Enterprise plans)
object
required
Configuration object defining what the report analyzes. Fields vary by type but typically include:
  • events (array of strings) — event names to include
  • from (string) — ISO 8601 start date for the report window
  • to (string) — ISO 8601 end date for the report window
  • group_by (string) — a user trait or event property to segment results by
object
Optional recurring delivery configuration. When provided, Cano Analytics automatically runs the report and emails results on the defined cadence.
  • frequency (string) — how often to run the report: daily, weekly, or monthly
  • recipients (array of strings) — list of email addresses to deliver results to
  • format (string) — delivery format: pdf or csv

Request example

POST /v1/reports

Response — 201 Created

201 Created

GET /v1/reports//run — Run a Report

Trigger an immediate, synchronous execution of a saved report and retrieve the results in the response. This is useful for on-demand data pulls or testing a report’s configuration. This endpoint requires the read scope.

Path parameters

string
required
The unique identifier of the report to run.

Response fields

object
An object containing the report output.
array
An ordered array of column name strings corresponding to each entry in a rows item.
array
An array of data rows. Each row is an array of values aligned with the columns array.
string
ISO 8601 timestamp of when this run completed.

Request example

cURL

Response — 200 OK

200 OK
For large reports, run time may take several seconds. If your report consistently times out, consider narrowing the date range in config or using the scheduled delivery feature instead.