Tips and tricks
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_numberparameter set to
- The amount of available pages depends on the
per_pageparameter value and the total amount of data.
- The API response contains a
paginationfield, which in turn contains a
total_pageskey 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.
To deliver correct results, we introduced a
To access the next page, you must provide the
Its value is always present in the response from the previous request (previous page), more specifically, nested inside the
diff value returned in the response can be used for an hour, after which it will expire automatically.
To paginate profiles, you do not need
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
/profilesendpoint when the
updateparam is set to
- 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
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.
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.
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.
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.