> ## Documentation Index
> Fetch the complete documentation index at: https://bytekit.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# HTTP client

> Overview of the ByteKit HTTP layer — requests, validation, schema adapters, and URL utilities.

## What this group covers

The HTTP modules handle everything between your application code and the network: typed requests, response validation, schema integration, and URL manipulation.

<CardGroup cols={2}>
  <Card title="ApiClient" icon="satellite-dish" href="/api-reference/api-client">
    Core HTTP client with interceptors, retries, circuit breaker, and typed responses.
  </Card>

  <Card title="ResponseValidator" icon="shield-check" href="/api-reference/response-validator">
    Framework-agnostic response validation against structural schemas.
  </Card>

  <Card title="Schema adapters" icon="plug" href="/api-reference/schema-adapters">
    Zod and Valibot adapters for response validation.
  </Card>

  <Card title="UrlHelper" icon="link" href="/api-reference/url-helper">
    URL parsing, building, query-string helpers, and slugification.
  </Card>
</CardGroup>

## Quick example

```ts theme={null}
import { ApiClient, zodAdapter } from "bytekit";
import { UrlHelper } from "bytekit/url-helper";
import { z } from "zod";

const api = new ApiClient({
  baseUrl: "https://api.example.com",
  timeoutMs: 10_000,
});

const UserSchema = z.object({ id: z.number(), name: z.string() });

// Typed + validated request
const user = await api.get("/users/1", {
  validateResponse: zodAdapter(UserSchema),
});

// Build a URL with query params
const url = UrlHelper.setQueryParams("/search", { q: "bytekit", page: "1" });
```

<Tip>
  Start with [ApiClient](/api-reference/api-client) for the full constructor config, methods, and error-handling reference.
</Tip>
