curl --request POST \
--url https://partner-api.taptalent.io/v1/partner/booking-schedules/{bookingScheduleId}/bookings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"entityType": "JOB_CANDIDATE",
"entityId": "55021",
"scheduledStartAt": "2026-09-12T02:00:00.000Z"
}
'{
"status": "success",
"data": {
"id": 9001,
"bookingScheduleId": 501,
"bookingLinkId": 8001,
"entityType": "JOB_CANDIDATE",
"entityId": "55021",
"firstName": "Jane",
"lastName": "Doe",
"email": "jane.doe@example.com",
"phone": "+15551234567",
"scheduledStartAt": "2026-09-12T02:00:00.000Z",
"scheduledEndAt": "2026-09-12T02:30:00.000Z",
"timezone": "Asia/Manila",
"status": "ACTIVE",
"selectedFormat": null,
"selectedLocation": null,
"bookingAnswers": null,
"meetingLink": null,
"attendanceCode": "7F3K9Q",
"attendanceCodeExpiresAt": "2026-09-12T04:30:00.000Z",
"attendanceMarkedVia": null,
"attendanceMarkedAt": null,
"createdAt": "2026-09-10T02:00:00.000Z",
"updatedAt": "2026-09-10T02:00:00.000Z"
}
}Create a booking
Creates a booking directly for the given entity, slot, and (for an
EVENT-profile schedule) location and question answers. TapTalent
validates the slot is still available, that selectedFormat is
given when required (a BOTH-mode schedule) and omitted otherwise,
and that selectedLocationId plus every required bookingAnswers
entry are present for an EVENT-profile schedule.
curl --request POST \
--url https://partner-api.taptalent.io/v1/partner/booking-schedules/{bookingScheduleId}/bookings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"entityType": "JOB_CANDIDATE",
"entityId": "55021",
"scheduledStartAt": "2026-09-12T02:00:00.000Z"
}
'{
"status": "success",
"data": {
"id": 9001,
"bookingScheduleId": 501,
"bookingLinkId": 8001,
"entityType": "JOB_CANDIDATE",
"entityId": "55021",
"firstName": "Jane",
"lastName": "Doe",
"email": "jane.doe@example.com",
"phone": "+15551234567",
"scheduledStartAt": "2026-09-12T02:00:00.000Z",
"scheduledEndAt": "2026-09-12T02:30:00.000Z",
"timezone": "Asia/Manila",
"status": "ACTIVE",
"selectedFormat": null,
"selectedLocation": null,
"bookingAnswers": null,
"meetingLink": null,
"attendanceCode": "7F3K9Q",
"attendanceCodeExpiresAt": "2026-09-12T04:30:00.000Z",
"attendanceMarkedVia": null,
"attendanceMarkedAt": null,
"createdAt": "2026-09-10T02:00:00.000Z",
"updatedAt": "2026-09-10T02:00:00.000Z"
}
}Authorizations
Company-scoped API key. Production keys are prefixed sk_live_,
sandbox keys sk_test_, each followed by 22 base62 characters
(pattern ^sk_(live|test)_[0-9A-Za-z]{22}$). Generate keys in the
TapTalent dashboard under Account Settings → Developers → API Key
Management; a key is shown once at generation and old keys are
invalidated immediately on regeneration.
Path Parameters
Body
Records a booking directly for a slot, location, and set of
answers already collected on your side — no self-scheduling link
involved. Works for INTERVIEW- and EVENT-profile schedules
alike.
See Booking.entityType.
"JOB_CANDIDATE"
See Booking.entityId.
"55021"
Must match one of the schedule's currently available slots — see GET /booking-schedules/{bookingScheduleId}/slots.
Required for a BOTH-mode schedule; omitted otherwise.
ONLINE, ONSITE "ONSITE"
Required for an EVENT-profile schedule — the id of one of its GET /booking-schedules/{bookingScheduleId}/locations results. Omitted for INTERVIEW-profile schedules.
Required for an EVENT-profile schedule — answers keyed by each
question's id from
GET /booking-schedules/{bookingScheduleId}/questions. Each
value's shape follows that question's type — a string for
text/textarea/phone/single_choice, an array of strings
for multi_choice. Omitted for INTERVIEW-profile schedules.
Was this page helpful?
.png?fit=max&auto=format&n=lKy84_BssSCy2hcz&q=85&s=ac7c949427cc2893306f6036415f087e)