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

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




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 registrations 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 authorised 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 authorises 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

authorised 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

60s, decided by the reverse proxy.









.