The Reports API and its guides are deprecated and may be removed in a future release. Contact your Otter representative for migration options.
Reports
Generate operational reports for orders, items, payouts, and reviews — with webhook delivery or polling.
Overview
Request CSV reports for a date range and filters. Both start and end are
inclusive UTC calendar dates. Otter returns a new jobId for every generate
request, including repeated requests with identical parameters. You either wait for a
Report generated (reports.report_generated)
webhook or poll until the file is ready. The webhook is best-effort; retain the
jobId and use polling to reconcile a missed notification.
Report types
| Type | Use |
|---|---|
ORDER_STORES | Order-level detail for stores / org |
ORDER_ITEMS | Line-item detail |
PAYOUT_TRANSACTIONS | Payout transactions |
RATINGS_AND_REVIEWS | Ratings and reviews |
Report column definitions live in the API reference (request/response schemas for POST /v1/reports/generate and downloaded file formats) — not duplicated here.
Downloads are comma-delimited UTF-8 CSV. Row ordering is report-specific and must not be assumed unless the report definition states it. Treat empty CSV fields as missing values.
Download a READY report promptly. Otter returns EXPIRED and removes the URL
two days after workflow completion; an expired result requires a new report
request.
Integration overview
POST /v1/reports/generatewith type, date range, and filters → a newjobId. Success means the asynchronous workflow started, not that the report is ready.- With webhook: Report with a notification.
- Without webhook: Report without a notification.
GET /v1/reports/{jobId}for status and download URL when polling.
Related
Next
Choose webhook vs polling flow and test one report type.