Authenticated API Documentation for Developers using Waitlist API
This is an authenticated API. Authentication is required, because objects returned may expose sensitive data.
In order to call authenticated routes, you will first need to authenticate and obtain either an api-key
or an access_token
.
Developers are encouraged to utilize API keys to access authenticated routes, as they are straightforward to generate and manage. They facilitate quick implementation ensuring a smooth and uncomplicated experience for developers. Access tokens on the other hand involve a more complex authentication flow, including token acquisition and renewal.
API Key
Developers can generate and use API keys to access authenticated routes in this API by including the API Key in the request header as follows:
Request Using API Key
curl --request GET
--url "https://api.getwaitlist.com/api/v1/signup/waitlist/1234?offset=10" \
--header 'api-key: 0ef6967e622d5e3d21ed6313eb428e51d2d43cd07b20816234a4bfaeac5b6857' \
--header 'Content-Type: application/json'
Steps to Generate an API Key
- Navigate to "My Account" on the left side of your dashboard and scroll down to the API Keys Section.
- Click on the "Add API Key", which will then prompt you to provide a desirable name to your key.
- Click on the "Create API Key" button to finally generate an API Key. The generated API key will now be available in the table records. API keys do not expire and must be manually deleted to be revoked.
Access Token
Create an access_token
and a refresh_token
. You can use the access_token
to call other routes in this authenticated API.
Required Attributes
- Name
email
- Type
- string
- Description
The email address for your GetWaitlist account.
- Name
password
- Type
- string
- Description
The password for your GetWaitlist account.
Response
- Name
access_token
- Type
- string
- Description
The access token. This lasts for three days before it needs to be refreshed via
/api/v1/auth/refresh_access_token
.
- Name
refresh_token
- Type
- string
- Description
The refresh token. This lasts for thirty days before you need to either re-authenticate using this route, or obtain a new one via
/api/v1/auth/refresh_access_token
.
Request
curl --request POST \
--url https://api.getwaitlist.com/api/v1/auth/create_tokens \
--header 'Content-Type: application/json' \
--data '{
"email": "example@example.com",
"password": "password1234"
}'
Authentication Response Example
{
"access_token": "qwertyuiop1234567890",
"refresh_token": "asdfghjkl098765321"
}
Refresh Access Token
Obtain a new access_token
and refresh_token
pair using your existing refresh_token
.
Required Headers
- Name
Authorization
- Type
- string
- Description
Example:
Bearer {my_refresh_token}
Response
- Name
access_token
- Type
- string
- Description
A new access token. This lasts for three days before it needs to be refreshed via this route.
- Name
refresh_token
- Type
- string
- Description
A new refresh token that is distinct from the one submitted in the request. This lasts for thirty days before you need to either re-authenticate using
/api/v1/auth/create_tokens
or refresh via this route.
Request
curl --request GET \
--url https://api.getwaitlist.com/api/v1/auth/refresh_access_token \
--header 'Authorization: Bearer zxcvbnm1234567890' \
--header 'Content-Type: application/json'
Refresh Response Example
{
"access_token": "qwertyuiop1234567890",
"refresh_token": "asdfghjkl098765321"
}
Get Signup
Query all Signups belonging to a waitlist that you own.
- You can filter to the set of Signups referred by a particular Signup, using the
referral_token
attribute. - This is a paginated view that returns by default 25 Signups at a time. If you need to retrieve more Signups than that,
you can use
offset
andlimit
. - The query result is always ordered, so repeated pagination will return the set of all Signups. A normal query will be ordered by priority (best priority first). If you request offboarded Signups, they are ordered by when they were offboarded (most recent first).
Required attributes
- Name
waitlist_id
- Type
- integer
- Description
The ID of your waitlist.
Optional Attributes
- Name
offset
- Type
- integer
- Description
Number of Signups to skip. For example, if you send
offset=250
then you will skip the first 250 Signups. Default is 0.
- Name
limit
- Type
- integer
- Description
Number of Signups per page of results. For example,
limit=100
will return one page of 100 Signups. Default is 25.
- Name
referral_token
- Type
- string
- Description
Referral token of the Signup whose referrals you would like to see listed.
- Name
questions_request
- Type
- boolean
- Description
Include this parameter as
questions_request=true
if you want the Signup's answers to your questions included.
- Name
referral_token
- Type
- boolean
- Description
Include this parameter as
referral_token=true
if you want to get all Signups with the same referral_token (i.e. all of them were referred by the same signed-up user). This is useful for keeping track of your most active referrers.
- Name
offboarded_request
- Type
- boolean
- Description
Include this parameter as
offboarded_request=true
if you want to get all Signups who have been offboarded.
Response
The response is an array of Authenticated Signup Objects.
Request
curl --request GET \
--url https://api.getwaitlist.com/api/v1/signup/waitlist/1234 \
--header '{
Content-Type: application/json,
Authorization: Bearer qwertyuiop1234567890
}'
--data '{
"offset": 10,
"referral_token": "4F0BTBMAB",
"questions_request": true
}'
Get Signup Response Example
[
{
"amount_referred": 0,
"created_at": "2022-04-10_18-34-28",
"email": "maya@getwaitlist.com",
"priority": 4985,
"referral_link": "https://getwaitlist.com?ref_id=4F0BTBMAB",
"referral_token": "4F0BTBMAB",
"referred_by_signup_token": null,
"removed_date": null,
"removed_priority": null,
"uuid": "c60ff9f2-1a58-4551-87ea-414991184fba",
"verified": false,
"answers": [{"question_value": "Where did you hear about us?", "optional": false, "answer_value": "Twitter"}],
"phone": null,
"first_name": "Maya",
"last_name": "Kyler",
"metadata": {},
"waitlist_id": 1234
}
]
Offboard Signup
Offboard a Signup from your waitlist.
Required attributes
- Name
waitlist_id
- Type
- integer
- Description
The ID of your waitlist.
- Name
offboard_request
- Type
- boolean
- Description
Should be
true
. Cannot be set back tofalse
.
- Name
signups
- Type
- array of objects
- Description
An array of all the Signups you are intending to offboard. To offboard, you only need the UUID of the Signup.
- Name
uuid
- Type
- string
- Description
The UUID of the Signup that is being offboarded.
Response
The response is an array of Authenticated Signup Objects that were offboarded. As shown in the response, for each offboarded Signup, removed_date
will be the datetime of removal from the waitlist and removed_priority
will show the Signup's priority at the time of offboarding.
Request
curl --request PATCH \
--url https://api.getwaitlist.com/api/v1/signup \
--header '{
Content-Type: application/json,
Authorization: Bearer qwertyuiop1234567890
}'
--data '{
"waitlist_id": 123,
"offboard_request": true,
"signups": [
{"uuid": "c60ff9f2-1a58-4551-87ea-414991184fba"}
]
}'
Response
[
{
"amount_referred": 0,
"created_at": "2022-04-10_18-34-28",
"email": "maya@getwaitlist.com",
"priority": 4985,
"referral_link": "https://getwaitlist.com?ref_id=4F0BTBMAB",
"referral_token": "4F0BTBMAB",
"referred_by_signup_token": null,
"removed_date": "2023-03-15_04-40-39",
"removed_priority": 123,
"uuid": "c60ff9f2-1a58-4551-87ea-414991184fba",
"verified": false,
"phone": null,
"first_name": "Maya",
"last_name": "Kyler",
"metadata": {},
"waitlist_id": 123
}
]
Advance a Signup
Move a Signup forward in your waitlist. Include the uuid
of the waiter whose position you wish to advance in the API path.
Required attributes
- Name
spots_to_advance
- Type
- integer
- Description
Specifies the number of positions you wish to advance the waiter by.
Optional attributes
- Name
metadata
- Type
- JSON
- Description
Any JSON object you would want to associate with the signup/waiter.
Response
The response is an Authenticated Signup Object corresponding to the updated waiter.
Request
curl --request PATCH \
--url https://api.getwaitlist.com/api/v1/signup/c60ff9f2-1a58-4551-87ea-414991184fba \
--header '{
Content-Type: application/json,
Authorization: Bearer qwertyuiop1234567890
}'
--data '{
"spots_to_advance": 2,
}'
Response
{
"amount_referred": 0,
"created_at": "2022-04-10_18-34-28",
"email": "maya@getwaitlist.com",
"priority": 4985,
"referral_link": "https://getwaitlist.com?ref_id=4F0BTBMAB",
"referral_token": "4F0BTBMAB",
"referred_by_signup_token": null,
"removed_date": "2023-03-15_04-40-39",
"removed_priority": 123,
"uuid": "c60ff9f2-1a58-4551-87ea-414991184fba",
"verified": false,
"phone": null,
"first_name": "Maya",
"last_name": "Kyler",
"metadata": {},
"waitlist_id": 123
}
Delete Signup
Delete a Signup from your waitlist.
Required attributes
- Name
waitlist_id
- Type
- integer
- Description
The ID of your waitlist.
- Name
signups
- Type
- array of objects
- Description
An array of all the Signups you are intending to delete. To delete, you only need the UUID of the Signup.
- Name
uuid
- Type
- string
- Description
The UUID of the Signup that is being deleted.
Response
The response is a status code 204 that indicates a successful delete operation.
Request
curl --request DELETE \
--url https://api.getwaitlist.com/api/v1/signup \
--header '{
Content-Type: application/json,
Authorization: Bearer qwertyuiop1234567890
}'
--data '{
"waitlist_id": 123,
"signups": [
{"uuid": "a7aa6ae2-3c42-4fe1-a15c-2652c93022b4"}
]
}'