TABLE OF CONTENTS
- 1. Overview
- 2. Use cases
- 3. Authentication
- 4. Event Details API's
- 4.1 List Airmeets
- 4.2 Fetch Airmeet participants
- 4.3 Fetch Airmeet Sessions
- 4.4 Fetch Airmeet Custom Registration Fields
- 4.5 Fetch event attendance
- 4.6 Fetch session attendance
- 4.7 Fetch Airmeet Booths
- 4.8 Fetch Booth Attendance
- 4.9 Fetch Poll Responses
- 4.10 Fetch Questions Asked
- 4.11 Fetch Event Tracks
- 4.12 Fetch Registration UTM
- 4.13 Download Session Recordings
- 4.14 Fetch Event Replay Attendance
- 5. Points to keep in mind and Limitations
1. Overview
Connect your Platform stack with Airmeet APIs and create events, add sessions, or add participants for an Airmeet event.
2. Use cases
- Adding registrations to an event
- Adding speakers in bulk
- Creating sessions in bulk
- Creating booths in bulk
- Fetching attendance for the event, sessions, and booths for an event
- Fetching poll responses, questions asked for an event
Datacenter (region)-wise API endpoints:
1. Use the "Default region" API if your community URL looks like this:
Default region (Mumbai): https://api-gateway.airmeet.com/prod
2. Use the "EU region" API if your community URL looks like this:
EU region: https://api-gateway-prod.eu.airmeet.com/prod
3. Use the "US region" API if your community URL looks like this:
US region: https://api-gateway-prod.us.airmeet.com/prod
Community dashboard: https://www.airmeet.com/ (use this to get a key pair issued).
3. Authentication
3.1 Generate Access token & key
Step 1: Sign in to your airmeet account ( https://www.airmeet.com/signup )
Step 2: Click on the "Integrations" tab and select the "API Access Key" section.
Step 3: Click on "Generate access key" and provide a name/label to your key (can be anything that can be remembered later)
Step 4: After providing your label name 'X-Airmeet-Access-Key' with 'X-Airmeet-Secret-Key' would be generated, which can be used in API integration
Access Key = X-Airmeet-Access-Key
Secret Key = X-Airmeet-Secret-Key
All APIs expect a Content-Type: application/JSON header.
3.2 Authentication
POST /auth
This API issues a token for use with the other APIs mentioned in this doc.
Tokens issued by this API are valid for 30 days and can be cached on the consumer service.
Headers
X-Airmeet-Access-Key and X-Airmeet-Secret-Key (can be obtained over from the integrations tab in the community dashboard)
Response
200 OK {"success": true, "data": {"label": "test", "token":
<your_access_token>}}
400 Bad Request - in case the request is missing a header or the supplied values are incorrect
403 Forbidden - in case the keys are revoked (abuse prevention)
500 Internal Server Error - generic server error
4. Event Details API's
4.1 List Airmeets
GET /airmeets?before=<cursor>&after=<cursor>&size=<number>
This API lists the Airmeets accessible to a token.
The before and after cursors cannot both be used at the same time. If they are both specified, the API ignores them before the cursor.
If not specified, the size is set to 50 Airmeets. Max can be 500.
Airmeets are sorted by their creation time. Airmeet doesn't show Archived (Delete) event.
Headers
X-Airmeet-Access-Token: airmeet_access_token
Response:
200 OK
{
"data" : [
{
"uid" : <airmeet_uuid>,
"name" : "Test Airmeet" ,
"status" : "ONGOING" ,
"timezone" : "Asia/Kolkata" ,
"startTime" : <ISO_Date_String>,
"endTime" : <ISO_Date_String>
}
],
"cursors" : {
"before" : <integer>,
"after" : <integer>,
"pageCount" : 3
}
}
412 Precondition Failed - in case the passed access token has expired
500 Internal Server Error - generic server error
4.2 Fetch Airmeet participants
GET /airmeet/{airmeetId}/participants?emailIds=<comma separated email ids>&resultSize=<number>&pageNumber=<number>&sortingKey=<column header>&sortingDirection=<direction enum>
This API gives a list of all participants for an event, including invitees, guests and registered users
Use the emailIds query parameter to get participant details for specific email ids. You can query a single email ID or a list of comma separated email IDs.
By default, the resultSize is set to 1000 registrants. Eg. Set parameter pageNumber=2 for response number 1001-2000, and so on.
Registrations are sorted in descending order of their creation time
sortingKey can be [‘name’, ‘email’, ‘registrationDate’]
sortingDirection can be [‘ASC’, ‘DESC’]
Headers:
X-Airmeet-Access-Token: airmeet_access_token
Response:
200 OK
{
"participants": [
{
"email": "[email protected]",
"name": "John Doe",
"city": "City",
"country": "World",
"organisation": "Company",
"Designation": "Role",
"registrationDate": <ISO_Date_String>
"profile_url": null,
"user_type": "Registered User",
"token": "<direct access link url>",
"invite_sent": true,
"user_profile": [
{
"value": "Custom registration field",
"fieldId": "e9bbf124-6f54-44aa-8683-09dc34fd246a"
}
]
},..
],
"userCount": 50,
"totalUserCount": 125
}
400 Bad Request - in case the passed token is bad
401 Unauthorized - in case the token does not belong to this Airmeet's community
404 Not Found - in case the supplied airmeet_id param is invalid
412 Precondition Failed - in case the passed access token has expired
500 Internal Server Error - generic server error
4.3 Fetch Airmeet Sessions
Headers:
X-Airmeet-Access-Token: airmeet_access_token
Response:
200 OK
{
"sessions": [
{
"sessionid": "0219006f-7cfa-44ba-b47f-14d93a40fc99",
"name": "Welcome Session",
"start_time": "2021-10-14T07:30:00.000Z",
"status": "CREATED",
"duration": 30,
"summary": "Session Summary",
"host_id": [
"bZxdWONJy"
],
"cohost_ids": [],
"speaker_id": [],
"speakerList": [],
"type": "HOSTING",
},...
]
}
400 Bad Request - in case the passed token is bad
401 Unauthorized - in case the token does not belong to this Airmeet's community
404 Not Found - in case the supplied airmeet_id param is invalid
412 Precondition Failed - in case the passed access token has expired
500 Internal Server Error - generic server error
4.4 Fetch Airmeet Custom Registration Fields
GET /airmeet/{airmeetId}/custom-fields
Headers:
X-Airmeet-Access-Token: airmeet_access_token
Response:
200 OK
{
"customFields": [
{
"label": "Short Text Field",
"name": "shortText",
"fieldId": "5a0d3578-6851-4d49-bcb9-96d7466b64bb",
"options": [],
"isRequired": false,
"type": {
"fieldType": "custom",
"inputType": "text",
"mappedFrom": "shortText"
}
},
{
"label": "Single Select Field",
"name": "singleSelect",
"fieldId": "cc68e0a7-0f59-458a-84af-2ac2784fae01",
"options": [
{
"code": "Option1",
"displayValue": "Option1"
},
{
"code": "Option2",
"displayValue": "Option2"
},
{
"code": "Option3",
"displayValue": "Option3"
}
],
"isRequired": false,
"type": {
"fieldType": "custom",
"inputType": "radio",
"mappedFrom": "singleSelect"
}
},
{
"label": "Multi Select Field",
"name": "multiSelect",
"fieldId": "b7604a72-6a45-4757-ba71-25ab9f3841ee",
"options": [
{
"code": "Option1",
"displayValue": "Option1"
},
{
"code": "Option2",
"displayValue": "Option2"
},
{
"code": "Option3",
"displayValue": "Option3"
}
],
"isRequired": false,
"type": {
"fieldType": "custom",
"inputType": "checkbox",
"mappedFrom": "multiSelect"
}
}
]
}
Generic
400 Bad Request - in case the passed token is bad
401 Unauthorized - in case the token does not belong to this Airmeet's community
404 Not Found - in case the supplied airmeet_id param is invalid
412 Precondition Failed - in case the passed access token has expired
500 Internal Server Error - generic server error
4.5 Fetch event attendance
GET /airmeet/{airmeetId}/attendees?after=<cursor>&before=<cursor>&size=<number>
This API gives a list of all event attendees.
You can set the page size between 1 to 50.
This is an Asynchronous API. If you get a 202 code in response, please try again after 5 minutes.
Headers:
X-Airmeet-Access-Token: airmeet_access_token
Response:
202 Accepted
{
"statusCode": 202,
"statusMessage": "Preparing your results.Try after 5 minutes to get the updated results"
}
Response:
200 OK
{
"cursors": {
"after": 4024760,
"before": 4024760,
"pageCount": 1,
"totalCount": 1
},
"data": [
{
"email": "[email protected]",
"id": 4024760,
"name": "John Doe",
"user_id": "9jWs2N5Ex",
"time_stamp": "2021:12:25T12:20:56.00Z",
"time_spent": "20000"
}
],
"statusCode": 200,
"statusMessage": "SUCCESS"
}
400 Bad Request - in case the passed token is bad
400 Bad Request - in case the token does not belong to this Airmeet's community
400 Bad Request - in case the supplied airmeet_id param is invalid
412 Precondition Failed - in case the passed access token has expired
500 Internal Server Error - generic server error
4.6 Fetch session attendance
GET /session/{sessionId}/attendees?after=<cursor>&before=<cursor>&size=<number>
This API gives a list of all session attendees.
You can set the page size between 1 to 50.
This is an Asynchronous API. If you get a 202 code in response, please try again after 5 minutes.
Headers:
X-Airmeet-Access-Token: airmeet_access_token
Response:
202 Accepted
Response:
200 OK
{
"cursors": {
"after": 4024760,
"before": 4024760,
"pageCount": 1,
"totalCount": 1
},
"data": [
{
"email": "[email protected]",
"id": 4024760,
"name": "John Doe",
"user_id": "9jWs2N5Ex",
"time_stamp": "2021:12:25T12:20:56.00Z",
"time_spent": "20000"
}
],
"statusCode": 200,
"statusMessage": "SUCCESS"
}
400 Bad Request - in case the passed token is bad
400 Bad Request - in case the token does not belong to this Airmeet's community
400 Bad Request - in case the supplied sessionId param is invalid
412 Precondition Failed - in case the passed access token has expired
500 Internal Server Error - generic server error
4.7 Fetch Airmeet Booths
GET /airmeet/{airmeetId}/booths
This API gives a list of all booths in your Airmeet.
Headers:
X-Airmeet-Access-Token: airmeet_access_token
Response:
200 OK
{
"booths": [
{
"uid": "{boothId}",
"name": "booth name",
"exhibitors": [
"[email protected]",
"[email protected]"
],
"tags": [
"Tag 1",
"Tag 2"
],
"airmeet_id": "{airmeetId}",
"logo_url": "https://image_url",
"video": null,
"faqs": null,
"order": 1,
"resources": null,
"layoutType": null,
"layoutData": "null",
"boothExhibitor": true,
"social_media_links": null,
"short_description": null,
"long_description": null,
"banner_url": null,
"register_interest_details": null,
"offer_details": null,
"doc_url": null,
"doc_name": null,
"booth_space_id": null
}
]
}
400 Bad Request - in case the passed token is bad
400 Bad Request - in case the token does not belong to this Airmeet's community
400 Bad Request - in case the supplied sessionId param is invalid
412 Precondition Failed - in case the passed access token has expired
500 Internal Server Error - generic server error
4.8 Fetch Booth Attendance
GET /airmeet/{airmeetId}/booth/{boothId}/booth-attendance?after=<cursor>&before=<cursor>&size=<number>
This API gives a list of all booth attendees.
You can set the page size between 1 to 50.
This is an Asynchronous API. If you get a 202 code in response, please try again after 5 minutes.
Headers:
X-Airmeet-Access-Token: airmeet_access_token
Response:
202 Accepted
{
"statusCode": 202,
"statusMessage": "Preparing your results. Try after 5 minutes to get the updated results"
}
Response:
200 OK
{
"cursors": {
"after": 4024760,
"before": 4024760,
"pageCount": 1,
"totalCount": 1
},
"data": [
{
"email": "[email protected]",
"id": 4024760,
"name": "John Doe",
"interested_in_being_contacted": true,
"user_id": "9jWs2N5Ex",
"visits": 1,
"time_stamp": "2021:12:25T12:20:56.00Z",
"time_spent": "20000"
}
],
"statusCode": 200,
"statusMessage": "SUCCESS"
}
400 Bad Request - in case the passed token is bad
400 Bad Request - in case the token does not belong to this Airmeet's community
400 Bad Request - in case the supplied airmeet_id param is invalid
412 Precondition Failed - in case the passed access token has expired
500 Internal Server Error - generic server error
4.9 Fetch Poll Responses
GET /airmeet/{airmeetId}/polls?after=<cursor>&before=<cursor>&size=<number>
This API gives a list of all poll responses
You can set the page size between 1 to 50.
Headers:
X-Airmeet-Access-Token: airmeet_access_token
Response:
200 OK
{
"cursors": {
"after": 4024760,
"before": 4024760,
"pageCount": 1,
"totalCount": 1
},
"data": [
{
"email": "[email protected]",
"name": "John Doe",
"user_id": "9jWs2N5Ex",
"polls": [
{
"question": "Poll Question 1",
"answer": "Poll Answer 1",
"time_stamp": "2021:12:25T12:20:56.00Z"
},
{
"question": "Poll Question 2",
"session_id": "Poll Answer 2"
"time_stamp": "2021:12:25T12:20:56.00Z"
}
]
},
],
"statusCode": 200,
"statusMessage": "SUCCESS"
}
400 Bad Request - in case the passed token is bad
400 Bad Request - in case the token does not belong to this Airmeet's community
400 Bad Request - in case the supplied airmeet_id param is invalid
412 Precondition Failed - in case the passed access token has expired
500 Internal Server Error - generic server error
4.10 Fetch Questions Asked
GET /airmeet/{airmeetId}/questions
This API gives all the questions asked in an Airmeet
Headers:
X-Airmeet-Access-Token: airmeet_access_token
Response:
200 OK
{
"data": [
{
"email": "[email protected]",
"name": "John Doe",
"user_id": "9jWs2N5Ex",
"questions": [
{
"question": "Question 1",
"session_id": "{sessionId 1}",
"upvoteCount": 1.0
},
{
"question": "Question 2",
"session_id": "{sessionId 2}",
"upvoteCount": 2.0,
"time_stamp": "2021:12:25T12:20:56.00Z"
}
]
},
],
"statusCode": 200,
"statusMessage": "SUCCESS"
}
400 Bad Request - in case the passed token is bad
400 Bad Request - in case the token does not belong to this Airmeet's community
400 Bad Request - in case the supplied airmeet_id param is invalid
412 Precondition Failed - in case the passed access token has expired
500 Internal Server Error - generic server error
4.11 Fetch Event Tracks
GET /airmeet/{airmeetId}/tracks
- This API gives all the tracks in an Airmeet.
Headers:
X-Airmeet-Access-Token: airmeet_access_token
Response:
200 OK
{
"tracks": [
{
"uid": "1f828815-aaaa-bbbb-cccc-02ee41df1d05",
"name": "track name",
"description": "track description",
"track_order": null,
"metaData": {
"colorCode": "hsl(9,96%,47%)"
},
"sessions": [
"6834900f-aaaa-bbbb-cccc-feebca99c69e"
]
},
{...
}
]
}
400 Bad Request - in case the passed token is bad
400 Bad Request - in case the token does not belong to this Airmeet's community
400 Bad Request - in case the supplied airmeet_id param is invalid
412 Precondition Failed - in case the passed access token has expired
500 Internal Server Error - generic server error
4.12 Fetch Registration UTM
GET /airmeet/{airmeetId}/utms?after=<cursor>&before=<cursor>&size=<number>
This API gives a list of UTM parameters captured at the time of registration
Read more: How to use UTM Parameters in Airmeet?
This is an Asynchronous API. If you get a 202 code in response, please try again after 5 minutes.
Headers:
X-Airmeet-Access-Token: airmeet_access_token
Response:
202 Accepted
Response:
200 OK
Note:
- In "airmeetId": "{airmeetId}", kindly enter the event link inplace of "{airmeetId}"
- In "email": This should be the participant's email id
400 Bad Request - in case the passed token is bad
400 Bad Request - in case the token does not belong to this Airmeet's community
400 Bad Request - in case the supplied airmeet_id param is invalid
412 Precondition Failed - in case the passed access token has expired
500 Internal Server Error - generic server error
4.13 Download Session Recordings
Use this to get fresh links for downloading a session recording. The download links shared in this API are valid for 6 hours.
Endpoint:
GET /airmeet/{airmeet id}/session-recordings?sessionIds=<session id>
Headers:
X-Airmeet-Access-Token: airmeet_access_token
Response:
200 OK -
400 Bad Request - in case the passed token is bad
401 Unauthorized - in case the passed token does not have permission for the passed community_id
404 Not Found - in case the supplied community_id param is invalid
412 Precondition Failed - the passed access token has expired
500 Internal Server Error - generic server error
4.14 Fetch Event Replay Attendance
Endpoint:
GET /airmeet/{airmeet_id}/event-replay-attendees?after=<cursor>&before=<cursor>&size=<number>.
This API gives a list of all session replay attendees.
You can set the page size between 1 to 50.
This is an Asynchronous API. If you get a 202 code in response, please try again after 5 minutes.
Headers:
X-Airmeet-Access-Token: airmeet_access_token
Response:
200 OK
Note
duration_viewed is in minutes
id is the record id cursor that can be used for the before/after cursors.
400 Bad Request - in case the passed token is bad
401 Unauthorized - in case the passed token does not have permission for the passed airmeet_id
404 Not Found - in case the supplied airmeet_id param is invalid
412 Precondition Failed - the passed access token has expired
500 Internal Server Error - generic server error
5. Points to keep in mind and Limitations
- A few time zones might not be available. Kindly check the dashboard for available time zones while creating an event.
- Email address and First and last name are mandatory fields in uploading the CSV file and the custom registration form.
- While fetching the list of Airmeets, The before and after cursors cannot be used simultaneously. If they are both specified, the API ignores them before the cursor.
- Tokens issued by this API are valid for 30 days and can be cached on the consumer service.
- While creating a session:
- Only SessionTitle, SessionStartTime, and Host Email are mandatory fields.
- Speakers should be added to the Airmeet before creating the session.
- Team members should be added to the community before creating the session.
- If you want a speaker to get the same privilege as a co-host, you can add their email in both the speaker and cohost fields.
- The session type should be HOSTING only.
Need more help? Contact [email protected] or visit our 24*7 Support Lounge.
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article