Skip to content

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 to 1 (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 a total_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 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.

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:

  1. 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.
  2. You do not pay for the same request (same combination of parameters) in the next 24 hours. This applies for both endpoints.
  3. If you make a request with slightly modified parameters and it returns overlapping results with a previous response, you will be charged.
  4. You will always get charged for requests made to the /profiles endpoint when the update param is set to True.
  5. 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.

Profile discovery

  • The success of profile discovery depends on a myriad of factors, one being the quality of the data from the various sites we support. We are continuing to work hard to make sure that even when the quality of data is poor, we provide the best profile discovery rates possible.
  • To get the best balance of accuracy and precision, it may be important to test multiple variations of params to get the results you need. As a rule of thumb, accuracy increases the more fine grained the inputs are, but the higher the chance that profile discovery will be low.

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. Please note that the zip code for example is very strict and a wrong zipcode may result in no results being found.

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.