QuickBooks Online growth over the last year has been amazing. With that growth comes increased demand on the QuickBooks Online APIs. In order to provide a highly available, high-quality service for thousands of developers and millions of customers, Intuit will be introducing a concurrent API call limit for applications calling the QuickBooks Online REST APIs.
What’s the new policy?
- Applications cannot make more than 10 API requests to the same realmId.
- This limit is based on an application and realmId combination; not on an app-only basis.
- Applications making more than 10 concurrent or multi-threaded API requests to the same realmId will get a 429 response: HTTP/1.1 429 Too Many Requests.
What’s not changing?
- API calls are throttled at 500 requests per minute per realmId, including batch requests.
- This throttling limit is not changing from the current policy today. However Intuit may revisit the per-minute throttling policy in the future.
How do I know if my application will be affected?
- Your application makes multi-threaded requests to the same realmId.
- Your application has bursts of API calls during certain peak times (for example, nightly batch or initial synchronization).
- The Intuit Developer Relations team has already contacted you.
- You have previously received a 503 response, suggesting your call volume could be high enough to hit the limits set.
How can I make my app more resilient against the new throttling limits?
- Make sure your application is not multi-threading API calls to the same realmId unless completely necessary, and no more than 10 concurrent connections. This will be monitored and adjusted as needed in the future.
- Make single-threaded API calls to the same realmId. The per-minute API call throttling limit has not changed.
- Use batch operations whenever possible.
- It is very important to use a requestId when sending any API Request to the QuickBooks platform.
- Make sure your application or SDK (if necessary) is able to process a 429 response and retry.
- If you receive a 429 response, you can resend the same request with the same requestId with no ramifications on the data. This will replay your previous request.
- If your app previously accounted for 503 responses, update your code to handle a 429 response in its place.
Can I test the policy before Intuit deploys to Production?
Yes! Changes will be deployed to Sandbox for testing before being released to production. The schedule for this will be announced soon.
When is this change happening?
We will notify developers when the changes are available in Sandbox for testing.
Changes to production will happen in December of 2016.
Leave your comments below. If you have any specific questions, reach out on our developer forums at developer.intuit.com/help.