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

# Autenticação

> A API de entrega é autenticada por uma chave de API de conteúdo, por marca.

Toda chamada à API de entrega (`/cd`) é autenticada por uma **chave de API de conteúdo**, única
por marca. A chave identifica a marca e libera a leitura do seu conteúdo publicado.

## Onde pegar a chave

No painel da citou: **sua marca → Configurações → Chave de API de conteúdo**. Você pode
**regenerar** a chave a qualquer momento (isso invalida a anterior).

<Warning>
  A chave é um **segredo de leitura**. Ela só expõe o conteúdo **publicado** da marca — nunca
  rascunhos. Ainda assim, evite versioná-la no seu repositório: use uma variável de ambiente
  (ex.: `CITOU_KEY`).
</Warning>

## Como enviar a chave

Há duas formas equivalentes:

<CodeGroup>
  ```bash Query string (?key=) theme={null}
  # Ideal no cliente/navegador (requisição simples, sem preflight)
  curl "https://api.citou.me/cd/content?key=SUA_CHAVE"
  ```

  ```bash Header (x-api-key) theme={null}
  # Ideal no servidor / tempo de build
  curl "https://api.citou.me/cd/content" -H "x-api-key: SUA_CHAVE"
  ```
</CodeGroup>

```js JavaScript theme={null}
const base = "https://api.citou.me";
const key = process.env.CITOU_KEY;

// via header (recomendado no servidor)
const res = await fetch(`${base}/cd/content`, {
  headers: { "x-api-key": key },
});
const items = await res.json();
```

## CORS

Os endpoints de leitura respondem com `Access-Control-Allow-Origin: *`, então você pode chamá-los
direto do navegador. Para o envio de formulários (`POST /cd/forms/:formKey`), o preflight também é
liberado — veja [Formulários](/api/formularios).

## Respostas de erro

<ResponseField name="401" type="Unauthorized">
  Chave ausente ou inválida.
</ResponseField>

<ResponseField name="404" type="Not Found">
  Recurso inexistente (ex.: slug não publicado).
</ResponseField>
