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

# Chaves de API

> Criar, rotacionar e proteger v0x_live_

Chaves de API autenticam integrações **server-to-server**, ShareX e scripts CLI. Não usam sessão do dashboard.

<Info>
  **Base URL**

  ```
  https://api.v0x.lol/api/v1
  ```

  Desenvolvimento local: `http://localhost:8080/api/v1`

  Health check (sem prefixo `/api/v1`): `GET https://api.v0x.lol/health`

  Chaves de produção usam o prefixo `v0x_live_`.
</Info>

Tutorial visual: [Criar chave de API](/tutorials/api-key). Fluxo completo: [Primeira integração](/pages/guides/primeira-integracao).

<Danger>
  **API keys são credenciais secretas**

  Trate `v0x_live_...` como senha de banco de dados. Qualquer pessoa com a chave pode fazer upload e consumir sua quota de storage.

  **Nunca:**

  * commite no Git (`.env` no `.gitignore`)
  * coloque em código frontend (React, Vue, Svelte)
  * envie em apps mobile sem proxy backend
  * armazene em `localStorage`, `sessionStorage` ou cookies do browser
  * exponha em URLs, query strings ou repositórios públicos
</Danger>

## Arquitetura correta

```
Browser / App / ShareX
      ↓
Backend do cliente (seu servidor) — opcional para ShareX direto
      ↓  Authorization: Bearer v0x_live_...
v0x API
```

Para integrações web, o usuário final faz login via Google no dashboard. Scripts e ShareX usam API key server-side ou localmente no cliente desktop.

## Onde armazenar

| Ambiente                | Recomendação                                     |
| ----------------------- | ------------------------------------------------ |
| Servidor Node/Python/Go | `process.env.V0X_API_KEY` / `os.environ`         |
| Docker / K8s            | Secret do orchestrator                           |
| CI/CD                   | Secret do pipeline (GitHub Actions, etc.)        |
| ShareX                  | Campo `Authorization` no `.sxcu` (máquina local) |

Veja também: [Chaves de API](/pages/guides/authentication) · [Boas práticas](/pages/guides/boas-praticas)

## Formato

| Campo   | Valor                |
| ------- | -------------------- |
| Prefixo | `v0x_live_`          |
| Exemplo | `v0x_live_abc123...` |

O secret completo aparece **uma vez** na criação. O servidor armazena apenas o hash.

## Criar a chave

[Dashboard → API Keys](https://dash.v0x.lol/dashboard/api-keys)

```bash theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
export V0X_API_KEY=v0x_live_SUA_CHAVE
```

## Enviar na requisição

```bash theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
curl https://api.v0x.lol/api/v1/files \
  -H "Authorization: Bearer $V0X_API_KEY"
```

Em código backend:

```javascript theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
const apiKey = process.env.V0X_API_KEY;
```

```python theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
import os
api_key = os.environ["V0X_API_KEY"]
```

## Erros de autenticação

| Código         | HTTP | Causa                                      |
| -------------- | ---- | ------------------------------------------ |
| `unauthorized` | 401  | Header ausente, chave inválida ou revogada |

## Rotacionar chave

1. Crie nova chave no dashboard
2. Atualize variáveis de ambiente nos serviços
3. Teste upload + listagem
4. Revogue a chave antiga

## Boas práticas

* Uma chave por ambiente/serviço
* Nunca exponha em frontend ou repositórios
* Mascare em logs: `v0x_live_...abc1`
* Revogue chaves comprometidas imediatamente
