Skip to content

Get a signed URL (POST)

Request

Returns a signed HTTPS URL, valid for 30 minutes, for the file of an Available run stored in cloud storage. Download the file with a plain HTTP GET on the URL. GET and POST behave the same; POST takes no body.

Purpose: The recommended way to download report files: large files do not pass through the API and the URL expires quickly if it is leaked.

When to use: To download a completed report file that is stored in cloud storage. This is the preferred download method for the Integration Reporting APIs.

Notes:

  • report_id is the submission (run) ID.
  • Some tenants disable HTTP GET on this operation. In that case GET returns 403 and you must use POST on the same path. POST always works, so prefer POST in new integrations.

Request definition

ParameterInTypeRequiredDefaultDescription
report_idpathintegerYesSubmission (run) 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/jsonSignedUrlResponse
400application/jsonRiaError
401application/jsonGatewayError or RiaError
403application/jsonRiaError
404application/jsonSignedUrlError
429application/jsonGatewayError
500application/jsonRiaError
502application/jsonRiaError

SignedUrlResponse: Signed download URL for a completed report.

FieldTypeRequiredDescription
successbooleanNotrue when the URL was generated.
signed_urlstring (uri)NoHTTPS URL of the report file. Download it with a plain HTTP GET; it is valid for 30 minutes (1,800 seconds).

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, 429, 500, 502. Each response with a body includes worked examples; responses without a body say so.

Security
OneIdOAuth
Path
report_idintegerrequired

Submission (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 POST \
  https://one.zuora.com/api/integration/v2/reports/signedurl/482391 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Zuora-Track-Id: close-run-2026-09-001'

Responses

Success. The signed URL.

Bodyapplication/json
successboolean

true when the URL was generated.

Example:true
signed_urlstring, (uri)

HTTPS URL of the report file. Download it with a plain HTTP GET; it is valid for 30 minutes (1,800 seconds).

Example:"https://files.zuora.com/rev/1234567/reports/WF_SUMMARY_482391.csv?X-Amz-Expires=1800&X-Amz-Signature=9ac2..."
Response
{ "success": true, "signed_url": "https://files.zuora.com/rev/1234567/reports/WF_SUMMARY_482391.csv?X-Amz-Expires=1800&X-Amz-Signature=9ac2..." }