Appearance
Protoki API
Protoki has a public REST API for automation. You can read meetings, minutes, tasks, participants and transcripts, search across all of them, and have Protoki call you when a meeting is done. Everything is hosted in the EU.
The machine-readable specification is OpenAPI 3.1.
Three ways in
| What it is | When to use it | |
|---|---|---|
| REST endpoints | GET requests under /api/v1, JSON responses | You fetch data when you need it |
| Webhooks | Protoki posts to an address you own | You want to react when a meeting is done, without polling |
| MCP server | The same data over Model Context Protocol | An AI tool should look things up on its own |
All three use the same API key and the same permission model. A personal key sees the meetings that person sees in the app — no more.
Quickstart
Create an API key first: a workspace admin creates account keys under Admin → API keys, and everyone can create a personal key under Settings once the admin has enabled it. See Authentication for the difference.
bash
curl https://protoki.com/api/v1/meetings \
-H "Authorization: Bearer pk_live_your_key"json
{
"data": [
{ "id": "…", "title": "Quarterly review", "platform": "teams",
"status": "ready", "starts_at": "2026-08-04T08:00:00Z", "…": "…" }
],
"pagination": { "limit": 50, "offset": 0, "total": 3 }
}The full key is shown once, at creation. Keep it somewhere safe — Protoki stores only a hash of it and cannot show it again.
A note on wording
The API keeps the word workspace for what the German app calls Mandant: a company with its own users, settings, templates and data. Renaming it here would look like a schema change that does not exist.
Two more field names carry a different word than the prose around them, for the same reason: protocol is the field that holds a set of minutes, and customer is the field that holds a company — the external company a meeting is tagged with, derived from the email domains of external participants.