Embed API
The only embeddable course & webinar API with interactive email built in
Enroll and register your own end users into a MailInApp course or webinar straight from your backend, embed the viewing/joining experience in your app, and let every registration, reminder and completion email render as a real interactive email instead of a plain confirmation.
LMS and webinar embed APIs already exist. None of them do this.
Embeddable course players like uQualio and Coassemble, and webinar-embed APIs from RingCentral, Livestorm and Webex, all solve the same problem the same way: a headless enrollment/registration endpoint plus a widget or iframe to drop into your app. Every one of them ships the same flat, hardcoded confirmation email behind it.
MailInApp already has the piece none of them do — a real interactive email engine. So instead of building a third, smaller version of the same embed API, this one wires straight into it: registration confirmed, reminder, course welcome and course completed can each render as a studio project you designed, fallback engine and interactive blocks intact, instead of a static HTML string.
Register webinar attendees from your own backend
One call with just a name and email — your users never see a MailInApp form or need a MailInApp account. A confirmed registrant gets a signed join link back in the response, ready to drop into your own UI.
Enroll course subscribers with your own billing as the source of truth
Grant or revoke course access for an email address directly — your own checkout or subscription system decides who's entitled, MailInApp just renders the course.
Embed the course viewer with a signed, short-lived token
Mint a 5-minute bootstrap token your app redirects an entitled learner to — from there they're an ordinary signed-in subscriber inside your iframe, with progress, quizzes and video streaming working exactly as they do on a MailInApp-hosted portal.
Bind any lifecycle email to a studio project
Point a course or webinar's registered/reminder/enrolled/completed event at a project you built in the studio, and that event's email renders through the full fallback engine instead of a hardcoded confirmation. Leave it unbound and nothing changes from today's plain email.
Already sending with the Send API?
The Embed API uses the exact same bearer API key — no new credential to mint, no separate dashboard to manage.
Two calls, end to end
Register a webinar attendee. Enroll a course subscriber.
Both use the same bearer API key as the transactional Send API — mint one from API & Integrations in the dashboard.
Read the Embed API quickstart →Register a webinar attendee
curl -X POST https://mailinapp.com/api/v1/webinars/<id>/register \
-H "Authorization: Bearer mia_live_..." \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"name": "Ada Lovelace"
}'Enroll a course subscriber
curl -X POST https://mailinapp.com/api/v1/courses/<id>/enroll \
-H "Authorization: Bearer mia_live_..." \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"active": true
}'How the Embed API compares
| Feature | MailInApp | RingCentral / Livestorm / Webex | uQualio / Coassemble | Thinkific-class LMS |
|---|---|---|---|---|
| Headless registration/enrollment API | ||||
| Embeddable viewer/join iframe | ||||
| Real interactive email behind every lifecycle event | ||||
| No-code fallback engine for older email clients | ||||
| Built-in hosted video course catalog | Varies | |||
| Your own billing as the entitlement source | Varies |
Based on each vendor's own published developer/embed documentation as of July 2026 — always confirm against their current docs before deciding.
Embed API FAQ
Questions, answered
Does my end user need a MailInApp account?
No. Registration and enrollment both work off a plain email address you supply — there's no sign-up flow, password, or MailInApp-branded page your users ever see, unless you choose to open the embedded course viewer.
How is course access controlled?
Your own backend decides — call enroll with active: true or false whenever your own billing or subscription state changes. There's no separate MailInApp checkout for embed-API courses; it just renders the course and tracks progress once you've told it who's entitled.
What happens if I don't bind a lifecycle email to a project?
Nothing changes — registration, reminder, enrollment and completion emails keep using today's plain confirmation copy until you explicitly bind an event to a studio project from the course or webinar's own settings panel.
Is this on every plan?
The Embed API shares its call quota with courses generally, so it's available from the Lite plan up — see pricing for exact monthly call limits per tier.
See plans & pricing →Embed it once. Let every email do the rest.
Mint an API key and register your first webinar attendee or course subscriber in minutes.