API endpoint: https://api.airmeet.com/

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


Generate Acces token/key


Step 1: Sign in to your airmeet account ( https://www.airmeet.com/signup )

Step 2: Click on the "Settings" 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.



Authentication

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



a) List Airmeets

GET /api/v1/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 the 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



b) Fetch airmeet registrations


GET /api/v1/airmeet/{airmeet_id}/registrations?after=<cursor>&before=

<cursor>&size=<number>

By default, the size is set to 50 registrants. Max can be 500.

Registrations are sorted by their creation time.


Headers:

X-Airmeet-Access-Token: airmeet_access_token

Response:

200 OK


{
    "data": [
        {
            "email": "user_email@example.com",
            "name": "John Doe",
            "city": "City",
            "country": "World",
            "organisation": "Company",
            "Designation": "Role",
            "registrationDate": <ISO_Date_String>
        }
    ],
    "cursors": {
        "before": <integer>,
        "after": <integer>,
        "pageCount": 3
    }
}


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



c) Register a user


POST /api/v1/airmeet/{airmeet_id}/user


Adds a user to the airmeet specified. If the user is not present on the Airmeet platform, 

we will create a user account with the details provided. The user can modify these details at the time of entry to the airmeet.


The users added by this API are present in the registration list.


Headers:

X-Airmeet-Access-Token: airmeet_access_token


Request Payload:

{"email": "user_email@example.com", "name": "John Doe", "city": "",

"country": "", "designation": "", "organisation": ""}

Only email and name are mandatory fields.


Response:

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

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





d) Add authorized attendee


POST /api/v1/airmeet/{airmeet_id}/attendee


Adds an attendee allowed to enter the airmeet specified. The user needs to complete

registration on the airmeet website after they land on it if they are not already an airmeet

user.


The user will be visible in the session with the details provided in this API, but they are

free to use different details in their individual user profiles.


Headers:

X-Airmeet-Access-Token: airmeet_access_token

Request Payload:

{"email": "user_email@example.com", "name": "John Doe", "city": "",

"country": "", "designation": "", "organization": ""}

Only email and name are mandatory fields.

Replaying this request does not change any details for the user. It only authorizes the user

again, in case their access was 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




e) Remove Authorised Attendee


DELETE /api/v1/airmeet/{airmeet_id}/attendee/<url_encoded_attendee_email>

Revokes access to a particular airmeet for the specified email.


Headers:

X-Airmeet-Access-Token: airmeet_access_token


Response:

204 Success - the email access is successfully revoked

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 or no such email is

authorized for the airmeet

412 Precondition Failed - the passed access token has expired

500 Internal Server Error - generic server error


Error response shape


{
    "success": false,
    "code": "BAD_REQUEST",
    "errors": [
        "Supplied token is bad"
    ]
}



Timeouts

The 60s, decided by the reverse proxy.









.