Create export
POST /v1/exports
Create a CSV export job for webhook delivery data. The export runs asynchronously; poll GET /v1/exports/{id} to check status and use GET /v1/exports/{id}/download to retrieve the file when complete.
Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”object
Start of the export time range (RFC 3339)
Example
2025-12-01T00:00:00ZEnd of the export time range (RFC 3339). Must be after start_time.
Example
2025-12-06T23:59:59ZOptional filter by message status
Example
failed_permanentOptional filter by outbound endpoint ID (only for direction=outbound)
Example
ep_550e8400e29b41d4a716446655440000Export direction:
outbound: Export outbound webhook delivery data (default)inbound: Export inbound webhook delivery data
Example
outboundOptional filter by inbound endpoint ID (only for direction=inbound)
Example
01935abc-def0-7123-4567-890abcdef012Examples
Export all messages in a time range
{ "start_time": "2025-12-01T00:00:00Z", "end_time": "2025-12-06T23:59:59Z"}Export failed messages for a specific endpoint
{ "start_time": "2025-12-01T00:00:00Z", "end_time": "2025-12-06T23:59:59Z", "status": "failed_permanent", "endpoint_id": "ep_550e8400e29b41d4a716446655440000"}Responses
Section titled “ Responses ”Export job created successfully
object
object
Export job identifier
Example
01935abc-def0-7123-4567-890abcdef012Project that owns this export
Example
proj_abc123Export job status:
pending: Queued for processingprocessing: Currently generating the CSVcompleted: Ready for downloadfailed: Generation failedexpired: Download link has expired
Example
completedStart of the export time range
Example
2025-12-01T00:00:00ZEnd of the export time range
Example
2025-12-06T23:59:59ZMessage status filter (if specified)
Example
failed_permanentOutbound endpoint ID filter (if specified, stored as UUID)
Example
550e8400-e29b-41d4-a716-446655440000Inbound endpoint ID filter (if specified, when direction=inbound)
Example
01935abc-def0-7123-4567-890abcdef012Export direction
Example
outboundNumber of rows in the export (populated after completion)
Example
5000File size in bytes (populated after completion)
Example
1024000Error description (if failed)
When processing started
Example
2025-12-06T12:00:30ZWhen processing completed
Example
2025-12-06T12:05:00ZWhen the download link expires
Example
2025-12-13T12:05:00ZWhen the export was requested
Example
2025-12-06T12:00:00Zobject
Unique identifier for this request (useful for support)
Example
req_xyz123Example
{ "data": { "id": "01935abc-def0-7123-4567-890abcdef012", "project_id": "proj_abc123", "status": "pending", "filter_start_time": "2025-12-01T00:00:00Z", "filter_end_time": "2025-12-06T23:59:59Z", "created_at": "2025-12-06T12:00:00Z" }, "meta": { "request_id": "req_xyz123" }}Invalid request
object
object
Machine-readable error code
Example
INVALID_REQUESTHuman-readable error message
Example
endpoint must be a valid HTTPS URLobject
Unique identifier for this request (useful for support)
Example
req_xyz123Examples
Endpoint not found
{ "error": { "code": "ENDPOINT_NOT_FOUND", "message": "endpoint not found" }, "meta": { "request_id": "req_xyz123" }}Invalid endpoint ID format
{ "error": { "code": "INVALID_REQUEST", "message": "endpoint_id must be in format ep_xxx" }, "meta": { "request_id": "req_xyz123" }}Invalid payload
{ "error": { "code": "INVALID_REQUEST", "message": "payload must be valid JSON" }, "meta": { "request_id": "req_xyz123" }}Invalid headers
{ "error": { "code": "INVALID_HEADERS", "message": "header 'Host' is forbidden and cannot be overridden" }, "meta": { "request_id": "req_xyz123" }}Unauthorized - Invalid or missing API key
object
object
Machine-readable error code
Example
INVALID_REQUESTHuman-readable error message
Example
endpoint must be a valid HTTPS URLobject
Unique identifier for this request (useful for support)
Example
req_xyz123Example
{ "error": { "code": "UNAUTHORIZED", "message": "Invalid or missing API key" }, "meta": { "request_id": "req_xyz123" }}Export rate or concurrency limit exceeded
object
object
Machine-readable error code
Example
INVALID_REQUESTHuman-readable error message
Example
endpoint must be a valid HTTPS URLobject
Unique identifier for this request (useful for support)
Example
req_xyz123Example
{ "error": { "code": "EXPORT_LIMIT_EXCEEDED", "message": "An export is already in progress. Please wait for it to complete." }, "meta": { "request_id": "req_xyz123" }}Enter your credentials to populate code examples throughout the docs.