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:
X-Algolia-UserTokenfor API key rate limiting purposes.
X-Algolia-UserTokenfor 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.
X-Forwarded-Forfor 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-Forwarded-Forfor 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
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
1 2 3 4 5 6 $index = $client->initIndex('indexName'); $res = $index->search('query string', [ // Set the readTimeout to 20 seconds 'readTimeout' => 20 ]);
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.