curl --request POST \
--url https://partner-api.taptalent.io/v1/partner/bookings/{bookingId}/reschedule \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"scheduledStartAt": "2026-09-13T02:00:00.000Z"
}
'import requests
url = "https://partner-api.taptalent.io/v1/partner/bookings/{bookingId}/reschedule"
payload = { "scheduledStartAt": "2026-09-13T02:00:00.000Z" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({scheduledStartAt: '2026-09-13T02:00:00.000Z'})
};
fetch('https://partner-api.taptalent.io/v1/partner/bookings/{bookingId}/reschedule', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://partner-api.taptalent.io/v1/partner/bookings/{bookingId}/reschedule",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'scheduledStartAt' => '2026-09-13T02:00:00.000Z'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://partner-api.taptalent.io/v1/partner/bookings/{bookingId}/reschedule"
payload := strings.NewReader("{\n \"scheduledStartAt\": \"2026-09-13T02:00:00.000Z\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://partner-api.taptalent.io/v1/partner/bookings/{bookingId}/reschedule")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"scheduledStartAt\": \"2026-09-13T02:00:00.000Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://partner-api.taptalent.io/v1/partner/bookings/{bookingId}/reschedule")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"scheduledStartAt\": \"2026-09-13T02:00:00.000Z\"\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"data": {
"id": 9042,
"previousBookingId": 9001,
"bookingScheduleId": 501,
"bookingLinkId": 8001,
"entityType": "JOB_CANDIDATE",
"entityId": "55021",
"firstName": "Jane",
"lastName": "Doe",
"email": "jane.doe@example.com",
"phone": "+15551234567",
"scheduledStartAt": "2026-09-13T02:00:00.000Z",
"scheduledEndAt": "2026-09-13T02:30:00.000Z",
"timezone": "Asia/Manila",
"status": "ACTIVE",
"selectedFormat": null,
"selectedLocation": null,
"bookingAnswers": null,
"meetingLink": null,
"attendanceCode": "K2P8QZ",
"attendanceCodeExpiresAt": "2026-09-13T04:30:00.000Z",
"attendanceMarkedVia": null,
"attendanceMarkedAt": null,
"createdAt": "2026-09-11T09:00:00.000Z",
"updatedAt": "2026-09-11T09:00:00.000Z"
}
}Reschedule a booking
Moves a booking to a new slot on the same schedule. This cancels the
current booking and creates a new one — the response returns the new
booking with previousBookingId set, matching how candidate-initiated
reschedules behave. Blocked when the schedule has
allowCandidateReschedule: false, when fewer than
rescheduleCutoffHours remain before the current
scheduledStartAt, or when the requested slot has no remaining
capacity.
curl --request POST \
--url https://partner-api.taptalent.io/v1/partner/bookings/{bookingId}/reschedule \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"scheduledStartAt": "2026-09-13T02:00:00.000Z"
}
'import requests
url = "https://partner-api.taptalent.io/v1/partner/bookings/{bookingId}/reschedule"
payload = { "scheduledStartAt": "2026-09-13T02:00:00.000Z" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({scheduledStartAt: '2026-09-13T02:00:00.000Z'})
};
fetch('https://partner-api.taptalent.io/v1/partner/bookings/{bookingId}/reschedule', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://partner-api.taptalent.io/v1/partner/bookings/{bookingId}/reschedule",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'scheduledStartAt' => '2026-09-13T02:00:00.000Z'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://partner-api.taptalent.io/v1/partner/bookings/{bookingId}/reschedule"
payload := strings.NewReader("{\n \"scheduledStartAt\": \"2026-09-13T02:00:00.000Z\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://partner-api.taptalent.io/v1/partner/bookings/{bookingId}/reschedule")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"scheduledStartAt\": \"2026-09-13T02:00:00.000Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://partner-api.taptalent.io/v1/partner/bookings/{bookingId}/reschedule")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"scheduledStartAt\": \"2026-09-13T02:00:00.000Z\"\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"data": {
"id": 9042,
"previousBookingId": 9001,
"bookingScheduleId": 501,
"bookingLinkId": 8001,
"entityType": "JOB_CANDIDATE",
"entityId": "55021",
"firstName": "Jane",
"lastName": "Doe",
"email": "jane.doe@example.com",
"phone": "+15551234567",
"scheduledStartAt": "2026-09-13T02:00:00.000Z",
"scheduledEndAt": "2026-09-13T02:30:00.000Z",
"timezone": "Asia/Manila",
"status": "ACTIVE",
"selectedFormat": null,
"selectedLocation": null,
"bookingAnswers": null,
"meetingLink": null,
"attendanceCode": "K2P8QZ",
"attendanceCodeExpiresAt": "2026-09-13T04:30:00.000Z",
"attendanceMarkedVia": null,
"attendanceMarkedAt": null,
"createdAt": "2026-09-11T09:00:00.000Z",
"updatedAt": "2026-09-11T09: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
The new slot's start time. Must match one of the schedule's currently available slots — see GET /booking-schedules/{bookingScheduleId}/slots.
Was this page helpful?
.png?fit=max&auto=format&n=lKy84_BssSCy2hcz&q=85&s=ac7c949427cc2893306f6036415f087e)