reservations
Sales operations read collection.
GET
/reservationsList reservations inside the credential company. Requires view_slab plus view_slab_sales in both the operational credential and the current employee permissions where applicable.
GET
/reservations/{id}Get one permitted record by ID. Foreign-company or unavailable records are returned as unavailable inside the credential scope.
List parameters
| Name | Location | Description |
|---|---|---|
after_id | Query | Keyset pagination cursor. |
per_page | Query | 1–100, default 30. |
project_id | Query | Optional resource filter |
status | Query | Optional resource filter |
Request examples
Keep the bearer token on a trusted server. Examples use the verified compatibility route and do not assume undocumented response fields.
cURL
curl 'https://your-company.example/api/slab/v1/operations/reservations?per_page=30' \ -H 'Authorization: Bearer YOUR_OPERATIONAL_TOKEN' \ -H 'Accept: application/json'
JavaScript · server-side
const response = await fetch('https://your-company.example/api/slab/v1/operations/reservations?per_page=30', {
headers: {
Authorization: 'Bearer ' + process.env.STONEWARE_TOKEN,
Accept: 'application/json'
}
});
if (!response.ok) throw new Error(`Stoneware API ${response.status}`);
const payload = await response.json();PHP
$ch = curl_init('https://your-company.example/api/slab/v1/operations/reservations?per_page=30');
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('STONEWARE_TOKEN'),
'Accept: application/json'
],
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);Python
import os, requests
response = requests.get(
'https://your-company.example/api/slab/v1/operations/reservations',
params={'per_page': 30},
headers={
'Authorization': f"Bearer {os.environ['STONEWARE_TOKEN']}",
'Accept': 'application/json',
},
timeout=30,
)
response.raise_for_status()
payload = response.json()C#
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", token);
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync(
"https://your-company.example/api/slab/v1/operations/reservations?per_page=30");
response.EnsureSuccessStatusCode();Response envelope
{
"data": [ ... ],
"meta": {
"per_page": 30,
"has_more": true,
"next_after_id": 348
}
}When has_more is true, keep the same filters and send after_id=next_after_id on the next request.
Integration outcomes
401— operational credential missing, invalid, expired or revoked.403— company, employee, token scope, permission or plan/module access denied.404— requested record unavailable inside the credential company.429— rate limited; honor the response retry guidance.