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.
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 tooHasta 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.
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.
| Método | Endpoint | Qué hace |
|---|---|---|
| GET | /api/zapier/me | Resuelve la clave a un espacio de trabajo y a una persona. Úsalo para comprobar una credencial. |
| GET | /api/zapier/notes | Las notas recientes que puedes ver, las más nuevas primero. Acota a una carpeta con folderId. |
| POST | /api/zapier/notes | Crea una nota, opcionalmente dentro de una carpeta en la que puedas escribir. |
| GET | /api/zapier/folders | Las carpetas que puedes ver. Pasa level=edit para quedarte con aquellas en las que puedes escribir. |
| POST | /api/zapier/subscribe | Registra una suscripción de webhook para un evento, opcionalmente limitada a una carpeta. |
| DELETE | /api/zapier/subscribe | Elimina 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
}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
- Se creó una nota, por una persona, por el calendario o por la API.
- Un resumen terminó de generarse. Editarlo después no lo vuelve a disparar.
- Una nota fue a la papelera. Solo la nota tocada directamente, nunca una cascada.
- Una nota salió de la papelera.
- Se extrajeron tareas de una nota, entregadas en un lote con la lista completa del momento.
- 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.
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.
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_hereLas 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
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.