curl --request GET \
--url https://partner-api.taptalent.io/v1/partner/booking-schedules/{bookingScheduleId}/slots \
--header 'Authorization: Bearer <token>'import requests
url = "https://partner-api.taptalent.io/v1/partner/booking-schedules/{bookingScheduleId}/slots"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://partner-api.taptalent.io/v1/partner/booking-schedules/{bookingScheduleId}/slots', 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/booking-schedules/{bookingScheduleId}/slots",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://partner-api.taptalent.io/v1/partner/booking-schedules/{bookingScheduleId}/slots"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://partner-api.taptalent.io/v1/partner/booking-schedules/{bookingScheduleId}/slots")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://partner-api.taptalent.io/v1/partner/booking-schedules/{bookingScheduleId}/slots")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": "success",
"data": [
{
"startAt": "2026-09-15T01:00:00.000Z",
"endAt": "2026-09-15T01:30:00.000Z",
"remainingCapacity": 1
},
{
"startAt": "2026-09-15T01:30:00.000Z",
"endAt": "2026-09-15T02:00:00.000Z",
"remainingCapacity": 3
}
]
}List available slots
Returns the still-bookable slots for a schedule within a date range,
after excluding slots already filled by active bookings. Use this to
preview availability before creating a booking link, or to validate
a scheduledStartAt before calling
POST /bookings/{bookingId}/reschedule.
curl --request GET \
--url https://partner-api.taptalent.io/v1/partner/booking-schedules/{bookingScheduleId}/slots \
--header 'Authorization: Bearer <token>'import requests
url = "https://partner-api.taptalent.io/v1/partner/booking-schedules/{bookingScheduleId}/slots"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://partner-api.taptalent.io/v1/partner/booking-schedules/{bookingScheduleId}/slots', 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/booking-schedules/{bookingScheduleId}/slots",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://partner-api.taptalent.io/v1/partner/booking-schedules/{bookingScheduleId}/slots"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://partner-api.taptalent.io/v1/partner/booking-schedules/{bookingScheduleId}/slots")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://partner-api.taptalent.io/v1/partner/booking-schedules/{bookingScheduleId}/slots")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": "success",
"data": [
{
"startAt": "2026-09-15T01:00:00.000Z",
"endAt": "2026-09-15T01:30:00.000Z",
"remainingCapacity": 1
},
{
"startAt": "2026-09-15T01:30:00.000Z",
"endAt": "2026-09-15T02:00:00.000Z",
"remainingCapacity": 3
}
]
}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
Query Parameters
Start of the date range (inclusive), as an ISO 8601 date or date-time.
End of the date range (exclusive). Capped by the schedule's visibleDaysAhead.
Was this page helpful?
.png?fit=max&auto=format&n=lKy84_BssSCy2hcz&q=85&s=ac7c949427cc2893306f6036415f087e)