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

# Autenticação na API

> Como autenticar requisições na API pública

A API pública do Triglit usa **chaves de API** para autenticação. O tenant é automaticamente identificado a partir da chave utilizada.

<Card title="Guia Completo de Autenticação" icon="key" href="/authentication">
  Veja o guia completo com exemplos e boas práticas
</Card>

## Resumo Rápido

### Header Obrigatório

Todas as requisições devem incluir:

```
X-API-Key: pk_sua_chave_aqui
```

### Tipos de Chaves

* **`pk_...`**: Chave pública (frontend)
* **`sk_...`**: Chave secreta (backend)

### Identificação do Tenant

O tenant é **automaticamente identificado** a partir da chave. Você não precisa enviar `X-Tenant-Id`.

## Exemplo

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://api.triglit.com/v1/gateway/workflows" \
    -H "X-API-Key: pk_sua_chave_aqui"
  ```

  ```javascript JavaScript theme={null}
  import Triglit from 'triglit';

  const client = new Triglit({ apiKey: 'pk_sua_chave_aqui' });
  const workflows = await client.workflows.list();
  ```

  ```python Python theme={null}
  import requests

  headers = {
      'X-API-Key': 'pk_sua_chave_aqui'
  }

  response = requests.get(
      'https://api.triglit.com/v1/gateway/workflows',
      headers=headers
  )
  ```
</CodeGroup>

## Erros Comuns

### 401 Unauthorized

Chave não fornecida ou inválida:

```json theme={null}
{
  "statusCode": 401,
  "message": "API key não fornecida. Forneça a chave no header 'X-API-Key'."
}
```

### 403 Forbidden

Tipo de chave não permitido:

```json theme={null}
{
  "statusCode": 403,
  "message": "Tipo de chave não permitido. Este endpoint aceita apenas: secret key (sk_)."
}
```

<Note>
  Para detalhes completos sobre autenticação, incluindo rate limiting, rotação de chaves e boas práticas, veja o [guia completo de autenticação](/authentication).
</Note>
