← Docs

API

The Saykeeper API gives scripts and assistants read access to your meetings. A key can read and ask, it cannot create, change or delete anything.

API keys

Authorization

Send the key in the Authorization header as a Bearer token. Every request sees only the meetings of the key owner.

Authorization: Bearer ntb_live_YOUR_KEY

Base URL

https://api.saykeeper.com/v1

Endpoints that accept an API key

MethodPathWhat it returns
GET/meetings?limit=50Your meetings, newest first (max 200, ?archived=true for archived).
GET/meetings/search?q=budget&limit=20Search titles and transcripts (filters: space_id, label_id, from, to).
GET/meetings/{id}One meeting with transcript (speakers, timestamps) and AI outputs.
GET/meetings/sharedMeetings other people shared with you.
GET/meetings/reportOne row per meeting with speakers, for reporting.
GET/meetings/{id}/chatQuestions and answers saved on a meeting.
POST/meetings/{id}/chatAsk about one meeting. Body {"message":"..."}.
GET/meetings/{id}/clipsClips cut from a meeting.
GET/labelsYour labels.
GET/settingsYour preferences, including transcription and output language.
POST/mcpMCP server (JSON-RPC over Streamable HTTP).

Recording, uploads, changing or deleting meetings, settings changes and key or webhook management need the signed-in app and answer 403 session_required to a key.

Examples

Latest meetings

curl "https://api.saykeeper.com/v1/meetings?limit=5" \
  -H "Authorization: Bearer ntb_live_YOUR_KEY"

Search

curl "https://api.saykeeper.com/v1/meetings/search?q=budget" \
  -H "Authorization: Bearer ntb_live_YOUR_KEY"

One meeting with transcript and notes

curl "https://api.saykeeper.com/v1/meetings/MEETING_ID" \
  -H "Authorization: Bearer ntb_live_YOUR_KEY"

Ask about a meeting

curl -X POST "https://api.saykeeper.com/v1/meetings/MEETING_ID/chat" \
  -H "Authorization: Bearer ntb_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"message":"What did we agree on?"}'

Errors

400Invalid input, for example an unsupported language code (unsupported_language).
401Missing or invalid key (missing_bearer_token, invalid_api_key).
403Needs the signed-in app (session_required) or not your meeting.
404Not found.
409The meeting has no transcript yet (no_transcript).
429Rate limited (rate_limited). Wait and try again.

Rate limits

WhatLimit
Questions about a meeting (POST /meetings/{id}/chat)20 / minute
MCP ask_meeting and ask_meetings20 / minute

Webhooks

Saykeeper can call your URL when a meeting is ready. Add webhooks in Settings, API and MCP. Each delivery is signed with the webhook secret.