# req v0.8.0-rc.0 - Table of Contents

## Pages

- [Req](readme.md)
- [CHANGELOG](changelog.md)

## Modules

- [Req](Req.md): The high-level API.
- [Req.Request](Req.Request.md): The low-level API and the request struct.
- [Req.Response](Req.Response.md): The response struct.
- [Req.Response.Async](Req.Response.Async.md): Asynchronous response body.
- [Req.Test](Req.Test.md): Req testing conveniences.

- Steps
  - [Req.Auth](Req.Auth.md): Sets request authentication.
  - [Req.Checksum](Req.Checksum.md): Verifies the response body against the expected checksum.
  - [Req.Decode](Req.Decode.md): Decodes response body based on the detected format.
  - [Req.Decompress](Req.Decompress.md): Asks the server to return compressed response.
  - [Req.Expect](Req.Expect.md): Expect that response matches the given status.
  - [Req.Redirect](Req.Redirect.md): Follows redirects.
  - [Req.Retry](Req.Retry.md): Retries a request on errors.
  - [Req.Steps](Req.Steps.md): A collection of built-in steps.

- Adapters
  - [Req.Adapter](Req.Adapter.md): The adapter contract.
  - [Req.Finch](Req.Finch.md): Runs the request using `Finch`.
  - [Req.Plug](Req.Plug.md): Runs the request against a plug instead of over the network.

- Formats
  - [Req.Brotli](Req.Brotli.md): [Brotli] decoding using [`:brotli`] package.
  - [Req.CSV](Req.CSV.md): CSV decoding using [nimble_csv].
  - [Req.Gzip](Req.Gzip.md): [gzip] decoding using [`:zlib`].
  - [Req.JSON](Req.JSON.md): JSON decoding using Elixir's `JSON` module.
  - [Req.NDJSON](Req.NDJSON.md): [NDJSON] decoding.
  - [Req.SSE](Req.SSE.md): [Server-sent events][SSE] decoding using `ServerSentEvents`.
  - [Req.Tar](Req.Tar.md): Tar archive decoding using [`:erl_tar`].
  - [Req.ZIP](Req.ZIP.md): ZIP archive decoding using [`:zip`].
  - [Req.Zstd](Req.Zstd.md): [Zstandard] decoding using [`:zstd`].

- Exceptions
  - [Req.ArchiveError](Req.ArchiveError.md): Represents an error when unpacking archives fails, returned by the archive decoders.
See `Req.Decode`.

  - [Req.ChecksumMismatchError](Req.ChecksumMismatchError.md): Represents a checksum mismatch error, returned when the response body does not match
the `:checksum` option. See `Req.Checksum`.

  - [Req.DecompressError](Req.DecompressError.md): Represents an error when decompression fails.

  - [Req.HTTPError](Req.HTTPError.md): Represents an HTTP protocol error.
  - [Req.Test.OwnershipError](Req.Test.OwnershipError.md)
  - [Req.TooManyRedirectsError](Req.TooManyRedirectsError.md): Represents an error when too many redirects occurred, returned by the `Req.Redirect` step.

  - [Req.TransportError](Req.TransportError.md): Represents an error with the transport used by an HTTP connection.
  - [Req.UnexpectedStatusError](Req.UnexpectedStatusError.md): An exception returned by `Req.Expect` when response has unexpected status.

