Loopion API reference
The integration API behind Zapier and custom webhooks. It pushes action and meeting events out and accepts completions back — payloads carry action metadata and deep links, never transcripts or summary content.
Base URL & authentication
All endpoints live under https://loopion.ai. Every request must carry a workspace API key as a bearer token:
Authorization: Bearer lp_live_<48 hex characters>Workspace owners create and revoke keys at Settings → Integrations (Business plans and above). A key identifies exactly one workspace; every operation is scoped to it. Keys are stored as SHA-256 hashes and shown once at creation. Invalid or revoked keys receive 401; workspaces below the required plan receive 403.
Events
action.createdA new action was captured from a meeting or created manually.action.completedAn action was marked done in Loopion.action.reminderLoopion sent a follow-up reminder for an open, owned action. Always carries an owner email.summary.readyA meeting summary is ready. The payload is a notification with a deep link — the summary content itself stays in Loopion.
Webhook deliveries POST this envelope:
{
"id": "evt_…",
"type": "action.created",
"createdAt": "2026-07-24T12:00:00.000Z",
"data": {
"actionId": "…", "title": "…", "status": "IN_PROGRESS",
"priority": "MEDIUM", "ownerName": "…", "ownerEmail": "…",
"dueDate": null, "meetingId": "…", "meetingTitle": "…",
"url": "https://loopion.ai/actions?focus=…"
}
}Webhook signing
Every delivery is signed so your endpoint can verify it genuinely came from Loopion. The X-Loopion-Signature header contains a timestamp and an HMAC-SHA256 of <timestamp>.<body>using your endpoint's signing secret (shown once when the endpoint is created):
X-Loopion-Signature: t=1784900000,v1=<hex hmac-sha256>Deliveries time out after 10 seconds; an endpoint is automatically disabled after 20 consecutive failures, and a 410 response unsubscribes it immediately.
GET/api/zapier/me
Verify authentication
Confirms the API key is valid and returns the connected workspace. Used as the connection test by Zapier.
Response
{ "workspaceId": "uuid", "workspaceName": "Acme Ltd" }POST/api/zapier/hooks
Subscribe a webhook (REST hook)
Registers a webhook endpoint for an event type. Loopion POSTs signed JSON to the URL whenever the event occurs in the workspace.
Request body
{ "url": "https://example.com/hook", "event": "action.created" }Response
{ "id": "endpoint-uuid" } // 201 Created- event: one of action.created, action.completed, action.reminder, summary.ready — or any (all events).
- URL must be https.
DELETE/api/zapier/hooks/{id}
Unsubscribe a webhook
Removes a webhook subscription created via POST /api/zapier/hooks.
Response
{ "ok": true }GET/api/zapier/samples?event={event}
Sample records
Recent real records shaped exactly like live webhook payloads — used by Zapier for trigger setup and testing.
Response
[ { "actionId": "…", "title": "…", "status": "IN_PROGRESS", "ownerName": "…", "ownerEmail": "…", "dueDate": null, "meetingId": "…", "meetingTitle": "…", "url": "https://loopion.ai/actions?focus=…" } ]- event: any, action.created, action.completed, action.reminder or summary.ready.
GET/api/zapier/actions/open
List open actions
Open (completable) actions in the workspace — powers the Complete Action dropdown.
Response
[ { "id": "action-uuid", "title": "Send the pricing deck — Sarah Chen — Q3 Planning" } ]POST/api/zapier/actions/complete
Complete an action
Marks an action as done. Completion propagates across the action's carry-forward lineage, closes reminders, and is reflected in recaps.
Request body
{ "actionId": "action-uuid" }Response
{ "ok": true, "alreadyDone": false, "action": { "actionId": "…", "title": "…", "status": "DONE", "ownerName": "…", "url": "…" } }- The action must belong to the API key's workspace — cross-workspace calls fail.
Related articles
Questions about the API? Email support@loopion.ai.