Last modified: August 22, 2025
Use the meetings API to retrieve information about meetings created through a scheduling page. You can also book a meeting with a scheduling page through the API.
Learn more about using the API to create, update, and delete all types of meeting engagements.
With the meetings API, you can:
- Get a list of meeting links.
- Get booking information for a meeting link.
- Get the next availability page for a meeting link.
- UTM, HubSpot UTK, and content tracking.
- Reschedule through this API.
- Send in CAPTCHA tokens.
- Create meetings with payment.
- Send in an IP address.
List meeting scheduling pages
To get a list of meetings scheduling pages, make aGET
request to /scheduler/v3/meetings/meeting-links
. Use the amount of meeting links you want returned as the limit in the request URL and use your userID, name, and type as a query parameter.
To get and filter a list of meeting links, supply the filters you’d like to apply as query parameters (e.g., limit, type, and name), and provide your user ID as the organizerUserId
query parameter. For example, if your user ID is 1234567
, you’d make a GET
request to /scheduler/v3/meetings/meeting-links?limit=1&name=menelson&organzerUserId=1234567&type=PERSONAL_LINK
The response for fetching a list of meeting scheduling pages would resemble the following:
Field | Description |
---|---|
id | The ID of the activity. |
slug | The end of the meeting link’s URL. |
link | The full meeting URL. |
name | The title of the meeting. |
type | Indicates if the meeting is a one-on-one (PERSONAL_LINK ), group (GROUP_CALENDAR ), or round-robin (ROUND_ROBIN_CALENDAR ) meeting link. |
organizerUserId | The user ID of the user who organized the meeting. |
userIdsOfLinkMembers | The user IDs of the team members on the group or round robin meeting. |
defaultLink | Indicates if the meeting is the user’s default meeting link. |
List booking information
To get details about the initial information necessary for a meeting scheduler, make aGET
request to /scheduler/v3/meetings/meeting-links/book/{slug}
. Use your meeting link path as the slug and use your timezone as a query parameter.
For example, to get details about initial information necessary for meeting scheduler, make a GET
request to /scheduler/v3/meetings/meeting-links/book/menelson&timezone=America%2FNew_York
.
The response for fetching booking information would resemble the following:
The details of each response field are outlined in the table below:
List availability
To get the next availability page for a meeting, make aGET
request to /scheduler/v3/meetings/meeting-links/book/availability-page/{slug}
. Use your meeting link path as the slug and your timezone as a query parameter.
For example, to get make a the next availability page for a meeting, make a GET request to https://api.hubspot.com/scheduler/v3/meetings/meeting-links/book/menelson&timezone=America%2FNew_York
The response for fetching the availability page for a meeting would resemble the following:
Book a meeting
To book a meeting using a meeting link, make aPOST
request to /scheduler/v3/meetings/meeting-links/book/
. Use your timezone as a query parameter.
For example to book a meeting, make a POST
request to /scheduler/v3/meetings/meeting-links/book?timezone=America%2FNew_York
The request body should include the following information. Any information that’s required in your meeting registration must be included in the request body:
Offline Bookings
If our server was not able to access the user’s calendar availability, either because the user did not have a calendar connected or because the calendar provider could not be reached, a meeting will be booked “offline”. That means that no calendar event will be created, and the user will instead be sent a notification informing them that of the time that a lead attempted to book a meeting with them. In the case of an offline booking,isOffline
will be set to true
in the response body. The calendarEventId
field will be set to ""
, indicating that no event ID was generated.