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

# Authentication

> Use a Bearer API key to authenticate every request.

All requests require an API key passed as a Bearer token:

```bash theme={null}
Authorization: Bearer jcr_your_api_key_here
```

## Getting an API key

You can obtain a key two ways:

### 1. From the dashboard (permanent key)

Sign in at [juicer.io](https://www.juicer.io/feeds) and create a key on the **Developer** page. Dashboard-issued keys never expire and are the right choice for long-running production integrations.

### 2. Programmatically via `POST /v1/authorize` (temporary key)

For CLI tools, AI agents, and one-off scripts, you can request a key with just an email address — no dashboard or prior signup needed.

```bash theme={null}
curl -X POST https://api.juicer.io/v1/authorize \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com", "client_name": "My Tool"}'
```

There are two outcomes:

* **New email** — returns an `api_key` immediately. Valid for 2 hours pre-confirmation, extended to 12 hours once the user confirms the email.
* **Existing confirmed user** — returns an `authorization_url` (the user opens it in a browser to approve the request) plus a `poll_url` you GET until the key is issued.

Every key issued through `/authorize` is time-bounded. For a permanent key, generate one from the dashboard.

<Note>
  Issuing a new session key never revokes existing keys. Permanent and session
  keys coexist on the same account.
</Note>

## Key format

API keys are prefixed with `jcr_`. Treat them as secrets — never embed them in client-side code.

## Rate limits

Rate limits depend on whether the key is pre-confirmation, confirmed-session, or permanent. Pre-confirmation keys are limited to 60 requests/hour; confirmed and permanent keys to 300 requests/hour with a 60/minute burst by default. Higher limits are available on paid plans.

When you exceed the limit, the API returns `429 Too Many Requests`.
