Fetch a single export report's status and download URL
GET /exports/{id}
GET /exports/{id}
Operation
GET
/exports/{id}
Returns the current status of a previously-created export report. When status=completed a file export includes a 1-hour presigned S3 download_url that preserves the original filename via Content-Disposition, while a Google Sheets export includes the spreadsheet's URL in the caller's Drive. Returns 404 when the id is not in the caller's accessible scope.
Operation ID:
getExportReport
·
Tags: Reports
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id
|
path | Yes | integer | Export report id |
Request Body
No request body is defined for this operation.
Responses
Content Types
application/json
{
"description": "Export report",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"export": {
"type": "object",
"description": "Generative export report (Google Sheets) summary.",
"properties": {
"id": {
"type": "integer"
},
"report_type": {
"type": "string",
"enum": [
"hot_advertisers_sheets",
"hot_advertisers_excel",
"commission_drops_sheets",
"commission_rate_drops_sheets",
"epc_ecr_drops_sheets",
"epc_ecr_gains_sheets",
"top_advertisers_sheets",
"monthly_network_status_sheets",
"deals_excel",
"deals_sheets",
"advertisers_sheets",
"pipeline_sheets",
"opportunities_sheets",
"portfolio_sheets",
"rejected_stopped_sheets",
"transactions_sheets",
"clicks_sheets",
"contacts_sheets",
"publishers_sheets",
"networks_sheets",
"agencies_sheets",
"status_changes_sheets",
"terms_sheets",
"users_sheets"
]
},
"display_name": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"pending",
"processing",
"completed",
"failed"
]
},
"status_display": {
"type": "string"
},
"parameters": {
"type": "object",
"additionalProperties": true
},
"filename": {
"type": "string",
"nullable": true
},
"download_url": {
"type": "string",
"format": "uri",
"nullable": true,
"description": "For file exports, a presigned S3 GET URL valid for download_expires_in_seconds. For Google Sheets exports, the spreadsheet in the caller's Drive, which does not expire and so comes with no download_expires_in_seconds."
},
"download_expires_in_seconds": {
"type": "integer",
"nullable": true
},
"error_message": {
"type": "string",
"nullable": true
},
"progress": {
"type": "object",
"nullable": true,
"description": "Set on chunked export parents; reports completed-vs-total chunk counts.",
"properties": {
"parts_ready": {
"type": "integer"
},
"total_parts": {
"type": "integer"
}
}
},
"parent_report_id": {
"type": "integer",
"nullable": true
},
"chunked_export": {
"type": "boolean"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
},
"started_at": {
"type": "string",
"format": "date-time",
"nullable": true
},
"completed_at": {
"type": "string",
"format": "date-time",
"nullable": true
},
"status_url": {
"type": "string",
"format": "uri",
"nullable": true
}
},
"required": [
"id",
"report_type",
"status"
]
},
"deduped": {
"type": "boolean",
"description": "True when the create request was answered by a previously-completed identical export within the dedupe window. Always false for Google Sheets exports, which never reuse a previous run."
}
},
"required": [
"export"
]
}
}
}
}
{
"$ref": "#/components/responses/Unauthorized"
}
{
"$ref": "#/components/responses/NotFound"
}
API Playground
Run this GET request with your API key, or open it in a new tab. Path uses sample IDs where the OpenAPI path has {parameters}.
Sign in to enable live testing with your API key.
| Action | Method | Endpoint | Description |
|---|---|---|---|
| Fetch a single export report's status and download URL | GET |
/api/v1/exports/1 |
OpenAPI operationId: getExportReport. |
GET /api/v1/exports/1
OpenAPI
Fetch a single export report's status and download URL