Public-facing FAQ list attached to a venue, owned and managed by the operator, readable by mapped partners.
Operator Site FAQs API (1.0.0)
API for operators to manage a venue's public-facing FAQ list, and for partners to read it.
FAQs are a JSON array of {question, answer} items stored per venue. question/answer values are plain strings and may contain markdown syntax (e.g. **bold**, links, lists); the server does not parse or sanitize markdown — it is rendered client-side.
The venue is identified by its composite ID — {venueGroupId}|{rmsSlug}|{venueId} — and the caller's venue-group ownership of (or partner mapping to) that venue is enforced server-side.
Verbs:
GETreturns the current FAQ array (empty array when none stored). Readable by operators and mapped partners.PUTreplaces the whole array — this is also the bulk-import mechanism for a single venue's full FAQ list.PATCHapplies an RFC 6902 JSON Patch document against the array (item-index pointers, e.g./0/answer, or/-to append).DELETEwipes the stored array. Idempotent.POST /venues/site-faqs/bulkapplies changes across many venues in one transaction (all-or-nothing).
- Livehttps://api.bookabletech.com/venues/{venueCompositeId}/site-faqs
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://api.bookabletech.com/venues/1|CO|123/site-faqs' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'{ "venueCompositeId": "1|CO|123", "faqs": [ { … }, { … } ] }
Request
Replaces the stored FAQ array with the provided body. This is the bulk-import mechanism for a single venue — send the complete FAQ list in one call to import/replace it. Upserts the row when no FAQs are currently stored for the venue.
FAQ items for the venue.
- Livehttps://api.bookabletech.com/venues/{venueCompositeId}/site-faqs
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PUT \
'https://api.bookabletech.com/venues/1|CO|123/site-faqs' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"faqs": [
{
"question": "What is your cancellation policy?",
"answer": "See our **cancellation policy** [here](https://example.com/policy)."
}
]
}'{ "venueCompositeId": "1|CO|123", "faqs": [ { … } ] }
Request
Applies an RFC 6902 JSON Patch document to the stored FAQ array. Supported operations are add, remove, and replace. Paths are JSON Pointers (RFC 6901) into the stored array — e.g. /0/answer references the answer key of the first FAQ item, /- appends a new item to the end. Upserts when no row exists; the patch is applied against an empty array in that case.
Examples:
Append a new FAQ item:
[
{ "op": "add", "path": "/-", "value": { "question": "Do you take walk-ins?", "answer": "Yes, subject to availability." } }
]Replace an existing item's answer:
[
{ "op": "replace", "path": "/0/answer", "value": "Updated answer text." }
]Remove an item:
[
{ "op": "remove", "path": "/2" }
]Array of JSON Patch operations to apply to the stored FAQ array.
JSON Pointer (RFC 6901) to the target location within the stored FAQ array. Must start with /. Use an integer segment to address an item by index (e.g. /0), and - to append (e.g. /-).
The value to use for the operation. Required for add and replace. Omit (or set to null) for remove. Can be any valid JSON value (string, number, boolean, object, array, null).
- Livehttps://api.bookabletech.com/venues/{venueCompositeId}/site-faqs
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
- appendItem
- replaceAnswer
- removeItem
curl -i -X PATCH \
'https://api.bookabletech.com/venues/1|CO|123/site-faqs' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json-patch+json' \
-d '[
{
"op": "add",
"path": "/-",
"value": {
"question": "Do you take walk-ins?",
"answer": "Yes, subject to availability."
}
}
]'{ "venueCompositeId": "1|CO|123", "faqs": [ { … } ] }
- Livehttps://api.bookabletech.com/venues/{venueCompositeId}/site-faqs
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
'https://api.bookabletech.com/venues/1|CO|123/site-faqs' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'Request
Applies FAQ changes to many venues in a single all-or-nothing transaction. Any per-item failure (unknown venue, foreign venue group, invalid composite ID, invalid patch) rolls back the whole request.
Each item declares the target venue (venueCompositeId) and the mode:
replace— overwrite the stored array withfaqs.patch— apply an RFC 6902 JSON Patch document (patchfield) to the stored array.
Per mode, exactly one payload field is expected: faqs for replace, patch for patch.
Composite venue identifier in {venueGroupId}|{rmsSlug}|{venueId} format.
How to apply the payload to the stored array.
FAQ items. Required when mode is replace; ignored otherwise.
- Livehttps://api.bookabletech.com/venues/site-faqs/bulk
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://api.bookabletech.com/venues/site-faqs/bulk \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"items": [
{
"venueCompositeId": "1|CO|123",
"mode": "patch",
"patch": [
{
"op": "add",
"path": "/-",
"value": {
"question": "Do you take walk-ins?",
"answer": "Yes, subject to availability."
}
}
]
},
{
"venueCompositeId": "1|CO|124",
"mode": "replace",
"faqs": [
{
"question": "What is your cancellation policy?",
"answer": "See our **cancellation policy** [here](https://example.com/policy)."
}
]
}
]
}'{ "applied": 2 }