# `LLMProxy.HTTP.ErrorResponse`
[🔗](https://github.com/elixir-vibe/llm_proxy/blob/v0.3.1/lib/llm_proxy/http/error_response.ex#L1)

Renders sanitized public error envelopes for supported HTTP protocols.

Internal terms and exception details must be projected before this boundary.
This module accepts only stable message/code fields and chooses the native
Anthropic Messages envelope when the request path targets that API.

# `error_map`

```elixir
@type error_map() :: %{required(String.t()) =&gt; term()}
```

# `openai_error`

```elixir
@spec openai_error(pos_integer(), map()) :: error_map()
```

# `openai_error`

```elixir
@spec openai_error(pos_integer(), String.t(), term()) :: error_map()
```

# `put_retry_after`

Adds a normalized provider retry delay before response headers are sent.

# `safe_message`

```elixir
@spec safe_message(term(), String.t()) :: String.t()
```

# `send`

```elixir
@spec send(Plug.Conn.t(), pos_integer(), String.t(), term()) :: Plug.Conn.t()
```

# `send_anthropic`

```elixir
@spec send_anthropic(Plug.Conn.t(), pos_integer(), String.t(), term()) ::
  Plug.Conn.t()
```

# `send_concurrency_limit_openai`

```elixir
@spec send_concurrency_limit_openai(Plug.Conn.t()) :: Plug.Conn.t()
```

# `send_openai`

```elixir
@spec send_openai(Plug.Conn.t(), pos_integer(), map()) :: Plug.Conn.t()
```

# `send_openai`

```elixir
@spec send_openai(Plug.Conn.t(), pos_integer(), String.t(), term()) :: Plug.Conn.t()
```

---

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