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

# Authenticate with the ReachOwl API

> Obtain a Bearer token from POST /api/v1/authenticate and pass it in the Authorization header on every subsequent ReachOwl API request.

ReachOwl uses Bearer token authentication. You exchange your email and password for a token once, then include that token in the Authorization header on every API request. This page shows the authentication request and how to use the token.

## Request a token

Send your credentials to the authenticate endpoint.

```bash theme={null}
curl -X POST https://api.reachowl.com/api/v1/authenticate \
  -H "Content-Type: application/json" \
  -d '{
    "email": "your-email@example.com",
    "password": "your-secure-password"
  }'
```

## Token response

The API responds with a token string you must store securely.

```json theme={null}
{
  "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
}
```

## Use the token

After you have the token, include it in the Authorization header on every request.

```bash theme={null}
curl -X GET https://api.reachowl.com/api/v1/campaigns \
  -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
```

<Note>
  The token does not expire automatically. Store it securely, rotate it if you suspect exposure, and never expose it in client-side code or public repositories.
</Note>

ReachOwl uses Bearer token authentication. You exchange your email and password for a token once, then include that token in the Authorization header on every API request. This page shows the authentication request and how to use the token.

## Request a token

Send your credentials to the authenticate endpoint.

```bash theme={null}
curl -X POST https://api.reachowl.com/api/v1/authenticate \
  -H "Content-Type: application/json" \
  -d '{
    "email": "your-email@example.com",
    "password": "your-secure-password"
  }'
```

## Token response

The API responds with a token string you must store securely.

```json theme={null}
{
  "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
}
```

## Use the token

After you have the token, include it in the Authorization header on every request.

```bash theme={null}
curl -X GET https://api.reachowl.com/api/v1/campaigns \
  -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
```

<Note>
  The token does not expire automatically. Store it securely, rotate it if you suspect exposure, and never expose it in client-side code or public repositories.
</Note>
