Développeurs

Construisez sur vos propres
notes de réunion.

Trois surfaces, un seul identifiant : une API REST pour les notes et les dossiers, des webhooks signés pour les événements de notes et de tâches, et un serveur MCP auquel vos outils d’IA parlent directement.

Authentification

Une clé, créée dans les réglages.

Un administrateur de l’espace de travail crée une clé dans Réglages, puis Intégrations, puis Webhooks sortants. La clé n’apparaît qu’une fois, à la création, et seul son hachage est conservé : une copie perdue est irrécupérable. Envoyez-la comme jeton bearer ou dans un en-tête 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

Ce qu’une clé peut atteindre

Une clé agit au nom de l’administrateur qui l’a créée, dans ce seul espace de travail. Chaque lecture et chaque écriture passe par les mêmes contrôles de permission que dans l’application : une clé n’atteint jamais une note privée que son propriétaire ne pouvait pas déjà ouvrir.

Révoquer une clé

La révocation bloque la clé dès la requête suivante et supprime tous les abonnements webhook qu’elle avait créés. Les destinataires cessent de recevoir des événements au même instant, sans délai de grâce.

REST

Six endpoints sur les notes et les dossiers.

Les réponses sont en JSON. Les échecs reviennent avec un statut 4xx et un champ qui décrit ce qui a échoué.

https://api.reline.so

MéthodeEndpointRôle
GET/api/zapier/meRésout la clé vers un espace de travail et une personne. Utile pour vérifier un identifiant.
GET/api/zapier/notesLes notes récentes que vous pouvez voir, les plus récentes d’abord. Restreignez à un dossier avec folderId.
POST/api/zapier/notesCrée une note, éventuellement dans un dossier où vous avez le droit d’écrire.
GET/api/zapier/foldersLes dossiers que vous pouvez voir. Passez level=edit pour ceux où vous pouvez écrire.
POST/api/zapier/subscribeEnregistre un abonnement webhook pour un événement, éventuellement limité à un dossier.
DELETE/api/zapier/subscribeSupprime un abonnement à partir de l’identifiant renvoyé à sa création.
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://..." }

L’objet note

La même forme revient de l’endpoint des notes et voyage dans la charge utile de chaque webhook : un champ mappé une fois se mappe partout. Les champs de résumé et de tâches voyagent avec les événements qui les portent.

{
  "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

Six événements, signés au départ.

Abonnez-vous depuis les réglages ou via l’API. Chaque livraison est un POST portant un seul événement. Limitez un abonnement à un dossier pour réduire ce qui le réveille.

Événements

note.created
Une note a été créée, par une personne, par l’agenda ou par l’API.
note.summarized
Un résumé a fini d’être généré. Le modifier ensuite ne le redéclenche pas.
note.archived
Une note est partie à la corbeille. Uniquement la note visée, jamais une cascade.
note.restored
Une note est ressortie de la corbeille.
action_items.extracted
Des tâches ont été extraites d’une note, livrées en un lot portant la liste complète du moment.
action_item.completed
Quelqu’un a coché une tâche.

La livraison

Trois en-têtes accompagnent le corps : le nom de l’événement, un identifiant de livraison unique et la signature.

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..." }
}

Vérifier une livraison

La signature est un HMAC-SHA256 sur l’horodatage et le corps brut, joints par un point, avec le secret de signature affiché à la création de l’abonnement. Calculez-la sur les octets reçus, avant tout parsing JSON, et comparez en temps constant.

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))
}

Quand un destinataire tombe

Les livraisons sont réessayées, et un abonnement qui échoue durablement est désactivé automatiquement plutôt que réessayé sans fin. Le dernier statut et la dernière erreur de chaque hook sont visibles dans les réglages.

MCP

Pointez un outil d’IA vers votre espace de travail.

Le serveur parle le Model Context Protocol sur HTTP : il fonctionne dans claude.ai, ChatGPT, Claude Code, Cursor et partout où le protocole est pris en charge. Connectez-vous en OAuth, ou envoyez la même clé d’espace de travail comme jeton 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

Les outils paginés renvoient un curseur. Une page courte ne signifie pas la fin ; seul un curseur nul le signifie.

Lecture

  • 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

Écriture

  • create_note
  • append_to_note
  • update_note
  • create_folder
  • complete_action_item
Limites

Les chiffres à connaître.

120 requêtes par minute

Comptées par clé sur une fenêtre fixe d’une minute. Au-delà, vous recevez un 429 jusqu’à ce que la fenêtre tourne.

10 clés actives par espace de travail

Les clés révoquées ne comptent pas. Créez-en une par intégration pour les retirer une par une.

Réservé aux administrateurs

Créer et révoquer une clé demande le rôle d’administrateur. Les membres peuvent utiliser une intégration bâtie dessus, mais pas en créer une.

Un espace de travail par clé

Une clé ne franchit jamais la frontière d’un autre espace de travail. Travailler sur plusieurs demande une clé pour chacun.

Vous construisez quelque chose dessus ?

Dites-nous ce que vous branchez et ce qui manque. La surface grandit là où les gens appuient vraiment.

Nous écrire