Update user profile by email
URL: https://api.gradual-api.com/public-api/v1/updateProfileByEmail
HTTP Method: POST
Content type: application/json
Request Body Parameters:
email, string, required, this is the unique identifier to find and update userfirstName, stringlastName, stringposition, stringcompany, stringpictureUrl, stringmemberType, string (one of “Standard”, “Guest”, or “Limited Approval”)
Response:
{user: {idfirstNamelastNamepositioncompanymemberType}}
Add a new user
URL: https://api.gradual-api.com/public-api/v1/users
HTTP Method: POST
Content type: application/json
Request Body Parameters:
email, string, required, this is the unique identifier to find and update userfirstName, string, requiredlastName, string, requiredposition, string, requiredcompany, string, requiredlinkedInUrl, string, optionalpictureUrl, string, optional
Request Body Example:
{"firstName": "test_first","lastName": "test_last","company": "test_company","position": "test_position","linkedInUrl": "","pictureUrl": "" }
Response Example:
{"userFirstName": "test_first","userLastName": "test_last","userTitle": "test_position","userCompany": "test_company","userLinkedIn": "","pictureUrl": "","userId": "6553ce608b3f645e79d95034","memberType": "Standard","approvalStatus": "approved","displayName": "test_first test_last","spaces": ["Space 1","Space 2"],"questionnaire": {}}
Get a user by user ID
URL: https://api.gradual-api.com/public-api/v1/users/:userId
HTTP Method: GET
Content type: application/json
Path Parameters:
userId, string, required, this is the unique identifier to find a user
Response Example:
{"userFirstName": "test_first","userLastName": "test_last","userTitle": "test_position","userCompany": "sbsbsbsbsbsbsbsb","userLinkedIn": "","userId": "6553ce608b3f645e79d95034","memberType": "Standard","approvalStatus": "approved","displayName": "test_first test_last","questionnaire": {},"signUpAt": "2024-06-12T08:21:16.388Z","lastLoginAt": "2024-06-14T16:07:13.786Z","onboardingAt": "2024-06-13T04:57:19.262Z"}
Get a user by email
URL: https://api.gradual-api.com/public-api/v1/users
HTTP Method: GET
Content type: application/json
Query Parameters:
email, string, required, this is the unique identifier to find a user
Response Example:
{"userFirstName": "test_first","userLastName": "test_last","userTitle": "test_position","userCompany": "sbsbsbsbsbsbsbsb","userLinkedIn": "","userId": "6553ce608b3f645e79d95034","memberType": "Standard","approvalStatus": "approved","displayName": "test_first test_last","questionnaire": {},"signUpAt": "2024-06-12T08:21:16.388Z","lastLoginAt": "2024-06-14T16:07:13.786Z","onboardingAt": "2024-06-13T04:57:19.262Z"}
Get the events data
URL: https://api.gradual-api.com/public-api/v1/events
HTTP Method: GET
Content type: application/json
Query Parameters:
- pageNum: number, optional, default 1
- pageSize: number, optional, default 50
- title: string, optional, support partial matches
- startDate: 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.
Response Example:
{"size": 2,"pageNumber": 1,"pageSize": 2,"results": [{"eventId": "654180e3566f8d5a7fb49e86","eventTitle": "Test Room","eventType": "Livestream","eventTimezone": "America/Los_Angeles","eventStartTime": "2023-10-30T07:00:00.000Z","eventEndTime": "2023-11-30T08:00:00.000Z","eventCreatedTime": "2023-10-31T22:34:11.099Z","eventCreatedFrom": "CommunityDashboard","eventSlug": "test-room-2023-10-30","eventUrl": "https://test.gradual/home/events/test-room-2023-10-30","eventStatus": "Published"},{"eventId": "64adee61dc5dfe85abf9ae3e","eventTitle": "Test livestream","eventType": "Livestream","eventTimezone": "America/Los_Angeles","eventStartTime": "2023-07-25T00:00:00.000Z","eventEndTime": "2024-09-30T00:00:00.000Z","eventCreatedTime": "2023-07-12T00:05:53.487Z","eventCreatedFrom": "CommunityDashboard","eventSlug": "test-livestream-2023-07-11","eventUrl": "https://test.gradual/home/events/test-livestream-2023-07-11","eventStatus": "Published"}]}
Get an event by event ID
URL: https://api.gradual-api.com/public-api/v1/events/:eventId
HTTP Method: GET
Content type: application/json
Path Parameters:
eventId, string, required, this is the unique identifier to find an event
Response Example:
{"eventId": "654180e3566f8d5a7fb49e86","eventTitle": "Test Room","eventType": "Livestream","eventTimezone": "America/Los_Angeles","eventStartTime": "2023-10-30T07:00:00.000Z","eventEndTime": "2023-11-30T08:00:00.000Z","eventCreatedTime": "2023-10-31T22:34:11.099Z","eventCreatedFrom": "CommunityDashboard","eventSlug": "test-room-2023-10-30","eventUrl": "https://test.gradual/home/events/test-room-2023-10-30","eventStatus": "Published"}
Get the event’s attendees’ data
URL: https://api.gradual-api.com/public-api/v1/events/:eventId/attendees
HTTP Method: GET
Content type: application/json
Path Parameters:
eventId, string, required, this is the unique identifier to find an event
Query Parameters:
- pageNum: number, optional, default 1
- pageSize: number, optional, default 50
- userEmail: string, optional, filter attendees by their email address
- userId: string, optional, filter attendees by their user ID
Response Example:
{"size": 2,"pageNumber": 1,"pageSize": 2,"results": [{"attendeeId": "654d66f8ea532ea2ac8cf004","userId": "654d6623ea532ea2ac8ced28","attendeeFirstName": "Vijay","attendeeLastName": "John","attendeeDisplayName": "Vijay John","attendeeType": "USER","registeredAt": "2023-11-09T23:10:48.118Z","attendeeLinkedUrl": "https://www.linkedin.com/in/xxxxxx","attendeeCompanyName": "TestCo","attendeePosition": "CEO"},{"attendeeId": "65488c238314ce3add483d54","userId": "64bffb03c4ac58e329f0f0b4","attendeeFirstName": "Jerry","attendeeLastName": "Louis","attendeeDisplayName": "Jerry Louis","attendeeType": "USER","registeredAt": "2023-11-06T06:48:03.354Z","attendeeLinkedUrl": "https://www.linkedin.com/in/xxxxxx","attendeeCompanyName": "Gradual Inc","attendeePosition": "Engineering"}]}
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
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": "Vijay","attendeeLastName": "John","attendeeDisplayName": "Vijay John","attendeeType": "USER","registeredAt": "2023-11-09T23:10:48.118Z","attendeeLinkedUrl": "https://www.linkedin.com/in/xxxxxx","attendeeCompanyName": "TestCo","attendeePosition": "CEO"},
Register User To An Event
URL: https://api.gradual-api.com/public-api/v1/registration
HTTP Method: POST
Content type: application/json
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:
- success
- status code = 200 with payload
{ "message": "Registration successful" }
- status code = 200 with payload
- if user already registered:
- status code = 400 with payload
{ "message": User with email \"<email_address>\" already registered for this event." }
- status code = 400 with payload
- other errors:
- status code = 400 with error-specific messages.
Get List of All Spaces
URL: https://api.gradual-api.com/public-api/v1/spaces
HTTP Method: GET
Content type: application/json
Response Example:
[{"name": "Space 1","description": "Space description is optional"},{"name": "Space 2"}]
Update User Space Assignments
URL: https://api.gradual-api.com/public-api/v1/updateUserSpacesByEmail
HTTP Method: POST
Content type: application/json
Request Body Parameters:
email, string, required, this is the unique identifier to find and update userspaces, [string], array of space names to be assignedmode, string, one of “override” or “add”- “add” mode would add user to all spaces specified in
spaces, user’s previous space assignments will not be affected - “override” mode would wipe out any previous space assignments of this user, before assigning the user to the spaces specified by
spaces - Use
mode = “override”withspaces = []would remove user from all spaces
- “add” mode would add user to all spaces specified in
Response Example:
{"userId": "654d6623ea532ea2ac8ced28","userFirstName": "John","userLastName": "Smith","oldSpaces": ["Space 1"],"newSpaces": ["Space 1","Space 2"]}
Get a user's club by user ID
URL: https://api.gradual-api.com/public-api/v1/users/:userId/clubs
HTTP Method: GET
Content type: application/json
Path Parameters:
userId, string, required, this is the unique identifier to find a user
Response Example:
{"userFirstName": "test_first","userLastName": "test_last","userId": "6553ce608b3f645e79d95034","userClubs": [{"clubId": "6553ce608b3f645e79d95034","clubName": "Club 1","clubSlug": "club-1"}]}
Get all clubs
URL: https://api.gradual-api.com/public-api/v1/clubs
HTTP Method: GET
Content type: application/json
Response Example:
[{"clubId": "6553ce608b3f645e79d95034","clubName": "Club 1","clubSlug": "club-1"}]
Add a user to a club
URL: https://api.gradual-api.com/public-api/v1/clubs/:clubId/users
HTTP Method: POST
Content type: application/json
Path Parameters:
clubId, string, required, this is the unique identifier to find a club
Request Body Parameters:
userId, string, optional, this is the unique identifier to find a user(at least one ofuserIdoremailis required)email, string, optional, this is the unique identifier to find a user(at least one ofuserIdoremailis required)
Response Example:
{"success": true,}
Delete a user from a club
URL: https://api.gradual-api.com/public-api/v1/clubs/:clubId/users
HTTP Method: DELETE
Content type: application/json
Path Parameters:
clubId, string, required, this is the unique identifier to find a club
Request Body Parameters:
userId, string, optional, this is the unique identifier to find a user(at least one ofuserIdoremailis required)email, string, optional, this is the unique identifier to find a user(at least one ofuserIdoremailis required)
Response Example:
{"success": true,}# Get all collectionsURL: `https://api.gradual-api.com/public-api/v1/collections`HTTP Method: `GET`Content type: `application/json`Query Parameters:- `pageNum`, number, optional, default 1- `pageSize`, number, optional, default 50, max 200**Note:** The collections are returned in order of creation date, with the most recently created collections appearing first.Response Example:```json{"size": 1,"pageNumber": 1,"pageSize": 50,"results": [{"collectionID": "63e293d17efa0788a97273fe","collectionName": "Collection Name","collectionVisibility": "Visible","collectionUrl": "https://elc.gradual/home/collections/collection-name","collectionCoverUrl": "https://d2xo500swnpgl1.cloudfront.net/uploads/elc/Collection-Name-fd0ffeb0-195e-491e-9eea-ae351f9914d8-1676390983173.png","collectionSlug": "collection-name","collectionUpdatedAt": "2025-08-14T12:39:31.259Z","collectionContent": [{"type": "video","id": "63d40ad685f10b97ffa7feae","title": "Video Title"},{"type": "blog","id": "6266772cfffad41e5be35862","title": "Article Title"},]}]}
Get all videos
URL: https://api.gradual-api.com/public-api/v1/videos
HTTP Method: GET
Content type: application/json
Query Parameters:
- pageNum: number, optional, default 1
- pageSize: number, optional, default 50, max 200
- fromDate: string, optional, format:
YYYY-MM-DD, date will be padded to the start of the day. If afromDateis specified, the response will include videos with a created time later than 00:00 of the providedfromDate. - toDate: string, optional, format:
YYYY-MM-DD, date will be padded to the end of the day. Similarly, if antoDateis specified, the response will include videos with an created time earlier than 23:59 of the providedtoDate.
Note: The videos are returned in order of creation date, with the most recently created videos appearing first.
Response Example:
{"size": 2,"pageNumber": 1,"pageSize": 50,"results": [{"videoId": "654180e3566f8d5a7fb49e86","videoTitle": "Video Title","videoDescription": "Video Description","videoCreatedAt": "2023-10-31T22:34:11.099Z","videoSlug": "video-title","videoUrl": "https://www.youtube.com/watch?v=_Z1mwUosYgwU","videoThumbnailUrl": "https://d2xo500swnpgl1.cloudfront.net/uploads/elc/Video-Title-fd0ffeb0-195e-491e-9eea-ae351f9914d8-1676390983173.png","videoDuration": 120,"videoTags": ["tag1","tag2"],"spaces": ["Space 1","Space 2"],"access": "Public"},{"videoId": "64adee61dc5dfe85abf9ae3e","videoTitle": "Video Title","videoDescription": "Video Description","videoCreatedAt": "2023-10-31T22:34:11.099Z","videoSlug": "video-title","videoUrl": "https://www.youtube.com/watch?v=_Z1mwUosYgwU","videoThumbnailUrl": "https://d2xo500swnpgl1.cloudfront.net/uploads/elc/Video-Title-fd0ffeb0-195e-491e-9eea-ae351f9914d8-1676390983173.png","videoDuration": 120,"videoTags": [],"spaces": [],"access": "Public"}]}
Get all blogs
URL: https://api.gradual-api.com/public-api/v1/blogs
HTTP Method: GET
Content type: application/json
Query Parameters:
- pageNum: number, optional, default 1
- pageSize: number, optional, default 50, max 200
- fromDate: string, optional, format:
YYYY-MM-DD, date will be padded to the start of the day. If afromDateis specified, the response will include blogs with a created time later than 00:00 of the providedfromDate. - toDate: string, optional, format:
YYYY-MM-DD, date will be padded to the end of the day. Similarly, if antoDateis specified, the response will include blogs with an created time earlier than 23:59 of the providedtoDate.
Note: The blogs are returned in order of creation date, with the most recently created blogs appearing first.
Response Example:
{"size": 1,"pageNumber": 1,"pageSize": 50,"results": [{"blogId": "654180e3566f8d5a7fb49e86","blogTitle": "Blog Title","blogSubTitle": "Blog Sub Title","blogAuthor": "Blog Author1, Blog Author2","blogSummary": "Blog Summary","blogContent": "Blog Content","blogCategory": "Blog Category","blogCreatedAt": "2023-10-31T22:34:11.099Z","blogSlug": "blog-title","blogCoverUrl": "https://d2xo500swnpgl1.cloudfront.net/uploads/elc/Video-Title-fd0ffeb0-195e-491e-9eea-ae351f9914d8-1676390983173.png","blogTags": ["tag1",],"spaces": ["Space 1",],"access": "Public"}]}
Get all podcasts
URL: https://api.gradual-api.com/public-api/v1/podcasts
HTTP Method: GET
Content type: application/json
Query Parameters:
- pageNum: number, optional, default 1
- pageSize: number, optional, default 50, max 200
- fromDate: string, optional, format:
YYYY-MM-DD, date will be padded to the start of the day. If afromDateis specified, the response will include podcasts with a created time later than 00:00 of the providedfromDate. - toDate: string, optional, format:
YYYY-MM-DD, date will be padded to the end of the day. Similarly, if antoDateis specified, the response will include podcasts with an created time earlier than 23:59 of the providedtoDate.
Note: The podcasts are returned in order of creation date, with the most recently created podcasts appearing first.
Response Example:
{"size": 1,"pageNumber": 1,"pageSize": 50,"results": [{"podcastId": "654180e3566f8d5a7fb49e86","podcastTitle": "Podcast Title","podcastSubTitle": "Podcast Sub Title","podcastAuthor": "Podcast Author1, Podcast Author2","podcastSummary": "Podcast Summary","podcastContent": "Podcast Content","podcastCategory": "Podcast Category","podcastCreatedAt": "2023-10-31T22:34:11.099Z","podcastSlug": "podcast-title","podcastCoverUrl": "https://d2xo500swnpgl1.cloudfront.net/uploads/elc/Video-Title-fd0ffeb0-195e-491e-9eea-ae351f9914d8-1676390983173.png","podcastTags": ["tag1",],"spaces": ["Space 1",],"access": "Public"}]}
Get all resources
URL: https://api.gradual-api.com/public-api/v1/resources
HTTP Method: GET
Content type: application/json
Query Parameters:
- pageNum: number, optional, default 1
- pageSize: number, optional, default 50, max 200
- fromDate: string, optional, format:
YYYY-MM-DD, date will be padded to the start of the day. If afromDateis specified, the response will include resources with a created time later than 00:00 of the providedfromDate. - toDate: string, optional, format:
YYYY-MM-DD, date will be padded to the end of the day. Similarly, if antoDateis specified, the response will include resources with an created time earlier than 23:59 of the providedtoDate.
Note: The resources are returned in order of creation date, with the most recently created resources appearing first.
Response Example:
{"size": 1,"pageNumber": 1,"pageSize": 50,"results": [{"resourceId": "654180e3566f8d5a7fb49e86","resourceTitle": "Resource Title","resourceSubTitle": "Resource Sub Title","resourceAuthor": "Resource Author1, Resource Author2","resourceSummary": "Resource Summary","resourceContent": "Resource Content","resourceCategory": "Resource Category","resourceCreatedAt": "2023-10-31T22:34:11.099Z","resourceSlug": "resource-title","resourceCoverUrl": "https://d2xo500swnpgl1.cloudfront.net/uploads/elc/Video-Title-fd0ffeb0-195e-491e-9eea-ae351f9914d8-1676390983173.png","resourceTags": ["tag1",],"spaces": ["Space 1",],"access": "Public"}]}
Get all external-contents
URL: https://api.gradual-api.com/public-api/v1/external-contents
HTTP Method: GET
Content type: application/json
Query Parameters:
- pageNum: number, optional, default 1
- pageSize: number, optional, default 50, max 200
- fromDate: string, optional, format:
YYYY-MM-DD, date will be padded to the start of the day. If afromDateis specified, the response will include external-contents with a created time later than 00:00 of the providedfromDate. - toDate: string, optional, format:
YYYY-MM-DD, date will be padded to the end of the day. Similarly, if antoDateis specified, the response will include external-contents with an created time earlier than 23:59 of the providedtoDate.
Note: The external-contents are returned in order of creation date, with the most recently created external-contents appearing first.
Response Example:
{"size": 1,"pageNumber": 1,"pageSize": 50,"results": [{"externalContentId": "654180e3566f8d5a7fb49e86","externalContentTitle": "External Content Title","externalContentSummary": "External Content Summary","externalContentContent": "External Content Content","externalContentCategory": "External Content Category","externalContentCreatedAt": "2023-10-31T22:34:11.099Z","externalContentSlug": "external-content-title","externalContentCoverUrl": "https://d2xo500swnpgl1.cloudfront.net/uploads/elc/Video-Title-fd0ffeb0-195e-491e-9eea-ae351f9914d8-1676390983173.png","externalContentLink": "https://www.google.com","externalContentTags": ["tag1",],"spaces": ["Space 1",],"access": "Public"}]}