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

# Primeira chamada

> Do health à primeira leitura autenticada, em menos de um minuto.

## 1. Verifique se a API responde

```bash theme={null}
curl https://api.weve.cx/health
```

```json theme={null}
{
  "status": "ok",
  "database": { "status": "up" },
  "cache": { "status": "up" }
}
```

O `status` de cima é sempre `ok` quando a API responde — o que degrada é cada dependência, no
próprio bloco. Um `cache` em `down` não impede a API de servir: o cache acelera, não é
requisito.

## 2. Abra uma sessão

A credencial de quem administra é a da própria API: e-mail e senha, com o e-mail confirmado
pelo link da caixa de entrada. Entrar devolve um token opaco — é ele que vai no
`Authorization` de tudo o que vem depois.

```bash theme={null}
curl https://api.weve.cx/v1/auth/admin/sign-in \
  -H "Content-Type: application/json" \
  -d '{"email":"voce@exemplo.com","password":"…"}'
```

```json theme={null}
{
  "data": {
    "token": "…",
    "expires_at": "2026-10-10T12:00:00Z",
    "user": {
      "id": "…",
      "name": "…",
      "email": "voce@exemplo.com",
      "verified": true
    }
  }
}
```

O token só aparece nesta resposta: do lado da API fica o hash dele. O dashboard o guarda em
cookie httpOnly e nunca o entrega ao browser.

## 3. Descubra quem você é — e os seus clubs

```bash theme={null}
curl https://api.weve.cx/v1/me \
  -H "Authorization: Bearer $TOKEN"
```

```json theme={null}
{
  "data": {
    "id": "…",
    "name": "…",
    "email": "voce@exemplo.com",
    "verified": true,
    "organizations": [
      {
        "organization_id": "5a4f2c56-…",
        "name": "Meu Club",
        "slug": "meu-club-k7pq",
        "role": "owner"
      }
    ]
  }
}
```

Cada `organization_id` é um club a que a sessão pertence, e é o valor que vai no caminho das
rotas escopadas. A lista vem vazia para quem ainda não criou nem foi convidado para nenhum —
`POST /v1/clubs` cria o primeiro.

## 4. Leia o club

```bash theme={null}
curl "https://api.weve.cx/v1/clubs/5a4f2c56-…" \
  -H "Authorization: Bearer $TOKEN"
```

Pedir um club a que a sessão não pertence responde `403` com o código `organization_scope` —
a API compara o caminho com a associação da pessoa, não com o que o cliente afirma. Um club
que não existe responde igual.

<Card title="Referência completa" icon="code" href="/api-reference">
  Todos os endpoints, com os campos e os códigos de erro de cada um.
</Card>


## Related topics

- [Weve DRM](/essentials/watermark.md)
- [Limites de uso](/essentials/rate-limits.md)
- [Paginação](/essentials/pagination.md)
- [Listar conexões](/api-reference/webhooks/connections-list.md)
- [Baixa um material carimbado](/api-reference/classroom/lesson-file.md)
