Skip to content

Retrieve a download URL

Request

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 is 409 with the current status code.
  • If the URL expires, call this operation again to get a new one.

Request definition

ParameterInTypeRequiredDefaultDescription
submissionIdpathintegerYesRun identifier.
Zuora-Track-IdheaderstringNoOptional 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.
AuthorizationheaderstringYesBearer <access_token> (Zuora OneID OAuth).

Request body: none.

Response definition

HTTP statusContent typeResponse schema
200application/jsonReportDownload
400application/jsonSimpleError or SpringError
401application/jsonGatewayError
403application/jsonGatewayError
404noneNo body
409application/jsonRunStatusConflict
429application/jsonGatewayError
500application/jsonServiceError
503application/jsonSimpleError

ReportDownload: Time-limited download link for a completed report file.

FieldTypeRequiredDescription
presignedUrlstring (uri)NoHTTPS URL of the report file. Download it with a plain HTTP GET and no Authorization header. Valid for 30 minutes.
expiresAtstring (date-time)NoUTC 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.

Security
OneIdOAuth
Path
submissionIdinteger, (int64)required

Run identifier.

Example:482391
Headers
Zuora-Track-Idstring

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.

Example:close-run-2026-09-001
cURL
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'

Responses

Success. The download URL.

Bodyapplication/json
presignedUrlstring, (uri)

HTTPS URL of the report file. Download it with a plain HTTP GET and no Authorization header. Valid for 30 minutes.

Example:"https://files.zuora.com/rev/1234567/reports/WF_SUMMARY_482391.csv?X-Amz-Expires=1800&X-Amz-Signature=3b1f..."
expiresAtstring, (date-time)

UTC date and time after which the URL stops working, formatted yyyy-MM-dd'T'HH:mm:ss.

Example:"2026-10-09T07:47:10"
Response
{ "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" }