Skip to main content
GET
/
reports
List delivery reports
curl --request GET \
  --url https://api.otpiq.com/api/reports \
  --header 'Authorization: Bearer <token>'
[
  {
    "_id": "65a1b2c3d4e5f6789012345",
    "reportId": "65a1b2c3d4e5f6789012345",
    "filename": "delivery-report-myproject-2026-02-12.csv",
    "downloadUrl": "https://cdn.example.com/files/delivery-report-....csv",
    "recordCount": 150,
    "dateRange": {
      "startDate": "2026-01-01T00:00:00.000Z",
      "endDate": "2026-01-31T23:59:59.999Z"
    },
    "status": "available",
    "createdAt": "2026-02-12T12:00:00.000Z"
  }
]

Authorizations

Authorization
string
header
required

API key authentication. Format: Bearer sk_live_your_api_key_here

Query Parameters

limit
integer
default:100

Number of reports to return. Min: 1, max: 500.

Required range: 1 <= x <= 500
Example:

50

status
string

Comma-separated list of report statuses to filter by. Allowed: available, expired, deleted.

Example:

"available,expired"

Response

List of delivery reports. Each report includes downloadUrl for direct CSV download.

_id
string
required

MongoDB ObjectId of the report

Example:

"65a1b2c3d4e5f6789012345"

reportId
string
required

Same as _id; convenience for API consumers

downloadUrl
string<uri>
required

Use this URL to download the CSV. No separate download endpoint.

recordCount
integer
required

Number of message rows in the report

dateRange
object
required
status
enum<string>
required
Available options:
available,
expired,
deleted
project
string

Project ObjectId

filename
string

Storage filename

fileId
string

Storage provider file identifier

filters
object

Applied filters

expiresAt
string<date-time>

Reports valid for 30 days

createdAt
string<date-time>
updatedAt
string<date-time>