Sincronización
Tu copia de lo que puedes ver: grupos, copia inicial, registros por id y los cambios de cada grupo en orden.
Privacidad y analítica
Utilizamos cookies técnicas necesarias y, solo si das tu consentimiento, analítica y pixels de marketing para mejorar la web y medir campañas.
Tu copia de lo que puedes ver: grupos, copia inicial, registros por id y los cambios de cada grupo en orden.
Actualizado el 1 de enero de 1970
Solo lectura en todas las puertas.
Los cambios de un grupo de sincronización después de un cursor, en orden y sin huecos (docs de sincronización). cursor_expired: vuelve a arrancar el grupo; group_forbidden: ya no puedes tenerlo.
| Campo | Valor |
|---|---|
| Tipo | Lectura |
| Método HTTP | POST /api/v1/sync.deltas |
| Herramienta MCP | sync_deltas |
| Alcance | sync.read |
| Rol mínimo | self |
| Confirmación humana | No |
| Puertas | Pantallas, Apps, API |
| Estado | Disponible |
Entrada
{
group: string // `<kind>:<uuid>` (person, workspace, brand, brand-staff, conversation, team, team-space, mailbox).
after?: integer // 0–9007199254740991 · default 0 · The last `seq` applied; 0 right after a bootstrap at seq 0.
limit?: integer // 1–500 · default 200
shapes?: Record<string, integer> // Shape versions the client understands (served N and N-1).
}Salida
{
group: string
frames: Array<{
type: "delta"
group: string
seq: integer // 1–9007199254740991
event: {
id: string
type: string
occurredAt: string
actor?: {
kind: "person" | "agent" | "system" | "service"
id: string | null
}
idempotencyKey?: string | null
}
changes: Array<{
op: "put" | "patch" | "delete" | "stale"
entity: string
id: string
version: string
}>
}>
head: integer // 0–9007199254740991
hasMore: boolean
}Los grupos que puedes copiar ahora (tu bandeja, tus workspaces y tus marcas) con su política: si se guardan en el dispositivo y cuántos registros caben. Las conversaciones se abren desde una lista que ya ves. Decide la base de datos.
| Campo | Valor |
|---|---|
| Tipo | Lectura |
| Método HTTP | POST /api/v1/sync.groups.list |
| Herramienta MCP | sync_groups_list |
| Alcance | sync.read |
| Rol mínimo | self |
| Confirmación humana | No |
| Puertas | Pantallas, Apps, API |
| Estado | Disponible |
Entrada
{}Salida
{
groups: Array<{
group: string
persist: boolean
maxRecords: integer // -9007199254740991–9007199254740991
}>
}Una página de los registros de un grupo y su número de secuencia, leídos en la misma foto de la base de datos. Pide páginas con nextPageToken; el cursor del grupo es el seq más bajo de todas.
| Campo | Valor |
|---|---|
| Tipo | Lectura |
| Método HTTP | POST /api/v1/sync.bootstrap |
| Herramienta MCP | sync_bootstrap |
| Alcance | sync.read |
| Rol mínimo | self |
| Confirmación humana | No |
| Puertas | Pantallas, Apps, API |
| Estado | Disponible |
Entrada
{
group: string // A sync group: `<kind>:<uuid>` (person, workspace, brand, brand-staff, conversation, team, team-space, mailbox).
pageToken?: string | null // `nextPageToken` of the previous page; absent for the first.
shapes?: Record<string, integer> // Shape versions the client understands, by entity. A version the server no longer serves answers `shape_unsupported`.
limit?: integer // 1–1000 · Records per page (500 by default).
}Salida
{
group: string
seq: integer // 0–9007199254740991
records: Array<{
entity: string
id: string // uuid
version: string
data: Record<string, unknown>
}>
nextPageToken: string | null
shapes: Record<string, integer>
bytes?: integer // -9007199254740991–9007199254740991
}Los registros actuales de una entidad por sus ids, solo los que puedes leer: los que faltan están borrados u ocultos. Para los cambios que llegan como stale.
| Campo | Valor |
|---|---|
| Tipo | Lectura |
| Método HTTP | POST /api/v1/sync.records.read |
| Herramienta MCP | sync_records_read |
| Alcance | sync.read |
| Rol mínimo | self |
| Confirmación humana | No |
| Puertas | Pantallas, Apps, API |
| Estado | Disponible |
Entrada
{
entity: "notification" | "read_mark" | "conversation" | "message" | "inbox_item" | "work" | "task" | "calendar_event" | "library_asset" | "internal_note" | "team_space" | "team_message" | "mail_thread" | "person"
ids: string[] // ≤ 200 items
group?: string // The group the ids belong to, when the caller knows it: refused unless the person is in it.
}Salida
{
records: Array<{
entity: string
id: string // uuid
version: string
data: Record<string, unknown>
}>
}