> For the complete documentation index, see [llms.txt](https://kohttp.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kohttp.gitbook.io/docs/core/customisation.md).

# Customisation

## `defaultClientPool` customization

Kohttp provides a `defaultClientPool` to have a single endpoint for your http request.

## Fork `HttpClient` for specific tasks

Forked client uses **exactly the same** connection pool and dispatcher. However, it will custom parameters like custom `timeout`s, additional `interceptor`s or others.

In this example below `patientClient` will share `ConnectionPool` with `defaultHttpClient`, however `patientClient` requests will have custom read timeout.

```kotlin
val patientClient = defaultHttpClient.fork {   
    readTimeout = 100_000 
}
```

## Run HTTP methods on custom client

If `defaultClientPool` or forked client does not suit you for some reason, it is possible to create your own one.

```kotlin
// a new client with custom dispatcher, connection pool and ping interval
val customClient = client {
    dispatcher = ...
    connectionPool = ConnectionPool( ... )
    pingInterval = 1_000
    sslConfig = SslConfig().apply {
        sslSocketFactory = ...
        trustManager = ...
        hostnameVerifier = ...
        certificatePinner = ...
        followSslRedirects = ...
    }
}
```
