<!-- https://pricto.dev/docs/autenticacion · versión en inglés: https://pricto.dev/docs/autenticacion.en.md -->

# Autenticación

Toda llamada a la API y al MCP se autentica con una API key en la cabecera `Authorization`. La misma key sirve para REST, MCP y CLI.

## Tipos de key

| Key | De quién | Datos | Cobra | Hoy |
|---|---|---|---|---|
| `sk_test_sandbox` | Pública, compartida | De ejemplo | No | Disponible |
| `sk_test_...` | Tu cuenta | De ejemplo, fijos | No | Con el registro |
| `sk_live_...` | Tu cuenta | Reales | Sí, en créditos | Con el registro |

El registro todavía no está abierto: hoy solo existe la sandbox. Todo lo que construyas con ella funciona igual con una key de tu cuenta.

## Cabecera

```http
Authorization: Bearer sk_test_sandbox
```

La key va siempre en la cabecera, nunca en la URL. Sin key, o con una key que no existe, la API responde `401`:

```json
{
  "type": "https://pricto.dev/docs#unauthorized",
  "title": "API key ausente o inválida",
  "status": 401,
  "code": "unauthorized",
  "detail": "Falta la API key.",
  "hint": "Envía el header 'Authorization: Bearer <api_key>'. Para probar con datos de ejemplo usa la key pública sk_test_sandbox.",
  "request_id": "req_421eba4eb1a7494caa28",
  "docs_url": "https://pricto.dev/docs#unauthorized"
}
```

Sin key se pueden leer `/v1/status`, `/v1/openapi.yaml`, `/llms.txt` y estas docs.

## Guardar y rotar keys

- Guárdala en una variable de entorno (`PRICTO_API_KEY`) o en el gestor de secretos de tu plataforma. No la pongas en código que corre en el navegador ni en un repositorio.
- Usa una key por aplicación o entorno: si una se filtra, revocas solo esa.
- Para rotar: crea una key nueva, despliégala, verifica que tu aplicación la usa y revoca la anterior. Crear y revocar keys se hace en la consola, que abre con el registro.
- Cada plan incluye un número de keys: 1 en Free, 3 en Builder, 10 en Pro, 25 en Business y 100 en Scale.

## MCP y OAuth

- `https://pricto.dev/mcp/sandbox`: sin login, con los datos de ejemplo.
- `https://pricto.dev/mcp`: con tu key en `Authorization: Bearer`, igual que la API. Claude Code, Cursor, VS Code y los conectores personalizados de Claude aceptan esa cabecera.
- OAuth: el servidor MCP ya publica su metadata de recurso protegido (RFC 9728) en `/.well-known/oauth-protected-resource/mcp`, pero el servidor de autorización todavía no está activo. Cuando lo esté, Claude y ChatGPT podrán conectarse con tu cuenta sin copiar una key. No tiene fecha todavía; lo avisamos en las [novedades](/novedades.xml).
