Booqable Order Fulfillment API
Booking, starting, stopping, and transitioning orders and their lines.
Booking, starting, stopping, and transitioning orders and their lines.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/booqable-order-fulfillment-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Booqable API (v4 "Boomerang") Availability Order Fulfillment API
description: The Booqable API is a RESTful, JSON:API-compliant interface for managing an equipment and inventory rental business - orders, products, product groups, customers, stock items, availability and plannings, documents and invoices, payments, bundles, collections, and webhooks. Requests are directed to a company-specific host in the form https://{company}.booqable.com/api/4 and authenticated with an access token (Bearer) or a signed single-use request. The default response media type is JSON:API (application/vnd.api+json); a nested JSON representation is available by appending .json to a path. The API is documented as still in Beta and may introduce non-backwards-compatible changes. A legacy v1 API also remains documented. This description was authored by API Evangelist from the public Booqable developer documentation; request and response schemas are modeled and simplified.
version: '4'
contact:
name: Booqable
url: https://developers.booqable.com/
license:
name: Proprietary
url: https://booqable.com/terms/
servers:
- url: https://{company}.booqable.com/api/4
description: Company-specific Booqable API v4 host
variables:
company:
default: your-company
description: Your Booqable company slug (subdomain).
security:
- bearerAuth: []
tags:
- name: Order Fulfillment
description: Booking, starting, stopping, and transitioning orders and their lines.
paths:
/order_fulfillments/book:
post:
operationId: bookOrderFulfillment
tags:
- Order Fulfillment
summary: Book order lines
description: Books products and quantities onto an order, reserving inventory for the rental period.
requestBody:
$ref: '#/components/requestBodies/ResourceBody'
responses:
'200':
description: The updated order after booking.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/ResourceDocument'
'422':
$ref: '#/components/responses/UnprocessableEntity'
/order_fulfillments/specify:
post:
operationId: specifyOrderFulfillment
tags:
- Order Fulfillment
summary: Specify stock items
description: Assigns specific stock items to trackable lines on an order.
requestBody:
$ref: '#/components/requestBodies/ResourceBody'
responses:
'200':
description: The updated order after specifying.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/ResourceDocument'
/order_fulfillments/start:
post:
operationId: startOrderFulfillment
tags:
- Order Fulfillment
summary: Start fulfillment
description: Starts (picks up / checks out) the assigned stock items on an order.
requestBody:
$ref: '#/components/requestBodies/ResourceBody'
responses:
'200':
description: The updated order after starting.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/ResourceDocument'
/order_fulfillments/stop:
post:
operationId: stopOrderFulfillment
tags:
- Order Fulfillment
summary: Stop fulfillment
description: Stops (returns / checks in) the started stock items on an order.
requestBody:
$ref: '#/components/requestBodies/ResourceBody'
responses:
'200':
description: The updated order after stopping.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/ResourceDocument'
/order_status_transitions/transition:
post:
operationId: transitionOrderStatus
tags:
- Order Fulfillment
summary: Transition order status
description: Moves an order to a new status (for example new, concept, reserved, started, stopped, archived).
requestBody:
$ref: '#/components/requestBodies/ResourceBody'
responses:
'200':
description: The order after the status transition.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/ResourceDocument'
/lines:
get:
operationId: listLines
tags:
- Order Fulfillment
summary: List lines
description: Lists the line items across orders.
parameters:
- $ref: '#/components/parameters/PageNumber'
- $ref: '#/components/parameters/PageSize'
responses:
'200':
description: A page of lines.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/ResourceCollection'
post:
operationId: createLine
tags:
- Order Fulfillment
summary: Create a line
description: Adds a line item to an order.
requestBody:
$ref: '#/components/requestBodies/ResourceBody'
responses:
'201':
description: The created line.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/ResourceDocument'
/lines/{id}:
parameters:
- $ref: '#/components/parameters/Id'
get:
operationId: getLine
tags:
- Order Fulfillment
summary: Fetch a line
description: Retrieves a single line by ID.
responses:
'200':
description: The requested line.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/ResourceDocument'
patch:
operationId: updateLine
tags:
- Order Fulfillment
summary: Update a line
description: Updates an existing line.
requestBody:
$ref: '#/components/requestBodies/ResourceBody'
responses:
'200':
description: The updated line.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/ResourceDocument'
components:
schemas:
ResourceDocument:
type: object
description: A JSON:API document containing a single primary resource.
properties:
data:
$ref: '#/components/schemas/Resource'
included:
type: array
items:
$ref: '#/components/schemas/Resource'
meta:
type: object
additionalProperties: true
ResourceCollection:
type: object
description: A JSON:API document containing a collection of resources.
properties:
data:
type: array
items:
$ref: '#/components/schemas/Resource'
included:
type: array
items:
$ref: '#/components/schemas/Resource'
meta:
type: object
description: Metadata such as total_count and pagination stats.
additionalProperties: true
links:
type: object
additionalProperties: true
Resource:
type: object
description: A JSON:API resource object.
properties:
type:
type: string
id:
type: string
attributes:
type: object
additionalProperties: true
relationships:
type: object
additionalProperties: true
ErrorDocument:
type: object
description: A JSON:API error document.
properties:
errors:
type: array
items:
type: object
properties:
status:
type: string
code:
type: string
title:
type: string
detail:
type: string
parameters:
PageNumber:
name: page[number]
in: query
required: false
description: The page number to return (JSON:API pagination).
schema:
type: integer
minimum: 1
default: 1
PageSize:
name: page[size]
in: query
required: false
description: Number of records per page. Defaults to 25.
schema:
type: integer
minimum: 1
default: 25
Id:
name: id
in: path
required: true
description: The UUID of the resource.
schema:
type: string
responses:
UnprocessableEntity:
description: The request was well-formed but failed validation.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/ErrorDocument'
requestBodies:
ResourceBody:
required: true
description: A JSON:API document wrapping the resource under a "data" member.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/ResourceDocument'
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'An access token created in Booqable account settings, sent as "Authorization: Bearer <token>". Booqable also supports request signing (single-use signed tokens using ES256, RS256, or HS256) and, on the legacy v1 API, an api_key query parameter.'