Session records for your product.

A REST API, webhooks, and an embeddable JS widget. Add recorded, consent-logged, transcribed meetings to any SaaS product — the records stay audit-ready.

create-session.sh
$ curl -X POST https://api.sessions.im/v1/sessions \
  -H "Authorization: Bearer sk_live_…" \
  -d '{
    "template": "scoping-call",
    "host": "[email protected]",
    "guest": { "email": "[email protected]" },
    "record": true
  }'

201 · join_url: "hartwell.sessions.im/j/8kq2"

REST API, webhooks, and an embeddable JS widget with incoming-call ringing.

Read API docs

Webhooks for the whole lifecycle

Every state change fires an event: booked, reminder sent, guest joined, consent logged, recording started or paused, transcript ready, recap sent, file promoted. Your app stays in sync without polling.

session.consent_logged · 10:01:04Zsession.transcript_ready · 10:44:31Zsession.recap_sent · 11:20:09Z

A widget that rings

Drop the JS widget into your product and incoming calls ring inside your UI — an inbound modal with accept and decline, themed to your tokens.

SHSarah Hartwell is callingScoping call · Hartwell & Co

Core endpoints

POST/v1/sessions

Create a session and get a join URL

GET/v1/sessions/:id

Session state, participants, consent status

GET/v1/sessions/:id/transcript

Speaker-labelled transcript with timecodes

GET/v1/sessions/:id/audit-pack

Export the sealed audit pack (PDF or JSON)

POST/v1/booking-pages

Create availability and booking templates

POST/v1/webhooks

Subscribe to lifecycle events