We recommend reading Getting Started with the Singular Reporting API first to get familiar with the concepts behind the API and find the right queries for your use case.
See also: SKAdNetwork API Reference, Ad Monetization API Reference.
This API is available to Singular customers (advertisers). If you are a Singular partner, see the Reporting API for Partners instead.
General Information
Authentication
All API requests require an API key. To retrieve the key, log into your account and go to Developer Tools > API Keys. You can insert the key in the api_key parameter in your request, or provide the token under an Authorization HTTP header.
Rate Limits
The default limits for the Singular API are:
- Async Reports: up to 100 async reports running concurrently.
- Synchronous Reports: up to 3 synchronous reports running concurrently.
- Single Report Row Limit: up to 200K rows per query.
- Daily Global Row Limit: up to 3M rows on a single day (shared among all your queries).
Singular reserves the right to adjust the rate limit for given endpoints in order to continue and provide a high quality of service to all of our customers. Contact us if there's a specific need to exceed the default limitation.
List of Reporting API Endpoints
The following API endpoints are available:
Create Async Report | POST | https://api.singular.net/api/v2.0/create_async_report | Returns aggregated statistics. |
Data Availability | GET | https://api.singular.net/api/v2.0/data_availability_status | Before querying Create Async Report, use this endpoint to determine whether for a given day, data is available for each of your sources (data connectors). |
Get Report Status | GET | https://api.singular.net/api/v2.0/get_report_status | Returns the status of a given report. |
Filters | GET | https://api.singular.net/api/v2.0/reporting/filters | Returns all filtering options available for your reports. |
Custom Dimensions | GET | https://api.singular.net/api/custom_dimensions | Returns all the custom dimensions available for your reports. |
Cohort Metrics | GET | https://api.singular.net/api/cohort_metrics | Returns all the cohort metrics and cohort periods available for your reports. |
Conversion Metrics | GET | https://api.singular.net/api/conversion_metrics | Returns all the conversion metrics available for your reports. |
Create Async Report Endpoint
POST | https://api.singular.net/api/v2.0/create_async_report |
Usage
This is the main endpoint for getting reporting data from Singular. The endpoint generates an asynchronous report query based on the reporting dimensions, metrics, dates, and other details that you specify, and returns the Report ID. The next step is to query the Get Report Status endpoint to see when the report is done and to get a download URL.
To learn more, see the Querying Process section in the Guide to the Singular Reporting API.
Limitations
- An API request for a single day does not have a limit on the count of rows returned.
- A single request can query up to 30 days and has a maximum of 100,000 queried records. Requests querying more than 100,000 records will not succeed and will require additional filtering.
- When integrating with our API for daily or weekly data pulls we generally recommend splitting multi-day queries to single-day, and iterating over the entire time period.
Sample Query
import requests
url = "https://api.singular.net/api/v2.0/create_async_report"
query_params = {"api_key": "<API KEY>"}
payload = {
"dimensions":"app,source,os,country_field",
"metrics": "custom_impressions,custom_clicks,custom_installs",
"start_date":"2020-01-01",
"end_date": "2020-01-01",
"time_breakdown": "all",
"format": "csv",
"country_code_format": "iso"
}
response = requests.post(url=url, params=query_params, data=payload)
print(response.text)
Query Parameters
Parameter | Format | Description | Example |
Basic Parameters | |||
api_key | String | API key provided in the Singular console | |
start_date | Date | ||
end_date | Date | ||
time_breakdown | String | Results breakdown by 'day', 'week', 'month' or 'all', which aggregated data over the entire time period | |
Field Selection Parameters | |||
dimensions | String | A comma-separated list of dimensions. See API Report Types for the list of dimensions available based on the type of data you are looking for. See Metrics and Dimensions for more information about each dimension. | |
metrics | String | A comma-separated list of metrics. See API Report Types for the list of metrics available based on the type of data you are looking for. See Metrics and Dimensions for more information about each metric. | |
cohort_metrics | String | A comma-separated list of cohort metrics by name (see What are cohort metrics?). Cohort metrics include any post-conversion events you have defined in the Events page. To retrieve a list of all the available cohort metrics in your account, use the Cohort Metrics endpoint. | 'cohort_metrics': '815782610a1ddf,revenue' |
cohort_periods | String | A comma-separated list of cohort periods (see What are cohort metrics?). To retrieve a list of the available cohort periods, use the Cohort Metrics endpoint. | 'cohort_periods': '7d,14d,ltv' |
Filtering Parameters | |||
app | String | A comma-separated list of app names to filter the query results by. To retrieve a list of app names, use the Filters endpoint. | 'app': 'my_app1,my_app2' |
Source | String | A comma-separated list of ad networks (and other sources) to filter by. To retrieve a list of ad network names, use the Filters endpoint. | 'source': 'facebook,adwords' |
filters | JSON | A JSON list of filter objects where each contains a dimension, operator, and value(s). Use this parameter to apply more advanced filtering. Note that if you specify more than one filter they will be applied with an AND relation. To retrieve a full list of dimensions you can filter by and their potential values, use the Filters endpoint. | 'filters': '[{"dimension": "os", "operator": "in","values": [1, 4]}, {"dimension": "source", "operator": "not in", "values": ["adwords"]}]' |
Formatting Parameters | |||
format | String | The format in which the query results will be delivered. Options: "json" (default) or "csv". | 'format':'csv' |
country_code_format | String | Either "iso3" (default) or "iso" | |
display_alignment | Boolean |
When set to "true", results will include an alignment row to account for any difference between campaign and creative statistics. |
|
display_unenriched |
Boolean |
When set to "true", results will contain the unenriched data. |
"display_unenriched":true |
Sample Output
{
"status": 0,
"substatus": 0,
"value": {
"report_id": "5cfdb747dd464cd09a9c463e5be9691f"
}
}
Available Dimensions and Metrics
See the Metrics and Dimensions Glossary for a description of each field.
Network Data
app
source
adn_campaign_id
adn_campaign_name
adn_campaign_url
data_connector_id
data_connector_source_name
data_connector_username
data_connector_timestamp_utc
Optional additional dimensions (support varies by network):
os
platform
country_field
region_field
city_field
dma_id_field
dma_name_field
adn_sub_adnetwork_name
adn_account_id
adn_account_name
adn_sub_campaign_id
adn_sub_campaign_name
Keyword and/or publisher breakdown (support varies by network, cannot be pulled in the same query as creative breakdown):
keyword_id
keyword
publisher_id
publisher_site_id
publisher_site_name
Creative breakdown (support varies by network, usually cannot be pulled in the same query as keyword/publisher):
creative_type
adn_creative_id
adn_creative_name
creative_url
creative_image
creative_text
creative_width
creative_height
creative_is_video
asset_id
asset_name
Campaign properties (learn more):
bid_type
bid_strategy
bid_amount
campaign_objective
standardized_bid_type
standardized_bid_strategy
original_bid_amount
campaign_status
min_roas
original_metadata_currency
Custom Dimensions:
If you have defined custom dimensions based on these default network dimensions, you can pull them using their IDs. Use the Custom Dimensions Endpoint to get all the custom dimensions defined in your account and their IDs.
adn_cost
adn_original_cost
adn_original_currency
adn_impressions
adn_clicks
adn_installs
Custom Metrics:
If your organization uses special custom metrics (created for you by Singular Support), the name of the metric in the API is in lowercase, with spaces replaced by underlines. For example: Custom Metric 1 in the web platform = custom_metric_1 in the API.
Tracker Data
app
source
tracker_campaign_id
Optional additional dimensions (support varies by tracker):
tracker_campaign_name
os
platform
country_field
Custom dimensions:
If you have defined custom dimensions based on these default tracker dimensions, you can pull them using their IDs. Use the Custom Dimensions Endpoint to get all the custom dimensions defined in your account and their IDs.
tracker_impressions
tracker_clicks
tracker_installs
tracker_conversions
tracker_reengagements
daily_active_users
Cohort metrics:
revenue
original_revenue
For a full list of the cohort metrics you can use, see the Cohort Metrics Endpoint. For more information, see What are cohort metrics?
Note that cohort metrics include ratio-based calculations such as CPE and CPI. We do not recommend using these in API reports (learn more).
Events:
You can pull the stats for any event you have defined. Note that instead of using the event's name as defined in the Singular app, you have to use the event's auto-generated ID, which you can get from the Cohort Metrics Endpoint.
Custom Metrics:
If your organization uses special custom metrics (created for you by Singular Support), the name of the metric in the API is in lowercase, with spaces replaced by underlines. For example: Custom Metric 1 in the web platform = custom_metric_1 in the API.
Combined Data
app
source
unified_campaign_id
unified_campaign_name
Optional additional dimensions (support varies by network/tracker):
os
platform
country_field
adn_sub_adnetwork_ name
adn_account_id
adn_account_name
sub_campaign_id
sub_campaign_name
Keyword and/or publisher breakdown (support varies by network/tracker, cannot be pulled in the same query as creative breakdown):
keyword_id
keyword
publisher_id
publisher_site_id
publisher_site_name
Creative breakdown (support varies by network, only available for users of Singular's attribution service):
creative_type
adn_creative_id
adn_creative_name
creative_url
creative_image
creative_text
creative_width
creative_height
creative_is_video
asset_id
asset_name
Custom Dimensions:
If you have defined custom dimensions based on these default dimensions, you can pull them using their IDs. Use the Custom Dimensions Endpoint to get all the custom dimensions defined in your account and their IDs.
adn_cost
adn_original_cost
adn_original_currency
custom_impressions
custom_clicks
custom_installs
tracker_conversions
tracker_reengagements
daily_active_users
Metrics for video creatives and video-based campaigns:
video_views
video_views_25pct
video_views_50pct
video_views_75pct
completed_video_views
completed_video_view_rate
Cohort metrics:
revenue
original_revenue
For a full list of the cohort metrics you can use, see the Cohort Metrics Endpoint. For more information, see What are cohort metrics?
Note that cohort metrics include ratio-based calculations such as CPE and CPI. We do not recommend using these in API reports (learn more).
Events:
You can pull the stats for any event you have defined. Note that instead of using the event's name as defined in the Singular app, you have to use the event's auto-generated ID, which you can get from the Cohort Metrics Endpoint.
Custom Metrics:
If your organization uses special custom metrics (created for you by Singular Support), the name of the metric in the API is in lowercase, with spaces replaced by underlines. For example: Custom Metric 1 in the web platform = custom_metric_1 in the API.
Notes:
- Singular tries to give you the highest level of granularity available, but not all networks and trackers support all breakdowns. See Data Connectors in Detail for more information about what data Singular pulls from each source.
- Stats such as impressions, clicks, and installs reported by an ad network may not match the stats reported by your tracker.
- Creative-level combined reports are only available for users of Singular's attribution service.
- Custom metrics may not be available for creative breakdowns. Depending on the content of the custom metric (i.e., if it is based on a calculation that involves tracker metrics), if you include it in a report broken down by creative, you may see "broken rows".
Data Availability Endpoint
GET | https://api.singular.net/api/v2.0/data_availability_status |
Usage
This endpoint returns whether, for a given day, data is available for each of your sources or data connectors.
We recommend using this endpoint to check whether data is already available for yesterday before you run your daily report(s).
Sample Query (Python)
import requests
url = "https://api.singular.net/api/v2.0/data_availability_status"
queryparams = {
"api_key":"<API_KEY>",
"expanded":"true",
"format": "json",
"data_date":"2021-02-01",
"display_non_active_sources":"true"
}
response = requests.get(url=url, params=queryparams)
Query Parameters
Parameter | Format | Description |
api_key | String | API key provided in the Singular console. |
expanded |
Boolean | Set to "true" to get the results for each data connector including the data_connector_id field. Then when you run a report in the Create Async Report endpoint, you can filter the results by data_connector_id. Default is "false" for backward compatibility. |
format | String | Output format: "json" or "csv". |
data_date | Date | The day to check data availability for. |
display_non_active_sources | Boolean | [Optional] Set to "true" to include non-active data connectors (data connectors that haven't had data in the last 30 days) in the check. |
Sample Output (when expanded=true)
{
"status": 0,
"substatus": 0,
"value": {
"is_all_data_available": false,
"data_connectors": [{
"data_connector_id": "dgd7934875",
"data_connector_source_name": "Vungle",
"data_connector_username": "ua@mycompany.com",
"is_active_last_30_days": true,
"is_available": true,
"is_empty_data": false,
"last_updated_utc": "2021-02-08T10:10:07",
"data_connector_timestamp_utc": "2021-02-08T10:10:07",
"status": "data populated"
}, {
"data_connector_id": "youi293478",
"data_connector_source_name": "IronSource",
"data_connector_username": "ua@mycompany.com",
"is_active_last_30_days": true,
"is_available": false,
"is_empty_data": "N/A",
"last_updated_utc": "N/A",
"data_connector_timestamp_utc": "N/A",
"status": "data not populated"
}]
}
}
Output Parameters
Parameter | Format | Description |
is_all_data_available | Boolean | True if there is data available from all data connectors for the given date. Otherwise false. |
data_connectors |
An array containing a JSON object for each of your data connectors. | |
Parameters per Data Connector |
||
data_connector_id |
String | A unique identifier for the data connector. You can use this identifier to filter your reports in Create Async Report. |
is_available | Boolean | True if there is data from the specific data connector for the given date. |
data_connector_timestamp_utc | Timestamp | The date and time in which data was last pulled from this data connector for the given date. Use this field if you are auditing historical data and want to see if Singular has fresher data than the one you currently have in your BI platform. |
is_empty_data | Boolean | True if data was pulled successfully from the specific data connector, but the data is empty (all zeros or N/A values). False if data was pulled and contains actual values. Note that if data has not been pulled yet, this field contains "N/A". |
status | String |
Additional information about the status of the data. Possible values:
|
is_active_last_30_days | Boolean | True if this data connector had non-empty data at least once in the last 30 days. |
last_updated_utc | Timestamp | The latest time in which data was saved in the Singular database for this data connector. Note: There may be a gap of up to several hours from the moment in which the data is pulled through the data connector to the time it is saved in the database. |
Sample Output (when "expanded" parameter not included or set to false)
{'is_all_data available': false,
'data_sources': [
{'username': u'facebook@singular.net',
'status': 'data populated',
'is_empty_data': false,
'is_active_last_30_days': true,
'last_updated_utc': '2018-05-03T10:12:18'
'source': u'Facebook',
'is_available': true},
{'username': u'vungle@singular.net',
'status': 'data populated',
'is_empty_data': true,
'is_active_last_30_days': true,
'last_updated_utc': '2018-05-03T10:12:18'
'source': u'Vungle',
'is_available': true},
{'username': u'applovin@singular.net',
'status': 'data not populated',
'is_empty_data': N/A,
'is_active_last_30_days': true,
'last_updated_utc': N/A
'source': u'Applovin',
'is_available': false}
]}
Output Parameters
Parameter | Format | Description |
is_all_data_available | Boolean | True if there is data from all data connectors for the given date. Otherwise false. |
is_available | Boolean | True if there is data from the specific data connector for the given date. Otherwise false. |
is_empty_data | Boolean | True if data was pulled successfully from the specific source, but the data is empty (all zeros or "N/A" values). |
status | String | Additional information about the status of the data. The possible values are:
|
is_active_last_30_days | Boolean | True if data was non-zeroes for at least one day in the last 30 days. Otherwise false. |
last_updated_utc | Timestamp | The latest time in which data was saved in the Singular database for this data connector. Note: There may be a gap of up to several hours from the moment in which the data is pulled through the data connector to the time it is saved in the database. |
Get Report Status Endpoint
GET | https://api.singular.net/api/v2.0/get_report_status |
Usage
This endpoint returns the status of a given report that was generated using the Create Async Report endpoint. If the report has finished running, the endpoint also returns a download URL.
If the report has failed, the endpoint returns an error message that you can use to troubleshoot the problem (see the Error Codes table and the API FAQ and Troubleshooting guide).
To learn more, see the Querying Process section in the Guide to the Singular Reporting API.
Important:
- Reports can sometimes take up to a few minutes to complete.
- Do not query the report status endpoint more than once every 10 seconds per report.
- Set a timeout. In some rare cases, a report can get stuck in "Queued" or "Started" status. If the status is not "Done" or "Failed" after 30 minutes, we recommend submitting the report again (which will give you a new report ID to query).
Sample Query
import requests
url = "https://api.singular.net/api/v2.0/get_report_status"
querystring = {
"report_id":"5cfdb747dd45be9691f",
"api_key": "<API KEY>"
}
response = requests.get(url=url, params=querystring)
print(response.text)
Query Parameters
Parameter | Format | Description |
api_key | String | API key provided in the Singular console |
report_id | String | A Report ID returned by the Create Async Report endpoint. |
Sample Output
{
"status": 0,
"substatus": 0,
"value": {
"status": "DONE",
"url_expires_in": 3600,
"generated_url_time_in_utc": "2018-05-13T08:26:18.457690+00:00",
"url_expired_time_in_utc": "2018-05-13T09:26:18.457690+00:00",
"download_url": "https://singular-reports-results.s3.amazonaws.com/singular/xxxxxxxxx",
"report_id": "5cfdb747dd45be9691f"
}
}
Output Parameters
Output Parameter | Format | Description |
status | String | Possible values:
|
generated_url_time_in_utc | Timestamp | |
url_expires_in | Integer | Seconds until the download URL expires. |
url_expired_time_in_utc | Timestamp | |
download_url | URL | |
report_id | String |
Filters Endpoint
GET | https://api.singular.net/api/v2.0/reporting/filters |
Usage
Use this helper endpoint to retrieve an up-to-date list of the dimensions you can filter your report by and the possible values for each dimension.
Sample Query
import requests
url = "https://api.singular.net/api/v2.0/reporting/filters"
params = {'api_key': "<API KEY>"}
result = requests.get(url=url, params=params)
print result.json()
Query Parameters
Parameter | Format | Description |
api_key | String | API key provided in the Singular console |
Sample Output
{
"status": 0,
"substatus": 0,
"value": {
"dimensions": [
{
"name": "os",
"display_name": "OS",
"values": [
{"name": 4, "display_name": "Android"},
{"name": 1, "display_name": "iOS"}
],
},
{
"name": "source",
"display_name": "Source",
"values": [{"name": "adwords", "display_name": "AdWords"}]
}
]
}
}
Custom Dimensions Endpoint
GET | https://api.singular.net/api/custom_dimensions |
Usage
Use this endpoint to retrieve the IDs of any custom dimensions configured for your account. You can then use the custom dimension IDs when querying the Create Async Report endpoint (instead of or in addition to any of the default dimensions).
To learn about custom dimensions and how to create them, see the Custom Dimensions FAQ.
Sample Query
import requests
url = "https://api.singular.net/api/custom_dimensions"
params = {'api_key': "<API KEY>"}
result = requests.get(url=url, params=params)
print result.json()
Query Parameters
Parameter | Format | Description |
api_key | String | API key provided in the Singular console |
Sample Output
{
"status": 0,
"substatus": 0,
"value": {
"custom_dimensions": [
{"display_name": "Channel Type", "id": "e471cb6b83684532e5e83cd"},
{"display_name": "Region", "id": "1dcfdb1ad861fba4b098e2"}
]
}
}
Cohort Metrics Endpoint
GET | https://api.singular.net/api/cohort_metrics |
Usage
Use this endpoint to retrieve all the cohort metrics and cohort periods available for your account. This includes any in-app events you configured Singular to track (see the Events FAQ). You can then specify these metrics and periods when you run a query in the Create Async Report endpoint.
Note that in the Create Async Report query you need to use the "name" of the metric, not the "display name".
Sample Query
import requests
url = "https://api.singular.net/api/cohort_metrics"
params = {'api_key': "<API KEY>"}
result = requests.get(url=url, params=params)
print result.json()
Query Parameters
Parameter | Format | Description |
api_key | String | API key provided in the Singular console |
Sample Output
{
"status": 0,
"substatus": 0,
"value": {
"metrics": [
{"display_name": "ROI","name": "roi"},
{"display_name": "Revenue","name": "revenue"}
],
"periods": ["1d","3d","5d","7d","14d","30d","actual"]
}
}
Output Parameters
Output Parameter | Format | Description |
display_name | String | The name of the metric as it appears in the Singular platform. |
name | String | The identifier of the metric for use in API queries. |
periods | Array | All the cohort periods supported for your account. For more information, see What are cohort metrics and cohort periods? |
Conversion Metrics Endpoint
GET | https://api.singular.net/api/conversion_metrics |
Usage
Use this endpoint to retrieve all the conversion events available for your account. You can then specify these events as metrics when you run a query in the Create Async Report endpoint.
Note that in the Create Async Report query you need to use the "name" of the metric, not the "display name".
Sample Query
import requests
url = "https://api.singular.net/api/conversion_metrics"
params = {'api_key': "<API KEY>"}
result = requests.get(url=url, params=params)
print result.json()
Query Parameters
Parameter | Format | Description |
api_key | String | API key provided in the Singular console |
Sample Output
{
"status": 0,
"substatus": 0,
"value": {
"metrics": [
{"display_name": "5-second video view", "name": "87dfg34453hsfg6f"},
{"display_name": "5-second video view CPE", "name": "87dfg34453hsfg6fCPE"},
{"display_name": "Sign up", "name": "iuq353fidr76w846fha"},
{"display_name": "Sign up CPE", "name": "iuq353fidr76w846fhaCPE"},
{"display_name": "Post engagement", "name": "b59cje9fcgw0th"},
{"display_name": "Post engagement CPE", "name": "b59cje9fcgw0thCPE"},
]
}
}
Output Parameters
Output Parameter | Format | Description |
display_name | String | The name of the conversion event as configured in the Events page. |
name | String | The auto-generated identifier of the event - use this identifier in your report query. |
Error Codes
Singular uses standard HTTP response codes to indicate the success or failure of an API request. In general, 200 codes correspond to success, codes in the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted), and 5xx codes are for other issues.
See also: Reporting API FAQ and Troubleshooting
Code | Error Text | Additional Information |
400 | An invalid timestamp was given. The timestamp must be of the format: YYYY-MM-DD hh:mm:ss. | Specify timestamps as in the following example: 2018-01-01 00:00:01 |
400 | An invalid date was given. The date must be of the format: YYYY-MM-DD. | Specify dates as in the following example: 2018-01-20 |
400 | An invalid date range was given. End date must be later than start date. | |
400 | An invalid time breakdown was given. | The time breakdown parameter is either missing in your query or isn't one of the supported options: "day", "week", "month", or "all". |
400 | An invalid filter was given. | Use the Filters endpoint to get the list of filters you can use in your queries. |
400 | At least one metric must be used. | Include at least one metric in your query. |
400 | The requested data set includes publisher dimensions and extends beyond a single day. Please run single day queries with publisher dimensions. | Reports broken down by publisher include large volumes of data. To run these reports, limit them to one day. |
400 | An invalid result format was given. Please select between JSON and CSV. | |
400 | An invalid country_code_format was given. Please use "iso3" or "iso". | |
400 | The request contains invalid dimensions: | One or more dimensions you requested in the query are either deprecated or invalid. If you used custom dimensions, double-check that they are available (using the custom dimensions endpoint) and make sure you used the dimension IDs (rather than their display names). |
400 | The request contains duplicate fields: [list] | |
400 | The request contains invalid metrics: | One or more metrics you requested in the query are either deprecated or invalid. If you used cohort metrics or conversion events, double-check that they are available (using the cohort metrics and conversion events endpoints) and make sure you used the metric names (rather than their display names). |
400 | The request contains invalid cohort periods: | Use the cohort metrics endpoints to check which cohort periods are available for your account. |
400 | We could not find cohort periods for the following cohort metrics: . | Add cohort periods for your cohort metrics. |
400 | The request contains dimensions from an old API version: . Please use dimensions from the v2 API endpoint only. | The request included dimensions from multiple API versions, which is not supported. |
400 | The request is missing the following parameter: . | |
401 | An invalid API Key was given. | The API key is either missing or invalid. To get your API key, log into your Singular account and go to Developer Tools > API Keys. |
401 | The provided API key has been previously deactivated. Please contact your administrator. | You are using an API key that belonged to a deactivated user. To get your API key, log into your Singular account and go to Developer Tools > API Keys. |
403 | The provided API key does not have permissions to view the field: |
The API key provided does not have permissions to view a dimension or metric you requested. Contact your organization's administrator to make sure you have the permissions you need. |
403 | The request is denied access. Please contact your administrator. | The request is denied. Contact your organization's administrator for further information. |
404 | Report ID is not found. Please correct it or create a new report. | Double-check that you used the Report ID returned from the Create Async Report endpoint. If the error persists, create a new report. |
404 | Report ID was created with a different key. Please use the same key when requesting status. | To query for a report status, you must use the same API key you used to generate the report. |
405 | METHOD NOT ALLOWED | You are probably using GET instead of POST or vice versa in your http request. |
429 | Query quota is exceeded: only <> reports are currently allowed. The following report IDs are active: . | You have exceeded the amount of async reports you are permitted to run at the same time. Wait for your previous requests to complete. |
429 | Too many requests. Only <> requests per second is currently allowed. | You have exceeded the rate limit. Wait for your previous requests to complete. |
500 | The request has failed due to an internal error. | Typically, this just means you should retry your API call. See What should I do if I get a 500 error? |