TABLE OF CONTENTS


 

Prerequisites

  • Airmeet community should be under a Paid plan.

Use cases

  • Modify/Delete session start and end time
  • Integrate this API (Braindate) on an Airmeet event
  • Creating sessions in bulk
  • Adding speakers in bulk



API endpoints: 


Default region (Mumbai): https://api-gateway.airmeet.com/prod

EU region: https://api-gateway-prod.eu.airmeet.com/prod

US region: https://api-gateway-prod.us.airmeet.com/prod


Community dashboard: https://www.airmeet.com/ (use this to get a key pair issued).

 


1. Authentication 

1.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.

 


 

1.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

 


 

2. Event Details

2.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.

 

 

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

   }

}

 

 400 Bad Request - in case the supplied token is incorrect

412 Precondition Failed - in case the passed access token has expired

500 Internal Server Error - generic server error


 

2.2 Fetch Airmeet participants

GET /airmeet/{airmeetId}/participants?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

  • By default, the resultSize is set to 50 registrants. Eg. Set parameter pageNumber=2 for response number 51-100, 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": "user_email@example.com",

            "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





2.3 Fetch Airmeet Sessions


GET /airmeet/{airmeetId}/info

 

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




2.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"

            }

        }

    ]

}

 

 

 

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



2.5 Fetch event attendance

GET /airmeet/{airmeetId}/attendees?after=<cursor>&before=<cursor>&size=<number>

 

  • This API gives a list of all event attendees.

  • By default, the response page size is set to 50. Max can be 500.

  • 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": "user_email@example.com",

           "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


 

 


2.6 Fetch session attendance

GET /session/{sessionId}/attendees?after=<cursor>&before=<cursor>&size=<number>

 

  • This API gives a list of all session attendees.

  • By default, the response page size is set to 50. Max can be 500.

  • 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": "user_email@example.com",

           "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



2.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": [

                "booth.exhibitor.1@example.com",

                "booth.exhibitor.2@example.com"

            ],

            "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

 


2.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.

  • By default, the response page size is set to 50. Max can be 500.

  • 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": "user_email@example.com",

           "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

 


2.9 Fetch Poll Responses


GET /airmeet/{airmeetId}/polls?after=<cursor>&before=<cursor>&size=<number>

 

  • This API gives a list of all poll responses

  • By default, the response page size is set to 50. Max can be 500.

 

Headers:

X-Airmeet-Access-Token: airmeet_access_token

Response:

200 OK

{

   "cursors": {

       "after": 4024760,

       "before": 4024760,

       "pageCount": 1,

       "totalCount": 1

   },

   "data": [

        {

            "email": "user_email@example.com",

            "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

 


2.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": "user_email@example.com",

            "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


2.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"

            ]

        },

        {...

        }

    ]

}


Field

Description

tracks

List of all Tracks in the event

uid

Unique track id for each track

sessions

List of session ids in that track


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



3. Manage Registrations

3.1 Add Authorized Attendee


POST /airmeet/{airmeet_id}/attendee

 

Adds an attendee allowed to enter the Airmeet specified. A 'unique link (Magic Link)' would be sent to users, and after clicking on the link, the user can modify these details at the time of entry to the Airmeet.

 

The user will be visible in the session with the details provided in this API, but they can use different details in their individual user profiles.

 

Headers:

X-Airmeet-Access-Token: airmeet_access_token

Request Payload:

 

{

"email": "user_email@example.com",

"firstName": "John",

"lastName": "Doe",

"attendance_type": "IN-PERSON",

"city": "abc",

"country": "xyz",

"designation": "qwerty",

"organisation": "Airmeet",

"registerAttendee": "false",

"sendEmailInvite": "true"

}

 

Email address, First & Last name are mandatory fields.


For a  Hybrid Conference Format, the attendance type field is mandated, and  "attendance_type": "IN-PERSON" or "VIRTUAL." should be mentioned.


IN-PERSON: For attended joining onsite. The attendee will also receive an email containing a QR code and magic link.

VIRTUAL: For attendees joining virtually from their desktop/laptop.


Note :

  • If registerAttendee is set as false, the attendee will be treated as an invitation and saved in the ‘registration pending’ state until they click on their unique link. The default value for registerAttendee is false. It is an optional parameter.
  • Set registerAttendee as true if you want to add the attendee as a confirmed registration. Please note that this will increase the number of event registrations for the event and reduce the number of registrations left by 1.
  • If sendEmailInvite is set to true, an email will be sent to the attendee with the event calendar invite and the unique link. The default value for sendEmailInvite is true. It is an optional parameter.
  • Set sendEmailInvite to false if you wish to skip sending the email to your attendee.
  • For the Hybrid Conference format, if the attendance type: is "IN-PERSON" or "VIRTUAL," the participants would be considered registered by default, and the registration limit would be deducted.


Replaying this request does not change any details for the user. It only authorizes the user again in case their access is revoked.


Response:

 

200 OK - {"email": "user_email@example.com", "entryLink":

"https://www.airmeet.com/e/<airmeet_id>?code=<unique_entry_code>"}

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

 





3.2 Add Authorized Attendee with Custom Registration Fields

POST /airmeet/{airmeet_id}/attendee

 

Adds an attendee allowed to enter the Airmeet specified with custom registration fields. A 'unique link (Magic Link)' would be sent to users, and after clicking on the link, the user can modify these details at the time of entry to the Airmeet.

 

The user will be visible in the session with the details provided in this API.

 

Headers:

X-Airmeet-Access-Token: airmeet_access_token

Request Payload:

 

{

"email": "user_email@example.com",

"firstName": "John",

"lastName": "Doe",

"city": "abc",

"country": "xyz",

"designation": "qwerty",

"organisation": "Airmeet",

"customFieldMapping": [

      {

        "fieldId": "d68ebeb2-bf18-4c96-837b-8872604ae653",

        "value": "Longfield data"

      },

      {

        "fieldId": "dbdf99b1a-ee3b-4dd3-9d97-d54df19f0ba6",

        "value": "option02"

      },

      {

        "fieldId": "af2c99c3-ba9a-4d17-a150-d06a1ae5b736",

        "value": ["Medium","sad","Happy"]

    }],

"registerAttendee": "false",

"sendEmailInvite": "true"

}

 

Email address, First & Last name are mandatory fields.


For a  Hybrid Conference Format, the attendance type field is mandated, and  "attendance_type": "IN-PERSON," or "VIRTUAL." should be mentioned.


IN-PERSON: For attended joining onsite. The attendee will also receive an email containing a QR code and magic link.

VIRTUAL: For attendees joining virtually from their desktop/laptop.


Note :


“custom field mapping” takes an array of fields as the value. Use the “Fetch Custom Registration Fields” API to generate the appropriate value.

Replaying this request does not change any details for the user. It only authorizes the user again in case their access was revoked.


  • If registerAttendee is set as false, the attendee will be treated as an invitation and saved in the ‘registration pending’ state until they click on their unique link. The default value for registerAttendee is false. It is an optional parameter.

  • Set registerAttendee as true if you want to add the attendee as a confirmed registration. Please note that this will increase the number of event registrations for the event and reduce the number of registrations left by 1.

  • If sendEmailInvite is set to true, an email will be sent to the attendee with the event calendar invite and the unique link. The default value for sendEmailInvite is true. It is an optional parameter.

  • Set sendEmailInvite to false if you wish to skip sending the email to your attendee.

  • For the Hybrid Conference format, if the attendance type: is "IN-PERSON" or "VIRTUAL," the participants would be considered registered by default, and the registration limit would be deducted.

 

Response:

 

200 OK - {"email": "user_email@example.com", "entryLink":

"https://www.airmeet.com/e/<airmeet_id>?code=<unique_entry_code>"}

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




4. Manage Event

4.1 Create Airmeet


Create an Airmeet in your community

Automatically create a new Airmeet for a monthly review meeting for your employees or a new batch of students.

Endpoint:

POST /airmeet

Headers:

X-Airmeet-Access-Token: airmeet_access_token

Request Payload:

{

"hostEmail": "host_email@example.com",

"eventName": "Event Name",

"shortDesc": "Short description for the event",

"eventImage": "event image url",

"longDesc": "Long description for the event",

"access": "INVITED_ONLY",

"eventType": "MEETUP",

"timing": {

   "startTime": 1622528299000,

   "endTime": 1622528299000,

   "timezone": "Asia/Kolkata"

},

"config": {

   "networking": true,

   "tableCount": 0

 }

}

 

  • Only hostEmail, eventName, shortDesc, timing - startTime, endTime, and timezone are mandatory fields

  • Only Social Webinar  Airmeets are currently supported ( eventType: "MEETUP" )

  • Access Type can be “INVITED_ONLY” or “WITH_VERIFIED_EMAIL” or “WITHOUT_VERIFIED_EMAIL.” Default is “INVITED_ONLY”

    • “INVITED_ONLY” - only those who have been invited will be able to join the event

    • “WITH_VERIFIED_EMAIL” - only those users who have a verified email will be able to join the event

    • “WITHOUT_VERIFIED_EMAIL” - anyone with the event link will be able to join the event

  • Start and End time should be unix timestamp

  • timezone is a Canonical tz name, e.g., "Asia/Kolkata" see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones for the full list 

  • Few timezones might not be available - please check the dashboard for available timezones

Field

Description

Model

Required

hostEmail

Email of the host

string

Yes

eventName

Name of the event

string

minLength: 3

maxLength: 80

Yes

shortDesc

Short description of the event

string

minLength: 1

Yes

eventImage

Url of the event image

string

No

longDesc

Short description of the event

string

No

access

Access type for the event

string enum

[ “INVITED_ONLY”, “WITH_VERIFIED_EMAIL”, “WITHOUT_VERIFIED_EMAIL” ]

No, default is “INVITED_ONLY”

eventType

Airmeet event type

string enum:

[ “MEETUP” ]

No, default is “MEETUP”

timing


-

Yes

startTime

Start time for the event.

Note: Needs to be in milliseconds

number

unix timestamp

Yes

endTime

The end time for the event.

Note: Needs to be in milliseconds 

number

unix timestamp

Yes

timezone

Timezone for the event

string

minLength: 1

Canonical tz name

Yes

config


-

No

networking

Enable social lounge for the event

boolean, [true, false]

No, default is true

tableCount

Number of tables in the social lounge

number

No, default is 12

 

 

Response:

200 OK - {"uuid":"a23f56d0-ba1d-11eb-86c0-exampleuuid", "airmeet status" : "CREATED"}

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.2 Add Speaker


Add a speaker to your Airmeet event

Call this API multiple times for adding speakers in bulk

Endpoint:

POST /airmeet/{airmeet_id}/speaker

Headers:

X-Airmeet-Access-Token: airmeet_access_token

Request Payload:

{

 "name": "Speaker’s name",

 "email": "speaker.email@example.com",

 "organisation": "",

 "designation": "",

 "imageUrl": "",

 "bio": "",

 "city": "",

 "country": ""

}

 

  • Only name and email are mandatory fields

  • All fields are strings

  • imageUrl only accepts urls ending with “.jpg”, “.jpeg” and “.png”. If any other imageUrl is passed, the speaker will be added with a default profile image. This can be updated from the Airmeet dashboard.


Response:

200 OK - {"email":"string","status":"ADDED_TO_EVENT"}

400 Bad Request - in case the speaker with the same name or email already exists for the specified Airmeet.

404 Not Found - in case the supplied airmeet_id param is invalid

500 Internal Server Error - generic server error


4.3 Create Session


Add a session to your Airmeet event.

Call this API multiple times for creating sessions in bulk.

 

Endpoint:

POST /airmeet/{airmeet_id}/session

Headers:

X-Airmeet-Access-Token: airmeet_access_token

Request Payload:

{

"sessionTitle": "Title for the session",

"sessionStartTime": 1628149140000,

"sessionDuration": 1800,

"sessionSummary": "string",

"hostEmail": "host.email@example.com",

"speakerEmails": [ "speaker1.email@example.com",

"speaker2.email@example.com" ],

"cohostEmails": [ "team.member@example.com" ],

“type”:”HOSTING”

"tracks": ["{track uid}"],

"tags": ["tag1","tag2"],

"boothId": "{boothId}",

"speedNetworkingData": 
{

"conversationTime": 300,

 "extendNetworkingTime": 120
  }

"sessionMeta": {
    "hideHost": false
  }
}

 

Field

Description

Model

Required

sessionTitle

Title for the session

string

Yes

sessionStartTime

Start time for the session

 

Note: Needs to be in milliseconds

number

Unix timestamp rounded to minutes

Yes

session Duration

Duration of the event in minutes

number

default is 30 minutes

sessionSummary

Summary of the session

string

No

hostEmail

Email of the Airmeet event host

 

Note:  hostEmail should be a Community Manager or a Team Member of your community

string

Yes

speakerEmails

Emails of all the speakers

string array

No

cohostEmails

Emails of all the co-hosts

string array

No

type

Type of session

string enum

[“HOSTING”, “FLUID_LOUNGE”,

“BOOTH”,

“BREAK”,

“LARGE_CALL”,

“SPEED_NETWORKING”,

“STREAMING”]

No, the default is “HOSTING”

tracks

Track uids that the session needed to be added to

string array

No

tags

Tags to be associated with the session

string array

No

boothId

Booth id to be associated with the session

Note: Use this only for the ‘BOOTH’ session type

string

No

speedNetworkingData

Add this section for the speed networking session

Note: Use this only for ‘SPEED_NETWORKING’ session type

 

No

conversationTime

Set the conversation time

Note: Use this only for ‘SPEED_NETWORKING’ session type

number (time duration in seconds)

No, the default is 300

extendNetworkingTime

Allow for an extension of conversation time 

Note: Use this only for ‘SPEED_NETWORKING’ session type

number (time duration in seconds)

No, the default is 120

sessionMeta

Add this section for additional settings

 

No

hideHost

Set to true if you wish to hide the host in the schedule

boolean

No, the default is false


 

 

  • Only sessionTitle, sessionStartTime, and hostEmail 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

  • Uploading of background assets for the ‘FLUID_LOUNGE’ session is not supported


Response:

200 OK 

{
  "uuid": "64975ddc-c09e-47cd-b89e-832c6b7dc7e1",
  "token": [
    {
      "email": "speaker1.email@example.com",
      "token": "https://www.airmeet.com/event/session?t=<unique-code>"
    },
    {
      "email": "speaker2.email@example.com",
      "token": "https://www.airmeet.com/event/session?t=<unique-code>"
    }
  ]
}

400 Bad Request - in case there is already an overlapping session(same time)

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


4.4 Start Airmeet

Use this API to start and end your Airmeet once it is created, without requiring a visit to the community dashboard

Endpoint:

POST /api/v1/publi/airmeet/{airmeet_id}/status

Headers:

X-Airmeet-Access-Token: airmeet_access_token

Request Payload:

{  "status": "ONGOING" } to start an Airmeet

{  "status": "FINISHED" } to end an Airmeet

 

 

Response:

200 OK - { "statusUpdated": true }

400 Bad Request - in case the status does not exist

404 Not Found - in case the supplied airmeet_id param is invalid

500 Internal Server Error - generic server error


4.5. Create Booth

  • Add a booth to your Airmeet event
  • Call this API multiple times for creating booths in bulk

Endpoint:

POST /airmeet/{airmeet_id}/booths

Headers:

X-Airmeet-Access-Token: airmeet_access_token

Request Payload:

{
    "name": "Booth Name",
    "exhibitors": [
        "exhibitor1.email@example.com",
        "exhibitor2.email@example.com"
    ],
    "tags": [
        "Tag 1",
        "Tag 2"
    ],
    "metaData": {
        "chatEnabled": true,
        "loungeEnabled": true,
        "broadcastEnabled": true,
        "tableCount": 6
    },
    "exhibitorInfo": [
        {
            "email": "exhibitor1.email@example.com",
            "exhibitorAttendanceType": "HYBRID"
        },
        {
            "email": "exhibitor2.email@example.com",
            "exhibitorAttendanceType": "HYBRID"
        }
    ]
}


Field

Description

Model

Required

name

Title for the booth

string

Yes

exhibitors

List of Exhibitor emails

string array of emails

No

tags

Tags for the booth

String array

No

metaData

Additional settings

 

No

chatEnabled

Allow visitors and exhibitors to message each other

boolean

No, default true

loungeEnabled

Allow visitors to sit at various designated tables and converse with exhibitors

boolean

No, default true

tableCount

Number of tables

number

No, default 6

broadcastEnabled

Allow exhibitors to display live video content to their booth visitors

boolean

No, default true

 

  • The “name” field is the only mandatory field.

  • Booth Logo cannot be uploaded from the API and need to be added to the dashboard.

 

Response:

200 OK - {"uuid":"64975ddc-c09e-47cd-b89e-832c6b7dc7e1" }

400 Bad Request - in case there is already an overlapping session(same time)

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, First & 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 support@airmeet.com or visit our 24*7 Support Lounge.




Want to brainstorm and connect with other Airmeet Users and Event Professionals from around the world?  Fill in the form to Join our community on Slack.