# API: membros da equipe, funções e tokens de acesso

_API · Leitura de 6 min · Atualizado 2026-10-22 · https://lanachat.ai/guides/pt/api-team/_

Sua **equipe** é o grupo de pessoas que trabalham no workspace. Cada **membro** tem uma **função** (padrão ou personalizada) que define o que ele pode fazer, as criadoras em que trabalha e uma chave de acesso pessoal para entrar. **Tokens de acesso** são as chaves da API e da conexão MCP. Todos esses endpoints precisam de um token de **owner**: nos exemplos, `$LANACHAT_TOKEN` contém um.

## Endpoints

| Method | Path | Description | Permission | Status |
|---|---|---|---|---|
| GET | `/members` | Listar membros (`status=active,disabled`, `role_id=`, `q=`) | `owner` | Planned |
| POST | `/members` | Adicionar um membro com função e criadoras | `owner` | Planned |
| GET | `/members/{id}` | Um membro, última atividade e sobrescritas | `owner` | Planned |
| PATCH | `/members/{id}` | Alterar função, criadoras, sobrescritas; desabilitar ou habilitar | `owner` | Planned |
| DELETE | `/members/{id}` | Excluir um membro (suas mensagens antigas mantêm o nome) | `owner` | Planned |
| POST | `/members/{id}/access-key` | Criar uma chave de acesso pessoal (mostrada uma vez) | `owner` | Planned |
| POST | `/members/{id}/invitation` | Enviar por e-mail uma chave de acesso ao membro | `owner` | Planned |
| DELETE | `/members/{id}/access-key` | Revogar a chave do membro: ele é desconectado | `owner` | Planned |
| GET | `/roles` | Funções padrão e personalizadas com sua tabela de permissões | `owner` | Planned |
| POST | `/roles` | Criar uma função personalizada | `owner` | Planned |
| PATCH | `/roles/{id}` | Renomear uma função ou alterar suas permissões | `owner` | Planned |
| DELETE | `/roles/{id}` | Excluir uma função personalizada que nenhum membro tenha | `owner` | Planned |
| GET | `/tokens` | Tokens de acesso API e MCP (`include_revoked=true`) | `owner` | Planned |
| POST | `/tokens` | Criar um token com suas permissões (mostrado uma vez) | `owner` | Planned |
| PATCH | `/tokens/{id}` | Renomear um token ou alterar suas permissões | `owner` | Planned |
| POST | `/tokens/{id}/rotate` | Substituir o segredo; o antigo para imediatamente | `owner` | Planned |
| DELETE | `/tokens/{id}` | Revogar um token | `owner` | Planned |

## O objeto membro

```json
{
  "id": "mem_4",
  "name": "Ana",
  "email": "ana@mia-agency.com",
  "status": "active",
  "role_id": "role_chatter",
  "creator_ids": ["cr_lea", "cr_mia"],
  "overrides": { "billing.read": false, "fans.export": true },
  "access_key": { "active": true, "created_at": "2026-09-20T09:00:00Z" },
  "last_active_at": "2026-10-06T13:40:00Z"
}
```

| Field | Type | Description |
|---|---|---|
| `id` | string | Começa com `mem_` |
| `name` | string | Nome no Console |
| `email` | string ou null | Para onde o convite é enviado |
| `status` | string | `active` ou `disabled` |
| `role_id` | string | Função do membro |
| `creator_ids` | array de strings | As criadoras em que trabalha |
| `overrides` | object | Permissões definidas só para este membro, além da função |
| `access_key` | object | Se tem uma chave de acesso pessoal `active` e desde quando; nunca a chave em si |
| `last_active_at` | string ou null | Última atividade |

Um membro desabilitado não pode entrar e mantém seu histórico, função e criadoras.

## O objeto função

```json
{
  "id": "role_chatter",
  "name": "Chatter",
  "builtin": true,
  "permissions": { "live.read": true, "live.reply": true, "fans.read": true, "fans.export": false, "billing.read": false },
  "members": 6
}
```

| Field | Type | Description |
|---|---|---|
| `id` | string | A função |
| `name` | string | Nome da função |
| `builtin` | boolean | `true` para Owner, Manager e Chatter |
| `permissions` | object | Uma chave por linha da tabela de permissões, `true` ou `false` |
| `members` | integer | Quantos membros a possuem |

As chaves de permissão seguem as linhas da tabela em **Team Management › Roles**, agrupadas por área: Dashboard, Creators, AI Brain, Conversations, Vault, Scripts, Playground, Telegram e Employees. **Owner** sempre tem todas as permissões e não pode ser editado. **Manager** e **Chatter** são padrões: você pode alterar suas permissões, mas não renomear ou excluir.

## O objeto token de acesso

```json
{
  "id": "tok_31",
  "name": "Reporting script",
  "permissions": ["can_fan_read", "can_sales_read"],
  "status": "active",
  "created_at": "2026-10-06T15:10:00Z",
  "expires_at": "2027-01-04T15:10:00Z"
}
```

| Field | Type | Description |
|---|---|---|
| `id` | string | Começa com `tok_` |
| `name` | string | Até 100 caracteres, obrigatório |
| `permissions` | array de strings | As [permissões](https://lanachat.ai/guides/pt/api-overview/) que possui |
| `status` | string | Ativo, expirado ou revogado |
| `created_at`, `expires_at` | string | ISO 8601, UTC |
| `token` | string | O segredo, só na resposta que cria ou rotaciona |

## Membros

### Listar membros

`GET /members` · `owner`

| Parameter | Type | Required | Description |
|---|---|---|---|
| `status` | string | Não | `active` ou `disabled`; ambos separados por vírgula |
| `role_id` | string | Não | Apenas membros com essa função |
| `q` | string | Não | Parte do nome |
| `limit`, `cursor` | number, string | Não | [Paginação](https://lanachat.ai/guides/pt/api-overview/) |

```bash
curl "https://api.lanachat.ai/v1/members?status=active&role_id=role_chatter" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

```json
{
  "data": [
    { "id": "mem_4", "name": "Ana", "email": "ana@mia-agency.com", "status": "active", "role_id": "role_chatter", "creator_ids": ["cr_lea", "cr_mia"], "overrides": {}, "access_key": { "active": true, "created_at": "2026-09-20T09:00:00Z" }, "last_active_at": "2026-10-06T13:40:00Z" }
  ],
  "next_cursor": null
}
```

### Adicionar um membro

`POST /members` · `owner`

| Parameter | Type | Required | Description |
|---|---|---|---|
| `name` | string | Sim | Nome do membro |
| `email` | string | Não | Necessário para enviar convite |
| `role_id` | string | Sim | Função padrão ou personalizada |
| `creator_ids` | array de strings | Não | Criadoras em que trabalha |

```bash
curl -X POST https://api.lanachat.ai/v1/members \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"name": "Ana", "email": "ana@mia-agency.com", "role_id": "role_chatter", "creator_ids": ["cr_lea"]}'
```

A resposta é o novo membro (`201`), ativo, sem chave de acesso ainda.

### Obter um membro

`GET /members/{id}` · `owner`

```bash
curl https://api.lanachat.ai/v1/members/mem_4 \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

A resposta é o objeto membro. Um id desconhecido responde `404`.

### Atualizar um membro

`PATCH /members/{id}` · `owner`

| Parameter | Type | Required | Description |
|---|---|---|---|
| `role_id` | string | Não | Nova função |
| `creator_ids` | array de strings | Não | Substitui a lista de criadoras |
| `overrides` | object | Não | Permissões só para este membro |
| `status` | string | Não | `active` ou `disabled` |

```bash
curl -X PATCH https://api.lanachat.ai/v1/members/mem_4 \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"creator_ids": ["cr_lea", "cr_mia"], "overrides": {"fans.export": true}}'
```

A resposta é o membro atualizado. `status: "disabled"` corta o acesso imediatamente; função e criadoras são mantidas.

### Excluir um membro

`DELETE /members/{id}` · `owner`

```bash
curl -X DELETE https://api.lanachat.ai/v1/members/mem_4 \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

O membro é removido e suas criadoras são desassociadas. As mensagens antigas mantêm o nome dele. Para manter o membro para depois, desabilite-o em vez de excluir.

## Chaves de acesso pessoais

Membros da equipe não usam senha: entram com uma chave de acesso pessoal. As chaves começam com `emp_`.

### Criar uma chave de acesso

`POST /members/{id}/access-key` · `owner`

```bash
curl -X POST https://api.lanachat.ai/v1/members/mem_4/access-key \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"
```

```json
{ "member_id": "mem_4", "sign_in_url": "https://app.lanachat.ai/login/?mode=employee", "access_key": "emp_6Yq2…", "shown_once": true }
```

Envie o endereço de login e a chave para a pessoa por um canal confiável. Um membro desabilitado responde `409`: habilite-o primeiro.

### Enviar por e-mail uma chave de acesso

`POST /members/{id}/invitation` · `owner`

```bash
curl -X POST https://api.lanachat.ai/v1/members/mem_4/invitation \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"
```

A chave é enviada para o e-mail cadastrado. Um membro sem e-mail ou desabilitado responde `409`.

### Revogar uma chave de acesso

`DELETE /members/{id}/access-key` · `owner`

```bash
curl -X DELETE https://api.lanachat.ai/v1/members/mem_4/access-key \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

A chave para imediatamente e o membro é desconectado. Crie uma nova chave para permitir o acesso novamente.

## Funções

### Listar funções

`GET /roles` · `owner`

```bash
curl https://api.lanachat.ai/v1/roles \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

Uma lista de objetos função: Owner, Manager, Chatter e suas funções personalizadas.

### Criar uma função personalizada

`POST /roles` · `owner`

| Parameter | Type | Required | Description |
|---|---|---|---|
| `name` | string | Sim | Nome da função |
| `permissions` | object | Não | Linhas para ativar; as outras ficam desativadas |

```bash
curl -X POST https://api.lanachat.ai/v1/roles \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"name": "Night chatter", "permissions": {"live.read": true, "live.reply": true, "fans.read": true}}'
```

A resposta é a nova função (`201`) com `builtin: false`.

### Atualizar uma função

`PATCH /roles/{id}` · `owner`

| Parameter | Type | Required | Description |
|---|---|---|---|
| `name` | string | Não | Novo nome (só funções personalizadas) |
| `permissions` | object | Não | Linhas para alterar; as outras são mantidas |

```bash
curl -X PATCH https://api.lanachat.ai/v1/roles/role_chatter \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"permissions": {"fans.export": false}}'
```

A alteração vale para todos os membros com essa função, exceto suas próprias sobrescritas. Editar Owner, ou renomear Manager ou Chatter, responde `409`.

### Excluir uma função personalizada

`DELETE /roles/{id}` · `owner`

```bash
curl -X DELETE https://api.lanachat.ai/v1/roles/role_night \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

Excluir uma função que membros ainda têm responde `409`: atribua outra função antes. Funções padrão não podem ser excluídas.

## Tokens de acesso

### Listar tokens

`GET /tokens` · `owner`

| Parameter | Type | Required | Description |
|---|---|---|---|
| `include_revoked` | boolean | Não | `true` também lista tokens revogados |

```bash
curl "https://api.lanachat.ai/v1/tokens?include_revoked=true" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

Uma lista de objetos token de acesso, sem seus segredos.

### Criar um token

`POST /tokens` · `owner`

| Parameter | Type | Required | Description |
|---|---|---|---|
| `name` | string | Sim | Para que serve, até 100 caracteres |
| `permissions` | array de strings | Sim | As [permissões](https://lanachat.ai/guides/pt/api-overview/) que terá |
| `expires_in_days` | integer | Não | Quando expira |

```bash
curl -X POST https://api.lanachat.ai/v1/tokens \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"name": "Reporting script", "permissions": ["can_fan_read", "can_sales_read"], "expires_in_days": 90}'
```

```json
{ "id": "tok_31", "name": "Reporting script", "token": "lc_live_8f2c1d0e9b7a4c6f", "permissions": ["can_fan_read", "can_sales_read"], "expires_at": "2027-01-04T15:10:00Z" }
```

`token` está só nesta resposta. Um token nunca pode ter mais permissões que o token owner que o criou. Nome ausente responde `400`.

### Atualizar um token

`PATCH /tokens/{id}` · `owner`

| Parameter | Type | Required | Description |
|---|---|---|---|
| `name` | string | Não | Novo nome |
| `permissions` | array de strings | Não | Substitui as permissões |

```bash
curl -X PATCH https://api.lanachat.ai/v1/tokens/tok_31 \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"permissions": ["can_sales_read"]}'
```

A resposta é o token, sem o segredo. Desligar `can_engine` também remove permissões de publicação, Advanced AI e relatório de experimentos. Token revogado responde `409`.

### Rotacionar um token

`POST /tokens/{id}/rotate` · `owner`

```bash
curl -X POST https://api.lanachat.ai/v1/tokens/tok_31/rotate \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"
```

A resposta é o token com um novo segredo `token`, mostrado uma vez. O segredo antigo para imediatamente, atualize seu script logo após. Token revogado responde `409`.

### Revogar um token

`DELETE /tokens/{id}` · `owner`

```bash
curl -X DELETE https://api.lanachat.ai/v1/tokens/tok_31 \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

O token para imediatamente. Token já revogado responde `409`.

> Warning: Um token funciona como uma senha. Revogue-o assim que parar de usar ou suspeitar que vazou.

## Artigos relacionados

- [API LanaChat: início rápido, autenticação e erros](https://lanachat.ai/guides/pt/api-overview/)
- [Gerenciamento de Equipe: funcionários e funções](https://lanachat.ai/guides/pt/team-and-roles/)
- [Funções personalizadas e a tabela de permissões](https://lanachat.ai/guides/pt/custom-roles/)
- [Chaves de acesso pessoal](https://lanachat.ai/guides/pt/personal-access-keys/)
