The Waitlist API lets your own system read your organization's waitlist: the people who asked for an appointment through your waitlist form, what they answered, and where each of them stands. Use it to bring the list into your practice management software, to report on it, or to match people to free capacity in your own planning.
The Waitlist API is part of the Scheduling API v1. It uses the same base path /api/v1, the same tokens, the same conventions and the same OpenAPI document, so everything under Conventions in the Scheduling API overview applies here too.
What the API covers
| Endpoint | Purpose |
|---|---|
GET /api/v1/waitlist_entries |
List and filter the entries; the interface for syncing. |
GET /api/v1/waitlist_entries/{id} |
Show one entry. |
The API is read only. Entries come from your waitlist form alone, and your team invites, archives and deletes them in MeetOne on the Waitlist page. There is no endpoint to create, change or delete an entry, and no webhook for waitlist changes: poll the list as described in Waitlist entries endpoints.
Requirements
- An Organization API Token. Waitlist entries are personal data of one organization, so only that organization's own token can read them. An Instance API Token gets
403with the codeorganization_token_required. A read-only token is enough, and it is the right choice for a job that only reads. See Authentication & API tokens for how to get one. - The waitlist enabled for your organization. Without it, both endpoints return
403with the codefeature_disabled.
Organization API Tokens are rate limited to 50 requests per minute and 100 per five minutes. See Rate limits.
From sign-up to booking
An entry passes through these steps. The API sees it from step 2 on.
- Sign-up. Someone fills in your waitlist form, through the waitlist link, the iFrame or the website widget. MeetOne sends them a link to confirm their email address.
- Confirmation. Once they confirm, the entry is on the list with the status
waiting, andemail_confirmed_atis set. Until then the entry does not exist for the API: it is in no list, and asking for it returns404. An address that is not confirmed within 7 days is deleted. - Invitation. Your team invites the person to book an appointment. The entry becomes
invited, andinvitationdescribes the invitation, including the practitioner and the availability type when it is limited to one. Inviting again replaces the invitation. - Booking. The person books through the invitation. The entry becomes
booked, andinvitation.appointment_idis theidof the appointment, which you can read with Appointments endpoints. The appointment is booked for the entry's name and email address. A waitlist entry is not a user, so the appointment'spatientisnullunless a patient account with that address exists.
While an entry is waiting or invited, MeetOne asks the person every 6 months by email whether they are still interested. An answer sets last_reconfirmed_at. Without an answer within 30 days the entry is archived.
Statuses
status |
Meaning |
|---|---|
waiting |
On the list. An entry also returns to waiting when its invitation can no longer be used, for example because its availability type was deleted, and when the person answers the "still interested?" email after their entry was archived for not answering. |
invited |
Has been invited to book. invitation describes the invitation. |
booked |
Has booked through the invitation. invitation.appointment_id names the appointment. |
archived |
Off the list: archived by your team, or because the "still interested?" email went unanswered. An open invitation is withdrawn, so invitation is null. The entry is deleted 30 days after it was archived. |
withdrawn |
Not used. Someone who leaves the list is deleted, and their entry disappears. The value stays in the API's list of statuses so that clients filtering by it keep working. |
Deleted entries disappear
An entry is deleted, and from then on missing from every list and answered with 404, when:
- your team deletes it in MeetOne,
- the person leaves the waitlist with the link in the emails MeetOne sends them about it (confirmation, invitation, "still interested?"),
- it was archived 30 days ago.
The API does not report deletions, and a sync with updated_since never returns a deleted entry. Read the whole list from time to time and remove from your system what is no longer in it, so your copy does not keep people MeetOne has already deleted. Waitlist entries endpoints shows how.
First request
The following request lists the people still waiting for an invitation, oldest sign-up first. Replace acme with your tenant and use your organization's token.
export TOKEN="eyJhbGciOiJIUzI1****"
curl "https://acme.meetone.io/api/v1/waitlist_entries?status=waiting" \
-H "Authorization: Bearer $TOKEN"
{
"data": [
{
"id": "8a3f6d21-4c7e-4b9a-a1d2-6e5f0c9b7d34",
"status": "waiting",
"first_name": "Mary",
"last_name": "Major",
"email": "mary.major@example.com",
"submitted_at": "2026-09-14T08:12:44+02:00",
"updated_at": "2026-09-14T08:15:02+02:00"
}
]
}
(Abbreviated; every field is described in Waitlist entries endpoints.)
The OpenAPI specification
The waitlist endpoints are part of the Scheduling API's OpenAPI document, /meetone-scheduling-api.yml, under the tag Waitlist entries. Your MeetOne installation serves the same reference interactively at /api-docs.
In this section
Related
Questions? Contact us at support@meetone.io.