Desarrolladores

Construye sobre tus propias
notas de reunión.

Tres superficies, una sola credencial: una API REST para notas y carpetas, webhooks firmados para eventos de notas y tareas, y un servidor MCP con el que tus herramientas de IA hablan directamente.

Autenticación

Una clave, creada en Ajustes.

Un administrador del espacio de trabajo crea una clave en Ajustes, luego Integraciones, luego Webhooks salientes. La clave se muestra una sola vez, al crearla, y solo se guarda su hash: una copia perdida no se puede recuperar. Envíala como token bearer o en una cabecera X-API-Key.

curl https://api.reline.so/api/zapier/me \
  -H "Authorization: Bearer rlk_your_key_here"

# X-API-Key: rlk_your_key_here works too

Hasta dónde llega una clave

Una clave actúa en nombre del administrador que la creó, dentro de ese único espacio de trabajo. Cada lectura y cada escritura pasa por los mismos controles de permisos que esa persona tiene en la aplicación, así que una clave nunca alcanza una nota privada que su dueño no pudiera abrir ya.

Revocar una clave

Revocar bloquea la clave en la siguiente petición y borra todas las suscripciones de webhook que había creado. Los receptores dejan de recibir eventos en ese mismo instante, sin periodo de gracia.

REST

Seis endpoints sobre notas y carpetas.

Las respuestas son JSON. Los fallos llegan con un estado 4xx y un campo que describe qué salió mal.

https://api.reline.so

MétodoEndpointQué hace
GET/api/zapier/meResuelve la clave a un espacio de trabajo y a una persona. Úsalo para comprobar una credencial.
GET/api/zapier/notesLas notas recientes que puedes ver, las más nuevas primero. Acota a una carpeta con folderId.
POST/api/zapier/notesCrea una nota, opcionalmente dentro de una carpeta en la que puedas escribir.
GET/api/zapier/foldersLas carpetas que puedes ver. Pasa level=edit para quedarte con aquellas en las que puedes escribir.
POST/api/zapier/subscribeRegistra una suscripción de webhook para un evento, opcionalmente limitada a una carpeta.
DELETE/api/zapier/subscribeElimina una suscripción por el id que devolvió al crearse.
curl -X POST https://api.reline.so/api/zapier/notes \
  -H "Authorization: Bearer rlk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"title":"Kickoff call","description":"Agenda + owners"}'

# 201 -> { "id": "...", "title": "Kickoff call", "url": "https://..." }

El objeto nota

La misma forma vuelve del endpoint de notas y viaja en la carga útil de cada webhook, así que un campo que mapeas una vez encaja en todas partes. Los campos de resumen y de tareas viajan con los eventos que los llevan.

{
  "id": "j57...",
  "noteId": "j57...",
  "title": "Kickoff call",
  "url": "https://app.reline.so/acme/notes/j57...",
  "folderId": "k21..." | null,
  "folderName": "Clients" | null,
  "isArchived": false,
  "createdAt": 1788302403777,
  "updatedAt": 1788302911204
}
Webhooks

Seis eventos, firmados al salir.

Suscríbete desde Ajustes o por la API. Cada entrega es un POST con un solo evento. Limita una suscripción a una carpeta para reducir lo que la despierta.

Eventos

note.created
Se creó una nota, por una persona, por el calendario o por la API.
note.summarized
Un resumen terminó de generarse. Editarlo después no lo vuelve a disparar.
note.archived
Una nota fue a la papelera. Solo la nota tocada directamente, nunca una cascada.
note.restored
Una nota salió de la papelera.
action_items.extracted
Se extrajeron tareas de una nota, entregadas en un lote con la lista completa del momento.
action_item.completed
Alguien marcó una tarea como hecha.

La entrega

Tres cabeceras viajan con el cuerpo: el nombre del evento, un id de entrega único y la firma.

POST https://your-endpoint.example.com
X-Reline-Event:     note.summarized
X-Reline-Delivery:  9f3c...
X-Reline-Signature: t=1788302403,v1=6b8a...

{
  "id": "9f3c...",
  "event": "note.summarized",
  "occurredAt": 1788302403777,
  "workspace": { "id": "w1...", "slug": "acme", "name": "Acme" },
  "data": { "noteId": "j57...", "summary": "# Kickoff\n..." }
}

Verificar una entrega

La firma es un HMAC-SHA256 sobre la marca de tiempo y el cuerpo en bruto, unidos por un punto, con el secreto de firma que se mostró al crear la suscripción. Calcúlala sobre los bytes recibidos, antes de parsear el JSON, y compara en tiempo constante.

import crypto from 'node:crypto'

// `raw` is the request body as received — verify BEFORE JSON.parse.
function verify(raw: string, header: string, secret: string): boolean {
  const parts = Object.fromEntries(header.split(',').map((p) => p.split('=')))
  const expected = crypto
    .createHmac('sha256', secret)
    .update(`${parts.t}.${raw}`)
    .digest('hex')
  if (typeof parts.v1 !== 'string' || parts.v1.length !== expected.length) return false
  return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1))
}

Cuando un receptor se rompe

Las entregas se reintentan, y una suscripción que falla una y otra vez se apaga sola en lugar de reintentarse para siempre. El último estado y el último error de cada hook se ven en Ajustes.

MCP

Apunta una herramienta de IA a tu espacio de trabajo.

El servidor habla Model Context Protocol sobre HTTP, así que funciona en claude.ai, ChatGPT, Claude Code, Cursor y en cualquier cliente que admita el protocolo. Inicia sesión con OAuth, o envía la misma clave del espacio de trabajo como token bearer.

https://mcp.reline.so/mcp

claude mcp add --transport http reline https://mcp.reline.so/mcp

# or authenticate a plain HTTP client with the same workspace key:
#   Authorization: Bearer rlk_your_key_here

Las herramientas paginadas devuelven un cursor. Una página corta no significa el final; solo lo significa un cursor nulo.

Lectura

  • search
  • fetch
  • get_note
  • get_transcript
  • list_notes
  • count_notes
  • list_meetings
  • list_recent_meetings
  • list_folders
  • list_people
  • list_calendar_events
  • list_action_items
  • list_workspaces
  • get_workspace_info

Escritura

  • create_note
  • append_to_note
  • update_note
  • create_folder
  • complete_action_item
Límites

Las cifras que conviene saber.

120 peticiones por minuto

Se cuentan por clave en una ventana fija de un minuto. Pasarse devuelve un 429 hasta que la ventana avanza.

10 claves activas por espacio de trabajo

Las revocadas no cuentan. Crea una por integración y así podrás retirarlas de una en una.

Solo administradores

Crear y revocar claves exige el rol de administrador. Los miembros pueden usar una integración construida sobre una clave, pero no crearla.

Un espacio de trabajo por clave

Una clave nunca cruza a otro espacio de trabajo. Trabajar en varios pide una clave para cada uno.

¿Estás construyendo algo sobre esto?

Cuéntanos qué estás conectando y qué falta. La superficie crece donde la gente empuja de verdad.

Escríbenos