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_API_TOKEN}".
All authenticated endpoints are marked with a requires authentication badge in the documentation below.
You can generate a token in the administrator dashboard on the bottom of the Settings => Integrations page.
Endpoints
Import users
requires authentication ability required: user-write
Creates, updates, or skips users based on the rows of an uploaded CSV file.
Set dry_run to validate the file and preview the result without saving anything.
Status codes:
200for a dry run, regardless of row errors. The request itself succeeded, and any problems are reported in theerrorsanderrorMessagesfields of the body.200for a real import in which no row has an error.422for a real import in which at least one row has an error.
Example request:
curl --request POST \
"https://{your-flexopus-domain}/api/v1/users/import" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json" \
--header "Content-Type: multipart/form-data" \
--form "update=1"\
--form "dry_run=1"\
--form "file=@/tmp/phpdjql1p0akl9jd9krY51" const url = new URL(
"https://{your-flexopus-domain}/api/v1/users/import"
);
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
"Content-Type": "multipart/form-data",
};
const body = new FormData();
body.append('update', '1');
body.append('dry_run', '1');
body.append('file', document.querySelector('input[name="file"]').files[0]);
fetch(url, {
method: "POST",
headers,
body,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/users/import';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
'Content-Type' => 'multipart/form-data',
],
'multipart' => [
[
'name' => 'update',
'contents' => '1'
],
[
'name' => 'dry_run',
'contents' => '1'
],
[
'name' => 'file',
'contents' => fopen('/tmp/phpdjql1p0akl9jd9krY51', 'r')
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/users/import'
files = {
'update': (None, '1'),
'dry_run': (None, '1'),
'file': open('/tmp/phpdjql1p0akl9jd9krY51', 'rb')}
payload = {
"update": true,
"dry_run": true
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json',
'Content-Type': 'multipart/form-data'
}
response = requests.request('POST', url, headers=headers, files=files)
response.json()Example response (200, Import completed without errors):
{
"dryRun": false,
"created": [
2,
3
],
"updated": [
4,
6
],
"deleted": 0,
"skipped": [
5,
8
],
"errors": [],
"errorMessages": {},
"rows": 6,
"filename": "users.csv"
}
Example response (422, Dry run with row errors (nothing is saved)):
{
"dryRun": true,
"created": [
2,
3
],
"updated": [
4,
6
],
"deleted": 0,
"skipped": [
5,
8
],
"errors": [
7
],
"errorMessages": {
"7": {
"email": [
"The email must be a valid email address."
]
}
},
"rows": 7,
"filename": "users.csv"
}
Example response (422, Real import with row errors):
{
"dryRun": false,
"created": [
2,
3
],
"updated": [
4,
6
],
"deleted": 0,
"skipped": [
5,
8
],
"errors": [
7
],
"errorMessages": {
"7": {
"email": [
"The email must be a valid email address."
]
}
},
"rows": 7,
"filename": "users.csv"
}
Received response:
Request failed with error:
Response
Response Fields
dryRun
boolean
Echoes the dry_run flag from the request.
created
integer[]
Row indices of newly created users.
updated
integer[]
Row indices of updated users.
deleted
integer
Number of deleted users (a count, not a list of indices).
skipped
integer[]
Row indices of unchanged users.
errors
integer[]
Row indices of rows that failed validation.
errorMessages
object
Validation messages, keyed by row index and then by column name.
rows
integer
Total number of processed rows.
filename
string
Name of the uploaded file.
GET api/v1/users/export
requires authentication ability required: user-write
Example request:
curl --request GET \
--get "https://{your-flexopus-domain}/api/v1/users/export?format=csv" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json"const url = new URL(
"https://{your-flexopus-domain}/api/v1/users/export"
);
const params = {
"format": "csv",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/users/export';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'query' => [
'format' => 'csv',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/users/export'
params = {
'format': 'csv',
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
A file containing the user export in the requested format.
Received response:
Request failed with error:
GET api/v1/users/{id}
requires authentication ability required: read
Example request:
curl --request GET \
--get "https://{your-flexopus-domain}/api/v1/users/1" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json"const url = new URL(
"https://{your-flexopus-domain}/api/v1/users/1"
);
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/users/1';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/users/1'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": {
"id": 123,
"name": "Dr. Eddie Torphy IV",
"email": "dr.eddie.torphy.iv@example.com",
"extensionAttributes": {
"extensionAttribute1": "value"
}
}
}
Received response:
Request failed with error:
GET api/v1/users/{user_id}/bookings
requires authentication ability required: read
Example request:
curl --request GET \
--get "https://{your-flexopus-domain}/api/v1/users/1/bookings?from=2021-11-01T00%3A00%3A00Z&to=2021-11-03T00%3A00%3A00Z" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json"const url = new URL(
"https://{your-flexopus-domain}/api/v1/users/1/bookings"
);
const params = {
"from": "2021-11-01T00:00:00Z",
"to": "2021-11-03T00:00:00Z",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/users/1/bookings';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'query' => [
'from' => '2021-11-01T00:00:00Z',
'to' => '2021-11-03T00:00:00Z',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/users/1/bookings'
params = {
'from': '2021-11-01T00:00:00Z',
'to': '2021-11-03T00:00:00Z',
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"data": [
{
"id": 18556,
"from": "2021-11-01T08:00:00.000000Z",
"to": null,
"livemap": "https://{your-flexopus-domain}/api/v1/bookings/18556/livemap",
"bookable": {
"id": 445,
"name": "Parking spot 2",
"type": 1, // 0 => Desk, 1 => Parking spot, 2 => Meeting room, 3 => Home office
"status": 0 // 0 => Flexible, 1 => Blocked, 2 => Assigned
"tags": [],
"capacity": null,
"location": {
"id": 32,
"name": "Car park 4",
"code": "P4",
"building": {
"id": 1,
"name": "Building",
"address": "281 Buchanan Rd, Sheffield, CH2 3NH"
}
}
},
"guest": null,
"license_plate": "AB-CD-123"
},
{
"id": 18596,
"from": "2021-11-02T08:00:00.000000Z",
"to": "2021-11-02T14:00:00.000000Z",
"livemap": "https://{your-flexopus-domain}/api/v1/bookings/18596/livemap",
"bookable": {
"id": 23,
"name": "Table 12",
"type": 0, // 0 => Desk, 1 => Parking spot, 2 => Meeting room, 3 => Home office
"status": 0, // 0 => Flexible, 1 => Blocked, 2 => Assigned
"tags": [],
"capacity": null,
"location": {
"id": 36,
"name": "Office 34",
"code": "O34",
"building": {
"id": 1,
"name": "Building",
"address": "281 Buchanan Rd, Sheffield, CH2 3NH"
}
}
},
"guest": null
}
]
}
Received response:
Request failed with error:
GET api/v1/users/by-email/{user_email}
requires authentication ability required: read
Example request:
curl --request GET \
--get "https://{your-flexopus-domain}/api/v1/users/by-email/trever.bernier@example.org" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json"const url = new URL(
"https://{your-flexopus-domain}/api/v1/users/by-email/trever.bernier@example.org"
);
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/users/by-email/trever.bernier@example.org';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/users/by-email/trever.bernier@example.org'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": {
"id": 123,
"name": "Dr. Eddie Torphy IV",
"email": "dr.eddie.torphy.iv@example.com",
"extensionAttributes": {
"extensionAttribute1": "value"
}
}
}
Received response:
Request failed with error:
GET api/v1/users/by-email/{user_email}/bookings
requires authentication ability required: read
Example request:
curl --request GET \
--get "https://{your-flexopus-domain}/api/v1/users/by-email/judge.kozey@example.net/bookings?from=2021-11-01T00%3A00%3A00Z&to=2021-11-03T00%3A00%3A00Z" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json"const url = new URL(
"https://{your-flexopus-domain}/api/v1/users/by-email/judge.kozey@example.net/bookings"
);
const params = {
"from": "2021-11-01T00:00:00Z",
"to": "2021-11-03T00:00:00Z",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/users/by-email/judge.kozey@example.net/bookings';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'query' => [
'from' => '2021-11-01T00:00:00Z',
'to' => '2021-11-03T00:00:00Z',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/users/by-email/judge.kozey@example.net/bookings'
params = {
'from': '2021-11-01T00:00:00Z',
'to': '2021-11-03T00:00:00Z',
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"data": [
{
"id": 18556,
"from": "2021-11-01T08:00:00.000000Z",
"to": null,
"livemap": "https://{your-flexopus-domain}/api/v1/bookings/18556/livemap",
"bookable": {
"id": 445,
"name": "Parking spot 2",
"type": 1, // 0 => Desk, 1 => Parking spot, 2 => Meeting room, 3 => Home office
"status": 0 // 0 => Flexible, 1 => Blocked, 2 => Assigned
"tags": [],
"capacity": null,
"location": {
"id": 32,
"name": "Car park 4",
"code": "P4",
"building": {
"id": 1,
"name": "Building",
"address": "281 Buchanan Rd, Sheffield, CH2 3NH"
}
}
},
"guest": null,
"license_plate": "AB-CD-123"
},
{
"id": 18596,
"from": "2021-11-02T08:00:00.000000Z",
"to": "2021-11-02T14:00:00.000000Z",
"livemap": "https://{your-flexopus-domain}/api/v1/bookings/18596/livemap",
"bookable": {
"id": 23,
"name": "Table 12",
"type": 0, // 0 => Desk, 1 => Parking spot, 2 => Meeting room, 3 => Home office
"status": 0, // 0 => Flexible, 1 => Blocked, 2 => Assigned
"tags": [],
"capacity": null,
"location": {
"id": 36,
"name": "Office 34",
"code": "O34",
"building": {
"id": 1,
"name": "Building",
"address": "281 Buchanan Rd, Sheffield, CH2 3NH"
}
}
},
"guest": null
}
]
}
Received response:
Request failed with error:
GET api/v1/groups
requires authentication ability required: read
Example request:
curl --request GET \
--get "https://{your-flexopus-domain}/api/v1/groups" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json"const url = new URL(
"https://{your-flexopus-domain}/api/v1/groups"
);
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/groups';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/groups'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": [
{
"id": 41,
"name": "Team One"
},
{
"id": 56,
"name": "Team Two"
}
]
}
Received response:
Request failed with error:
GET api/v1/buildings
requires authentication ability required: read
Example request:
curl --request GET \
--get "https://{your-flexopus-domain}/api/v1/buildings" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json"const url = new URL(
"https://{your-flexopus-domain}/api/v1/buildings"
);
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/buildings';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/buildings'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": [
{
"id": 1,
"name": "Building",
"address": "281 Buchanan Rd, Sheffield, CH2 3NH"
"locations": [
{
"id": 32,
"name": "Car park 4",
"code": "P4"
},
{
"id": 36,
"name": "Office 34",
"code": "O34"
},
{
"id": 37,
"name": "Office 35",
"code": "O35"
}
]
}
]
}
Received response:
Request failed with error:
GET api/v1/buildings/{building_id}/bookings
requires authentication ability required: read
Example request:
curl --request GET \
--get "https://{your-flexopus-domain}/api/v1/buildings/8/bookings?from=2021-11-01T00%3A00%3A00Z&to=2021-11-03T00%3A00%3A00Z" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json"const url = new URL(
"https://{your-flexopus-domain}/api/v1/buildings/8/bookings"
);
const params = {
"from": "2021-11-01T00:00:00Z",
"to": "2021-11-03T00:00:00Z",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/buildings/8/bookings';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'query' => [
'from' => '2021-11-01T00:00:00Z',
'to' => '2021-11-03T00:00:00Z',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/buildings/8/bookings'
params = {
'from': '2021-11-01T00:00:00Z',
'to': '2021-11-03T00:00:00Z',
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"data": [
{
"id": 18552,
"from": "2021-11-01T08:00:00.000000Z",
"to": "2021-11-01T10:00:00.000000Z",
"livemap": "https://{your-flexopus-domain}/api/v1/bookings/18552/livemap",
"bookable": {
"id": 113,
"name": "Table 24",
"type": 0, // 0 => Desk, 1 => Parking spot, 2 => Meeting room, 3 => Home office
"status": 0, // 0 => Flexible, 1 => Blocked, 2 => Assigned
"tags": [],
"capacity": null,
"location": {
"id": 36,
"name": "Office 34",
"code": "O34"
}
},
"user": {
"id": 123,
"name": "Dr. Eddie Torphy IV",
"email": "dr.eddie.torphy.iv@example.com",
"extensionAttributes": {
"extensionAttribute1": "value"
}
},
"guest": null
},
{
"id": 13862,
"from": "2021-11-01T14:00:00.000000Z",
"to": null,
"livemap": "https://{your-flexopus-domain}/api/v1/bookings/13862/livemap",
"bookable": {
"id": 445,
"name": "Parking spot 2",
"type": 1, // 0 => Desk, 1 => Parking spot, 2 => Meeting room, 3 => Home office
"status": 0, // 0 => Flexible, 1 => Blocked, 2 => Assigned
"tags": [],
"capacity": null,
"location": {
"id": 32,
"name": "Car park 4",
"code": "P4"
}
},
"user": {
"id": 127,
"name": "Lillie Bergnaum",
"email": "lillie.bergnaum@example.com",
"extensionAttributes": {
"extensionAttribute3": "other value"
}
},
"guest": null,
"license_plate": null
}
]
}
Received response:
Request failed with error:
GET api/v1/locations/{location_id}/bookings
requires authentication ability required: read
Example request:
curl --request GET \
--get "https://{your-flexopus-domain}/api/v1/locations/10/bookings?from=2021-11-01T00%3A00%3A00Z&to=2021-11-03T00%3A00%3A00Z" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json"const url = new URL(
"https://{your-flexopus-domain}/api/v1/locations/10/bookings"
);
const params = {
"from": "2021-11-01T00:00:00Z",
"to": "2021-11-03T00:00:00Z",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/locations/10/bookings';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'query' => [
'from' => '2021-11-01T00:00:00Z',
'to' => '2021-11-03T00:00:00Z',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/locations/10/bookings'
params = {
'from': '2021-11-01T00:00:00Z',
'to': '2021-11-03T00:00:00Z',
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"data": [
{
"id": 18552,
"from": "2021-11-01T08:00:00.000000Z",
"to": "2021-11-01T10:00:00.000000Z",
"livemap": "https://{your-flexopus-domain}/api/v1/bookings/18552/livemap",
"bookable": {
"id": 113,
"name": "Table 24",
"type": 0, // 0 => Desk, 1 => Parking spot, 2 => Meeting room, 3 => Home office
"status": 0, // 0 => Flexible, 1 => Blocked, 2 => Assigned
"tags": [],
"capacity": null,
},
"user": {
"id": 123,
"name": "Dr. Eddie Torphy IV",
"email": "dr.eddie.torphy.iv@example.com",
"extensionAttributes": {
"extensionAttribute1": "value"
}
},
"guest": null
},
{
"id": 13862,
"from": "2021-11-01T14:00:00.000000Z",
"to": null,
"livemap": "https://{your-flexopus-domain}/api/v1/bookings/13862/livemap",
"bookable": {
"id": 445,
"name": "Parking spot 2",
"type": 1, // 0 => Desk, 1 => Parking spot, 2 => Meeting room, 3 => Home office
"status": 0, // 0 => Flexible, 1 => Blocked, 2 => Assigned
"tags": [],
"capacity": null
},
"user": {
"id": 127,
"name": "Lillie Bergnaum",
"email": "lillie.bergnaum@example.com",
"extensionAttributes": {
"extensionAttribute3": "other value"
}
},
"guest": null,
"license_plate": "AB-CD-123"
}
]
}
Received response:
Request failed with error:
GET api/v1/locations/{location_id}/bookables
requires authentication ability required: read
Example request:
curl --request GET \
--get "https://{your-flexopus-domain}/api/v1/locations/14/bookables" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json"const url = new URL(
"https://{your-flexopus-domain}/api/v1/locations/14/bookables"
);
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/locations/14/bookables';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/locations/14/bookables'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": [
{
"id": 113,
"name": "Table 24",
"type": 0, // 0 => Desk, 1 => Parking spot, 2 => Meeting room, 3 => Home office
"status": 0, // 0 => Flexible, 1 => Blocked, 2 => Assigned
"capacity": 1,
"tags": [
"Adjustable height",
"Quiet zone"
]
},
{
"id": 445,
"name": "Parking spot 2",
"type": 1, // 0 => Desk, 1 => Parking spot, 2 => Meeting room, 3 => Home office
"status": 2, // 0 => Flexible, 1 => Blocked, 2 => Assigned
"capacity": null,
"tags": [
"Electric charger"
]
}
]
}
Received response:
Request failed with error:
GET api/v1/locations/{location_id}/bookables/occupancy
requires authentication ability required: read
Example request:
curl --request GET \
--get "https://{your-flexopus-domain}/api/v1/locations/2/bookables/occupancy" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json"const url = new URL(
"https://{your-flexopus-domain}/api/v1/locations/2/bookables/occupancy"
);
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/locations/2/bookables/occupancy';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/locations/2/bookables/occupancy'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": [
{
"id": "1b16aa00-0848-47eb-bbca-0d45f3cd1fc3",
"location_name": "Office 34",
"type": 0 // 0 => Desk, 1 => Parking spot, 2 => Meeting room, 3 => Home office
"name": "Table 24",
"occupied": false
},
{
"id": "cb56a871-53f5-4f00-83e2-0b5e4e6b6c51",
"location_name": "Car park 4",
"type": 1 // 0 => Desk, 1 => Parking spot, 2 => Meeting room, 3 => Home office
"name": "Parking spot 2",
"occupied": true
}
]
}
Example response (200, when details=true):
{
"data": [
{
"id": "1b16aa00-0848-47eb-bbca-0d45f3cd1fc3",
"location_name": "Office 34",
"type": 0 // 0 => Desk, 1 => Parking spot, 2 => Meeting room, 3 => Home office
"name": "Table 24",
"occupied": false,
"booking_current": null,
"booking_next": {
"from_time": "2023-08-16T13:00:00.000000Z",
"to_time": "2023-08-16T16:00:00.000000Z"
}
},
{
"id": "cb56a871-53f5-4f00-83e2-0b5e4e6b6c51",
"location_name": "Car park 4",
"type": 1 // 0 => Desk, 1 => Parking spot, 2 => Meeting room, 3 => Home office
"name": "Parking spot 2",
"occupied": true,
"booking_current": {
"from_time": "2023-08-16T09:00:00.000000Z",
"to_time": "2023-08-16T12:00:00.000000Z"
}
"booking_next": null
}
]
}
Received response:
Request failed with error:
POST api/v1/bookables/availability
requires authentication ability required: read
Example request:
curl --request POST \
"https://{your-flexopus-domain}/api/v1/bookables/availability" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data "{
\"from\": \"2021-11-01T00:00:00Z\",
\"to\": \"2021-11-03T00:00:00Z\",
\"location_id\": 4,
\"building_id\": 2,
\"occupied\": false,
\"tags\": null,
\"capacity\": 17,
\"per_page\": 14
}"
const url = new URL(
"https://{your-flexopus-domain}/api/v1/bookables/availability"
);
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
"Content-Type": "application/json",
};
let body = {
"from": "2021-11-01T00:00:00Z",
"to": "2021-11-03T00:00:00Z",
"location_id": 4,
"building_id": 2,
"occupied": false,
"tags": null,
"capacity": 17,
"per_page": 14
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/bookables/availability';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
'json' => [
'from' => '2021-11-01T00:00:00Z',
'to' => '2021-11-03T00:00:00Z',
'location_id' => 4,
'building_id' => 2,
'occupied' => false,
'tags' => null,
'capacity' => 17,
'per_page' => 14,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/bookables/availability'
payload = {
"from": "2021-11-01T00:00:00Z",
"to": "2021-11-03T00:00:00Z",
"location_id": 4,
"building_id": 2,
"occupied": false,
"tags": null,
"capacity": 17,
"per_page": 14
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json',
'Content-Type': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (200):
{
"data": [
{
"id": 30,
"name": "Table 29",
"type": 0, // 0 => Desk, 1 => Parking spot, 2 => Meeting room, 3 => Home office
"status": 0, // 0 => Flexible, 1 => Blocked, 2 => Assigned
"capacity": 4,
"tags": [
"Adjustable height",
"Quiet zone"
],
"occupied": true,
}
],
"links": {
"first": "/api/v1/bookables/availability?page=1",
"last": "/api/v1/bookables/availability?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "/api/v1/bookables/availability?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "/api/v1/bookables/availability",
"per_page": 25,
"to": 1,
"total": 1
}
}
Received response:
Request failed with error:
GET api/v1/bookables/{bookable_id}/bookings
requires authentication ability required: read
Example request:
curl --request GET \
--get "https://{your-flexopus-domain}/api/v1/bookables/1/bookings?from=2021-11-01T00%3A00%3A00Z&to=2021-11-03T00%3A00%3A00Z" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json"const url = new URL(
"https://{your-flexopus-domain}/api/v1/bookables/1/bookings"
);
const params = {
"from": "2021-11-01T00:00:00Z",
"to": "2021-11-03T00:00:00Z",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/bookables/1/bookings';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'query' => [
'from' => '2021-11-01T00:00:00Z',
'to' => '2021-11-03T00:00:00Z',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/bookables/1/bookings'
params = {
'from': '2021-11-01T00:00:00Z',
'to': '2021-11-03T00:00:00Z',
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"data": [
{
"id": 18552,
"from": "2021-11-01T08:00:00.000000Z",
"to": "2021-11-01T10:00:00.000000Z",
"all_day": false,
"livemap": "https://{your-flexopus-domain}/api/v1/bookings/18552/livemap",
"user": {
"id": 123,
"name": "Dr. Eddie Torphy IV",
"email": "dr.eddie.torphy.iv@example.com",
"extensionAttributes": {
"extensionAttribute1": "value"
}
},
"guest": null,
"event_id": 12562
},
{
"id": 13862,
"from": "2021-11-01T14:00:00.000000Z",
"to": null,
"all_day": false,
"livemap": "https://{your-flexopus-domain}/api/v1/bookings/13862/livemap",
"user": {
"id": 127,
"name": "Lillie Bergnaum",
"email": "lillie.bergnaum@example.com",
"extensionAttributes": {
"extensionAttribute3": "other value"
}
},
"guest": null,
"event_id": null,
"license_plate": "AB-CD-123"
}
]
}
Received response:
Request failed with error:
PATCH api/v1/bookables/{id}
requires authentication ability required: object-write
Example request:
curl --request PATCH \
"https://{your-flexopus-domain}/api/v1/bookables/4" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data "{
\"name\": \"Table 7\",
\"status\": 0
}"
const url = new URL(
"https://{your-flexopus-domain}/api/v1/bookables/4"
);
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
"Content-Type": "application/json",
};
let body = {
"name": "Table 7",
"status": 0
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/bookables/4';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
'json' => [
'name' => 'Table 7',
'status' => 0,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/bookables/4'
payload = {
"name": "Table 7",
"status": 0
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json',
'Content-Type': 'application/json'
}
response = requests.request('PATCH', url, headers=headers, json=payload)
response.json()Example response (200):
{
"data": {
"id": 30,
"name": "Table 29",
"type": 0, // 0 => Desk, 1 => Parking spot, 2 => Meeting room, 3 => Home office
"status": 0, // 0 => Flexible, 1 => Blocked, 2 => Assigned
"capacity": 4,
"tags": [
"Adjustable height",
"Quiet zone"
]
}
}
Received response:
Request failed with error:
GET api/v1/events/today
requires authentication ability required: read
Example request:
curl --request GET \
--get "https://{your-flexopus-domain}/api/v1/events/today?building_id=11" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json"const url = new URL(
"https://{your-flexopus-domain}/api/v1/events/today"
);
const params = {
"building_id": "11",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/events/today';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'query' => [
'building_id' => '11',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/events/today'
params = {
'building_id': '11',
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"data": [
{
"id": 18794,
"name": "Morning meeting",
"description": "Morning status meeting."
"from": "2021-11-02T06:00:00.000000Z",
"from_timezone": "Europe/Berlin",
"to": "2021-11-02T06:30:00.000000Z",
"to_timezone": "Europe/Berlin",
"classification": 0,
"status": 1,
"organizer": {
"name": "Dr. Eddie Torphy IV"
},
"attendees": [
{
"id": 24,
"name": "Meeting room 22",
"email": "meeting-room-22@rooms.example.com",
"role": 1,
"status": 1
}
],
"bookables": [
{
"id": 24,
"name": "Meeting room 22",
"tags": [],
"capacity": 6,
"integration_email": "meeting-room-22@rooms.example.com"
}
]
},
{
"id": 21794,
"name": "Super important meeting"
"description": "Everybody should bring their notes!"
"from": "2021-11-04T08:00:00.000000Z",
"from_timezone": "Europe/Berlin",
"to": "2021-11-04T14:00:00.000000Z",
"to_timezone": "Europe/Berlin",
"classification": 0,
"status": 1,
"organizer": {
"name": "Lillie Bergnaum"
},
"attendees": [
{
"id": 23,
"name": "Meeting room 21",
"email": "meeting-room-21@rooms.example.com",
"role": 1,
"status": 1
},
{
"id": 24,
"name": "Meeting room 22",
"email": "meeting-room-22@rooms.example.com",
"role": 2,
"status": 2
},
],
"bookables": [
{
"id": 23,
"name": "Meeting room 21",
"tags": [
"projector",
"markers"
],
"capacity": 12,
"integration_email": "meeting-room-21@rooms.example.com"
},
{
"id": 24,
"name": "Meeting room 22",
"tags": [],
"capacity": 6,
"integration_email": "meeting-room-22@rooms.example.com"
}
]
}
]
}
Received response:
Request failed with error:
GET api/v1/events
requires authentication ability required: read
Example request:
curl --request GET \
--get "https://{your-flexopus-domain}/api/v1/events?from=2021-11-01T00%3A00%3A00Z&to=2021-11-06T00%3A00%3A00Z" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json"const url = new URL(
"https://{your-flexopus-domain}/api/v1/events"
);
const params = {
"from": "2021-11-01T00:00:00Z",
"to": "2021-11-06T00:00:00Z",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/events';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'query' => [
'from' => '2021-11-01T00:00:00Z',
'to' => '2021-11-06T00:00:00Z',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/events'
params = {
'from': '2021-11-01T00:00:00Z',
'to': '2021-11-06T00:00:00Z',
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"data": [
{
"id": 18794,
"name": "Morning meeting"
"from": "2021-11-02T06:00:00.000000Z",
"to": "2021-11-02T06:30:00.000000Z",
"organizer": {
"name": "Dr. Eddie Torphy IV"
},
"bookables": [
{
"id": 24,
"name": "Meeting room 22",
"tags": [],
"capacity": 6,
"integration_email": "meeting-room-22@rooms.example.com"
}
]
},
{
"id": 21794,
"name": "Super important meeting"
"from": "2021-11-04T08:00:00.000000Z",
"to": "2021-11-04T14:00:00.000000Z",
"organizer": {
"name": "Lillie Bergnaum"
},
"bookables": [
{
"id": 23,
"name": "Meeting room 21",
"tags": [
"projector",
"markers"
],
"capacity": 12,
"integration_email": "meeting-room-21@rooms.example.com"
},
{
"id": 24,
"name": "Meeting room 22",
"tags": [],
"capacity": 6,
"integration_email": "meeting-room-22@rooms.example.com"
}
]
}
]
}
Received response:
Request failed with error:
POST api/v1/events
requires authentication ability required: booking-write
Example request:
curl --request POST \
"https://{your-flexopus-domain}/api/v1/events" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data "{
\"from_time\": \"2023-08-16T13:00:00.000000Z\",
\"from_timezone\": \"America\\/Boa_Vista\",
\"to_time\": \"2023-08-16T16:00:00.000000Z\",
\"to_timezone\": \"Africa\\/Monrovia\",
\"classification\": \"0\",
\"name\": \"Meeting\",
\"description\": \"Consequatur consectetur et nihil.\",
\"organizer_user_id\": 10,
\"attendees\": [
{
\"type\": null,
\"email\": \"acarroll@example.com\",
\"id\": 17
}
]
}"
const url = new URL(
"https://{your-flexopus-domain}/api/v1/events"
);
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
"Content-Type": "application/json",
};
let body = {
"from_time": "2023-08-16T13:00:00.000000Z",
"from_timezone": "America\/Boa_Vista",
"to_time": "2023-08-16T16:00:00.000000Z",
"to_timezone": "Africa\/Monrovia",
"classification": "0",
"name": "Meeting",
"description": "Consequatur consectetur et nihil.",
"organizer_user_id": 10,
"attendees": [
{
"type": null,
"email": "acarroll@example.com",
"id": 17
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/events';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
'json' => [
'from_time' => '2023-08-16T13:00:00.000000Z',
'from_timezone' => 'America/Boa_Vista',
'to_time' => '2023-08-16T16:00:00.000000Z',
'to_timezone' => 'Africa/Monrovia',
'classification' => '0',
'name' => 'Meeting',
'description' => 'Consequatur consectetur et nihil.',
'organizer_user_id' => 10,
'attendees' => [
['type' => null, 'email' => 'acarroll@example.com', 'id' => 17],
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/events'
payload = {
"from_time": "2023-08-16T13:00:00.000000Z",
"from_timezone": "America\/Boa_Vista",
"to_time": "2023-08-16T16:00:00.000000Z",
"to_timezone": "Africa\/Monrovia",
"classification": "0",
"name": "Meeting",
"description": "Consequatur consectetur et nihil.",
"organizer_user_id": 10,
"attendees": [
{
"type": null,
"email": "acarroll@example.com",
"id": 17
}
]
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json',
'Content-Type': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (200):
{
"data": {
"id": 18794,
"name": "Morning meeting"
"from": "2021-11-02T06:00:00.000000Z",
"to": "2021-11-02T06:30:00.000000Z",
"classification": 0,
"status": 1,
"organizer": {
"name": "Dr. Eddie Torphy IV"
},
"attendees": [
{
"id": 24,
"name": "Meeting room 22",
"email": "meeting-room-22@rooms.example.com",
"role": 1,
"status": 1
}
],
"bookables": [
{
"id": 24,
"name": "Meeting room 22",
"tags": [],
"capacity": 6,
"integration_email": "meeting-room-22@rooms.example.com"
}
]
}
}
Received response:
Request failed with error:
GET api/v1/events/{id}
requires authentication ability required: read
Example request:
curl --request GET \
--get "https://{your-flexopus-domain}/api/v1/events/10" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json"const url = new URL(
"https://{your-flexopus-domain}/api/v1/events/10"
);
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/events/10';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/events/10'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": {
"id": 18794,
"name": "Morning meeting"
"from": "2021-11-02T06:00:00.000000Z",
"to": "2021-11-02T06:30:00.000000Z",
"classification": 0,
"status": 1,
"organizer": {
"name": "Dr. Eddie Torphy IV"
},
"attendees": [
{
"id": 24,
"name": "Meeting room 22",
"email": "meeting-room-22@rooms.example.com",
"role": 1,
"status": 1
}
],
"bookables": [
{
"id": 24,
"name": "Meeting room 22",
"tags": [],
"capacity": 6,
"integration_email": "meeting-room-22@rooms.example.com"
}
]
}
}
Received response:
Request failed with error:
PUT api/v1/events/{id}
requires authentication ability required: booking-write
Example request:
curl --request PUT \
"https://{your-flexopus-domain}/api/v1/events/12" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data "{
\"from_time\": \"2023-08-16T13:00:00.000000Z\",
\"from_timezone\": \"America\\/Bahia\",
\"to_time\": \"2023-08-16T16:00:00.000000Z\",
\"to_timezone\": \"America\\/Menominee\",
\"classification\": \"0\",
\"name\": \"Meeting\",
\"description\": \"Porro quasi aut earum omnis rerum et.\",
\"attendees\": [
{
\"type\": null,
\"email\": \"maiya74@example.net\",
\"id\": 18
}
]
}"
const url = new URL(
"https://{your-flexopus-domain}/api/v1/events/12"
);
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
"Content-Type": "application/json",
};
let body = {
"from_time": "2023-08-16T13:00:00.000000Z",
"from_timezone": "America\/Bahia",
"to_time": "2023-08-16T16:00:00.000000Z",
"to_timezone": "America\/Menominee",
"classification": "0",
"name": "Meeting",
"description": "Porro quasi aut earum omnis rerum et.",
"attendees": [
{
"type": null,
"email": "maiya74@example.net",
"id": 18
}
]
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/events/12';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
'json' => [
'from_time' => '2023-08-16T13:00:00.000000Z',
'from_timezone' => 'America/Bahia',
'to_time' => '2023-08-16T16:00:00.000000Z',
'to_timezone' => 'America/Menominee',
'classification' => '0',
'name' => 'Meeting',
'description' => 'Porro quasi aut earum omnis rerum et.',
'attendees' => [
['type' => null, 'email' => 'maiya74@example.net', 'id' => 18],
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/events/12'
payload = {
"from_time": "2023-08-16T13:00:00.000000Z",
"from_timezone": "America\/Bahia",
"to_time": "2023-08-16T16:00:00.000000Z",
"to_timezone": "America\/Menominee",
"classification": "0",
"name": "Meeting",
"description": "Porro quasi aut earum omnis rerum et.",
"attendees": [
{
"type": null,
"email": "maiya74@example.net",
"id": 18
}
]
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json',
'Content-Type': 'application/json'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()Example response (200):
{
"data": {
"id": 18794,
"name": "Morning meeting"
"from": "2021-11-02T06:00:00.000000Z",
"to": "2021-11-02T06:30:00.000000Z",
"classification": 0,
"status": 1,
"organizer": {
"name": "Dr. Eddie Torphy IV"
},
"attendees": [
{
"id": 24,
"name": "Meeting room 22",
"email": "meeting-room-22@rooms.example.com",
"role": 1,
"status": 1
}
],
"bookables": [
{
"id": 24,
"name": "Meeting room 22",
"tags": [],
"capacity": 6,
"integration_email": "meeting-room-22@rooms.example.com"
}
]
}
}
Received response:
Request failed with error:
DELETE api/v1/events/{id}
requires authentication ability required: booking-write
Example request:
curl --request DELETE \
"https://{your-flexopus-domain}/api/v1/events/19" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json"const url = new URL(
"https://{your-flexopus-domain}/api/v1/events/19"
);
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/events/19';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/events/19'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Example response (204):
[Empty response]
Received response:
Request failed with error:
GET api/v1/bookings
requires authentication ability required: read
Example request:
curl --request GET \
--get "https://{your-flexopus-domain}/api/v1/bookings?from=2021-11-01T00%3A00%3A00Z&to=2021-11-03T00%3A00%3A00Z" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json"const url = new URL(
"https://{your-flexopus-domain}/api/v1/bookings"
);
const params = {
"from": "2021-11-01T00:00:00Z",
"to": "2021-11-03T00:00:00Z",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/bookings';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'query' => [
'from' => '2021-11-01T00:00:00Z',
'to' => '2021-11-03T00:00:00Z',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/bookings'
params = {
'from': '2021-11-01T00:00:00Z',
'to': '2021-11-03T00:00:00Z',
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"data": [
{
"id": 18556,
"from": "2021-11-01T08:00:00.000000Z",
"to": null,
"all_day": false,
"livemap": "https://{your-flexopus-domain}/api/v1/bookings/18556/livemap",
"bookable": {
"id": 445,
"name": "Parking spot 2",
"type": 1, // 0 => Desk, 1 => Parking spot, 2 => Meeting room, 3 => Home office
"status": 0 // 0 => Flexible, 1 => Blocked, 2 => Assigned
"capacity" => 1,
"tags": [],
"location": {
"id": 32,
"name": "Car park 4",
"code": "P4",
"building": {
"id": 1,
"name": "Building",
"address": "281 Buchanan Rd, Sheffield, CH2 3NH"
}
}
},
"user": {
"id": 127,
"name": "Lillie Bergnaum",
"email": "lillie.bergnaum@example.com",
"extensionAttributes": {
"extensionAttribute3": "other value"
}
},
"guest": null,
"license_plate": "AB-CD-123"
},
{
"id": 18596,
"from": "2021-11-02T08:00:00.000000Z",
"to": "2021-11-02T14:00:00.000000Z",
"all_day": false,
"livemap": "https://{your-flexopus-domain}/api/v1/bookings/18596/livemap",
"bookable": {
"id": 23,
"name": "Table 12",
"type": 0, // 0 => Desk, 1 => Parking spot, 2 => Meeting room, 3 => Home office
"status": 0 // 0 => Flexible, 1 => Blocked, 2 => Assigned
"capacity" => 1,
"tags": [],
"location": {
"id": 36,
"name": "Office 34",
"code": "O34",
"building": {
"id": 1,
"name": "Building",
"address": "281 Buchanan Rd, Sheffield, CH2 3NH"
}
}
},
"user": {
"id": 123,
"name": "Dr. Eddie Torphy IV",
"email": "dr.eddie.torphy.iv@example.com",
"extensionAttributes": {
"extensionAttribute1": "value"
}
},
"guest": "Irwin Muller"
}
]
}
Received response:
Request failed with error:
POST api/v1/bookings
requires authentication ability required: booking-write
Example request:
curl --request POST \
"https://{your-flexopus-domain}/api/v1/bookings" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data "{
\"bookable_id\": 30,
\"from_time\": \"2023-08-16T13:00:00.000000Z\",
\"to_time\": \"2023-08-16T16:00:00.000000Z\",
\"user_id\": 10,
\"location_id\": 4,
\"guest_email\": \"johndoe@flexopus.com\",
\"guest_name\": \"John Doe\",
\"booking_info\": \"Meeting with John\",
\"user_vehicle_id\": 1
}"
const url = new URL(
"https://{your-flexopus-domain}/api/v1/bookings"
);
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
"Content-Type": "application/json",
};
let body = {
"bookable_id": 30,
"from_time": "2023-08-16T13:00:00.000000Z",
"to_time": "2023-08-16T16:00:00.000000Z",
"user_id": 10,
"location_id": 4,
"guest_email": "johndoe@flexopus.com",
"guest_name": "John Doe",
"booking_info": "Meeting with John",
"user_vehicle_id": 1
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/bookings';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
'json' => [
'bookable_id' => 30,
'from_time' => '2023-08-16T13:00:00.000000Z',
'to_time' => '2023-08-16T16:00:00.000000Z',
'user_id' => 10,
'location_id' => 4,
'guest_email' => 'johndoe@flexopus.com',
'guest_name' => 'John Doe',
'booking_info' => 'Meeting with John',
'user_vehicle_id' => 1,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/bookings'
payload = {
"bookable_id": 30,
"from_time": "2023-08-16T13:00:00.000000Z",
"to_time": "2023-08-16T16:00:00.000000Z",
"user_id": 10,
"location_id": 4,
"guest_email": "johndoe@flexopus.com",
"guest_name": "John Doe",
"booking_info": "Meeting with John",
"user_vehicle_id": 1
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json',
'Content-Type': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (200):
{
"data": [
{
"id": 138,
"from": "2023-08-16T13:00:00.000000Z",
"to": "2023-08-16T16:00:00.000000Z",
"all_day": false,
"livemap": "https://{your-flexopus-domain}/api/v1/bookings/138/livemap",
"event_id": null,
"bookable": {
"id": 30,
"name": "Table 29",
"type": 0, // 0 => Desk, 1 => Parking spot, 2 => Meeting room, 3 => Home office
"status": 0 // 0 => Flexible, 1 => Blocked, 2 => Assigned
"capacity" => 1,
"tags": [],
"location": {
"id": 4,
"name": "Floor 1",
"code": "FP1"
}
},
"user": {
"id": 10,
"name": "John Doe",
"email": "johndoe@flexopus.com",
"extensionAttributes": {
"extensionAttribute10": "another value"
}
}
}
]
}
Received response:
Request failed with error:
PUT api/v1/bookings/{id}
requires authentication ability required: booking-write
Example request:
curl --request PUT \
"https://{your-flexopus-domain}/api/v1/bookings/17" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data "{
\"from_time\": \"2023-08-16T13:00:00.000000Z\",
\"to_time\": \"2023-08-16T16:00:00.000000Z\",
\"user_vehicle_id\": 1
}"
const url = new URL(
"https://{your-flexopus-domain}/api/v1/bookings/17"
);
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
"Content-Type": "application/json",
};
let body = {
"from_time": "2023-08-16T13:00:00.000000Z",
"to_time": "2023-08-16T16:00:00.000000Z",
"user_vehicle_id": 1
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/bookings/17';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
'json' => [
'from_time' => '2023-08-16T13:00:00.000000Z',
'to_time' => '2023-08-16T16:00:00.000000Z',
'user_vehicle_id' => 1,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/bookings/17'
payload = {
"from_time": "2023-08-16T13:00:00.000000Z",
"to_time": "2023-08-16T16:00:00.000000Z",
"user_vehicle_id": 1
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json',
'Content-Type': 'application/json'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()Example response (200):
{
"data": {
"id": 138,
"from": "2023-08-16T13:00:00.000000Z",
"to": "2023-08-16T16:00:00.000000Z",
"all_day": false,
"livemap": "https://{your-flexopus-domain}/api/v1/bookings/138/livemap",
"event_id": null,
"bookable": {
"id": 30,
"name": "Table 29",
"type": 0, // 0 => Desk, 1 => Parking spot, 2 => Meeting room, 3 => Home office
"status": 0 // 0 => Flexible, 1 => Blocked, 2 => Assigned
"capacity" => 1,
"tags": [],
"location": {
"id": 4,
"name": "Floor 1",
"code": "FP1"
}
},
"user": {
"id": 10,
"name": "John Doe",
"email": "johndoe@flexopus.com",
"extensionAttributes": {
"extensionAttribute10": "another value"
}
}
}
}
Received response:
Request failed with error:
DELETE api/v1/bookings/{id}
requires authentication ability required: booking-write
Example request:
curl --request DELETE \
"https://{your-flexopus-domain}/api/v1/bookings/2" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json"const url = new URL(
"https://{your-flexopus-domain}/api/v1/bookings/2"
);
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/bookings/2';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/bookings/2'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Example response (204):
[Empty response]
Received response:
Request failed with error:
GET api/v1/inventory/bookings
requires authentication ability required: read
Example request:
curl --request GET \
--get "https://{your-flexopus-domain}/api/v1/inventory/bookings?from=2021-11-01T00%3A00%3A00Z&to=2021-11-06T00%3A00%3A00Z" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json"const url = new URL(
"https://{your-flexopus-domain}/api/v1/inventory/bookings"
);
const params = {
"from": "2021-11-01T00:00:00Z",
"to": "2021-11-06T00:00:00Z",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/inventory/bookings';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'query' => [
'from' => '2021-11-01T00:00:00Z',
'to' => '2021-11-06T00:00:00Z',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/inventory/bookings'
params = {
'from': '2021-11-01T00:00:00Z',
'to': '2021-11-06T00:00:00Z',
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"data": [
{
"id": "01ks7h86apf0qeyj9k2xa0vgqf",
"from": "2026-05-22T09:46:17.000000Z",
"to": null,
"timezone": "UTC",
"status": 0,
"user": {
"id": 2,
"name": "Gert Peters",
"email": "gerpeter@example.org",
"extensionAttributes": []
},
"inventory_item": {
"identifier": "VERO_9370732",
"name": "Apple MacBook Air 13 inch 2015",
"status": 0, // 0 => Flexible, 1 => Blocked, 2 => Restricted
"producer_name" => "Neuhaus",
"serial_number" => "44754/on/317",
"production_date" => "2007-02-07T00:00:00.000000Z",
"purchase_date" => "2026-05-09T00:00:00.000000Z",
"price" => 18.5,
"ownership" => 0, // 0 => Leased, 1 => Bought
"expiration_date" => "2027-05-09T00:00:00.000000Z",
"category": {
"id": 1,
"name": "Car"
},
"attached": {
"id": 3,
"name": "Berlin Office (Large)",
"timezone": "Europe/Berlin",
"address": "5/3 Schülerstraße, Berlin, 33080"
},
"attached_type": "building",
"attached_description": null
},
"additional_fields": null
},
{
"id": "01kshj5qcgrqq3tt6pcm7jhwcq",
"from": "2026-05-26T07:00:00.000000Z",
"to": "2026-05-28T07:00:00.000000Z",
"timezone": "Europe/Berlin",
"status": 0,
"user": {
"id": 54,
"name": "Annelies Hinz",
"email": "mkremer@example.net",
"extensionAttributes": []
},
"inventory_item": {
"identifier": "SED_298876",
"name": "Monitor Full HD LCD 27E1N1300A/00 | Philips",
"status": 0, // 0 => Flexible, 1 => Blocked, 2 => Restricted
"producer_name" => "Neuhaus",
"serial_number" => "44754/on/317",
"production_date" => "2007-02-07T00:00:00.000000Z",
"purchase_date" => "2026-05-09T00:00:00.000000Z",
"price" => 18.5,
"ownership" => 1, // 0 => Leased, 1 => Bought
"expiration_date" => null,
"category": {
"id": 5,
"name": "Category asperiores"
},
"attached": null,
"attached_type": null,
"attached_description": null
},
"additional_fields": {
"need-cabel": true
}
}
]
}
Received response:
Request failed with error:
GET api/v1/inventory/bookings/today
requires authentication ability required: read
Example request:
curl --request GET \
--get "https://{your-flexopus-domain}/api/v1/inventory/bookings/today" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json"const url = new URL(
"https://{your-flexopus-domain}/api/v1/inventory/bookings/today"
);
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/inventory/bookings/today';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/inventory/bookings/today'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": [
{
"id": "01ks7h86apf0qeyj9k2xa0vgqf",
"from": "2026-05-22T09:46:17.000000Z",
"to": null,
"timezone": "UTC",
"status": 0,
"user": {
"id": 2,
"name": "Gert Peters",
"email": "gerpeter@example.org",
"extensionAttributes": []
},
"inventory_item": {
"identifier": "VERO_9370732",
"name": "Apple MacBook Air 13 inch 2015",
"status": 0, // 0 => Flexible, 1 => Blocked, 2 => Restricted
"producer_name" => "Neuhaus",
"serial_number" => "44754/on/317",
"production_date" => "2007-02-07T00:00:00.000000Z",
"purchase_date" => "2026-05-09T00:00:00.000000Z",
"price" => 18.5,
"ownership" => 0, // 0 => Leased, 1 => Bought
"expiration_date" => "2027-05-09T00:00:00.000000Z",
"category": {
"id": 1,
"name": "Car"
},
"attached": {
"id": 3,
"name": "Berlin Office (Large)",
"timezone": "Europe/Berlin",
"address": "5/3 Schülerstraße, Berlin, 33080"
},
"attached_type": "building",
"attached_description": null
},
"additional_fields": null
},
{
"id": "01kshj5qcgrqq3tt6pcm7jhwcq",
"from": "2026-05-26T07:00:00.000000Z",
"to": "2026-05-28T07:00:00.000000Z",
"timezone": "Europe/Berlin",
"status": 0,
"user": {
"id": 54,
"name": "Annelies Hinz",
"email": "mkremer@example.net",
"extensionAttributes": []
},
"inventory_item": {
"identifier": "SED_298876",
"name": "Monitor Full HD LCD 27E1N1300A/00 | Philips",
"status": 0, // 0 => Flexible, 1 => Blocked, 2 => Restricted
"producer_name" => "Neuhaus",
"serial_number" => "44754/on/317",
"production_date" => "2007-02-07T00:00:00.000000Z",
"purchase_date" => "2026-05-09T00:00:00.000000Z",
"price" => 18.5,
"ownership" => 1, // 0 => Leased, 1 => Bought
"expiration_date" => null
"category": {
"id": 5,
"name": "Category asperiores"
},
"attached": null,
"attached_type": null,
"attached_description": null
},
"additional_fields": {
"need-cabel": true
}
}
]
}
Received response:
Request failed with error:
GET api/v1/inventory/{item_id}/bookings
requires authentication ability required: read
Example request:
curl --request GET \
--get "https://{your-flexopus-domain}/api/v1/inventory/voluptatum/bookings?from=2021-11-01T00%3A00%3A00Z&to=2021-11-03T00%3A00%3A00Z" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json"const url = new URL(
"https://{your-flexopus-domain}/api/v1/inventory/voluptatum/bookings"
);
const params = {
"from": "2021-11-01T00:00:00Z",
"to": "2021-11-03T00:00:00Z",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/inventory/voluptatum/bookings';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
'query' => [
'from' => '2021-11-01T00:00:00Z',
'to' => '2021-11-03T00:00:00Z',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/inventory/voluptatum/bookings'
params = {
'from': '2021-11-01T00:00:00Z',
'to': '2021-11-03T00:00:00Z',
}
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"data": [
{
"id": "01kqs0khkcp5ezdh7xmq1a5a57",
"from": "2026-05-04T08:10:20.000000Z",
"to": null,
"timezone": "Europe/Berlin",
"status": 1,
"user": {
"id": 2,
"name": "Gert Peters",
"email": "gerpeter@example.org",
"extensionAttributes": []
},
"additional_fields": null
},
{
"id": "01kshj5qcgrqq3tt6pcm7jhwcq",
"from": "2026-05-26T07:00:00.000000Z",
"to": "2026-05-28T07:00:00.000000Z",
"timezone": "Europe/Berlin",
"status": 0,
"user": {
"id": 54,
"name": "Annelies Hinz",
"email": "mkremer@example.net",
"extensionAttributes": []
},
"additional_fields": {
"need-cabel": true
}
}
]
}
Received response:
Request failed with error:
GET api/v1/inventory/items
requires authentication ability required: read
Example request:
curl --request GET \
--get "https://{your-flexopus-domain}/api/v1/inventory/items" \
--header "Authorization: Bearer {YOUR_API_TOKEN}" \
--header "Accept: application/json"const url = new URL(
"https://{your-flexopus-domain}/api/v1/inventory/items"
);
const headers = {
"Authorization": "Bearer {YOUR_API_TOKEN}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://{your-flexopus-domain}/api/v1/inventory/items';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_API_TOKEN}',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://{your-flexopus-domain}/api/v1/inventory/items'
headers = {
'Authorization': 'Bearer {YOUR_API_TOKEN}',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": [
{
"identifier": "OMNIS_618444",
"name": "Volkswagen TAIGUN",
"status": 0, // 0 => Flexible, 1 => Blocked, 2 => Restricted
"producer_name": "Frey AG",
"serial_number": "98023/uu/569",
"production_date": "1992-01-15T00:00:00.000000Z",
"purchase_date": null,
"price": 1949,
"ownership": 1,
"expiration_date": null,
"attached": {
"id": 232,
"name": "Parking 13",
"type": 1, // 0 => Desk, 1 => Parking spot, 2 => Meeting room
"status": 0,
"capacity": 36
},
"attached_type": "bookable",
"attached_description": null
},
{
"identifier": "QUO_489336",
"name": "Mercedes-Benz GLE53",
"status": 2, // 0 => Flexible, 1 => Blocked, 2 => Restricted
"producer_name": "Zeller",
"serial_number": "00234/vg/358",
"production_date": "1992-01-15T00:00:00.000000Z",
"purchase_date": null,
"price": 1949,
"ownership": 1,
"expiration_date": null,
"attached": {
"id": 232,
"name": "Parking 13",
"type": 1, // 0 => Desk, 1 => Parking spot, 2 => Meeting room
"status": 0,
"capacity": 36
},
"attached_type": "bookable",
"attached_description": null
}
Received response:
Request failed with error: