Introduction
This documentation aims to provide all the information you need to work with our API.
Authenticating requests
To authenticate requests, include an Authorization
header with the value "Bearer your-token"
.
All authenticated endpoints are marked with a requires authentication
badge in the documentation below.
You can generate an API Token by visiting Integrations & API from your company settings.
You can validate a token with the Token GET
endpoint. A 200 response will also include a payload that identifies the token's Company at data.attributes.company_id
. The token has access to all of this company's endpoints.
Tokens
API for validating API Token.
Show
requires authentication
If a 200 response is received, the payload will contain the id of the company the token may access.
Example request:
curl --request GET \
--get "https://slottable.app/api/v1/token" \
--header "Authorization: Bearer aacPvVb6hZ8d14Dfekg63E5" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://slottable.app/api/v1/token',
[
'headers' => [
'Authorization' => 'Bearer aacPvVb6hZ8d14Dfekg63E5',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://slottable.app/api/v1/token"
);
const headers = {
"Authorization": "Bearer aacPvVb6hZ8d14Dfekg63E5",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"data": {
"id": "36",
"type": "companyAccessTokens",
"attributes": {
"id": 36,
"company_id": 1,
"name": "Zapier",
"created_at": "2023-06-26T22:38:25.000000Z"
},
"relationships": {},
"meta": {},
"links": {}
},
"included": [],
"jsonapi": {
"version": "1.0",
"meta": {}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Company Webhooks
API for managing the Company's Webhooks
List
requires authentication
Example request:
curl --request GET \
--get "https://slottable.app/api/v1/companies/1/webhooks?page%5Bnumber%5D=1&page%5Blimit%5D=20" \
--header "Authorization: Bearer 81fP3a6cEa5kbZDeVvhg46d" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://slottable.app/api/v1/companies/1/webhooks',
[
'headers' => [
'Authorization' => 'Bearer 81fP3a6cEa5kbZDeVvhg46d',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'page[number]' => '1',
'page[limit]' => '20',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://slottable.app/api/v1/companies/1/webhooks"
);
const params = {
"page[number]": "1",
"page[limit]": "20",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer 81fP3a6cEa5kbZDeVvhg46d",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"data": [
{
"id": "238",
"type": "companyWebhooks",
"attributes": {
"id": 238,
"company_id": 1,
"url": "https://your-webhook.url/uri",
"method": "post",
"filter_key": null,
"model": "Contact",
"events": "changed",
"created_at": "2023-06-26T22:38:26.000000Z",
"updated_at": "2023-06-26T22:38:26.000000Z"
},
"relationships": {},
"meta": {},
"links": {}
},
{
"id": "239",
"type": "companyWebhooks",
"attributes": {
"id": 239,
"company_id": 1,
"url": "https://your-webhook.url/uri",
"method": "post",
"filter_key": "SlotType:1",
"model": "BookingContact",
"events": "changed",
"created_at": "2023-06-26T22:38:26.000000Z",
"updated_at": "2023-06-26T22:38:26.000000Z"
},
"relationships": {},
"meta": {},
"links": {}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "/?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Next »",
"active": false
}
],
"path": "/",
"per_page": 20,
"to": 2,
"total": 2
},
"included": [],
"jsonapi": {
"version": "1.0",
"meta": {}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create
requires authentication
Example request:
curl --request POST \
"https://slottable.app/api/v1/companies/1/webhooks" \
--header "Authorization: Bearer EvZg68Vf45bka6dca3eP1Dh" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"url\": \"https:\\/\\/your-webhook.url\",
\"method\": \"post\",
\"filter_key\": \"SlotType:1\",
\"model\": \"BookingContact\",
\"events\": \"changed\"
}"
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://slottable.app/api/v1/companies/1/webhooks',
[
'headers' => [
'Authorization' => 'Bearer EvZg68Vf45bka6dca3eP1Dh',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'url' => 'https://your-webhook.url',
'method' => 'post',
'filter_key' => 'SlotType:1',
'model' => 'BookingContact',
'events' => 'changed',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://slottable.app/api/v1/companies/1/webhooks"
);
const headers = {
"Authorization": "Bearer EvZg68Vf45bka6dca3eP1Dh",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"url": "https:\/\/your-webhook.url",
"method": "post",
"filter_key": "SlotType:1",
"model": "BookingContact",
"events": "changed"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"data": {
"id": "240",
"type": "companyWebhooks",
"attributes": {
"id": 240,
"company_id": 1,
"url": "https://your-webhook.url/uri",
"method": "post",
"filter_key": "SlotType:1",
"model": "BookingContact",
"events": "changed",
"created_at": "2023-06-26T22:38:26.000000Z",
"updated_at": "2023-06-26T22:38:26.000000Z"
},
"relationships": {},
"meta": {},
"links": {}
},
"included": [],
"jsonapi": {
"version": "1.0",
"meta": {}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show
requires authentication
Example request:
curl --request GET \
--get "https://slottable.app/api/v1/companies/1/webhooks/8" \
--header "Authorization: Bearer 6vP8aVgbk41ZDhdfe56aEc3" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://slottable.app/api/v1/companies/1/webhooks/8',
[
'headers' => [
'Authorization' => 'Bearer 6vP8aVgbk41ZDhdfe56aEc3',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://slottable.app/api/v1/companies/1/webhooks/8"
);
const headers = {
"Authorization": "Bearer 6vP8aVgbk41ZDhdfe56aEc3",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"data": {
"id": "241",
"type": "companyWebhooks",
"attributes": {
"id": 241,
"company_id": 1,
"url": "https://your-webhook.url/uri",
"method": "post",
"filter_key": "SlotType:1",
"model": "BookingContact",
"events": "changed",
"created_at": "2023-06-26T22:38:26.000000Z",
"updated_at": "2023-06-26T22:38:26.000000Z"
},
"relationships": {},
"meta": {},
"links": {}
},
"included": [],
"jsonapi": {
"version": "1.0",
"meta": {}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete
requires authentication
Example request:
curl --request DELETE \
"https://slottable.app/api/v1/companies/1/webhooks/8" \
--header "Authorization: Bearer EvaZb41hkc63Dga6f5Pe8dV" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'https://slottable.app/api/v1/companies/1/webhooks/8',
[
'headers' => [
'Authorization' => 'Bearer EvaZb41hkc63Dga6f5Pe8dV',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://slottable.app/api/v1/companies/1/webhooks/8"
);
const headers = {
"Authorization": "Bearer EvaZb41hkc63Dga6f5Pe8dV",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
Example response (204):
Empty response
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Company Contacts
API for managing a company's contacts
List
requires authentication
Example request:
curl --request GET \
--get "https://slottable.app/api/v1/companies/1/contacts?page%5Bnumber%5D=1&page%5Blimit%5D=20" \
--header "Authorization: Bearer 136fdcgZD4VbPha6eakEv85" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://slottable.app/api/v1/companies/1/contacts',
[
'headers' => [
'Authorization' => 'Bearer 136fdcgZD4VbPha6eakEv85',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'page[number]' => '1',
'page[limit]' => '20',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://slottable.app/api/v1/companies/1/contacts"
);
const params = {
"page[number]": "1",
"page[limit]": "20",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer 136fdcgZD4VbPha6eakEv85",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"data": [
{
"id": "3615",
"type": "contacts",
"attributes": {
"id": 3615,
"company_id": 1,
"stripe_customer_id": null,
"first_name": "Angeline",
"last_name": "Kirlin",
"email": "jadon81@hotmail.com",
"phone": "+1 (740) 374-0599",
"street_address": "51648 Auer Trail",
"street_address_2": null,
"city": "Lake Stanleyborough",
"state": "Arizona",
"postal": "70272-2194",
"country": "USA",
"is_subscribed": false,
"created_at": "2023-06-26T22:38:26.000000Z",
"updated_at": "2023-06-26T22:38:26.000000Z"
},
"relationships": {},
"meta": {},
"links": {}
},
{
"id": "3616",
"type": "contacts",
"attributes": {
"id": 3616,
"company_id": 1,
"stripe_customer_id": null,
"first_name": "Mariano",
"last_name": "Keeling",
"email": "shea.wuckert@oberbrunner.biz",
"phone": "+1-458-683-9137",
"street_address": "8441 Pfeffer Passage",
"street_address_2": null,
"city": "Parismouth",
"state": "Hawaii",
"postal": "54099-8122",
"country": "USA",
"is_subscribed": false,
"created_at": "2023-06-26T22:38:26.000000Z",
"updated_at": "2023-06-26T22:38:26.000000Z"
},
"relationships": {},
"meta": {},
"links": {}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "/?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Next »",
"active": false
}
],
"path": "/",
"per_page": 20,
"to": 2,
"total": 2
},
"included": [],
"jsonapi": {
"version": "1.0",
"meta": {}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show
requires authentication
Example request:
curl --request GET \
--get "https://slottable.app/api/v1/companies/1/contacts/1" \
--header "Authorization: Bearer fd5ZahaV8vc64DkE13bgeP6" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://slottable.app/api/v1/companies/1/contacts/1',
[
'headers' => [
'Authorization' => 'Bearer fd5ZahaV8vc64DkE13bgeP6',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://slottable.app/api/v1/companies/1/contacts/1"
);
const headers = {
"Authorization": "Bearer fd5ZahaV8vc64DkE13bgeP6",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"data": {
"id": "3617",
"type": "contacts",
"attributes": {
"id": 3617,
"company_id": 1,
"stripe_customer_id": null,
"first_name": "Wilhelmine",
"last_name": "Lindgren",
"email": "josh82@hotmail.com",
"phone": "+1-938-774-9323",
"street_address": "244 Hickle Harbor",
"street_address_2": null,
"city": "Cronaside",
"state": "Wisconsin",
"postal": "64263",
"country": "USA",
"is_subscribed": true,
"created_at": "2023-06-26T22:38:26.000000Z",
"updated_at": "2023-06-26T22:38:26.000000Z"
},
"relationships": {},
"meta": {},
"links": {}
},
"included": [],
"jsonapi": {
"version": "1.0",
"meta": {}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Slot Types
API for managing a Company's Slot Types
List
requires authentication
Example request:
curl --request GET \
--get "https://slottable.app/api/v1/companies/1/slot-types?page%5Bnumber%5D=1&page%5Blimit%5D=20" \
--header "Authorization: Bearer 6aEvc6hfdbe3Z15kPD8a4Vg" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://slottable.app/api/v1/companies/1/slot-types',
[
'headers' => [
'Authorization' => 'Bearer 6aEvc6hfdbe3Z15kPD8a4Vg',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'page[number]' => '1',
'page[limit]' => '20',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://slottable.app/api/v1/companies/1/slot-types"
);
const params = {
"page[number]": "1",
"page[limit]": "20",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer 6aEvc6hfdbe3Z15kPD8a4Vg",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"data": [
{
"id": "157",
"type": "slotTypes",
"attributes": {
"id": 157,
"company_id": 1,
"stripe_product_id": null,
"name": "consectetur",
"description_html": "<div><p>Voluptas soluta molestias et. Vitae odit perspiciatis in culpa.</p></div>",
"duration_unit": "Days",
"timezone": "Europe/Vatican",
"default_duration": 6,
"default_slot_count": 30,
"default_require_payment": false,
"default_price": 0,
"default_time": null,
"allow_cancelling": false,
"allow_rescheduling": false,
"allow_add_remove_participants": true,
"allow_edit_participants": false,
"cancel_reschedule_duration": 30,
"process_refunds": false,
"participants_per_booking": 2,
"disallow_multiple_instances_per_participant": false,
"multiple_instances_disallowed_message": "Eos molestias inventore fuga totam.",
"participant_noun": "Participant",
"require_terms_conditions": true,
"terms_label": "Terms and Conditions",
"terms_message": "<div><p>Neque cupiditate rerum beatae dolor. Harum sunt ut necessitatibus voluptas veniam excepturi qui. Alias consequuntur voluptatem quo eum harum non. Consequatur voluptatem dolorem aspernatur.</p></div>",
"is_active": true,
"created_at": "2023-06-26T22:38:26.000000Z",
"updated_at": "2023-06-26T22:38:26.000000Z"
},
"relationships": {},
"meta": {},
"links": {}
},
{
"id": "158",
"type": "slotTypes",
"attributes": {
"id": 158,
"company_id": 1,
"stripe_product_id": null,
"name": "neque",
"description_html": "<div><p>Quidem consectetur accusamus necessitatibus qui voluptas fugiat ratione. Et blanditiis tenetur non voluptatem aspernatur aut. Nobis voluptatem repellendus atque blanditiis rem.</p></div>",
"duration_unit": "Minutes",
"timezone": "Antarctica/Mawson",
"default_duration": 40,
"default_slot_count": 36,
"default_require_payment": false,
"default_price": 0,
"default_time": "13:28",
"allow_cancelling": false,
"allow_rescheduling": true,
"allow_add_remove_participants": true,
"allow_edit_participants": true,
"cancel_reschedule_duration": 30,
"process_refunds": false,
"participants_per_booking": 4,
"disallow_multiple_instances_per_participant": true,
"multiple_instances_disallowed_message": "Sed qui ut at aspernatur.",
"participant_noun": "Participant",
"require_terms_conditions": true,
"terms_label": "Terms and Conditions",
"terms_message": "<div><p>Nobis inventore doloribus et dolores. Qui ipsa est illum dolores ea placeat in. Nobis expedita nihil eos sint aperiam dicta nisi. Qui architecto architecto est reiciendis omnis.</p></div>",
"is_active": true,
"created_at": "2023-06-26T22:38:26.000000Z",
"updated_at": "2023-06-26T22:38:26.000000Z"
},
"relationships": {},
"meta": {},
"links": {}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "/?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Next »",
"active": false
}
],
"path": "/",
"per_page": 20,
"to": 2,
"total": 2
},
"included": [],
"jsonapi": {
"version": "1.0",
"meta": {}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show
requires authentication
Example request:
curl --request GET \
--get "https://slottable.app/api/v1/companies/1/slot-types/1" \
--header "Authorization: Bearer 5cdbkae36aPhZ4g1vV8Df6E" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://slottable.app/api/v1/companies/1/slot-types/1',
[
'headers' => [
'Authorization' => 'Bearer 5cdbkae36aPhZ4g1vV8Df6E',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://slottable.app/api/v1/companies/1/slot-types/1"
);
const headers = {
"Authorization": "Bearer 5cdbkae36aPhZ4g1vV8Df6E",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"data": {
"id": "159",
"type": "slotTypes",
"attributes": {
"id": 159,
"company_id": 1,
"stripe_product_id": null,
"name": "autem",
"description_html": "<div><p>Sunt pariatur sit aspernatur rerum. Et quos iste aut numquam totam deleniti omnis. Corporis sint libero voluptatum commodi architecto non aut.</p></div>",
"duration_unit": "Minutes",
"timezone": "Europe/Vatican",
"default_duration": 22,
"default_slot_count": 25,
"default_require_payment": true,
"default_price": 2615,
"default_time": "08:42",
"allow_cancelling": true,
"allow_rescheduling": false,
"allow_add_remove_participants": true,
"allow_edit_participants": false,
"cancel_reschedule_duration": 150,
"process_refunds": false,
"participants_per_booking": 2,
"disallow_multiple_instances_per_participant": true,
"multiple_instances_disallowed_message": "Minus quas quae minima at nam.",
"participant_noun": "Participant",
"require_terms_conditions": true,
"terms_label": "Terms and Conditions",
"terms_message": "<div><p>Assumenda soluta alias et facere. Pariatur alias praesentium libero corporis eum ex exercitationem. Nulla assumenda distinctio et maxime quia adipisci sapiente. Vel omnis voluptatem quas aspernatur tempore. Doloribus repellat ut autem odio dolorem suscipit maiores. Est quia repellat omnis veritatis. Voluptas nulla sed sit quas.</p></div>",
"is_active": true,
"created_at": "2023-06-26T22:38:26.000000Z",
"updated_at": "2023-06-26T22:38:26.000000Z"
},
"relationships": {},
"meta": {},
"links": {}
},
"included": [],
"jsonapi": {
"version": "1.0",
"meta": {}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Slot Type Instances
API for managing a Slot Type's Instances
List
requires authentication
Example request:
curl --request GET \
--get "https://slottable.app/api/v1/companies/1/slot-types/1/slot-type-instances?page%5Bnumber%5D=1&page%5Blimit%5D=20" \
--header "Authorization: Bearer dZDfE3Vhvea81b6Pg45ck6a" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://slottable.app/api/v1/companies/1/slot-types/1/slot-type-instances',
[
'headers' => [
'Authorization' => 'Bearer dZDfE3Vhvea81b6Pg45ck6a',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'page[number]' => '1',
'page[limit]' => '20',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://slottable.app/api/v1/companies/1/slot-types/1/slot-type-instances"
);
const params = {
"page[number]": "1",
"page[limit]": "20",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer dZDfE3Vhvea81b6Pg45ck6a",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"data": [
{
"id": "838",
"type": "slotTypeInstances",
"attributes": {
"id": 838,
"slot_type_id": 56,
"token": "3tdmokTTqhRRqguaN5fq",
"booking_page_id": null,
"followup_process_id": null,
"integration_setting_id": null,
"location_id": null,
"datetime": "2023-03-18T21:59:56.000000Z",
"timezone": null,
"duration": 7,
"require_payment": false,
"price": null,
"instructions": "<div><p>Temporibus facilis suscipit facere ut sint quas aut. Ex rerum distinctio ea nulla dolore eveniet. Doloremque quo molestiae cum aut velit rerum.</p></div>",
"total_slots": 95,
"is_published": true,
"created_at": "2023-06-26T22:38:26.000000Z",
"updated_at": "2023-06-26T22:38:26.000000Z"
},
"relationships": {},
"meta": {},
"links": {}
},
{
"id": "839",
"type": "slotTypeInstances",
"attributes": {
"id": 839,
"slot_type_id": 66,
"token": "1AtdjguKjIeabPCiTDop",
"booking_page_id": null,
"followup_process_id": null,
"integration_setting_id": null,
"location_id": null,
"datetime": "2023-03-09T00:00:00.000000Z",
"timezone": null,
"duration": 28,
"require_payment": true,
"price": 2440,
"instructions": "<div><p>Qui eum sed quisquam qui alias. Quas doloribus veritatis quis soluta culpa. Quos fuga ullam debitis assumenda perferendis eum dicta.</p></div>",
"total_slots": 37,
"is_published": false,
"created_at": "2023-06-26T22:38:26.000000Z",
"updated_at": "2023-06-26T22:38:26.000000Z"
},
"relationships": {},
"meta": {},
"links": {}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "/?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Next »",
"active": false
}
],
"path": "/",
"per_page": 20,
"to": 2,
"total": 2
},
"included": [],
"jsonapi": {
"version": "1.0",
"meta": {}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show
requires authentication
Example request:
curl --request GET \
--get "https://slottable.app/api/v1/companies/1/slot-types/1/slot-type-instances/1" \
--header "Authorization: Bearer 41ea3avfEV8d5hPkDb6gZc6" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://slottable.app/api/v1/companies/1/slot-types/1/slot-type-instances/1',
[
'headers' => [
'Authorization' => 'Bearer 41ea3avfEV8d5hPkDb6gZc6',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://slottable.app/api/v1/companies/1/slot-types/1/slot-type-instances/1"
);
const headers = {
"Authorization": "Bearer 41ea3avfEV8d5hPkDb6gZc6",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"data": {
"id": "840",
"type": "slotTypeInstances",
"attributes": {
"id": 840,
"slot_type_id": 18,
"token": "MZhziVDrZyTwsOnjPEZk",
"booking_page_id": null,
"followup_process_id": null,
"integration_setting_id": null,
"location_id": null,
"datetime": "2024-01-07T00:00:00.000000Z",
"timezone": null,
"duration": 18,
"require_payment": true,
"price": 9086,
"instructions": "<div><p>Enim eum totam est vel explicabo voluptatem et architecto. Ut laudantium ut dolorem officiis voluptas culpa sint. Voluptatibus praesentium neque vitae voluptas.</p></div>",
"total_slots": 96,
"is_published": true,
"created_at": "2023-06-26T22:38:26.000000Z",
"updated_at": "2023-06-26T22:38:26.000000Z"
},
"relationships": {},
"meta": {},
"links": {}
},
"included": [],
"jsonapi": {
"version": "1.0",
"meta": {}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Slot Type Instance Roster
API for managing a Slot Type Instance's Roster
List
requires authentication
Example request:
curl --request GET \
--get "https://slottable.app/api/v1/companies/1/slot-types/1/slot-type-instances/1/contacts?page%5Bnumber%5D=1&page%5Blimit%5D=20" \
--header "Authorization: Bearer 3Da1haZ54Pg6bvekVfd68cE" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://slottable.app/api/v1/companies/1/slot-types/1/slot-type-instances/1/contacts',
[
'headers' => [
'Authorization' => 'Bearer 3Da1haZ54Pg6bvekVfd68cE',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'page[number]' => '1',
'page[limit]' => '20',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://slottable.app/api/v1/companies/1/slot-types/1/slot-type-instances/1/contacts"
);
const params = {
"page[number]": "1",
"page[limit]": "20",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer 3Da1haZ54Pg6bvekVfd68cE",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"data": [
{
"id": "",
"type": "bookingContact",
"attributes": {
"id": null,
"booking_id": 791,
"contact_id": 3611,
"registered_at": "2023-06-26T22:38:26.000000Z",
"current_stage": null,
"entered_at": null,
"contact": {
"id": 3611,
"company_id": 1,
"stripe_customer_id": null,
"first_name": "Tremaine",
"last_name": "Berge",
"email": "edmond83@wisoky.org",
"phone": "928.365.9311",
"street_address": "98449 Earl Roads Suite 208",
"street_address_2": null,
"city": "New Josefinamouth",
"state": "South Carolina",
"postal": "14428-3707",
"country": "USA",
"is_subscribed": false,
"created_at": "2023-06-26T22:38:26.000000Z",
"updated_at": "2023-06-26T22:38:26.000000Z"
}
},
"relationships": {},
"meta": {},
"links": {}
},
{
"id": "",
"type": "bookingContact",
"attributes": {
"id": null,
"booking_id": 792,
"contact_id": 3612,
"registered_at": "2023-06-26T22:38:26.000000Z",
"current_stage": null,
"entered_at": null,
"contact": {
"id": 3612,
"company_id": 1,
"stripe_customer_id": null,
"first_name": "Alfreda",
"last_name": "D'Amore",
"email": "yolanda.ryan@corkery.com",
"phone": "+1-770-568-2177",
"street_address": "4559 Alanna Isle Apt. 161",
"street_address_2": null,
"city": "North Raoulborough",
"state": "Illinois",
"postal": "41627-3990",
"country": "USA",
"is_subscribed": true,
"created_at": "2023-06-26T22:38:26.000000Z",
"updated_at": "2023-06-26T22:38:26.000000Z"
}
},
"relationships": {},
"meta": {},
"links": {}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "/?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Next »",
"active": false
}
],
"path": "/",
"per_page": 20,
"to": 2,
"total": 2
},
"included": [],
"jsonapi": {
"version": "1.0",
"meta": {}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Latest BookingContacts
requires authentication
Example request:
curl --request GET \
--get "https://slottable.app/api/v1/companies/1/latest-booking-contacts" \
--header "Authorization: Bearer faEcPbve418D6Z6a35dhkVg" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://slottable.app/api/v1/companies/1/latest-booking-contacts',
[
'headers' => [
'Authorization' => 'Bearer faEcPbve418D6Z6a35dhkVg',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://slottable.app/api/v1/companies/1/latest-booking-contacts"
);
const headers = {
"Authorization": "Bearer faEcPbve418D6Z6a35dhkVg",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"data": [
{
"id": "",
"type": "bookingContact",
"attributes": {
"id": null,
"booking_id": 793,
"contact_id": 3613,
"registered_at": "2023-06-26T22:38:26.000000Z",
"current_stage": null,
"entered_at": null,
"contact": {
"id": 3613,
"company_id": 1,
"stripe_customer_id": null,
"first_name": "Trinity",
"last_name": "Hahn",
"email": "cremin.stevie@gmail.com",
"phone": "+1.270.588.3718",
"street_address": "3960 Hailee Shoals Suite 295",
"street_address_2": null,
"city": "Lake Norenetown",
"state": "Hawaii",
"postal": "82690-5997",
"country": "USA",
"is_subscribed": false,
"created_at": "2023-06-26T22:38:26.000000Z",
"updated_at": "2023-06-26T22:38:26.000000Z"
}
},
"relationships": {},
"meta": {},
"links": {}
},
{
"id": "",
"type": "bookingContact",
"attributes": {
"id": null,
"booking_id": 794,
"contact_id": 3614,
"registered_at": "2023-06-26T22:38:26.000000Z",
"current_stage": null,
"entered_at": null,
"contact": {
"id": 3614,
"company_id": 1,
"stripe_customer_id": null,
"first_name": "Matilda",
"last_name": "Mante",
"email": "feeney.riley@gmail.com",
"phone": "+1 (818) 396-2561",
"street_address": "794 O'Keefe Track",
"street_address_2": null,
"city": "South Bradytown",
"state": "Arkansas",
"postal": "46973-1714",
"country": "USA",
"is_subscribed": true,
"created_at": "2023-06-26T22:38:26.000000Z",
"updated_at": "2023-06-26T22:38:26.000000Z"
}
},
"relationships": {},
"meta": {},
"links": {}
}
],
"included": [],
"jsonapi": {
"version": "1.0",
"meta": {}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Slot Type Instance Bookings
API for managing a Slot Type Instance's Bookings.
List
requires authentication
Example request:
curl --request GET \
--get "https://slottable.app/api/v1/companies/1/slot-types/1/slot-type-instances/1/bookings?page%5Bnumber%5D=1&page%5Blimit%5D=20" \
--header "Authorization: Bearer kbPv6cDE3aadegVfhZ15648" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://slottable.app/api/v1/companies/1/slot-types/1/slot-type-instances/1/bookings',
[
'headers' => [
'Authorization' => 'Bearer kbPv6cDE3aadegVfhZ15648',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'page[number]' => '1',
'page[limit]' => '20',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://slottable.app/api/v1/companies/1/slot-types/1/slot-type-instances/1/bookings"
);
const params = {
"page[number]": "1",
"page[limit]": "20",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer kbPv6cDE3aadegVfhZ15648",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"data": [
{
"id": "795",
"type": "bookings",
"attributes": {
"id": 795,
"slot_type_instance_id": 845,
"listing_page_id": null,
"token": "hyZf8B0Dki9Qq9hRfAuf",
"canceled_at": null,
"created_at": "2023-06-26T22:38:26.000000Z",
"updated_at": "2023-06-26T22:38:26.000000Z"
},
"relationships": {},
"meta": {},
"links": {}
},
{
"id": "796",
"type": "bookings",
"attributes": {
"id": 796,
"slot_type_instance_id": 846,
"listing_page_id": null,
"token": "j4E7wpKV3T1Ll3SEfgWx",
"canceled_at": null,
"created_at": "2023-06-26T22:38:26.000000Z",
"updated_at": "2023-06-26T22:38:26.000000Z"
},
"relationships": {},
"meta": {},
"links": {}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "/?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Next »",
"active": false
}
],
"path": "/",
"per_page": 20,
"to": 2,
"total": 2
},
"included": [],
"jsonapi": {
"version": "1.0",
"meta": {}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.