Skip to main content
Todas las rutas están bajo la base URL (/api/v1) y requieren autenticación. El broker está gated: apagado por defecto en producción, con un rollout de lane externa aparte y grants por principal (ver Broker). Las lecturas necesitan broker:read; invoke necesita broker:invoke o work:write; grants y criterion necesitan broker:admin. El setup (connect/disconnect) no está aquí; vive bajo integraciones.

Disponibilidad

Cuando el broker está deshabilitado, toda la superficie devuelve 503. Cuando la lane externa está cerrada o ningún grant coincide, las lecturas de un caller externo devuelven un resultado vacío en vez de un error. Los callers internos (una API key propia o una sesión del dashboard) se gobiernan por identidad y scopes; un caller OAuth sin rostro además necesita el rollout encendido y un grant que coincida.

Descubrir y leer

Invocar y materializar

invoke ejecuta inline (no hay cola de aprobación). Para un efecto de escritura, pasa idempotency_key para un replay seguro; las escrituras nunca se reintentan solas. index e index/preview están mapeados en OAuth a broker:admin (o al scope amplio work:write): indexar selecciona lo que todo el workspace puede recuperar y citar, la misma clase de acto que adjuntar criterion, así que nunca usa broker:invoke; la capa de servicio aún aplica los grants del principal externo a las lecturas de records subyacentes. La ruta de escritura preview sigue deliberadamente sin mapear (denegada para OAuth) hasta que se publique el contrato de escritura gobernada. La lectura context devuelve {provider, connection, criterion, context: [{slug, title, what, trust, stale, missing?}], next_action} y se audita como un recibo de lectura (broker.context.read): es la llamada que un agente hace antes de trabajar con una connection. La lectura genérica documents/:externalId/content reemplaza la ruta exclusiva de Notion connections/notion/pages/:pageId/content (que se conserva como alias deprecado). Ambas aceptan un selector opcional ?connection=, preparado para múltiples cuentas; hoy cada provider tiene una sola connection, así que se omite.

Grants

Los grants gobiernan solo la lane externa; gestionarlos es owner/admin.

Errores

El controller tiene rate limit por principal; invoke, preview y page-content tienen throttle más estricto, e index / import aún más. Los errores mapean a códigos estables: RATE_LIMITED, INVALID_VALUE (corrige la petición) y un INTERNAL transitorio para 5xx del proveedor. Ver errores para el sobre.

Relacionado