Tips and tricks
Pagination
To provide the best experience, we decided to split our results into pages. This will avoid transferring massive amounts of data in a single API call.
- Always start requesting data with the
page_number
parameter set to1
(default value). - The amount of available pages depends on the
per_page
parameter value and the total amount of data. - The API response contains a
pagination
field, which in turn contains atotal_pages
key with the total amount of available pages. - Make sure to stop paginating once the page limit is hit.
We do not charge for pagination requests.
Paginating reviews
To deliver correct results, we introduced a diff
parameter.
To access the next page, you must provide the diff
parameter.
Its value is always present in the response from the previous request (previous page), more specifically, nested inside the pagination
field.
The
diff
value returned in the response can be used for an hour, after which it will expire automatically.
Paginating profiles
To paginate profiles, you do not need diff
parameter.
The review profiles are grouped by location. The per_page
parameter tells us, how many
locations would you like to retrieve in one page. Please note, that one location can
contain up to 8 review profiles.
Credits and pricing
Your plan includes a set amount of credits which you can use to make requests to Review Index API. Every time you make a request, you'll get a certain amount of credits deducted, which we calculate according to these rules:
- You pay for the amount of profiles returned to you, regardless of which params you used to filter your results. For example: 10 profiles returned is equal to 10 credits.
- Subsequent pagination requests are not charged.
- You do not pay for the same request (same combination of parameters) in the next 24 hours. This applies for both endpoints.
- If you make a request with slightly modified parameters and it returns overlapping results with a previous response, you will be charged.
- You will always get charged for requests made to
/reviews
or/profiles
endpoint when theupdate
param is set toTrue
. - If a request is not successful, you will be charged 1 credit for it if it failed because "no results were found". Other types of errors will not be charged.
- You will never be charged for "Unexpected errors" (usually related to application errors).
Update and callback functionality
If you need to get the latest data, we need the time to fetch them. Whenever you request an update on the data, we enqueue this job for processing. Depending on the number of profiles to update, this might take seconds to several minutes. We hit your callback URL once we have data ready for you. You can expect the first page of the data when it is prepared.
If you do not wish to receive the latest data and are happy with what we have available,
you can skip the update
parameter.
We POST payload to the given callback URL. The payload follows the JSON response structure for the data you initially requested. Please see the documentation of each endpoint to see the JSON response structure.
Rate Limiting
We have implemented a couple of rate limiting rules that help us provide a consistent and reliable experience to all our users.
We take into account two factors: time and concurrency, the former is based on requests made in a window of time, while the latter is related to the total number of tasks that are being processed in the background.
- Time: we allow up to 10 requests/second. This applies to all our users.
- Concurrency: we allow up to 100 simultaneous tasks. This does not apply to users that have their own, dedicated queues.
Company locations
For location based businesses we provide location based search. You can narrow your results down by requesting a specific country, state, zip code, city or street for the company requested.
Request ID
To keep track of existing jobs and be able to debug them, we provide a unique identifier for every request you submit. You can use this ID to refer to your request.