Frequently asked questions

Get help with common queries



Xero is not suitable for all types of business, particularly those with very high transaction volumes. Please see our notes on system limits.

Can I get my rate limits increased?*

No, our rate limits are the same for all apps connecting to the API. If you are hitting rate limits there are a number of things you can do to make your integration more efficient.

Does my application only have 5000 requests for all my users?*

Rate limits apply to each connection. For example, if two separate Xero organisations are connected to an application, each connection would have 5000 API calls available in a given 24 hour period.

What are the Xero API rate limits?*

There are limits to the number of API calls that your application can make against a particular Xero organisation.

  • Minute Limit: 60 calls in a rolling 60 second window

  • Daily Limit: 5000 calls in a rolling 24 hour window

If you exceed either rate limit you will receive an HTTP 429 (too many requests) response. For a full list of API limits, pleae check our API Limits page

What if I need to do lots of creating and updating?*

Quite often, applications that you might believe would exceed the Xero API rate limits, can in fact work within the limits by analysing the structure of how you intend to use the Xero API

You can do more than one thing in a single request: For example, you can create more than one Invoice in a single PUT or POST Invoices API call. While there is no upper limit in the number of nodes that can be sent at one time, a ceiling of about 50 nodes per request is practical - this will ensure a request does not exceed the maximum size of 3.5MB. You should also review our notes on summarizing validation errors.

What if I need to retrieve large amounts of data from Xero?*

If you are hitting rate limits because you retrieve a large amount of data from Xero there are a couple of features you should be taking advantage of:

  • You can use pagination to retrieve line item details for 100 items (e.g. Invoices) at a time. Endpoints on the Accounting API that currently support pagination are invoicescontactsbank transactions and manual journals. All major endpoints on the Payroll, Files and Assets APIs also support paging.

  • Use the If-Modified-Since header to retrieve only what's changed since your previous request

What is the best way to handle rate limits on my side?*

If you exceed a rate limit you will receive a Retry-After http header that tells you how many seconds to wait before making another request.