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.
Rate limits & fair use: requests are subject to reasonable fair-use limits per workspace. Payloads never include transcripts, summaries or meeting content — the meeting record stays in your workspace, and every payload links back to it.