3. Manage Event | Airmeet Public API

Modified on Mon, 15 Apr 2024 at 12:34 PM


TABLE OF CONTENTS



 

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

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

"access": "INVITED_ONLY",

"eventOrganiserName": "Community Name",

"supportEmail":"support@yourdomain.com",

"eventType": "MEETUP",

"venueTitle":"Venue Name",

"registrationApprovalRequired": true,

"venueCapacity": 100,

"timing": {

"startTime": 1622528299000,

"endTime": 1622528299000,

"timezone": "Asia/Kolkata"

},

"config": {

"networking": true,

"tableCount": 0

}

}
Generic

 

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

  • Access Type can be “INVITED_ONLY” or “WITH_VERIFIED_EMAIL” or “WITHOUT_VERIFIED_EMAIL.” or “EMAIL_UNIQUE_LINK”. 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

    • “EMAIL_UNIQUE_LINK” - during registration, users will receive a unique link on their email which they have to click to complete registration and 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

longDesc

Short description of the event

string

No

access

Access type for the event

string enum

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

No, default is “INVITED_ONLY”

eventOrganiserNameName of event organizerstringNo
supportEmailYour support emailstringNo

eventType

Airmeet event type

string enum:

[ “MEETUP”, “CONFERENCE”, “HYBRID_CONFERENCE”,”IN_PERSON_CONFERENCE” ]

No, default is “MEETUP”

venueTitleVenue Title. Required for an In-person eventstringNo
registrationApprovalRequiredEvent registration requires approval. Required for an In-person eventboolean, [true, false]No
venueCapacityVenue capacity. Required for an In-person eventnumber

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": ""

}
Generic
Generic

 

  • 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
}
}
Generic

 

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

sessionDuration

Duration of the event in minutes

number

Yes

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, hostEmail and sessionDuration 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>"
}
]
}
Generic

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 Update Airmeet Status


Use this API to start and end your Airmeet once it is created, without requiring a visit to the community dashboard. You can also use this API to Pause and Archive your Airmeet.


  • status can be [‘ONGOING’, ’PAUSED’, ‘FINISHED’, ‘ARCHIVE’]


Endpoint:


POST /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



{ "status": "PAUSED" } to pause an Airmeet



{ "status": "ARCHIVE" } to archive an Airmeet
Generic


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"
}
]
}
Generic


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


4.6. Delete Session

Use this API to Delete a Session in your Airmeet


Endpoint:


DELETE /airmeet/{airmeet_id}/session/{session_id}


Headers:


X-Airmeet-Access-Token: airmeet_access_token



Response:


200 OK - { "success": 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.7. Customize Event Landing Page


Use this API to customize the landing page for your Airmeet. You can add 1 slide image, choose between dark and light themes, choose between modern and classic layouts, and set the color code for buttons and highlights on the landing page.


  • ambience can be [‘LIGHT’, ‘DARK’] 

  • layout can be [‘CLASSIC’, ‘MODERN’]

  • highlightColor and buttonTextColor should be hex color codes (‘#’ followed by the 6 character hex code)

  • imageUrl only accepts urls ending with “.jpg”, “.jpeg” and “.png”



Endpoint:


PUT  /airmeet/{airmeet_id}/landing-page


Headers:


X-Airmeet-Access-Token: airmeet_access_token


Request Payload: 


{

"ambience": "LIGHT",

"layout": "CLASSIC",

"highlightColor": "#0000ff",

"buttonTextColor": "#ff9847",

"imageUrl": "https://image_url"

}
Generic
Generic


Response:


200 OK - { "success": true }


400 Bad Request - in case the payload is incorrect


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


500 Internal Server Error - generic server error





4.8. Duplicate Event

Use this API to duplicate an Airmeet.


Endpoint:

POST /airmeet/{airmeetid}/duplication

Headers:

X-Airmeet-Access-Token: airmeet_access_token

Request Payload:

{


"eventName": "Event Name for the duplicate event",
"startTime": 1622528299000,
"timeZone": "Asia/Kolkata",
"duplicateSpeakers": false


}
Generic




Field

Description

Model

Required

eventName

Name of the event

string

minLength: 3

maxLength: 80

Yes

startTime

Start 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

duplicateSpeakers

Set to true if the same speakers are to be added to the duplicate event

boolean

No, default is false

 

 

Response:

200 OK - {"uuid":"a23f56d0-ba1d-11eb-86c0-exampleuuid"}

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



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 support@airmeet.com 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

Let us know how can we improve this article!

Select atleast one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article