Rate limits and authentication
The API is limited to 100,000 calls per day. If you need more, simply drop us a line at [email protected]. There is a burst rate limit of 10 requests per second. So calling multiple requests at the same time could lead to errors with code 429.
If you're calling the API with a list of IDs, using the OR syntax will save a lot of time and likely reduce any 429 errors. Check out our tutorial on how to do that with DOIs.
The OpenAlex API doesn't require authentication. However, it is helpful for us to know who's behind each API call, for two reasons:
- It allows us to get in touch with the user if something's gone wrong--for instance, their script has run amok and we've needed to start blocking or throttling their usage.
- It lets us report back to our funders, which helps us keep the lights on.
Like Crossref (whose approach we are shamelessly stealing), we prefer carrots to sticks for this. So, depending on your preferences, you'll be in one of two API pools:
The polite pool has much faster and more consistent response times. It's a good place to be.
To get into the polite pool, you just have to give us an email where we can contact you. You can give us this email in one of two ways:
- Add the
[email protected]
parameter in your API request, like this: https://api.openalex.org/[email protected] - Add
mailto:[email protected]
somewhere in your User-Agent request header.
The common pool has slower and less consistent response times. It's a less good place to be. We encourage everyone to get in the polite pool
😇
👍
Because the API is all GET requests without fancy authentication, you can view any request in your browser. This is a very useful and pleasant way to explore the API and debug scripts; we use it all the time.
However, this is much nicer if you install an extension to pretty-print the JSON; JSONVue (Chrome) and JSONView (Firefox) are popular, free choices. Here's what an API response looks like with one of these extensions enabled:

A lot prettier than cURL