How Can We Help?
API Performances Issues - How to optimize ItAPI Performances Issues - How to optimize It
If you are integrating Pure with other systems and pulling out data using the APIs in Pure, you may run in to performance issues. This article will give an overview of examples and provide ideas for solutions.
Some typical examples:
- It takes a long time to export the data from Pure.
- Queries to the web service end in time-outs.
- If queries end in timeouts, returned records are incomplete.
- It is not possible to fetch a delta (see below), resulting in a necessary full harvest.
- Trying to fetch all entities in one call fails.
Performance of the Pure API and read-only web services performance depends on various aspects:
- The quantity of data that is requested per call.
- Whether or not the web-service is queried in parallel.
- The hardware allocated to the Pure system.
- Very large total amount of data. E.g. 19.000 persons in total might take around 5 ms per person, but it adds up.
- Jobs running in Pure while querying the APIs.
- Other applications querying the APIs.
The resources allocated to the systems hosting Pure admin and APIs are finite. Aggressive resource use from jobs or API usage will impact user experience inside Pure as well as API performance.
Resolution
Here are a few things to consider to improve performance.
- Run jobs and resource intensive API calls outside of normal business hours. Spread jobs out over time, such that they can all complete outside normal business hours and have minimum overlap with each other.
- Do not harvest all information in Pure repeatedly. Once the first full harvest is done, use the changes endpoint to get delta changes after that. See Harvesting content from the Pure web services (changes). (NOTE: At the time of this writing, only the read-only web service has a changes API)
- Use windowing functionality when making API requests. Asking for e.g. 10.000 pieces of content in one call can lead to network issues, and the overhead to fetching in windows of e.g. 10, 20 or 100 is negligible.
- Limit the number of API calls per time unit. Instead of making 100 calls in parallel in 1 second, make 1 call per second in 100 seconds. If you cannot control the behaviour of the clients, this can be enforced with API throttling (Elsevier can help with this).
- Be sure to instruct people making clients for your APIs how to “behave” when using it. Using the APIs is tapping into a shared resource.
If you keep running into performance issues even after following these instructions you may:
- be using methods in a way they were not intended.
- need a hardware upgrade.
- have found a software performance bug.
In all these cases, you can reach out to Pure Support for assistance.
Published at May 06, 2025