- Retrieve a download URL
Returns a pre-signed HTTPS URL for the output file of an Available run. The URL is valid for 30 minutes. Download the file with a plain HTTP GET on that URL, without an Authorization header.
Purpose: Retrieve large report files securely and directly from file storage, without streaming them through the API.
When to use: As soon as a run is Available, to download its file. Call it again if a previous URL has expired.
Notes:
- Request the URL only when the run status is
Available; otherwise the response is409with the current status code. - If the URL expires, call this operation again to get a new one.
| Parameter | In | Type | Required | Default | Description |
|---|---|---|---|---|---|
submissionId | path | integer | Yes | Run identifier. | |
Zuora-Track-Id | header | string | No | Optional correlation identifier (up to 64 characters) that you choose. The Zuora One gateway records it; quote it to Zuora Support when you report a problem. | |
Authorization | header | string | Yes | Bearer <access_token> (Zuora OneID OAuth). |
Request body: none.
| HTTP status | Content type | Response schema |
|---|---|---|
200 | application/json | ReportDownload |
400 | application/json | SimpleError or SpringError |
401 | application/json | GatewayError |
403 | application/json | GatewayError |
404 | none | No body |
409 | application/json | RunStatusConflict |
429 | application/json | GatewayError |
500 | application/json | ServiceError |
503 | application/json | SimpleError |
ReportDownload: Time-limited download link for a completed report file.
| Field | Type | Required | Description |
|---|---|---|---|
presignedUrl | string (uri) | No | HTTPS URL of the report file. Download it with a plain HTTP GET and no Authorization header. Valid for 30 minutes. |
expiresAt | string (date-time) | No | UTC date and time after which the URL stops working, formatted yyyy-MM-dd'T'HH:mm:ss. |
Error response schemas (GatewayError, ServiceError, SpringError, SimpleError, MissingFiltersError, RunStatusConflict, RiaError, SignedUrlError) are defined once under Error response schemas in the API overview and in components/schemas.
Response codes: 200, 400, 401, 403, 404, 409, 429, 500, 503. Each response with a body includes worked examples; responses without a body say so.
- Zuora One production. Revenue Reporting paths start with /revenue/services/v1; Integration Reporting paths start with /api/integration/v1 or /api/integration/v2.https://one.zuora.com/revenue/services/v1/reports/run/{submissionId}/download
curl -i -X GET \
https://one.zuora.com/revenue/services/v1/reports/run/482391/download \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Zuora-Track-Id: close-run-2026-09-001'Success. The download URL.
HTTPS URL of the report file. Download it with a plain HTTP GET and no Authorization header. Valid for 30 minutes.
{ "presignedUrl": "https://files.zuora.com/rev/1234567/reports/WF_SUMMARY_482391.csv?X-Amz-Expires=1800&X-Amz-Signature=3b1f...", "expiresAt": "2026-10-09T07:47:10" }