🎉 Try the public beta of the new docs site at algolia.com/doc-beta! 🎉
API client / Getting started / Customize

Customize your Scala client

You can customize the behavior of the API clients by creating a custom configuration This lets you change timeouts, or add HTTP headers.

To modify all requests made with a client, create a custom configuration. To modify individual requests, pass custom request options.

Add HTTP headers to every request

Adding HTTP headers to your configuration allow you to set parameters for every request, for example, a user identifier or an IP address. This can be useful for analytics, geographic searches, or to implement API key rate limits.

For an overview of available HTTP headers, see Add HTTP headers to your requests

1
2
3
4
5
6
7
val client = new AlgoliaClient(
  "YourApplicationID",
  "YourWriteAPIKey",
  customHeader = Map(
    "NAME-OF-HEADER" -> "value-of-header"
  )
)

Change timeouts for all requests

Network connections and DNS resolution can be slow. That’s why the API clients come with default timeouts.

You shouldn’t change the default timeouts, unless you have a good reason.

1
2
3
4
5
6
7
8
val configuration = AlgoliaClientConfiguration(
  httpConnectTimeoutMs = 2 * 1000, // connection timeout in milliseconds
  httpReadTimeoutMs = 2 * 1000, // read timeout in milliseconds
  httpRequestTimeoutMs = 2 * 1000, // write timeout in milliseconds
  dnsTimeoutMs = 2 * 100, // DNS connection timeout in milliseconds
  hostDownTimeoutMs = 5 * 60 * 1000 // delay before retrying a host we know was down, in milliseconds
)
new AlgoliaClient(applicationId, apiKey, configuration = configuration)
Did you find this page helpful?