# `Medplum.Request`
[🔗](https://github.com/CodeDuckers-LLC/medplum_elixir/blob/v0.3.0/lib/medplum/request.ex#L1)

Internal request layer that builds FHIR URLs, adds authentication, applies
default headers, and normalizes HTTP responses.

# `api_request`

```elixir
@spec api_request(Medplum.Client.t(), atom(), String.t(), keyword()) ::
  {:ok, map()} | {:error, Medplum.Error.t()}
```

Performs one request against a non-FHIR Medplum endpoint relative to `base_url`.

# `request`

```elixir
@spec request(Medplum.Client.t(), atom(), String.t(), keyword()) ::
  {:ok, map()} | {:error, Medplum.Error.t()}
```

Performs one authenticated request against the configured FHIR endpoint.

---

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