Get All Events
URL: https://api.gradual-api.com/public-api/v1/events
HTTP Method: GET
Content type: application/json
Tier: Medium
Query Parameters:
pageNum, number, optional, default 1pageSize, number, optional, default 50, max 200title, string, optional, support partial matchesstartDate, string, optional, format:YYYY-MM-DD, date will be padded to the start of the day. If astartDateis specified, the response will include events with a start time later than 00:00 of the providedstartDate.endDate, string, optional, format:YYYY-MM-DD, date will be padded to the end of the day. Similarly, if anendDateis specified, the response will include events with an end time earlier than 23:59 of the providedendDate.status, string, optional,PublishedorDraftaccess, string, optional,All Members,Selected Spaces Only, orPublicunlisted, boolean, optional, whether the event is unlisted
Response Example:
{"size": 2,"pageNumber": 1,"pageSize": 2,"results": [{"eventId": "654180e3566f8d5a7fb49e86","eventTitle": "Q4 Engineering Summit","eventType": "Livestream","eventTimezone": "America/Los_Angeles","eventStartTime": "2024-10-30T07:00:00.000Z","eventEndTime": "2024-10-30T09:00:00.000Z","eventCreatedTime": "2024-10-15T22:34:11.099Z","eventCreatedFrom": "CommunityDashboard","eventSlug": "q4-engineering-summit-2024-10-30","eventUrl": "https://test.gradual/home/events/q4-engineering-summit-2024-10-30","eventStatus": "Published","eventCoverUrl": "https://abc.cloudfront.net/uploads/test/cover-12345.png","eventTag": ["Engineering","Quarterly"],"eventLocation": "","access": "Public","spaces": [],"unlisted": false},{"eventId": "64adee61dc5dfe85abf9ae3e","eventTitle": "Bay Area Networking Mixer","eventType": "In-Person","eventTimezone": "America/Los_Angeles","eventStartTime": "2024-11-15T18:00:00.000Z","eventEndTime": "2024-11-15T21:00:00.000Z","eventCreatedTime": "2024-10-20T14:05:53.487Z","eventCreatedFrom": "CommunityDashboard","eventSlug": "bay-area-networking-mixer-2024-11-15","eventUrl": "https://test.gradual/home/events/bay-area-networking-mixer-2024-11-15","eventStatus": "Published","eventCoverUrl": "https://abc.cloudfront.net/uploads/test/cover-67890.png","eventTag": ["Networking"],"eventLocation": "San Francisco, CA","access": "Selected Spaces Only","spaces": ["Space 1","Space 2"],"unlisted": false}]}
Get an Event by Event ID
URL: https://api.gradual-api.com/public-api/v1/events/:eventId
HTTP Method: GET
Content type: application/json
Tier: Light
Path Parameters:
eventId, string, required, this is the unique identifier to find an event
Response Example:
{"eventId": "654180e3566f8d5a7fb49e86","eventTitle": "Q4 Engineering Summit","eventType": "Livestream","eventTimezone": "America/Los_Angeles","eventStartTime": "2024-10-30T07:00:00.000Z","eventEndTime": "2024-10-30T09:00:00.000Z","eventCreatedTime": "2024-10-15T22:34:11.099Z","eventCreatedFrom": "CommunityDashboard","eventSlug": "q4-engineering-summit-2024-10-30","eventUrl": "https://test.gradual/home/events/q4-engineering-summit-2024-10-30","eventStatus": "Published","eventCoverUrl": "https://abc.cloudfront.net/uploads/test/cover-12345.png","eventTag": ["Engineering","Quarterly"],"eventLocation": "","access": "All Members","spaces": [],"unlisted": false}
Get Event Attendees
URL: https://api.gradual-api.com/public-api/v1/events/:eventId/attendees
HTTP Method: GET
Content type: application/json
Tier: Medium
Path Parameters:
eventId, string, required, this is the unique identifier to find an event
Query Parameters:
pageNum, number, optional, default 1pageSize, number, optional, default 50userEmail, string, optional, filter attendees by their email address. Special characters must be URL-encoded — for example[email protected]must be sent asuser%[email protected]. Unencoded+is decoded as space by the URL parser and will be rejected with a400 invalid emailerror.userId, string, optional, filter attendees by their user ID
Response Example:
{"size": 2,"pageNumber": 1,"pageSize": 2,"results": [{"attendeeId": "654d66f8ea532ea2ac8cf004","userId": "654d6623ea532ea2ac8ced28","attendeeFirstName": "Jane","attendeeLastName": "Doe","attendeeDisplayName": "Jane Doe","attendeeType": "Attendee","ticketType": "General Admission","registeredAt": "2023-11-09T23:10:48.118Z","attendeeLinkedUrl": "https://www.linkedin.com/in/janedoe","attendeeCompanyName": "Test Company","attendeePosition": "Software Engineer","eventQuestions": "What is your dietary preference?: Vegetarian;\nHow did you hear about this event?: LinkedIn, Newsletter;"},{"attendeeId": "65488c238314ce3add483d54","userId": "64bffb03c4ac58e329f0f0b4","attendeeFirstName": "John","attendeeLastName": "Smith","attendeeDisplayName": "John Smith","attendeeType": "Speaker","ticketType": "VIP","registeredAt": "2023-11-06T06:48:03.354Z","attendeeLinkedUrl": "","attendeeCompanyName": "Gradual Inc","attendeePosition": "Product Manager","eventQuestions": ""}]}
Get Attendee by Attendee ID
URL: https://api.gradual-api.com/public-api/v1/events/:eventId/attendees/:attendeeId
HTTP Method: GET
Content type: application/json
Tier: Light
Path Parameters:
eventId, string, required, this is the unique identifier to find an eventattendeeId, string, required, this is the unique identifier to find an attendee
Response Example:
{"attendeeId": "654d66f8ea532ea2ac8cf004","userId": "654d6623ea532ea2ac8ced28","attendeeFirstName": "Jane","attendeeLastName": "Doe","attendeeDisplayName": "Jane Doe","attendeeType": "Attendee","ticketType": "General Admission","registeredAt": "2023-11-09T23:10:48.118Z","attendeeLinkedUrl": "https://www.linkedin.com/in/janedoe","attendeeCompanyName": "Test Company","attendeePosition": "Software Engineer","eventQuestions": "What is your dietary preference?: Vegetarian;\nHow did you hear about this event?: LinkedIn, Newsletter;"}
Register User to an Event
URL: https://api.gradual-api.com/public-api/v1/registration
HTTP Method: POST
Content type: application/json
Tier: Medium
Request Body Parameters:
eventSlug, string, required, slug of the eventemail, string, required, user emailfirstName, string, required, user first namelastName, string, required, user last nameposition, string, required, user job titlecompany, string, required, user company nameticketOptionId, string, optional, id of ticket option (available from event dashboard)
Response Example (success, 200):
{"message": "Registration successful"}
Response Example (user already registered, 400):
{}
Get Event Invitees
URL: https://api.gradual-api.com/public-api/v1/events/:eventId/invitees
HTTP Method: GET
Content type: application/json
Tier: Medium
Path Parameters:
eventId, string, required, this is the unique identifier of the event
Query Parameters:
pageNum, number, optional, default 1pageSize, number, optional, default 50, max 200ticketType, string, optional, ticket name (e.g."VIP Pass"). Must match an existing ticket on the event exactly; an unknown name returns a 400 error.attendeeType, string, optional, one of"Attendee","Speaker","Host","Staff","Guest","Press","Sponsor". An unrecognized value returns a 400 error.inviteeEmail, string, optional, filter invitees by their email address. Special characters must be URL-encoded — for example[email protected]must be sent asuser%[email protected]. Unencoded+is decoded as space by the URL parser and will be rejected with a400 invalid emailerror.inviteAdminEmail, string, optional, filter invitees by the invite admin's email address. Must belong to a community member; an unknown email returns a400error. Note: the response field below isinviteAdminand contains the admin's display name.
Response Example:
{"size": 2,"pageNumber": 1,"pageSize": 50,"results": [{"inviteeId": "665a1b2c3d4e5f6a7b8c9d0e","attendeeType": "Attendee","ticketType": "VIP Pass","inviteAdmin": "Sarah Chen","note": "Key account - priority","createdAt": "2026-04-10T14:30:00.000Z","usedAt": "2026-04-12T09:15:22.000Z","usedBy": {"userId": "6553ce608b3f645e79d95034","displayName": "Jane Doe"}},{"inviteeId": "665a1b2c3d4e5f6a7b8c9d0f","attendeeType": "Speaker","ticketType": "VIP Pass","inviteAdmin": null,"ccEmailAddresses": [],"note": "","createdAt": "2026-04-10T14:35:00.000Z","usedAt": null,"usedBy": null}]}
Field notes:
- Only email-based invitations are returned. Code-based invitations (reusable codes shared across multiple redemptions) are not included.
inviteAdminis the display name of the invite admin user when one is assigned, otherwisenull.ccEmailAddressesis the list of emails of community members CC'd on the invitation. Order matches the order they were added.usedAtandusedByare populated once the invitee has redeemed the invitation by registering for the event. Both arenulluntil the invite is redeemed.
Response Example (event not found, 404):
{"message": "Event not found."}
Add an Invitee
URL: https://api.gradual-api.com/public-api/v1/events/:eventId/invitees
HTTP Method: POST
Content type: application/json
Tier: Medium
Path Parameters:
eventId, string, required, this is the unique identifier of the event
Request Body Parameters:
inviteeEmail, string, required, the email address to inviteticketType, string, required, ticket name (e.g."VIP Pass"). Must match an existing ticket on the event and be marked invitation-only.attendeeType, string, required, one of"Attendee","Speaker","Host","Staff","Guest","Press","Sponsor"note, string, optional, free-form note on the invitation, max 200 charactersinviteAdminEmail, string, optional, email address of the invite admin responsible for this invitation. Must belong to a community member who has Event Invite Admin permission on this event.ccEmailAddresses, array of strings, optional, list of community member emails to CC on the invitation notification. Each email must belong to an existing community member.
Sending the invitation triggers the existing invitation email to the invitee.
Response Example (success, 200):
{"message": "Invitee added successfully"}
Response Example (already invited for this ticket type, 400):
{}
Response Example (already registered, 400):
{}
Response Example (ticket type is not invitation-only, 400):
{"message": "Ticket type \"General Admission\" is not an invitation-only ticket type."}
Response Example (ticket type not found, 400):
{"message": "Ticket type \"VIP Pass\" not found for this event."}
Response Example (CC email is not a community member, 400):
{}
Response Example (event not found, 404):
{"message": "Event not found."}