PRO 🚀 API requires a Business subscription. Learn more.
Getting started
Rate Limits
Each API key is limited to 5 requests per second across all endpoints combined. Requests over the limit return HTTP 429 with a Retry-After header. All responses also include X-RateLimit-Limit and X-RateLimit-Remaining headers so you can pace yourself.
Credentials
The Heylo team will issue you with an API key for your group or organization (if on the Organization plan). Replace HEYLO_API_KEY below with your API key. If you need to rotate or delete an API key, please contact the Heylo team.
Endpoints
All endpoints accept POST requests with a JSON body. The specific operation is selected via the type field in the request body.
https://api.heylo.com/apiv1-fetchhttps://api.heylo.com/apiv1-removehttps://api.heylo.com/apiv1-update
Example Usage
Fetching events for a group:
curl -X POST \\
-H "Authorization: Bearer HEYLO_API_KEY" \\
-H "Content-Type: application/json" \\
<https://api.heylo.com/apiv1-fetch> \\
-d '{
"communityId": "HEYLO_GROUP_ID",
"type": "communityEvents"
}'
Removing a member from a group:
curl -X POST \\
-H "Authorization: Bearer HEYLO_API_KEY" \\
-H "Content-Type: application/json" \\
<https://api.heylo.com/apiv1-remove> \\
-d '{
"communityId": "HEYLO_GROUP_ID",
"type": "member",
"userId": "abc..."
}'
Operations
Community Events
Fetch
Returns events for a group, ordered by start time. Supports pagination via lastEventId.
Endpoint: POST <https://api.heylo.com/apiv1-fetch>
Parameters
type:"communityEvents"communityId: the Heylo group IDbatchSize(optional): max events to return — default 50, max 100endTimestamp(optional): unix timestamp in ms — only return events starting before thislastEventId(optional): pass the last event ID from the previous response to fetch the next pagestartTimestamp(optional): unix timestamp in ms — only return events starting after this
Response: { "events": [...] }
Event Attendance
Fetch
Returns attendance records for a single event.
Endpoint: POST <https://api.heylo.com/apiv1-fetch>
Parameters
type:"eventAttendance"communityId: the Heylo group ID that owns the eventeventId: the event ID
Response: { "attendance": [...] }
Members
Remove
Removes a member from a group. Also cancels any pending invites previously created for the same [userId, communityId] pair.
Endpoint: POST <https://api.heylo.com/apiv1-remove>
Parameters
type:"member"communityId: the Heylo group ID from which to remove the memberuserId: the stable ID of the user in your system
Roles
Community Roles
Fetch
Returns all roles defined for a group.
Endpoint: POST <https://api.heylo.com/apiv1-fetch>
Parameters
type:"communityRoles"communityId: the Heylo group ID
Response: { "roles": [...] }
Role Members
Fetch
Returns the user IDs of members assigned to a specific role.
Endpoint: POST <https://api.heylo.com/apiv1-fetch>
Parameters
type:"roleMembers"communityId: the Heylo group IDroleId: the role ID
Response: { "memberUserIds": [...] }
Update
Add and/or remove members from a role in a single request. User IDs that aren't active or hidden members of the community are silently dropped from the update.
Endpoint: POST <https://api.heylo.com/apiv1-update>
Parameters
type:"roleMembers"communityId: the Heylo group IDroleId: the role IDaddedUserIds(optional): array of user IDs to add to the role — max 100 per requestremovedUserIds(optional): array of user IDs to remove from the role — max 100 per request
At least one of addedUserIds or removedUserIds must be non-empty.
Response: { "addedUserIds": [...], "removedUserIds": [...] } — the user IDs actually applied after filtering