API Reference / API Methods / Request options

Request options

When using search, indexing, and settings API client methods, you can include extra options with your request. The requestOptions parameter lets you specify a list of options to send along with the request, such as HTTP headers, timeout settings, and more.

Add HTTP headers

You can use requestOptions to pass additional HTTP headers to your request.

Here are some headers with different use cases:

  • Setting X-Algolia-UserToken for API key rate limiting purposes.
  • Setting X-Algolia-UserToken for analytics purposes. The Analytics API uses the provided value to distinguish between end users. It takes priority over any value in X-Forwarded-For. Use this header if you need to forward the end user’s identity without relying on IP addresses.
  • Setting X-Forwarded-For for analytics purposes. If your server sends the end-user’s IP along with every search, this lets analytics distinguish between end-users. Otherwise, the analytics uses the server’s IP address, which doesn’t provide the detail of each user. Alternatively, see X-Algolia-UserToken below.
  • Setting X-Forwarded-For for geo purposes. This ensures that the geo search location uses the IP address of the end-user, and not that of your back-end server. For an example of this, see the aroundLatLngViaIP parameter.
1
2
3
4
5
$index = $client->initIndex('indexName');

$res = $index->search('query string', [
  'X-Algolia-UserToken' => 'user123'
]);

Override request timeouts

While you can configure timeouts when instantiating your client, you can override these, or the client’s default timeouts using requestOptions.

1
2
3
4
5
6
$index = $client->initIndex('indexName');

$res = $index->search('query string', [
  // Set the readTimeout to 20 seconds
  'readTimeout' => 20
]);

Additional options

Some methods allow you to provide further configurations via the requestOptions parameter. You can find additional, method-specific requestOptions in the Parameters section of each method’s reference.

Did you find this page helpful?