API reference
All 12 operations, generated from the OpenAPI document so it cannot fall behind the API.
https://api.marubox.jp/v1, bearer authentication on everything except /openapi.json. This page is generated from the OpenAPI document; that file is the authority, and a code generator will do better with it than with this table.Account#
Who the token belongs to
Get the authenticated account#
GEThttps://api.marubox.jp/v1/me
Returns the account the token belongs to, and the scopes the token carries. Integration platforms call this to test a connection and to label it.
Operation id getMe · Errors: 400, 401, 403, 404, 409, 429
Returns 200
| Field | Type | Notes | |
|---|---|---|---|
id | string | always | |
name | string | always | |
email | string | always | |
handle | string | null | always | |
locale | en | ja | always | |
timezone | string | always | |
bookingPageUrl | string | null | always | |
plan | free | standard | always | |
scopes | array of event_types:read | bookings:read | bookings:write | webhooks:manage | always |
Event types#
What people can book, and when
List event types#
GEThttps://api.marubox.jp/v1/event-types
The things people can book. Use this to populate an event type dropdown. Ordered as they appear in the app.
Operation id listEventTypes · Errors: 400, 401, 403, 404, 409, 429
Query parameters
| Name | Type | Notes | |
|---|---|---|---|
limit | integer | optional | Defaults to 50. |
cursor | string | optional | |
active | true | false | optional | Defaults to "true". |
Returns 200
| Field | Type | Notes | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
items | array of object | always | fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | string | null | always |
List available start times#
GEThttps://api.marubox.jp/v1/event-types/{id}/slots
Available start times for an event type, as UTC instants, after availability, calendar conflicts, buffers, notice and daily limits have been applied. The range may span at most 31 days. Invite-only event types are included, because the caller owns them.
Operation id listAvailableSlots · Errors: 400, 401, 403, 404, 409, 429
Query parameters
| Name | Type | Notes | |
|---|---|---|---|
from | string | required | |
to | string | required | |
id | string | required |
Returns 200
| Field | Type | Notes | |
|---|---|---|---|
slots | array of string (date-time) | always | |
calendarBlocked | boolean | always |
Bookings#
Read, create and cancel bookings
List bookings#
GEThttps://api.marubox.jp/v1/bookings
Bookings, newest first by default. Held and awaiting-payment bookings are excluded unless asked for by status: they are in-flight states, not bookings anyone should act on. Items are full booking objects, so a polling trigger can emit them directly.
Operation id listBookings · Errors: 400, 401, 403, 404, 409, 429
Query parameters
| Name | Type | Notes | |
|---|---|---|---|
limit | integer | optional | Defaults to 50. |
cursor | string | optional | |
status | string | optional | |
eventTypeId | string | optional | |
email | string (email) | optional | |
startFrom | string (date-time) | optional | |
startTo | string (date-time) | optional | |
updatedSince | string (date-time) | optional | |
sort | -createdAt | start | -start | -updatedAt | optional | Defaults to "-createdAt". |
Returns 200
| Field | Type | Notes | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
items | array of object | always | fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor | string | null | always |
Create a booking#
POSThttps://api.marubox.jp/v1/bookings
Books a time on behalf of a customer, exactly as adding one by hand in the app does. The customer is emailed a confirmation unless notify is false. No card payment is taken, even for a paid event type. A time that is no longer free returns 409 slot_unavailable: the API never double-books.
Operation id createBooking · Errors: 400, 401, 403, 404, 409, 429
Request body
| Field | Type | Notes | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
eventTypeId | string | required | |||||||||||||||||||||
start | string (date-time) | required | |||||||||||||||||||||
booker | object | required | fields
| ||||||||||||||||||||
notes | string | optional | |||||||||||||||||||||
notify | boolean | optional | Defaults to true. |
Returns 201
| Field | Type | Notes | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string | always | |||||||||||||||||||||
status | held | awaiting_payment | confirmed | cancelled | completed | no_show | always | |||||||||||||||||||||
start | string | always | |||||||||||||||||||||
end | string | always | |||||||||||||||||||||
hostTimezone | string | always | |||||||||||||||||||||
eventType | object | always | fields
| ||||||||||||||||||||
booker | object | always | fields
| ||||||||||||||||||||
answers | array of object | always | fields
| ||||||||||||||||||||
bookerNotes | string | null | always | |||||||||||||||||||||
location | object | object | object | object | object | always | |||||||||||||||||||||
joinUrl | string | null | always | |||||||||||||||||||||
source | public | manual | reschedule | always | |||||||||||||||||||||
payment | object or null | always | |||||||||||||||||||||
cancellation | object or null | always | |||||||||||||||||||||
manageUrl | string | always | |||||||||||||||||||||
createdAt | string | always | |||||||||||||||||||||
updatedAt | string | always |
Get a booking#
GEThttps://api.marubox.jp/v1/bookings/{id}
Operation id getBooking · Errors: 400, 401, 403, 404, 409, 429
Query parameters
| Name | Type | Notes | |
|---|---|---|---|
id | string | required |
Returns 200
| Field | Type | Notes | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string | always | |||||||||||||||||||||
status | held | awaiting_payment | confirmed | cancelled | completed | no_show | always | |||||||||||||||||||||
start | string | always | |||||||||||||||||||||
end | string | always | |||||||||||||||||||||
hostTimezone | string | always | |||||||||||||||||||||
eventType | object | always | fields
| ||||||||||||||||||||
booker | object | always | fields
| ||||||||||||||||||||
answers | array of object | always | fields
| ||||||||||||||||||||
bookerNotes | string | null | always | |||||||||||||||||||||
location | object | object | object | object | object | always | |||||||||||||||||||||
joinUrl | string | null | always | |||||||||||||||||||||
source | public | manual | reschedule | always | |||||||||||||||||||||
payment | object or null | always | |||||||||||||||||||||
cancellation | object or null | always | |||||||||||||||||||||
manageUrl | string | always | |||||||||||||||||||||
createdAt | string | always | |||||||||||||||||||||
updatedAt | string | always |
Cancel a booking#
POSThttps://api.marubox.jp/v1/bookings/{id}/cancel
Cancels a booking exactly as the app does: the customer is emailed, and a paid booking is refunded in full. Idempotent — cancelling an already-cancelled booking returns it unchanged.
Operation id cancelBooking · Errors: 400, 401, 403, 404, 409, 429
Query parameters
| Name | Type | Notes | |
|---|---|---|---|
id | string | required |
Request body
| Field | Type | Notes | |
|---|---|---|---|
message | string | optional |
Returns 200
| Field | Type | Notes | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string | always | |||||||||||||||||||||
status | held | awaiting_payment | confirmed | cancelled | completed | no_show | always | |||||||||||||||||||||
start | string | always | |||||||||||||||||||||
end | string | always | |||||||||||||||||||||
hostTimezone | string | always | |||||||||||||||||||||
eventType | object | always | fields
| ||||||||||||||||||||
booker | object | always | fields
| ||||||||||||||||||||
answers | array of object | always | fields
| ||||||||||||||||||||
bookerNotes | string | null | always | |||||||||||||||||||||
location | object | object | object | object | object | always | |||||||||||||||||||||
joinUrl | string | null | always | |||||||||||||||||||||
source | public | manual | reschedule | always | |||||||||||||||||||||
payment | object or null | always | |||||||||||||||||||||
cancellation | object or null | always | |||||||||||||||||||||
manageUrl | string | always | |||||||||||||||||||||
createdAt | string | always | |||||||||||||||||||||
updatedAt | string | always |
Invites#
Single-use booking links
Create a single-use booking link#
POSThttps://api.marubox.jp/v1/invites
Mints a booking link that works once and then stops. Use it to reply to an enquiry. Works for public and invite-only event types, and the invitee skips the anti-spam checks because the link already proves you meant them. The url is returned only here.
Operation id createInviteLink · Errors: 400, 401, 403, 404, 409, 429
Request body
| Field | Type | Notes | |
|---|---|---|---|
eventTypeId | string | required | |
name | string | optional | |
email | string (email) | optional | |
expiresInDays | integer | optional | Defaults to 14. |
Returns 201
| Field | Type | Notes | |
|---|---|---|---|
id | string | always | |
eventTypeId | string | always | |
url | string | null | always | |
name | string | null | always | |
email | string | null | always | |
expiresAt | string (date-time) | always | |
usedAt | string (date-time) or null | always | |
bookingId | string | null | always | |
createdAt | string (date-time) | always |
Webhooks#
Subscribe to events
List webhook subscriptions#
GEThttps://api.marubox.jp/v1/webhooks
Secrets are never returned here.
Operation id listWebhooks · Errors: 400, 401, 403, 404, 409, 429
Query parameters
| Name | Type | Notes | |
|---|---|---|---|
limit | integer | optional | Defaults to 50. |
cursor | string | optional |
Returns 200
| Field | Type | Notes | |||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
items | array of object | always | fields
| ||||||||||||||||||||||||||||||||||||
nextCursor | string | null | always |
Subscribe to events#
POSThttps://api.marubox.jp/v1/webhooks
Registers an endpoint to receive events. The secret is returned only here: store it, and verify the BB-Signature header on every delivery. Returns a Location header pointing at the subscription.
Operation id createWebhook · Errors: 400, 401, 403, 404, 409, 429
Request body
| Field | Type | Notes | |
|---|---|---|---|
url | string (uri) | required | |
events | array of booking.created | booking.rescheduled | booking.cancelled | booking.no_show | * | required | |
description | string | optional |
Returns 201
| Field | Type | Notes | |
|---|---|---|---|
id | string | always | |
url | string | always | |
events | array of string | always | |
description | string | null | always | |
status | active | disabled | always | |
createdVia | string | always | |
lastSuccessAt | string | null | always | |
consecutiveFailures | integer | always | |
createdAt | string | always | |
secret | string | always |
Get a webhook subscription#
GEThttps://api.marubox.jp/v1/webhooks/{id}
Used by trigger nodes to check that a subscription still exists.
Operation id getWebhook · Errors: 400, 401, 403, 404, 409, 429
Query parameters
| Name | Type | Notes | |
|---|---|---|---|
id | string | required |
Returns 200
| Field | Type | Notes | |
|---|---|---|---|
id | string | always | |
url | string | always | |
events | array of string | always | |
description | string | null | always | |
status | active | disabled | always | |
createdVia | string | always | |
lastSuccessAt | string | null | always | |
consecutiveFailures | integer | always | |
createdAt | string | always |
Delete a webhook subscription#
DELETEhttps://api.marubox.jp/v1/webhooks/{id}
Idempotent: an unknown id also returns 204, so an unsubscribe never fails on a retry.
Operation id deleteWebhook · Errors: 400, 401, 403, 404, 409, 429
Query parameters
| Name | Type | Notes | |
|---|---|---|---|
id | string | required |
Webhook payloads#
These are requests we send to you. Each arrives as JSON with a BB-Signature header — see Webhooks for verification.
booking.created#
A booking became confirmed for the first time. Paid bookings fire only once payment succeeds.
| Field | Type | Notes | |||||
|---|---|---|---|---|---|---|---|
id | string | always | |||||
type | booking.created | always | |||||
createdAt | string (date-time) | always | |||||
apiVersion | v1 | always | |||||
data | object | always | fields
|
booking.rescheduled#
A booking moved. Exactly one event: no cancelled/created pair.
| Field | Type | Notes | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
id | string | always | |||||||||
type | booking.rescheduled | always | |||||||||
createdAt | string (date-time) | always | |||||||||
apiVersion | v1 | always | |||||||||
data | object | always | fields
|
booking.cancelled#
A booking was cancelled by the booker, the host or the system.
| Field | Type | Notes | |||||
|---|---|---|---|---|---|---|---|
id | string | always | |||||
type | booking.cancelled | always | |||||
createdAt | string (date-time) | always | |||||
apiVersion | v1 | always | |||||
data | object | always | fields
|
booking.no_show#
A booking was marked as a no-show.
| Field | Type | Notes | |||||
|---|---|---|---|---|---|---|---|
id | string | always | |||||
type | booking.no_show | always | |||||
createdAt | string (date-time) | always | |||||
apiVersion | v1 | always | |||||
data | object | always | fields
|
Last reviewed 28 September 2026.