# `Gemini.Client.HTTP`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/client/http.ex#L1)

HTTP client for both Gemini and Vertex AI APIs using Req.

Supports multiple authentication strategies for regular (non-streaming) HTTP requests.
For streaming requests, see `Gemini.Client.HTTPStreaming`.

## Rate Limiting

All requests are automatically routed through the rate limiter unless
`disable_rate_limiter: true` is passed in options. The rate limiter:

- Enforces concurrency limits per model
- Honors 429 RetryInfo delays from the API
- Retries transient failures with backoff
- Tracks token usage for budget estimation

See `Gemini.RateLimiter` for configuration options.

# `delete`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/client/http.ex#L54)

Make a DELETE request using the configured authentication.

# `get`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/client/http.ex#L30)

Make a GET request using the configured authentication.

# `patch`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/client/http.ex#L46)

Make a PATCH request using the configured authentication.

# `post`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/client/http.ex#L38)

Make a POST request using the configured authentication.

# `request`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/client/http.ex#L76)

Make an authenticated HTTP request.

## Options

In addition to standard request options, supports rate limiter options:

- `:disable_rate_limiter` - Bypass rate limiting (default: false)
- `:non_blocking` - Return immediately if rate limited (default: false)
- `:max_concurrency_per_model` - Override concurrency limit

---

*Consult [api-reference.md](api-reference.md) for complete listing*
