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

# Autenticación

> Formato del token, scopes, y lo que un token de workspace puede alcanzar.

Cada petición lleva un bearer token:

```bash theme={null}
curl https://api.chatsailer.com/v1/me \
  -H "Authorization: Bearer sk_live_AbC123.xYz789"
```

No hay header de tenant ni de workspace. El token identifica el workspace.

## Formato del token

```
sk_live_<selector>.<verifier>
        └──────┘ └────────┘
         lookup    secret
```

El `.` importa: ambas mitades son base64url, cuyo alfabeto incluye `_`, así
que partir por cualquier otra cosa trunca algunos tokens. Envía el string
exactamente como se emitió.

Los tokens de entornos que no son producción van prefijados `sk_test_` en su
lugar.

Solo se guarda el `selector`. El `verifier` se hashea, así que un token
perdido no se puede recuperar — pide a un administrador del workspace que cree
un reemplazo y revoque el anterior. La revocación entra en vigor de inmediato,
no al final de una ventana de caché.

## Scopes

Un scope es `<resource>:<access>`. `read` cubre list y retrieve; `write` cubre
create, update y delete.

| Recurso       | Scopes                                      |
| ------------- | ------------------------------------------- |
| Contacts      | `contacts:read`, `contacts:write`           |
| Organizations | `organizations:read`, `organizations:write` |
| Deals         | `deals:read`, `deals:write`                 |
| Pipelines     | `pipelines:read`, `pipelines:write`         |
| Fields        | `fields:read`, `fields:write`               |
| Notes         | `notes:read`, `notes:write`                 |
| Activities    | `activities:read`, `activities:write`       |
| Tags          | `tags:read`, `tags:write`                   |
| Conversations | `conversations:read`, `messages:write`      |
| Campaigns     | `campaigns:read`, `campaigns:write`         |
| Analytics     | `analytics:read`                            |

Pide el conjunto más estrecho que haga tu trabajo. Llamar un endpoint sin su
scope devuelve `403 insufficient_scope`, y el mensaje nombra los scopes que te
faltan.

En vivo en `/v1` hoy: contacts, organizations, deals y campaigns (incluyendo
audiences), más pipelines, fields y conversations de solo lectura.
`pipelines:write` y `fields:write` aún no tienen endpoints — las definiciones
de campos y los pipelines son configuración del workspace, no writes de
partners.

`messages:write` está definido pero no cableado a nada. No hay send público;
las conversaciones son solo lectura. Los modelos que necesitan enviar lo
hacen a un sandbox a través de [Agent Studio](/es/mcp/studio).

Notes, activities y tags tienen scopes para poder aterrizar sin un cambio de
formato de token. Aún no tienen endpoints. `analytics:read` lo usa el
analytics de campañas de MCP, no un resource REST.

<Note>
  Los scopes **intersectan** con lo que tu workspace puede hacer — nunca
  otorgan más allá. Un token con `deals:write` igual no puede escribir deals
  en un workspace cuyos deals se espejan desde un CRM externo. Llama
  `GET /v1/capabilities` para ver la política efectiva por entidad antes de
  intentar un write.
</Note>

## Dos límites que conviene saber de antemano

**Un token lee todo el workspace.** Las reglas de visibilidad por usuario de
Sailer aplican a personas, no a tokens — un token no tiene usuario detrás.
Cualquier cosa en el workspace es legible con el scope correcto, sin importar
quién es dueño del registro. Trata un token como acceso a todo el workspace y
asígnalo en consecuencia.

**La política de escritura sigue aplicando.** Si un workspace espeja una
entidad desde un CRM externo, los writes a esa entidad se rechazan para todos,
tokens incluidos. Es deliberado: evita que la API diverja en silencio del
sistema de registro. `GET /v1/capabilities` reporta qué entidades puedes
escribir.

## Cómo cuidar los tokens

* Solo del lado del servidor. Un token en código de browser o mobile es una
  filtración de todo el workspace.
* Variables de entorno o un secret manager, nunca el control de versiones.
* Un token por integración, para poder revocar uno sin romper las demás.
* Avísanos de inmediato si uno se filtra y lo revocamos.
