Skip to content

Create export

POST
/v1/exports
curl --request POST \
--url https://api.hookbridge.io/v1/exports \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "start_time": "2025-12-01T00:00:00Z", "end_time": "2025-12-06T23:59:59Z" }'

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.

Media typeapplication/json
object
start_time
required

Start of the export time range (RFC 3339)

string format: date-time
end_time
required

End of the export time range (RFC 3339). Must be after start_time.

string format: date-time
status

Optional filter by message status

string
Allowed values: queued delivering succeeded pending_retry failed_permanent
endpoint_id

Optional filter by outbound endpoint ID (only for direction=outbound)

string
direction

Export direction:

  • outbound: Export outbound webhook delivery data (default)
  • inbound: Export inbound webhook delivery data
string
default: outbound
Allowed values: outbound inbound
inbound_endpoint_id

Optional filter by inbound endpoint ID (only for direction=inbound)

string format: uuid
Examples

Export all messages in a time range

{
"start_time": "2025-12-01T00:00:00Z",
"end_time": "2025-12-06T23:59:59Z"
}

Export job created successfully

Media typeapplication/json
object
data
object
id

Export job identifier

string format: uuid
project_id

Project that owns this export

string
status

Export job status:

  • pending: Queued for processing
  • processing: Currently generating the CSV
  • completed: Ready for download
  • failed: Generation failed
  • expired: Download link has expired
string
Allowed values: pending processing completed failed expired
filter_start_time

Start of the export time range

string format: date-time
filter_end_time

End of the export time range

string format: date-time
filter_status

Message status filter (if specified)

string
filter_endpoint_id

Outbound endpoint ID filter (if specified, stored as UUID)

string format: uuid
filter_inbound_endpoint_id

Inbound endpoint ID filter (if specified, when direction=inbound)

string format: uuid
direction

Export direction

string
Allowed values: outbound inbound
row_count

Number of rows in the export (populated after completion)

integer
file_size_bytes

File size in bytes (populated after completion)

integer
error_message

Error description (if failed)

string
started_at

When processing started

string format: date-time
completed_at

When processing completed

string format: date-time
expires_at

When the download link expires

string format: date-time
created_at

When the export was requested

string format: date-time
meta
object
request_id

Unique identifier for this request (useful for support)

string
Example
{
"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

Media typeapplication/json
object
error
object
code

Machine-readable error code

string
message

Human-readable error message

string
meta
object
request_id

Unique identifier for this request (useful for support)

string
Examples

Endpoint not found

{
"error": {
"code": "ENDPOINT_NOT_FOUND",
"message": "endpoint not found"
},
"meta": {
"request_id": "req_xyz123"
}
}

Unauthorized - Invalid or missing API key

Media typeapplication/json
object
error
object
code

Machine-readable error code

string
message

Human-readable error message

string
meta
object
request_id

Unique identifier for this request (useful for support)

string
Example
{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or missing API key"
},
"meta": {
"request_id": "req_xyz123"
}
}

Export rate or concurrency limit exceeded

Media typeapplication/json
object
error
object
code

Machine-readable error code

string
message

Human-readable error message

string
meta
object
request_id

Unique identifier for this request (useful for support)

string
Example
{
"error": {
"code": "EXPORT_LIMIT_EXCEEDED",
"message": "An export is already in progress. Please wait for it to complete."
},
"meta": {
"request_id": "req_xyz123"
}
}
Personalize Examples

Enter your credentials to populate code examples throughout the docs.