I’m integrating with your JSON-RPC API (company login: carinda) via a custom Zapier automation, and I’m stuck on a book() call that consistently fails with the error:
“Client authorization required”
This error is not listed in your public Errors Handling documentation, so I’m unable to determine what’s causing it from the docs alone.
Here’s what I’ve already confirmed working correctly with the same credentials, so you can rule these out:
getToken(company, apiKey)— succeeds, returns a valid tokengetUserToken(company, adminLogin, adminPassword)— succeeds, returns a valid user tokengetUnitList()— succeeds, correctly returns my provider/entertainer listgetAdditionalFields(eventId)— succeeds, correctly returns my configured intake form fields (IDs 5, 6, 8, 9, 14, 16)
I have tried the following variations on the book() call, and every single one returns the identical “Client authorization required” error with no change:
- Calling
book()using onlyX-Company-Login+X-Tokenheaders (fromgetToken) - Calling
book()withX-Company-Login+X-Token+X-User-Tokenheaders added (fromgetUserToken) - Calling
book()with a fully populatedadditionalparameter matching all fields returned bygetAdditionalFields, including the required field (ID 14, “Name, email and Phone number of contact on the day of show”), formatted as an array of{name, value, type}objects
Since the error persists identically across all three attempts, I suspect either:
- An account-level setting is blocking or restricting API-created bookings, or
- There’s a required parameter, flag, or header on the
book()method that isn’t covered in the public API documentation
Could someone check your server-side logs for these failed book() calls against my account and let me know exactly what’s triggering this error and how to resolve it?
Endpoint used: https://user-api.simplybook.me/
Method: book (JSON-RPC 2.0)
Company: carinda
Here’s the exact JSON-RPC request body my code constructs and sends for the book() call
json
{
"jsonrpc": "2.0",
"method": "book",
"params": [
6,
"<unitId — the matched provider's SimplyBookMe unit ID, resolved dynamically from getUnitList>",
"2026-10-16",
"07:30",
{
"name": "STEVE",
"email": "",
"phone": ""
},
[
{ "name": "9fde671a151ef4a667665c48d9d9f7c7", "value": "STEVE", "type": "textarea" },
{ "name": "4658c825db37dad5b740456f52e00600", "value": "Music", "type": "textarea" },
{ "name": "53f4b545940e84776ac19607f571fb5f", "value": "STEVE", "type": "textarea" },
{ "name": "02e7fbb896864a2658c896a4628eccb8", "value": "Steve - Glenhaven", "type": "textarea" },
{ "name": "de2f0957cd24a48d48b4196d9dbfb6dc", "value": "STEVE / / ", "type": "textarea" },
{ "name": "632487ad04283c26a0e949e638f3eae9", "value": "", "type": "textarea" }
],
1,
null,
null
],
"id": 1
}
Sent to: POST https://user-api.simplybook.me/
Headers:
Content-Type: application/json
X-Company-Login: carinda
X-Token: <valid token obtained from getToken, confirmed working>
Response received:
json
{
"jsonrpc": "2.0",
"error": {
"message": "Client authorization required"
},
"id": 1
}
What is the solution ?
Thank you,