Create Your First Event
This guide will walk you through making your first API request to create an event in BookingShake.
Prerequisites
Before you begin, make sure you have:
Your BookingShake API key from Settings > Integrations
A tool to make HTTP requests (cURL, Postman, or your preferred HTTP client)
Step 1: Get Your API Key
Access BookingShake Dashboard
Navigate to Integrations
Go to Settings > Integrations
Copy Your API Key
Copy your API key and store it securely
Replace YOUR_API_KEY in all examples below with your actual API key.
Step 2: Retrieve Available Resources
Before creating an event, let’s retrieve available sources and spaces to use in our booking.
Get Booking Sources
curl -X GET 'https://api.bookingshake.io/api/sources' \
-H 'Authorization: Bearer YOUR_API_KEY'
const response = await fetch('https://api.bookingshake.io/api/sources', {
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
});
const sources = await response.json();
console.log(sources);
import requests
response = requests.get(
'https://api.bookingshake.io/api/sources',
headers={'Authorization': 'Bearer YOUR_API_KEY'}
)
sources = response.json()
print(sources)
<?php
$ch = curl_init('https://api.bookingshake.io/api/sources');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY'
]);
$response = curl_exec($ch);
$sources = json_decode($response, true);
print_r($sources);
?>
[
{
"value": "src_website",
"label": "Website"
},
{
"value": "src_phone",
"label": "Phone"
}
]
Get Available Spaces
curl -X GET 'https://api.bookingshake.io/api/spaces' \
-H 'Authorization: Bearer YOUR_API_KEY'
const response = await fetch('https://api.bookingshake.io/api/spaces', {
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
});
const spaces = await response.json();
console.log(spaces);
[
{
"value": "space_conf_a",
"label": "Conference Room A"
},
{
"value": "space_ballroom",
"label": "Grand Ballroom"
}
]
Step 3: Create a Simple Event
Now let’s create your first event with basic information.
curl -X POST 'https://api.bookingshake.io/api/events/create' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"bookings": [
{
"date": "15-03-2025",
"start_time": "14:00",
"end_time": "18:00",
"pax": "50",
"event_type": "Corporate Event"
}
],
"contact": {
"title": "Mr",
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@example.com",
"phone": "+33123456789"
},
"source_slug": "website"
}'
const response = await fetch('https://api.bookingshake.io/api/events/create', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
bookings: [
{
date: '15-03-2025',
start_time: '14:00',
end_time: '18:00',
pax: '50',
event_type: 'Corporate Event'
}
],
contact: {
title: 'Mr',
first_name: 'John',
last_name: 'Doe',
email: 'john.doe@example.com',
phone: '+33123456789'
},
source_slug: 'website'
})
});
const result = await response.json();
console.log(result);
import requests
import json
payload = {
"bookings": [
{
"date": "15-03-2025",
"start_time": "14:00",
"end_time": "18:00",
"pax": "50",
"event_type": "Corporate Event"
}
],
"contact": {
"title": "Mr",
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@example.com",
"phone": "+33123456789"
},
"source_slug": "website"
}
response = requests.post(
'https://api.bookingshake.io/api/events/create',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
data=json.dumps(payload)
)
result = response.json()
print(result)
<?php
$payload = json_encode([
'bookings' => [
[
'date' => '15-03-2025',
'start_time' => '14:00',
'end_time' => '18:00',
'pax' => '50',
'event_type' => 'Corporate Event'
]
],
'contact' => [
'title' => 'Mr',
'first_name' => 'John',
'last_name' => 'Doe',
'email' => 'john.doe@example.com',
'phone' => '+33123456789'
],
'source_slug' => 'website'
]);
$ch = curl_init('https://api.bookingshake.io/api/events/create');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY',
'Content-Type: application/json'
]);
$response = curl_exec($ch);
$result = json_decode($response, true);
print_r($result);
?>
Congratulations! You’ve successfully created your first event via the BookingShake API.
Step 4: Verify in Dashboard
After creating the event, you can verify it in your BookingShake dashboard:
- Log in to crm.bookingshake.com
- Navigate to your events/bookings list
- Look for the newly created event with John Doe as the contact
What’s Next?
Now that you’ve created your first event, explore these advanced features:
Create Multiple Events
Learn how to create multiple events in a single request
Add Products
Create draft quotations by including products with your events
Company Information
Add company details to your bookings
Error Handling
Learn how to handle errors gracefully
Common Issues
Invalid date format error
Invalid time format error
Ensure the Authorization header is included:Authorization: Bearer YOUR_API_KEY
Verify your API key is correct and hasn’t been revoked. Get a fresh key from Settings > Integrations.
Need Help?
Contact Support
Our support team is here to help you get started