Rate limits

We impose limits on the number of API calls an ad account or a user can make within a specified timeframe. Exceeding these limits results in API requests from one or more users under the ad account being throttled.

Quota

By default, any and all API requests you make are subject to rate limits. The rate limit imposed at the ad account level on all available Moloco Ads API endpoints is 300 per 5 minutes. The following is a summary of all rate limits.

EndpointLevelQuota
All endpointsAd account300 / 5min
POST /analytics-overviewAd account60 / min
POST /analytics-detailAd account60 / hour
POST /analytics-skadnetworkAd account60 / hour
GET/cohort-summary Ad account- 60 / min when the value of the type property is the ROAS type
- 60 / hour when the value of the type property is the KPI action type
GET /reports Ad account- 0~1 date range: 30 / day
- 2~7 date range: 10 / day
- 8~31 date range: 5 / day
Note: Up to 4 million rows are returned in response to a single API call.
GET /logs Ad account30 / day
GET /ad-accounts User300 / 5min

HTTP response

After you have made an API request, you will find detailed information about the rate limits imposed on your API request in the HTTP headers included in the response.

X-Rate-Limit-Quota	    The maximum number of requests you're permitted to make per hour.
X-Rate-Limit-Remaining	The number of requests remaining in the current rate limit window.
X-Rate-Limit-Reset	    The time at which the current rate limit window resets in UTC epoch seconds.

In the event that the assigned rate limit for an API endpoint has been exceeded, the system returns an error code in the response as in the following example.

{
    "code": 8,
    "message": "API quota exceeded. Please try again later. code = ResourceExhausted"
}

Frequently Asked Questions

I would like to retrieve my campaign data. What are my options?

Depending on your specific use case, you can choose between the AnalyticsDetail API and the Report API. See the following table for more details.

EndpointAPI typeAPI quotaAvailable data output formatAvailable dimension and metricRow limitRecommended use case
POST /analytics-detailSynchronous API60/hour.jsonYou can choose from a comprehensive list of all available dimensions and metrics. You can apply filters as needed.10,000 rowsUse this API for frequent data retrieval (e.g., display on data dashboard) and quick data analytics on a subset of data.
GET /reports Asynchronous API- 0~1 date range: 30 / day
- 2~7 date range: 10 / day
- 8~31 date range: 5 / day
.csv, .jsonYou can choose from a select number of dimensions and metrics. No filters are available.4 million rowsUse this API for regular (e.g., daily, weekly, etc.) data retrieval and reading general trends in campaign performance.