Aggregate Queries

Submit an aggregate query job

Submits an AQuA job that contains an aggregated list of ZOQL and Export ZOQL queries.

post/v1/batch-query

Headers

Idempotency-Keystring

Specify a unique idempotency key if you want to perform an idempotent POST or PATCH request. Do not use this header in other request types.

With this header specified, the Zuora server can identify subsequent retries of the same request using this value, which prevents the same operation from being performed multiple times by accident.

Accept-Encodingstring

Include the Accept-Encoding: gzip header to compress responses as a gzipped file. It can significantly reduce the bandwidth required for a response.

If specified, Zuora automatically compresses responses that contain over 1000 bytes of data, and the response contains a Content-Encoding header with the compression algorithm so that your client can decompress it.

Content-Encodingstring

Include the Content-Encoding: gzip header to compress a request. With this header specified, you should upload a gzipped file for the request payload instead of sending the JSON payload.

Zuora-Entity-Idsstring

An entity ID. If you have Zuora Multi-entity enabled and the OAuth token is valid for more than one entity, you must use this header to specify which entity to perform the operation in. If the OAuth token is only valid for a single entity, or you do not have Zuora Multi-entity enabled, you should not set this header.

Zuora-Org-Idsstring

Comma separated IDs. If you have <a href="https://docs.zuora.com/en/zuora-platform/organization-and-entity-management/multi-org/overview-of-multi-org" target="_blank">Zuora Multi-Org</a> enabled, you can use this header to specify which orgs to perform the operation in. If you do not have Zuora Multi-Org enabled, you should not set this header.

The IDs must be a sub-set of the user's accessible orgs. If you specify an org that the user does not have access to, the operation fails. This header is important in Multi-Org (MO) setups because it defines the organization context under which the API should operate—mainly used for read access or data visibility filtering. If the header is not set, the operation is performed in scope of the user's accessible orgs.

Zuora-Track-Idstring

A custom identifier for tracing the API call. If you set a value for this header, Zuora returns the same value in the response headers. This header enables you to associate your system process identifiers with Zuora API calls, to assist with troubleshooting in the event of an issue.

The value of this field must use the US-ASCII character set and must not include any of the following characters: colon (:), semicolon (;), double quote ("), and quote (').

Zuora-Versionstring

The minor API version.

For a list of available minor versions, see API upgrades.

Request body

dateTimeUtcboolean

When using WSDL 69 and later you can ensure that the exported output of dateTime records are rendered according to ISO-8601 generic UTC form by setting dateTimeUtc to true.

When dateTimeUtc is set to true, exports of dateTime data types will be rendered in the following generic format: YYYY-MM-DDThh:mm:ss-hhmm or YYYY-MM-DDThh:mm:ss+hhmm.

Note: Regardless of what batchType query is used (zoql or zoqlexport), the query response output for datetime data types can be standardized by setting dateTimeUtc to true. When true, the results will display datetime types with the format: YYYY-MM-DDThh:mm:ss+/-hhmm.

format'csv' | 'zip' | 'gzip'

The format of the query. The default value is csv.

incrementalTimestring dateTime

Allows you to override the time from which a Stateful AQuA job incrementally retrieves records that have been created or modified, using the incrementalTime parameter. For example, if you set incrementalTime = 2015-01-21 10:30:01, AQuA will retrieve records that have created or modified beginning at 10:30:01. If this parameter is not set, AQuA continues to use the Start Time of the last AQuA session to retrieve records incrementally.

The time zone of incrementalTime depends on which Zuora data center you use. For US Data Center customers, the time zone of incrementalTime is Pacific Time. For EU Data Center customers, the time zone of incrementalTime is UTC. If the time zone of your system is different from the time zone of incrementalTime, you will need to convert to the appropriate time zone before setting incrementalTime.

Note: This field can only be used in Stateful AQuA mode.

namestring

The name of the job. 32 character limit.

notifyUrlstring

If URL is provided, the AQuA job will call this notifyUrl once the job has completed. The value of notifyUrl needs to have ${JOBID} and ${STATUS} placeholders. These placeholders will be replaced by the actual job ID and status when returned in the response. Status will be Completed after the AQuA job is done.

If you submit an AQuA query with notifyUrl specified, the value of notifyUrl will be ignored if your organization has already <a href="https://docs.zuora.com?resourceId=platform-callout-notification-for-completed-aqua-jobs" target="_blank">configured a callout notification through the Zuora user interface</a>.

nullReplacementstring

The string used to represent null values in the query results. If you do not set this parameter, null values are represented by the empty string in the query results.

offsetinteger

This field specifies the time offset for AQuA queries in stateful mode. It is an integer in the range 0 to 3,600 seconds.

For example, if you set this field to 600 seconds and you post a query in stateful mode at 2:00 AM, it will query against data created or updated between the completion time of the previous query and 1:50 AM.

The value of this field will override the value you configured in Settings > Administration > AQuA API Stateful Mode Time Offset.

partnerstring

The partner field indicates the unique ID of a data integration partner. The dropdown list of this field displays partner IDs for the past thirty days. It must be used together with "project" field to uniquely identify a data integration target.

For example, if a continuous AQuA session is to retrieve data incrementally for a Salesforce.com Org 00170000011K3Ub, you can use partner as "Salesforce", and "project" as "00170000011K3Ub." This field is required only if you are using AQuA in stateful mode. Otherwise, if you are using AQuA in stateless mode, partner field can be null.

Note: Zuora highly recommends you use the stateless mode instead of the stateful mode to extract bulk data. See <a href="https://docs.zuora.com?resourceId=platform-bulk-data-extraction-from-zuora-using-aqua" target="_blank">Bulk data extraction from Zuora using AQuA</a> for best practices. Note: Submit a request at <a href="http://support.zuora.com" target="_blank">Zuora Global Support</a> to obtain a partner ID.

projectstring

The project field contains the unique ID of a data integration project for a particular partner. The dropdown list of this field displays project IDs for the past thirty days.

This field must be used together with partner field to uniquely identify a data integration target.

This field is required only if you are using AQuA in stateful mode. Otherwise, if you are using AQuA in stateless mode, partner field can be null.

sourceData'LIVE'

Specify the source this aggregate query runs against:

  • LIVE represents the live transactional databases at Zuora (Data Query Live). If this field is not specified, the default value LIVE will be used.
useQueryLabelsboolean

When this optional flag is set to true the request will use object and field API names for the CSV header output instead of the field labels. Data integration projects should set useQueryLabels to true so that API names remain the same.

By default useQueryLabels is false, so that output CSV headers display the more user-friendly object and field labels.

versionnumber float

The API version you want to use.

The supported versions are as follows:

  • 1.1. It supports both modes
  • 1.0. Default. It supports stateless modes only.

See <a href="https://docs.zuora.com?resourceId=platform-aqua-stateless-and-stateful-modes" target="_blank">Stateless and stateful modes</a> for more information.

Example request

{
  "queries": [
    {
      "query": "select AccountNumber, BillCycleDay from Account",
      "type": "zoql"
    }
  ]
}

Response

OK

encrypted'pgp' | 'none'

If enabled, you must supply the formatting (zip or unzip) first and decrypt it to get the actual contents.

format'csv' | 'zip' | 'gzip'

The format of the query. The default value is csv.

idstring

The job ID created for the AQuA API request. The job ID can be used for querying for the query status.

The ID exists only if the JSON request can be parsed and validated successfully. Otherwise, the job ID is null.

incrementalTimestring dateTime

Allows you to override the time from which a Stateful AQuA job incrementally retrieves records that have been created or modified, using the incrementalTime parameter. For example, if you set incrementalTime = 2015-01-21 10:30:01, AQuA will retrieve records that have created or modified beginning at 10:30:01. If this parameter is not set, AQuA continues to use the Start Time of the last AQuA session to retrieve records incrementally.

The time zone of incrementalTime depends on which Zuora data center you use. For US Data Center customers, the time zone of incrementalTime is Pacific Time. For EU Data Center customers, the time zone of incrementalTime is UTC. If the time zone of your system is different from the time zone of incrementalTime, you will need to convert to the appropriate time zone before setting incrementalTime.

Note: This field can only be used in Stateful AQuA mode.

namestring

The name of the job. 32 character limit.

notifyUrlstring

If URL is provided, the AQuA job will call this notifyUrl once the job has completed. The value of notifyUrl needs to have ${JOBID} and ${STATUS} placeholders. These placeholders will be replaced by the actual job ID and status when returned in the response. Status will be Completed after the AQuA job is done.

If you submit an AQuA query with notifyUrl specified, the value of notifyUrl will be ignored if your organization has already <a href="https://docs.zuora.com?resourceId=platform-callout-notification-for-completed-aqua-jobs" target="_blank">configured a callout notification through the Zuora user interface</a>.

offsetinteger

This field specifies the time offset for AQuA queries in stateful mode. It is an integer in the range 0 to 3,600 seconds.

For example, if you set this field to 600 seconds and you post a query in stateful mode at 2:00 AM, it will query against data created or updated between the completion time of the previous query and 1:50 AM.

The value of this field will override the value you configured in Settings > Administration > AQuA API Stateful Mode Time Offset.

partnerstring

The partner field indicates the unique ID of a data integration partner. The dropdown list of this field displays partner IDs for the past thirty days.

It must be used together with "project" field to uniquely identify a data integration target.

For example, if a continuous AQuA session is to retrieve data incrementally for a Salesforce.com Org 00170000011K3Ub, you can use partner as "Salesforce", and "project" as "00170000011K3Ub."

This field is required only if you are using AQuA in stateful mode. Otherwise, if you are using AQuA in stateless mode, partner field can be null.

Note: Zuora highly recommends you use the stateless mode instead of the stateful mode to extract bulk data. See <a href="https://docs.zuora.com?resourceId=platform-bulk-data-extraction-from-zuora-using-aqua" target="_blank">Bulk data extraction from Zuora using AQuA</a> for best practices.

Note: Submit a request at <a href="http://support.zuora.com" target="_blank">Zuora Global Support</a> to obtain a partner ID.

projectstring

The project field contains the unique ID of a data integration project for a particular partner. The dropdown list of this field displays project IDs for the past thirty days.

This field must be used together with partner field to uniquely identify a data integration target.

This field is required only if you are using AQuA in stateful mode. Otherwise, if you are using AQuA in stateless mode, partner field can be null.

sourceDatastring

Indicates the source this aggregate query runs against:

  • LIVE represents the live transactional databases at Zuora (Data Query Live).
status'submitted' | 'executing' | 'completed' | 'error' | 'aborted' | 'cancelled'

The status of the AQuA job:

  • submitted: The AQuA job was submitted to the query executor for processing.
  • executing: The AQuA job is being processed.
  • completed: The AQuA job was successfully executed.
  • error: The AQuA job was not processed because of validation errors.
  • aborted: The AQuA job execution failed because one or more queries of this job failed.
  • cancelled: The AQuA job was cancelled.
useLastCompletedJobQueriesboolean

If this flag is set to true, then all the previous queries are merged with existing queries.

If the flag is set to false, then the previous queries are ignored, and only the new query is executed.

versionnumber float

The API version you want to use.

The supported versions are as follows:

  • 1.1. It supports both modes
  • 1.0. Default. It supports stateless modes only.

See <a href="https://docs.zuora.com?resourceId=platform-aqua-stateless-and-stateful-modes" target="_blank">Stateless and stateful modes</a> for more information.

Changes

No recorded changes to this endpoint across all 4 revisions of this API.