Scope
attendees:write
Create and update event attendees and verification status.
Create event attendees, verify participation and read RSVP state over HTTP. Available on every plan including the free one, with fair-use rate limits — most competing tools put API access behind a paid tier.
Free plan includes API access and one embeddable capture form.
curl https://api.bloomod.com/v1/invites \
-H "Authorization: Bearer $BLOOMOD_KEY" \
-H "Content-Type: application/json" \
-d '{
"attendee_id": "att_0182",
"event": "quarterly_filing_webinar",
"starts_at": "2026-08-13T10:30:00+05:30",
"duration_minutes": 45,
"requires_approval": true
}'
# 202 Accepted
# { "id": "inv_7Kq2", "state": "pending_approval" }
const res = await fetch("https://api.bloomod.com/v1/invites", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.BLOOMOD_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
attendee_id: "att_0182",
event: "quarterly_filing_webinar",
starts_at: "2026-08-13T10:30:00+05:30",
duration_minutes: 45,
requires_approval: true
})
});
const invite = await res.json();
import os, requests
res = requests.post(
"https://api.bloomod.com/v1/invites",
headers={"Authorization": f"Bearer {os.environ['BLOOMOD_KEY']}"},
json={
"attendee_id": "att_0182",
"event": "quarterly_filing_webinar",
"starts_at": "2026-08-13T10:30:00+05:30",
"duration_minutes": 45,
"requires_approval": True,
},
)
invite = res.json()
Illustrative endpoints for the template. No live API is attached.
| Method | Path | Does | Approval |
|---|---|---|---|
| POST | /v1/events/:id/attendees | Add an attendee to one event with a verification status | n/a |
| PATCH | /v1/events/:id/attendees/:attendee | Update attendee details or verification status | n/a |
| POST | /v1/invites | Create a single invitation | Required |
| POST | /v1/campaigns | Create a bulk campaign from a segment | Required |
| GET | /v1/invites/:id | Read lifecycle and RSVP state | n/a |
| DELETE | /v1/invites/:id | Cancel and broadcast the cancellation | Required |
Keys carry scopes and belong to a business, so a key that creates attendees cannot approve a campaign.
Scope
attendees:write
Create and update event attendees and verification status.
Scope
invites:write
Queue invitations and campaigns for approval.
Scope
invites:read
Read lifecycle stage and RSVP state.
Scope
webhooks:manage
Register endpoints for RSVP and delivery events.
Rather than polling every invite, subscribe to the state changes you care about and write them into your own system.
{
"type": "invite.accepted",
"created": "2026-08-13T05:12:44Z",
"data": {
"invite_id": "inv_7Kq2",
"attendee_id": "att_0182",
"campaign_id": "cmp_31f",
"state": "accepted",
"calendar": "google"
}
}
60
Requests per minute, free plan
10
Concurrent campaign creates
2
Live keys, free plan
30d
Webhook retry window
Illustrative values for this template. Actual limits depend on the selected plan and approved sending configuration, and rise with verification and account history.