API referenceBeta
Everything a business can connect to BizBaby through the API.
How your software connects
- Start a BizBaby account for your business on the Growth plan.
- Ask our support to turn on API access, and tell them what you want to connect and why.
- Once it's on, create an API key in BizBaby and tick only the areas it needs. It is shown once, to copy into your software.
- A key works only for your business and doesn't expire. It works until someone in your business revokes it.
What the API does
The API lets software your business chooses read and update the same records you work with in BizBaby: customers, appointments, jobs, invoices, messages, reports and more. Each action below says what it does and which permission it needs.
Actions follow your plan. An action your plan doesn't include stays off in the API too.
Booking, field work and recurring charges
Appointments
Pick an Appointment Service, read its open dates and arrival windows, then book one of the offered times. If it has gone, ask again.
Requests, Jobs & Visits
Create a Request with a Job Service, turn it into one Job, then manage its Visits. Appointment Services are not Job Services.
Recurring payments
Recurring payments set up repeat charges. They are separate from Appointment series, which repeat bookings.
Customers & leads
Customers
5 actionsList customers
GET
Ranks by amount paid with sort=lifetime_spend. Returns customers owned by the current business, with exact local-number lookup and bounded search filters applied before pagination. Each customer carries lifetime_spend (amount actually paid, not invoiced) and last_order_at; sort=lifetime_spend&direction=desc lists top spenders first.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
qstring
maximum length: 100 · Case-insensitive starts-with search: first name, last name, "first last", email, company name or phone (typed with or without dashes) starts with q. Text from the middle of a field does not match; for a name that may be misspelled use search.list. %, _ are treated as ordinary text.
customer_idstring
pattern: "^customer_[0-9a-hjkmnp-tv-z]{26}$" · Exact API ID (`customer_...`) of the related customer.
local_idinteger
minimum: 1 · Exact business-local number within this operation’s record family; it is never compared with an API ID.
pageinteger
default: 1; minimum: 1 · One-based page number for this stable ordered result set.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records returned per page, from 1 through 100.
sortstring
enum: "id", "lifetime_spend", "last_order_at" · Allowed sort field, applied to all matching customers before the page limit. lifetime_spend ranks by amount actually paid (use with direction=desc for top spenders); last_order_at by most recent appointment or job, customers with none last. Omission keeps the default id ascending order.
directionstring
enum: "asc", "desc" · Sort direction; requires sort. Explicit sorting defaults to asc and uses the customer ID as a stable tie-breaker.
Addresses and code examples appear once API access is on for your business.
Create a customer
POST
Creates a customer owned by the current business. The API assigns the API ID and business-local number; supplied profile fields are validated before the record is saved.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Get a customer
GET
Returns one customer only when it belongs to the current business and is visible to the caller. Use the API ID from list results for this path.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
customerstringRequired
pattern: "^customer_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`customer_...`) of the customer path resource.
Addresses and code examples appear once API access is on for your business.
Update a customer
PATCH
Updates only the supplied mutable profile fields on a customer owned by the current business; omitted fields retain their stored values.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
customerstringRequired
pattern: "^customer_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`customer_...`) of the customer path resource.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Get a customer's financial balances
GET
Uses collected payments/refunds and canonical remaining invoice and appointment balances.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
customerstringRequired
pattern: "^customer_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`customer_...`) of the customer path resource.
Addresses and code examples appear once API access is on for your business.
Customers & leads
Leads
3 actionsList leads
GET
Lists local lead records using bounded text, status and creation-date filters.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
qstring
maximum length: 100 · Case-insensitive bounded text search; omission performs no text filtering.
statusstring
enum: "waiting", "in_work", "processed", "does_not_answer", "deleted" · Code-owned lifecycle state filter; omission includes every allowed state.
fromstring
format: "date" · Inclusive lower business-local date.
tostring
format: "date" · Inclusive upper business date, or documented exclusive instant where stated.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Read a lead
GET
Returns one business-owned lead with its stored contact and source details.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
leadstringRequired
pattern: "^lead_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`lead_...`) of the business-owned lead.
Addresses and code examples appear once API access is on for your business.
Update a lead
PATCH
Updates the supplied lead status and/or comment. This operation does not contact the lead.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
leadstringRequired
pattern: "^lead_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`lead_...`) of the business-owned lead.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Customers & leads
Attachments
3 actionsDownload one attachment through its authorized parent
GET
The parent type and ID are mandatory and reauthorized on every request.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
attachmentstringRequired
pattern: "^attachment_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`attachment_...`) of the attachment metadata row.
parent_typeAttachmentParentTypeRequired
Code-owned parent record family; combine it with the parent ID.
parent_idstringRequired
pattern: "^(?:appointment|job|request|visit|customer|vehicle|task)_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`appointment_...`, `job_...`, `request_...`, `visit_...`, `customer_...`, `vehicle_...` or `task_...`) within the supplied parent_type used to reauthorize a download.
Addresses and code examples appear once API access is on for your business.
List attachments for an authorized parent
GET
Authorizes the parent product before returning file metadata. No storage paths are exposed.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
parent_typeAttachmentParentTypeRequired
Code-owned parent record family; combine it with the parent ID.
parentstringRequired
pattern: "^(?:appointment|job|request|visit|customer|vehicle|task)_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`appointment_...`, `job_...`, `request_...`, `visit_...`, `customer_...`, `vehicle_...` or `task_...`) within the selected parent_type.
Addresses and code examples appear once API access is on for your business.
Upload attachments to a business record
POST
Stores one to ten validated files atomically. Images are limited to 5 MB and other supported files to 10 MB.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
parent_typeAttachmentParentTypeRequired
Code-owned parent record family; combine it with the parent ID.
parentstringRequired
pattern: "^(?:appointment|job|request|visit|customer|vehicle|task)_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`appointment_...`, `job_...`, `request_...`, `visit_...`, `customer_...`, `vehicle_...` or `task_...`) within the selected parent_type.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Customers & leads
Portal
2 actionsRead an owned customer's portal counts
GET
Counts are present only for product scopes granted to this credential. Omitted dependencies are represented by null counts and named in excluded_counts.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
customerstringRequired
pattern: "^customer_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`customer_...`) of the owned customer conversation or portal summary.
Addresses and code examples appear once API access is on for your business.
Read customer portal capabilities
GET
Returns ordinary portal configuration without login, signature, payment or approval tokens. customer_login_enabled and portal_url require both an ordinary portal host and the integrate_client_login plan entitlement.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Addresses and code examples appear once API access is on for your business.
Scheduling
Appointments
9 actionsList appointments
GET
Returns appointments visible to the caller within the current business, bounded by the supplied time and relationship filters.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
fromstring
format: "date" · Inclusive business-local start date.
tostring
format: "date" · Inclusive business-local end date; endpoint range limits apply.
customer_idstring
pattern: "^customer_[0-9a-hjkmnp-tv-z]{26}$" · Filter by owned customer API ID (`customer_...`).
local_idinteger
minimum: 1 · Filter by business-local display number, distinct from API IDs.
worker_idstring
pattern: "^user_[0-9a-hjkmnp-tv-z]{26}$" · Filter by assigned worker user API ID (`user_...`).
statusstring
enum: "waiting", "inprocess", "done", "onhold", "canceled" · Filter by documented business state.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
customer_qstring
minimum length: 1; maximum length: 100 · Literal case-insensitive substring of customer first, last or full name within this business; requires customers.read. Multiple matches are returned, never automatically selected. % and _ are literal characters.
sortstring
enum: "id", "start_at", "created_at", "updated_at" · Allowed sort field, applied to all matching records before the page limit. Omission preserves the existing default ordering.
directionstring
enum: "asc", "desc" · Sort direction; requires sort. Explicit sorting defaults to asc and uses the record ID as a stable tie-breaker.
statusesarray
minimum items: 1; maximum items: 12; items must be unique · Match any listed status (OR), combined with other filters (AND). Send statuses[]=value. Do not combine with status.
representationstring
default: "full"; enum: "full", "compact" · full preserves the existing detailed shape. compact returns scalar list fields without child collections; retrieve one record separately for details.
service_idstring
pattern: "^appointment_service_[0-9a-hjkmnp-tv-z]{26}$" · Match any attached appointment service product belonging to this business. The response service_id retains the canonical lowest attached API ID (`appointment_service_...`).
assignmentstring
enum: "assigned", "unassigned" · Whether an in-business worker association exists; unassigned cannot combine with worker_id or worker_q.
worker_qstring
minimum length: 1; maximum length: 100 · Literal substring of the worker’s name in this business; requires team.read.
payment_statestring
enum: "unpaid", "paid", "paid_cash", "declined", "partially_refunded", "refunded" · Appointment payment state, distinct from work status. paid does not include paid_cash.
Addresses and code examples appear once API access is on for your business.
Create an appointment
POST
Fetch the current service selection schema and availability, then submit one advertised arrival window exactly. An advertised overnight window may end on the next business date. schema_version must match the current service selection schema; answers may be an object or an explicitly empty list.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Get an appointment
GET
Returns one appointment visible under the current business and worker policy, with its current ETag for later conditional changes.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
appointmentstringRequired
pattern: "^appointment_[0-9a-hjkmnp-tv-z]{26}$" · Appointment API ID (`appointment_...`), not local_id.
Addresses and code examples appear once API access is on for your business.
Replace appointment comments
PATCH
Replaces the mutable comments value for an authorized appointment after an ETag check; schedule and identity fields are not changed here.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
appointmentstringRequired
pattern: "^appointment_[0-9a-hjkmnp-tv-z]{26}$" · Appointment API ID (`appointment_...`), not local_id.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Cancel an appointment
POST
Transitions an authorized appointment to its cancellation state after checking the supplied ETag. Cancellation does not add or replace customer instructions or worker comments.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
appointmentstringRequired
pattern: "^appointment_[0-9a-hjkmnp-tv-z]{26}$" · Appointment API ID (`appointment_...`), not local_id.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Add an appointment worker comment
POST
Appends one actor-attributed worker comment to the appointment. It does not replace the customer-supplied comments field.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
appointmentstringRequired
pattern: "^appointment_[0-9a-hjkmnp-tv-z]{26}$" · Appointment API ID (`appointment_...`), not local_id.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Appointment Logs: who changed what and when
GET
Status changes, edits and creations, oldest first. The appointment's Logs window: exactly the lines the Logs button on its preview card shows, as stored free text, usually "what - business-local time - who" (created, edited, status changed from X to Y, deleted). Read-only history; use appointments.get for the appointment's current state.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
appointmentstringRequired
pattern: "^appointment_[0-9a-hjkmnp-tv-z]{26}$" · Appointment API ID (`appointment_...`), not local_id.
pageinteger
default: 1; minimum: 1 · One-based page number for this stable ordered result set.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum log lines returned per page, from 1 through 100.
Addresses and code examples appear once API access is on for your business.
Reschedule an appointment
POST
When the service Availability setting is on, submit an exact available arrival window; worker conflicts include the appointment's saved service duration. When Availability is off, time changes are saved despite conflicts. Omitting worker_ids preserves every current assignment, including an empty assignment; supplying worker_ids remains a replacement candidate pool from which one free worker is chosen. The existing appointment is excluded from its own conflict check. Successful saves may include meta.scheduling_warning with short warnings and business-local appointment numbers; API callers decide how to display these warnings. An advertised overnight window may end on the next business date.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
appointmentstringRequired
pattern: "^appointment_[0-9a-hjkmnp-tv-z]{26}$" · Appointment API ID (`appointment_...`), not local_id.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
List bookable appointment arrival windows
GET
Returns exact advertised arrival windows from the existing booking schedule. Existing appointment intervals are known conflicts; Job and Visit team assignments are advisory warnings because actual work duration is not authoritative. available_workers is the source for assignment, and final create/reschedule revalidates the exact interval.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
service_idstringRequired
pattern: "^appointment_service_[0-9a-hjkmnp-tv-z]{26}$" · Active owned Appointment Service API ID (`appointment_service_...`) whose bookable arrival windows are requested.
datestringRequired
format: "date" · Business-local date in YYYY-MM-DD form.
date_tostring
format: "date" · Optional inclusive business-local end date. When supplied, returns per-date availability for at most 14 consecutive days in one response.
worker_idsarray
minimum items: 1; items must be unique · API IDs (`user_...`) of distinct active worker candidates. A window is bookable when at least one candidate is free; the server selects one candidate when the appointment is saved.
Addresses and code examples appear once API access is on for your business.
Scheduling
Appointment series
9 actionsList appointment series
GET
Returns recurring appointment definitions owned by the current business after applying cadence, status, and pagination filters.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
customer_idstring
pattern: "^customer_[0-9a-hjkmnp-tv-z]{26}$" · Filter by owned customer API ID (`customer_...`).
local_idinteger
minimum: 1 · Filter by business-local display number, distinct from API IDs.
frequencyAppointmentSeriesFrequency
Filter by recurrence cadence.
lifecycle_statusstring
enum: "active", "paused", "ended" · Filter active, paused, or ended definitions.
fromstring
format: "date" · Inclusive business-local start date.
tostring
format: "date" · Inclusive business-local end date; endpoint range limits apply.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Create an appointment series and first occurrence
POST
Creates a recurring appointment definition and its first eligible occurrence from the supplied schedule, customer, service, and worker selections.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Get an appointment series
GET
Returns one recurring appointment definition owned by the current business and its current version for conditional changes.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
seriesstringRequired
pattern: "^appointment_series_[0-9a-hjkmnp-tv-z]{26}$" · Appointment Series API ID (`appointment_series_...`), not local_id.
Addresses and code examples appear once API access is on for your business.
Update future recurring appointments
PATCH
Completed occurrences retain their snapshots. service_id, schema_version and answers must be supplied together when changing the catalog selection.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
seriesstringRequired
pattern: "^appointment_series_[0-9a-hjkmnp-tv-z]{26}$" · Appointment Series API ID (`appointment_series_...`), not local_id.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
End an appointment series
POST
Ends future generation for an authorized recurring appointment series while retaining its definition and recorded occurrence history.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
seriesstringRequired
pattern: "^appointment_series_[0-9a-hjkmnp-tv-z]{26}$" · Appointment Series API ID (`appointment_series_...`), not local_id.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
List appointment series occurrences
GET
Returns the recorded occurrence ledger for one authorized series; reading the ledger does not generate missing appointments.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
seriesstringRequired
pattern: "^appointment_series_[0-9a-hjkmnp-tv-z]{26}$" · Appointment Series API ID (`appointment_series_...`), not local_id.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Pause an appointment series
POST
Sets an authorized series to paused so future occurrences are not generated until it is resumed.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
seriesstringRequired
pattern: "^appointment_series_[0-9a-hjkmnp-tv-z]{26}$" · Appointment Series API ID (`appointment_series_...`), not local_id.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Resume an appointment series
POST
Resumes future generation for an authorized paused series without recreating occurrences that were already skipped or recorded.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
seriesstringRequired
pattern: "^appointment_series_[0-9a-hjkmnp-tv-z]{26}$" · Appointment Series API ID (`appointment_series_...`), not local_id.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Skip the next pending occurrence
POST
Marks the next pending occurrence of an authorized series as skipped while leaving later recurrence intact.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
seriesstringRequired
pattern: "^appointment_series_[0-9a-hjkmnp-tv-z]{26}$" · Appointment Series API ID (`appointment_series_...`), not local_id.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Scheduling
Appointment services
6 actionsList appointment services
GET
Returns the current business appointment-service catalog after applying the documented active-state, text, and pagination filters.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
activeboolean
Filter Appointment Services by active or inactive booking state.
qstring
maximum length: 100 · Literal case-insensitive contains search within Appointment Service titles; %, _, and = are treated as ordinary text.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Create an appointment service
POST
Creates a business-owned service that can be selected when booking appointments; its duration and price become the current catalog values.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Get an appointment service
GET
Returns one business-owned appointment service by API ID, including the current version used for conditional updates.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
appointment_servicestringRequired
pattern: "^appointment_service_[0-9a-hjkmnp-tv-z]{26}$" · Appointment Service API ID (`appointment_service_...`).
Addresses and code examples appear once API access is on for your business.
Update an appointment service
PATCH
Updates only supplied mutable catalog fields after checking ownership and the current ETag; omitted values remain unchanged.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
appointment_servicestringRequired
pattern: "^appointment_service_[0-9a-hjkmnp-tv-z]{26}$" · Appointment Service API ID (`appointment_service_...`).
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Get the current selection schema
GET
Use schema_version when creating or changing an appointment selection.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
appointment_servicestringRequired
pattern: "^appointment_service_[0-9a-hjkmnp-tv-z]{26}$" · Appointment Service API ID (`appointment_service_...`).
Addresses and code examples appear once API access is on for your business.
List job service types
GET
Lists business-owned job service definitions that are eligible for appointment-service linkage. Optional q is a literal case-insensitive contains filter; this read does not create or modify catalog rows.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
qstring
maximum length: 100 · Literal case-insensitive contains search within Job Service names; %, _, and = are treated as ordinary text.
Addresses and code examples appear once API access is on for your business.
Scheduling
Working hours
6 actionsRead weekly business hours
GET
Reads the same recurring weekly phone/voicemail schedule shown in Business Settings, plus a bounded preview of the next ten dated closures. Weekly rows are distinct from Appointment Service hours; use working-hours.exceptions with explicit date bounds for a complete closure period.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Addresses and code examples appear once API access is on for your business.
Update recurring weekly business hours
PATCH
PATCH updates one or more supplied weekdays in the recurring Business Settings phone/voicemail schedule. Omitted weekdays and omitted fields remain unchanged. A weekday that is disabled retains its stored start and end for reopening; enabled weekdays require end later than start. Use the dated closure operations for a specific date, and Appointment Service settings for service availability.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
List holidays and dated closures
GET
Read every company holiday or dated closure within an inclusive business-local date range. The end date may be at most 90 days after the start date; divide a year into consecutive non-overlapping ranges. Closures block new or changed Appointment, Request, Job, and Visit dates while preserving existing records on dates closed later.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
fromstringRequired
format: "date" · First included business-local date, in YYYY-MM-DD form; for example 2026-12-01.
tostringRequired
format: "date" · Last included business-local date, in YYYY-MM-DD form. Must be on or after from and no more than 90 days later; longer intervals return validation_failed for to.
Addresses and code examples appear once API access is on for your business.
Read one holiday or dated closure
GET
Returns one exact business-local closure and its current ETag for a conditional update or reopen operation.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
datestringRequired
format: "date" · Exact closed business-local date in YYYY-MM-DD form.
Addresses and code examples appear once API access is on for your business.
Close the business for a date
PUT
PUT creates the company closure if the date is open, or updates its reason if already closed. One public API request affects one business-local date; the Business Settings UI has a separate atomic range editor. Existing appointments are returned for review and are not canceled. The closure blocks new or changed Appointment, Request, Job, and Visit dates and does not change weekly phone hours, service hours, or existing recurring schedules.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
datestringRequired
format: "date" · Exact date identifying the closure within this business, for example 2026-12-25. Use YYYY-MM-DD in the business timezone, not a UTC timestamp or numeric record ID.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Reopen the business for a date
DELETE
DELETE removes the dated closure. Supply its latest ETag in If-Match; read the etag field from the closure list or the ETag response header from PUT. Ordinary service availability rules still apply after reopening. Existing appointments are not changed.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
datestringRequired
format: "date" · Exact date identifying the closure within this business, for example 2026-12-25. Use YYYY-MM-DD in the business timezone, not a UTC timestamp or numeric record ID.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Scheduling
Service areas
4 actionsRead service-area settings and zones
GET
Returns the current business's stored coverage mode, customer message, lead-capture choice, and complete zone definitions with an ETag; it performs no geocoding or provider read.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Addresses and code examples appear once API access is on for your business.
Check a ZIP for one service
POST
Evaluates one exact ZIP and business-owned Appointment or Job service against the currently stored coverage mode and zones without geocoding, provider calls, or mutation.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Addresses and code examples appear once API access is on for your business.
Update service-area settings
PATCH
Updates only supplied business coverage settings after an ETag check; omitted mode, message, and lead-capture values remain unchanged.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Replace all service-area zones
PUT
Atomically replaces the business's complete service-area zone list after an ETag check, with at most 100 zones and 5,000 ZIP entries total.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Requests, jobs & visits
Requests, Jobs and Visits
21 actionsList Jobs
GET
Lists business-owned jobs after worker, status, business-date, local-number, and pagination filtering against current assignments and schedule values. Job commitments are advisory and do not remove Appointment availability slots.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
customer_idstring
pattern: "^customer_[0-9a-hjkmnp-tv-z]{26}$" · Filter by owned customer API ID (`customer_...`).
service_idstring
pattern: "^job_service_[0-9a-hjkmnp-tv-z]{26}$" · Filter by the root Request’s owned Job Service API ID (`job_service_...`).
local_idinteger
minimum: 1 · Filter by the Job’s own internal number, which is never shown; to find a job by the number owners see, use project_number.
project_numberinteger
minimum: 1 · Filter by project number (the root Request’s number) — the number owners call “job #158”.
worker_idstring
pattern: "^user_[0-9a-hjkmnp-tv-z]{26}$" · Filter by assigned worker user API ID (`user_...`).
statusstring
enum: "submit", "cancel", "approve", "draft", "in-progress", "complete", "scheduled", "in_progress" · Filter by documented business state.
fromstring
format: "date" · Inclusive business-local start date.
tostring
format: "date" · Inclusive business date; when paired with from the range is at most 366 days.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
customer_qstring
minimum length: 1; maximum length: 100 · Literal case-insensitive substring of customer first, last or full name within this business; requires customers.read. Multiple matches are returned, never automatically selected. % and _ are literal characters.
sortstring
enum: "id", "preferred_start_at", "created_at", "updated_at" · Allowed sort field, applied to all matching records before the page limit. Omission preserves the existing default ordering.
directionstring
enum: "asc", "desc" · Sort direction; requires sort. Explicit sorting defaults to asc and uses the record ID as a stable tie-breaker.
statusesarray
minimum items: 1; maximum items: 12; items must be unique · Match any listed status (OR), combined with other filters (AND). Send statuses[]=value. Do not combine with status.
representationstring
default: "full"; enum: "full", "compact" · full preserves the existing detailed shape. compact returns scalar list fields without child collections; retrieve one record separately for details.
assignmentstring
enum: "assigned", "unassigned" · Whether a worker association exists in this business, including historical memberships. unassigned cannot combine with a worker filter.
worker_qstring
minimum length: 1; maximum length: 100 · Literal substring of the business-specific worker first, last or full name; requires team.read. Does not assign anyone.
Addresses and code examples appear once API access is on for your business.
Get a Job
GET
Returns one business-owned job by API ID, including its local number, assignments, preferred window, and current ETag.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
jobstringRequired
pattern: "^job_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`job_...`) of the current-business job; it is distinct from the job's local_id.
Addresses and code examples appear once API access is on for your business.
Update a Job
PATCH
Updates supplied future Job fields and assignments only and requires the current ETag. A changed date cannot move onto a company holiday; an unchanged date closed after scheduling remains editable, and completed or canceled history may still be corrected. The preferred window is fixed at 60 minutes; the end is derived when omitted and a supplied end must match it.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
jobstringRequired
pattern: "^job_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`job_...`) of the current-business job; it is distinct from the job's local_id.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Cancel a Job
POST
Transitions the authorized Job to Canceled through the same status transition used by the normal Jobs Flow. It does not add a comment; use work.jobs.comment separately when the owner asks to record context.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
jobstringRequired
pattern: "^job_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`job_...`) of the current-business job; it is distinct from the job's local_id.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Add a Job worker comment
POST
Appends one actor-attributed Job comment to its request root.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
jobstringRequired
pattern: "^job_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`job_...`) of the current-business job; it is distinct from the job's local_id.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Job Logs: who changed what and when
GET
Status changes, edits and creations, oldest first. The job's Logs window: exactly the lines the Logs button on its preview card shows, as stored free text, usually "what - business-local time - who" (created, edited, status changed from X to Y, deleted). Read-only history; use work.jobs.get for the job's current state.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
jobstringRequired
pattern: "^job_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`job_...`) of the current-business job; it is distinct from the job's local_id.
pageinteger
default: 1; minimum: 1 · One-based page number for this stable ordered result set.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum log lines returned per page, from 1 through 100.
Addresses and code examples appear once API access is on for your business.
List Requests
GET
Lists Requests that have not become Jobs. This matches the Requests page: converting a Request to a Job keeps its status (usually submit) but removes it from this list. Set include_converted=true to also return converted Requests, marked became_job true. Filters: customer, service, status, business date, local number, pagination. Each row includes bounded customer, Job Service, worker, and compact financial context when the caller's scopes allow it.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
customer_idstring
pattern: "^customer_[0-9a-hjkmnp-tv-z]{26}$" · Filter by owned customer API ID (`customer_...`).
service_idstring
pattern: "^job_service_[0-9a-hjkmnp-tv-z]{26}$" · Filter by the root Request’s owned Job Service API ID (`job_service_...`).
local_idinteger
minimum: 1 · Filter by business-local display number, distinct from API IDs.
statusstring
enum: "submit", "cancel", "approve", "draft", "in-progress", "complete", "scheduled", "in_progress" · Filter by documented business state.
fromstring
format: "date" · Inclusive business-local start date.
tostring
format: "date" · Inclusive business date; when paired with from the range is at most 366 days.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
customer_qstring
minimum length: 1; maximum length: 100 · Literal case-insensitive substring of customer first, last or full name within this business; requires customers.read. Multiple matches are returned, never automatically selected. % and _ are literal characters.
sortstring
enum: "id", "preferred_start_at", "created_at", "updated_at" · Allowed sort field, applied to all matching records before the page limit. Omission preserves the existing default ordering.
directionstring
enum: "asc", "desc" · Sort direction; requires sort. Explicit sorting defaults to asc and uses the record ID as a stable tie-breaker.
statusesarray
minimum items: 1; maximum items: 12; items must be unique · Match any listed status (OR), combined with other filters (AND). Send statuses[]=value. Do not combine with status.
representationstring
default: "full"; enum: "full", "compact" · full preserves the existing detailed shape. compact returns scalar list fields without child collections; retrieve one record separately for details.
include_convertedboolean
default: false · false (default) omits Requests already converted to a Job, as the Requests page does. true also returns them (became_job true); their status stays as it was when converted, usually submit.
Addresses and code examples appear once API access is on for your business.
Create a Request
POST
Creates a request against an existing owned customer and Job service; preferred_start_at is an offset timestamp stored as business wall time. Company holidays reject the new date. The preferred window is fixed at 60 minutes; the end is derived when omitted and a supplied end must match it.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Get a Request
GET
Returns one business-owned work request by API ID, including its local number, preferred window, relationships, and current ETag.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
work_requeststringRequired
pattern: "^request_[0-9a-hjkmnp-tv-z]{26}$" · Request API ID (`request_...`), not local_id.
Addresses and code examples appear once API access is on for your business.
Update a Request
PATCH
Updates supplied request fields only and requires the current ETag. A changed date cannot move onto a company holiday; an unchanged date closed after scheduling remains editable. The preferred window is fixed at 60 minutes; the end is derived when omitted and a supplied end must match it.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
work_requeststringRequired
pattern: "^request_[0-9a-hjkmnp-tv-z]{26}$" · Request API ID (`request_...`), not local_id.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Add a Request worker comment
POST
Appends one actor-attributed worker comment to a Request without replacing its original customer comments.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
work_requeststringRequired
pattern: "^request_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`request_...`) of the current-business Request; it is distinct from the Request local_id.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Create a Job from a Request
POST
Atomically converts one request to its single Job; replay returns the same Job. A new Job is not created when the request's scheduled business date is now a company holiday; an already converted Job remains unchanged.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
work_requeststringRequired
pattern: "^request_[0-9a-hjkmnp-tv-z]{26}$" · Request API ID (`request_...`), not local_id.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Request Logs: who changed what and when
GET
Status changes, edits and creations, oldest first. The request's Logs window: exactly the lines the Logs button on its preview card shows, as stored free text, usually "what - business-local time - who" (created, edited, status changed from X to Y, deleted). Read-only history; use work.requests.get for the request's current state.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
work_requeststringRequired
pattern: "^request_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`request_...`) of the current-business request; it is distinct from the request's local_id.
pageinteger
default: 1; minimum: 1 · One-based page number for this stable ordered result set.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum log lines returned per page, from 1 through 100.
Addresses and code examples appear once API access is on for your business.
List Visits
GET
Lists business-owned visits with stable pagination after status, worker, date, parent, and local-number filters are applied. Visit commitments are advisory and do not remove Appointment availability slots.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
customer_idstring
pattern: "^customer_[0-9a-hjkmnp-tv-z]{26}$" · Filter by owned customer API ID (`customer_...`).
service_idstring
pattern: "^job_service_[0-9a-hjkmnp-tv-z]{26}$" · Filter by the root Request’s owned Job Service API ID (`job_service_...`).
local_idinteger
minimum: 1 · Filter by business-local display number, distinct from API IDs.
project_numberinteger
minimum: 1 · Filter by project number (the root Request’s number): every visit of “Project #158”.
worker_idstring
pattern: "^user_[0-9a-hjkmnp-tv-z]{26}$" · Filter by assigned worker user API ID (`user_...`).
statusstring
enum: "submit", "cancel", "approve", "draft", "in-progress", "complete", "scheduled", "in_progress" · Filter by documented business state.
fromstring
format: "date" · Inclusive business-local start date.
tostring
format: "date" · Inclusive business date; when paired with from the range is at most 366 days.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
customer_qstring
minimum length: 1; maximum length: 100 · Literal case-insensitive substring of customer first, last or full name within this business; requires customers.read. Multiple matches are returned, never automatically selected. % and _ are literal characters.
sortstring
enum: "id", "preferred_start_at", "created_at", "updated_at" · Allowed sort field, applied to all matching records before the page limit. Omission preserves the existing default ordering.
directionstring
enum: "asc", "desc" · Sort direction; requires sort. Explicit sorting defaults to asc and uses the record ID as a stable tie-breaker.
statusesarray
minimum items: 1; maximum items: 12; items must be unique · Match any listed status (OR), combined with other filters (AND). Send statuses[]=value. Do not combine with status.
representationstring
default: "full"; enum: "full", "compact" · full preserves the existing detailed shape. compact returns scalar list fields without child collections; retrieve one record separately for details.
assignmentstring
enum: "assigned", "unassigned" · Whether a worker association exists in this business, including historical memberships. unassigned cannot combine with a worker filter.
worker_qstring
minimum length: 1; maximum length: 100 · Literal substring of the business-specific worker first, last or full name; requires team.read. Does not assign anyone.
Addresses and code examples appear once API access is on for your business.
Create a Visit
POST
Creates a Visit under an existing owned request without inventing availability. Company holidays reject the new date. A Visit is an exact start plus a duration in minutes: send duration_minutes, or end_at (the duration is the minutes between start and end), or neither for 60 minutes.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Get a Visit
GET
Returns one business-owned visit by API ID, including its parent request, assignments, schedule, and current ETag.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
visitstringRequired
pattern: "^visit_[0-9a-hjkmnp-tv-z]{26}$" · Visit API ID (`visit_...`), not local_id.
Addresses and code examples appear once API access is on for your business.
Update a Visit
PATCH
Updates supplied Visit schedule, details or assignments and requires the current ETag. A changed date cannot move onto a company holiday; an unchanged date closed after scheduling remains editable, and completed or canceled history may still be corrected. A Visit is an exact start plus a duration in minutes: send start_at alone to move it (the duration stays), duration_minutes to change the length, or end_at (the duration becomes the minutes between start and end).
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
visitstringRequired
pattern: "^visit_[0-9a-hjkmnp-tv-z]{26}$" · Visit API ID (`visit_...`), not local_id.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Cancel a Visit
POST
Transitions the Visit to Canceled through the same product status transition. It does not add a worker comment; use work.visits.comment separately.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
visitstringRequired
pattern: "^visit_[0-9a-hjkmnp-tv-z]{26}$" · Visit API ID (`visit_...`), not local_id.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Add a Visit worker comment
POST
Appends one actor-attributed Visit comment.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
visitstringRequired
pattern: "^visit_[0-9a-hjkmnp-tv-z]{26}$" · Visit API ID (`visit_...`), not local_id.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Complete a Visit
POST
Transitions the Visit to Completed through the same product status transition. It does not add a worker comment; use work.visits.comment separately.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
visitstringRequired
pattern: "^visit_[0-9a-hjkmnp-tv-z]{26}$" · Visit API ID (`visit_...`), not local_id.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Visit Logs: who changed what and when
GET
Status changes, edits and creations, oldest first. The visit's Logs window: exactly the lines the Logs button on its preview card shows, as stored free text, usually "what - business-local time - who" (created, edited, status changed from X to Y, deleted). Read-only history; use work.visits.get for the visit's current state.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
visitstringRequired
pattern: "^visit_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`visit_...`) of the current-business visit; it is distinct from the visit's local_id.
pageinteger
default: 1; minimum: 1 · One-based page number for this stable ordered result set.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum log lines returned per page, from 1 through 100.
Addresses and code examples appear once API access is on for your business.
Requests, jobs & visits
Checklists
13 actionsGet an appointment's checklist
GET
For many Appointments, use checklists.list instead. Returns the checklist attached to the exact authorized Appointment; a numeric checklist ID from another parent cannot match. A Appointment with no checklist returns 404 not_found, the same as a missing Appointment.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
appointmentstringRequired
pattern: "^appointment_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`appointment_...`) of the owned Appointment parent.
Addresses and code examples appear once API access is on for your business.
Attach a checklist to an appointment
POST
Attaches a template-derived or explicit checklist to the exact authorized appointment without changing the source template.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
appointmentstringRequired
pattern: "^appointment_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`appointment_...`) of the owned Appointment parent.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Complete a checklist item
POST
Completes an open step only after its required note and/or existing upload evidence is present. Every upload must be owned by this business and target this exact Job or appointment.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
itemstringRequired
pattern: "^checklist_item_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`checklist_item_...`) of a checklist step, resolved through its owning checklist and work.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Mark a checklist item not applicable
POST
Marks an open allow_na step not applicable with the required reason under the existing tick policy.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
itemstringRequired
pattern: "^checklist_item_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`checklist_item_...`) of a checklist step, resolved through its owning checklist and work.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Reopen a checklist item
POST
Reopens an answered step under the manager/owner policy and records the optional reason; assigned workers cannot reopen.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
itemstringRequired
pattern: "^checklist_item_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`checklist_item_...`) of a checklist step, resolved through its owning checklist and work.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
List checklist templates
GET
Lists read-only checklist templates visible under the current business checklist policy; it does not attach or modify them.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Get a checklist template
GET
Reads one active organisation template and its evidence requirements. Template writing is not exposed.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
templatestringRequired
pattern: "^checklist_template_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`checklist_template_...`) of the active checklist template owned by this business.
Addresses and code examples appear once API access is on for your business.
List checklists with how many items are done
GET
state=unfinished finds work with open checklists. List checklists with how many items are done; use state=unfinished to find Jobs and Appointments with open checklists in one call instead of probing each Job or Appointment with checklists.jobs.get / checklists.appointments.get. Each row gives the checklist id, title, state (open/complete), done/total counts, and the parent's type, API ID, local_id (the number shown in the app) and, for a Job, project_number (its Request's number). Read one checklist's steps with checklists.get.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
statestring
default: "all"; enum: "unfinished", "finished", "all" · unfinished = checklists with at least one open item (or no items yet); finished = every item done or N/A; all = both. Default all.
parent_typestring
enum: "job", "appointment" · Only checklists on Jobs or only on Appointments. Omitted: both, limited to the parents this credential may read.
Addresses and code examples appear once API access is on for your business.
Get a checklist
GET
Returns one checklist authorized under its explicit job or appointment parent and the caller's current checklist policy.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
checkliststringRequired
pattern: "^checklist_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`checklist_...`) of the checklist owned by this business.
Addresses and code examples appear once API access is on for your business.
Update a checklist
PATCH
Replaces supplied open-step definitions under the current ETag. A completed or N/A step may be sent as its id only and remains locked with its evidence and event history.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
checkliststringRequired
pattern: "^checklist_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`checklist_...`) of the checklist owned by this business.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
List a checklist's history
GET
Lists recorded lifecycle events for one authorized checklist; reading the event log does not change checklist state.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
checkliststringRequired
pattern: "^checklist_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`checklist_...`) of the checklist owned by this business.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Get a Job's checklist
GET
For many Jobs, use checklists.list instead. Returns the checklist attached to the exact authorized Job; a numeric checklist ID from another parent cannot match. A Job with no checklist returns 404 not_found, the same as a missing Job.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
jobstringRequired
pattern: "^job_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`job_...`) of the owned Job parent.
Addresses and code examples appear once API access is on for your business.
Attach a checklist to a Job
POST
Attaches a template-derived or explicit checklist to the exact authorized job without changing the source template.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
jobstringRequired
pattern: "^job_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`job_...`) of the owned Job parent.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Estimates, invoices & payments
Estimates
6 actionsList estimates
GET
Lists organisation-scoped estimates filtered by customer, request, status and inclusive quote_date bounds. Each row carries bounded customer, request, service and financial context when the caller has the corresponding read scope. No read sends or converts an estimate.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
customer_idstring
pattern: "^customer_[0-9a-hjkmnp-tv-z]{26}$" · Exact API ID (`customer_...`) of the related customer.
request_idstring
pattern: "^request_[0-9a-hjkmnp-tv-z]{26}$" · Exact API ID (`request_...`) of the related work request.
statusstring
enum: "waiting-approval", "approved", "changes-requested", "rejected", "expired", "canceled", "draft", "archived" · Exact public lifecycle state to include.
fromstring
format: "date" · Inclusive first business-local date in the requested range.
tostring
format: "date" · Inclusive last business-local date in the requested range.
local_idinteger
minimum: 1 · Exact business-local number within this operation’s record family; it is never compared with an API ID.
project_numberinteger
minimum: 1 · Filter by project number (the related Request’s number), shown as “Project #158”.
pageinteger
default: 1; minimum: 1 · One-based page number for this stable ordered result set.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records returned per page, from 1 through 100.
customer_qstring
minimum length: 1; maximum length: 100 · Literal case-insensitive substring of customer first, last or full name within this business; requires customers.read. Multiple matches are returned, never automatically selected. % and _ are literal characters.
sortstring
enum: "id", "created_at", "quote_date", "expires_on", "total" · Allowed sort field, applied to all matching records before the page limit. Omission preserves the existing default ordering.
directionstring
enum: "asc", "desc" · Sort direction; requires sort. Explicit sorting defaults to asc and uses the record ID as a stable tie-breaker.
statusesarray
minimum items: 1; maximum items: 12; items must be unique · Match any listed status (OR), combined with other filters (AND). Send statuses[]=value. Do not combine with status.
representationstring
default: "full"; enum: "full", "compact" · full preserves the existing detailed shape. compact returns scalar list fields without child collections; retrieve one record separately for details.
job_idstring
pattern: "^job_[0-9a-hjkmnp-tv-z]{26}$" · Exact job API ID (`job_...`) in this business; matches documents belonging to that job’s request. This is not a direct document foreign key.
amount_minstring
pattern: "^[0-9]{1,10}(\\.[0-9]{1,2})?$" · Minimum tax-inclusive document total in dollars, inclusive.
amount_maxstring
pattern: "^[0-9]{1,10}(\\.[0-9]{1,2})?$" · Maximum tax-inclusive document total in dollars, inclusive; must not be below amount_min.
include_summaryboolean
default: false · Include a fixed summary over ALL records matching these filters, before sorting and pagination. Default false. Zero matches returns zero totals.
expires_fromstring
format: "date"; pattern: "^[1-9][0-9]{3}-[0-9]{2}-[0-9]{2}$" · Inclusive estimate expiration calendar date bound; paired range at most366days. Legacy from/to still filters quote_date.
expires_tostring
format: "date"; pattern: "^[1-9][0-9]{3}-[0-9]{2}-[0-9]{2}$" · Inclusive estimate expiration calendar date bound; paired range at most366days. Legacy from/to still filters quote_date.
Addresses and code examples appear once API access is on for your business.
Create an estimate
POST
Creates a local estimate from the supplied customer and line snapshots, calculating totals without sending or converting it.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Get an estimate
GET
Returns one business-owned estimate with its frozen line snapshots, totals, local number, and current version.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
estimatestringRequired
pattern: "^estimate_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`estimate_...`) of the estimate path resource.
Addresses and code examples appear once API access is on for your business.
Update an estimate
PATCH
Updates supplied mutable fields on an authorized estimate after its ETag check; omitted fields remain unchanged.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
estimatestringRequired
pattern: "^estimate_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`estimate_...`) of the estimate path resource.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Cancel an estimate
POST
Cancels an authorized estimate while retaining its line snapshots and history; it does not delete or convert the estimate.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
estimatestringRequired
pattern: "^estimate_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`estimate_...`) of the estimate path resource.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Estimate Logs: who changed what and when
GET
Status changes, edits and creations, oldest first. The estimate's Logs window: exactly the lines the Logs button on its preview card shows, as stored free text, usually "what - business-local time - who" (created, edited, status changed from X to Y, deleted). Read-only history; use estimates.get for the estimate's current state.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
estimatestringRequired
pattern: "^estimate_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`estimate_...`) of the estimate path resource.
pageinteger
default: 1; minimum: 1 · One-based page number for this stable ordered result set.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum log lines returned per page, from 1 through 100.
Addresses and code examples appear once API access is on for your business.
Estimates, invoices & payments
Estimate Templates
2 actionsList estimate templates
GET
Lists read-only estimate templates visible to the current business caller; template authoring is excluded.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
pageinteger
default: 1; minimum: 1 · One-based page number for this stable ordered result set.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records returned per page, from 1 through 100.
Addresses and code examples appear once API access is on for your business.
Get an estimate template
GET
Returns one read-only estimate template and its line definitions without creating an estimate.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
templatestringRequired
pattern: "^estimate_template_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`estimate_template_...`) of the estimate-template path resource.
Addresses and code examples appear once API access is on for your business.
Estimates, invoices & payments
Invoices
6 actionsList invoices
GET
Lists organisation-scoped invoices filtered by customer, request, status and inclusive created-date bounds. Each row carries bounded customer, request, service and financial context when the caller has the corresponding read scope. Reads omit token, pay link and provider identifiers and never backfill a customer token.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
customer_idstring
pattern: "^customer_[0-9a-hjkmnp-tv-z]{26}$" · Exact API ID (`customer_...`) of the related customer.
request_idstring
pattern: "^request_[0-9a-hjkmnp-tv-z]{26}$" · Exact API ID (`request_...`) of the related work request.
statusstring
enum: "voided", "paid", "paid_cash", "overdue", "refunded", "partially_refunded", "due", "pending", "declined", "disputed", "draft", "uncollectable" · Exact public lifecycle state to include.
fromstring
format: "date" · Inclusive first business-local date in the requested range.
tostring
format: "date" · Inclusive last business-local date in the requested range.
local_idinteger
minimum: 1 · Exact business-local number within this operation’s record family; it is never compared with an API ID.
project_numberinteger
minimum: 1 · Filter by project number (the related Request’s number), shown as “Project #158”.
pageinteger
default: 1; minimum: 1 · One-based page number for this stable ordered result set.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records returned per page, from 1 through 100.
customer_qstring
minimum length: 1; maximum length: 100 · Literal case-insensitive substring of customer first, last or full name within this business; requires customers.read. Multiple matches are returned, never automatically selected. % and _ are literal characters.
sortstring
enum: "id", "created_at", "total", "balance_due", "payment_due_on" · Allowed sort field, applied to all matching records before the page limit. Omission preserves the existing default ordering.
directionstring
enum: "asc", "desc" · Sort direction; requires sort. Explicit sorting defaults to asc and uses the record ID as a stable tie-breaker.
statusesarray
minimum items: 1; maximum items: 12; items must be unique · Match any listed status (OR), combined with other filters (AND). Send statuses[]=value. Do not combine with status.
representationstring
default: "full"; enum: "full", "compact" · full preserves the existing detailed shape. compact returns scalar list fields without child collections; retrieve one record separately for details.
job_idstring
pattern: "^job_[0-9a-hjkmnp-tv-z]{26}$" · Exact job API ID (`job_...`) in this business; matches documents belonging to that job’s request. This is not a direct document foreign key.
amount_minstring
pattern: "^[0-9]{1,10}(\\.[0-9]{1,2})?$" · Minimum tax-inclusive document total in dollars, inclusive.
amount_maxstring
pattern: "^[0-9]{1,10}(\\.[0-9]{1,2})?$" · Maximum tax-inclusive document total in dollars, inclusive; must not be below amount_min.
include_summaryboolean
default: false · Include a fixed summary over ALL records matching these filters, before sorting and pagination. Default false. Zero matches returns zero totals.
balance_minstring
pattern: "^[0-9]{1,10}(\\.[0-9]{1,2})?$" · Minimum canonical remaining balance, inclusive.
balance_maxstring
pattern: "^[0-9]{1,10}(\\.[0-9]{1,2})?$" · Maximum canonical remaining balance, inclusive.
issued_fromstring
format: "date"; pattern: "^[1-9][0-9]{3}-[0-9]{2}-[0-9]{2}$" · Inclusive first Invoice Date (issued_on: the date picked on the invoice form, or the creation date). Due dates use completion date (or creation date) plus due_days. New paired ranges are limited to 366 days.
issued_tostring
format: "date"; pattern: "^[1-9][0-9]{3}-[0-9]{2}-[0-9]{2}$" · Inclusive last Invoice Date (issued_on: the date picked on the invoice form, or the creation date). Due dates use completion date (or creation date) plus due_days. New paired ranges are limited to 366 days.
due_fromstring
format: "date"; pattern: "^[1-9][0-9]{3}-[0-9]{2}-[0-9]{2}$" · Inclusive first payment due calendar date. Due dates use completion date (or creation date) plus due_days. New paired ranges are limited to 366 days.
due_tostring
format: "date"; pattern: "^[1-9][0-9]{3}-[0-9]{2}-[0-9]{2}$" · Inclusive last payment due calendar date. Due dates use completion date (or creation date) plus due_days. New paired ranges are limited to 366 days.
overdueboolean
Positive canonical balance with payment_due_on before today in the business timezone, excluding draft, voided, refunded and uncollectable. false selects the complement.
payment_statestring
enum: "unpaid", "partial", "paid" · Based on canonical total, net paid and remaining balance; excludes draft/voided/refunded/uncollectable and zero totals. paid does not infer payment from status alone.
Addresses and code examples appear once API access is on for your business.
Create an invoice
POST
Creates a local invoice draft from the supplied customer and line snapshots, calculating totals without sending or charging it.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Get an invoice
GET
Returns one business-owned invoice draft with its frozen line snapshots, totals, local number, and current version; it does not refresh provider state.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
invoicestringRequired
pattern: "^invoice_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`invoice_...`) of the invoice path resource.
Addresses and code examples appear once API access is on for your business.
Update an invoice
PATCH
Updates supplied mutable fields on a local invoice draft after its ETag check; omitted fields and frozen history remain unchanged.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
invoicestringRequired
pattern: "^invoice_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`invoice_...`) of the invoice path resource.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Invoice Logs: who changed what and when
GET
Status changes, edits and creations, oldest first. The invoice's Logs window: exactly the lines the Logs button on its preview card shows, as stored free text, usually "what - business-local time - who" (created, edited, status changed from X to Y, deleted). Read-only history; use invoices.get for the invoice's current state.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
invoicestringRequired
pattern: "^invoice_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`invoice_...`) of the invoice path resource.
pageinteger
default: 1; minimum: 1 · One-based page number for this stable ordered result set.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum log lines returned per page, from 1 through 100.
Addresses and code examples appear once API access is on for your business.
List an invoice's payments
GET
Lists stored payments allocated to one business-owned invoice; it never contacts a payment provider or changes payment state.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
invoicestringRequired
pattern: "^invoice_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`invoice_...`) of the invoice path resource.
Addresses and code examples appear once API access is on for your business.
Estimates, invoices & payments
Payments
2 actionsList payments
GET
Merges local appointment and invoice payments with stable succeeded_at, id and type ordering. Each row includes bounded customer and parent context when scopes allow it. Provider, payment-method identifiers and raw metadata are excluded.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
kindstring
enum: "appointment", "invoice" · Required record family discriminator; the payment's API ID must belong to this kind.
customer_idstring
pattern: "^customer_[0-9a-hjkmnp-tv-z]{26}$" · Exact API ID (`customer_...`) of the related customer.
statusstring
enum: "created", "pending", "success", "failed", "canceled", "partially_refunded", "refunded", "declined", "disputed" · Exact public lifecycle state to include.
fromstring
format: "date" · Inclusive first business-local date in the requested range.
tostring
format: "date" · Inclusive last business-local date in the requested range.
local_idinteger
minimum: 1 · Exact business-local number within this operation’s record family; it is never compared with an API ID. Requires kind=appointment because invoice payments have no business-local number.
pageinteger
default: 1; minimum: 1 · One-based page number for this stable ordered result set.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records returned per page, from 1 through 100.
customer_qstring
minimum length: 1; maximum length: 100 · Literal case-insensitive substring of customer first, last or full name within this business; requires customers.read. Multiple matches are returned, never automatically selected. % and _ are literal characters.
sortstring
enum: "id", "created_at", "succeeded_at", "amount" · Allowed sort field, applied to all matching records before the page limit. Omission preserves the existing default ordering.
directionstring
enum: "asc", "desc" · Sort direction; requires sort. Explicit sorting defaults to asc and uses the record ID as a stable tie-breaker.
statusesarray
minimum items: 1; maximum items: 12; items must be unique · Match any listed status (OR), combined with other filters (AND). Send statuses[]=value. Do not combine with status.
representationstring
default: "full"; enum: "full", "compact" · full preserves the existing detailed shape. compact returns scalar list fields without child collections; retrieve one record separately for details.
include_summaryboolean
default: false · Include a fixed summary over ALL records matching these filters, before sorting and pagination. Default false. Zero matches returns zero totals.
amount_minstring
pattern: "^[0-9]{1,10}(\\.[0-9]{1,2})?$" · Minimum stored payment-attempt amount, inclusive, in dollars.
amount_maxstring
pattern: "^[0-9]{1,10}(\\.[0-9]{1,2})?$" · Maximum stored payment-attempt amount, inclusive.
invoice_idstring
pattern: "^invoice_[0-9a-hjkmnp-tv-z]{26}$" · Parent invoice API ID (`invoice_...`); implies invoice kind and cannot combine with appointment_id or contradictory kind.
appointment_idstring
pattern: "^appointment_[0-9a-hjkmnp-tv-z]{26}$" · Parent appointment API ID (`appointment_...`); implies appointment kind and requires appointments.read.
date_fieldstring
enum: "created", "succeeded" · Select the date filtered by from/to. created uses business-local days compared with the stored business-clock creation time and includes failed/pending records with no success date. succeeded uses the established business-wall-clock success timestamp. Omission preserves legacy success-date filtering.
Addresses and code examples appear once API access is on for your business.
Get a payment
GET
Reads a payment by its required type-qualified identity: kind plus the payment API ID. The detail projection may include at most ten recent refunds with explicit coverage counters.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
kindstringRequired
enum: "appointment", "invoice" · Required record family discriminator; the payment's API ID must belong to this kind.
paymentstringRequired
pattern: "^(?:payment|invoice_payment)_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`payment_...` or `invoice_payment_...`) within the explicit payment kind.
Addresses and code examples appear once API access is on for your business.
Estimates, invoices & payments
Recurring payments
10 actionsList payment series
GET
Lists business-owned recurring-payment definitions after status, cadence, customer, and pagination filtering; it never runs a charge.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
customer_idstring
pattern: "^customer_[0-9a-hjkmnp-tv-z]{26}$" · Exact API ID (`customer_...`) of the related customer.
service_idstring
pattern: "^appointment_service_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`appointment_service_...`) of the owned service snapshot source.
lifecycle_statusstring
enum: "active", "paused", "ended" · Current recurring-series state: active, paused, or ended.
frequencystring
enum: "weekly", "2_weeks", "4_weeks", "monthly", "quarterly", "6_months", "yearly" · Filters definitions by the cadence used to calculate their future scheduled dates.
local_idinteger
minimum: 1 · Exact business-local number within this operation’s record family; it is never compared with an API ID.
pageinteger
default: 1; minimum: 1 · One-based page number for this stable ordered result set.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records returned per page, from 1 through 100.
Addresses and code examples appear once API access is on for your business.
Create a payment series
POST
Creates a future recurring-payment definition from a stored payment method reference; creation itself does not charge it.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Get the retry choices for a payment series
GET
Returns the code-owned retry-policy choices and numeric bounds clients must use when defining a recurring-payment series.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Addresses and code examples appear once API access is on for your business.
Get a payment series
GET
Returns one business-owned recurring-payment definition and its current version without charging or refreshing payment data.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
seriesstringRequired
pattern: "^payment_series_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`payment_series_...`) of the recurring payment series.
Addresses and code examples appear once API access is on for your business.
Update a payment series
PATCH
Merges supplied future terms with the current authoritative snapshot under lock. A details-only edit preserves legacy v1 economics and never reprices an existing occurrence; the unchanged archived current service may be retained.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
seriesstringRequired
pattern: "^payment_series_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`payment_series_...`) of the recurring payment series.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
End a payment series
POST
Ends future attempts for an authorized recurring-payment series while retaining the definition and occurrence history.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
seriesstringRequired
pattern: "^payment_series_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`payment_series_...`) of the recurring payment series.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
List payment series occurrences
GET
Lists organisation- and series-scoped occurrence snapshots and safe attempt counts/status only; payment methods and provider identifiers are excluded.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
seriesstringRequired
pattern: "^payment_series_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`payment_series_...`) of the recurring payment series.
pageinteger
default: 1; minimum: 1 · One-based page number for this stable ordered result set.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records returned per page, from 1 through 100.
Addresses and code examples appear once API access is on for your business.
Pause a payment series
POST
Pauses future automatic attempts for an authorized recurring-payment series while retaining its occurrence ledger.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
seriesstringRequired
pattern: "^payment_series_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`payment_series_...`) of the recurring payment series.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Resume a payment series
POST
Resumes future automatic attempts for an authorized paused series without retrying past occurrences immediately.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
seriesstringRequired
pattern: "^payment_series_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`payment_series_...`) of the recurring payment series.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Skip the next pending payment
POST
Marks the next pending occurrence of an authorized recurring-payment series as skipped without charging it.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
seriesstringRequired
pattern: "^payment_series_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`payment_series_...`) of the recurring payment series.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Estimates, invoices & payments
Refunds
2 actionsList customer refunds
GET
Read stored customer refunds with parent, status, amount and business-local date filters. Each row includes bounded payment, parent and customer context when the corresponding records and scopes permit it. This does not issue a refund or contact a provider. Appointment refunds require appointments.read; unspecified kind omits that branch when access is absent.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
customer_qstring
minimum length: 1; maximum length: 100 · Literal case-insensitive substring of customer first, last or full name within this business; requires customers.read. Multiple matches are returned, never automatically selected. % and _ are literal characters.
payment_idstring
pattern: "^(?:invoice_payment|payment)_[0-9a-hjkmnp-tv-z]{26}$" · Exact parent payment API ID (`invoice_payment_...` or `payment_...`); payment_kind must also be provided.
payment_kindstring
enum: "invoice", "appointment" · Parent payment family; incompatible parent filters are rejected.
invoice_idstring
pattern: "^invoice_[0-9a-hjkmnp-tv-z]{26}$" · Parent invoice API ID (`invoice_...`); implies invoice payment kind.
appointment_idstring
pattern: "^appointment_[0-9a-hjkmnp-tv-z]{26}$" · Parent appointment API ID (`appointment_...`); implies appointment payment kind and requires appointments.read.
customer_idstring
pattern: "^customer_[0-9a-hjkmnp-tv-z]{26}$" · Customer API ID (`customer_...`) from the parent invoice or appointment.
statusstring
enum: "created", "complete", "processing", "failed" · Exact stored refund status.
statusesarray
minimum items: 1; maximum items: 12; items must be unique · OR of stored statuses; cannot combine with status. Send statuses[]=value.
date_fieldstring
default: "created"; enum: "created", "completed" · Date filtered by from/to; business-local days are compared with the stored business-clock time. Null completion dates do not match bounded completion filters.
fromstring
format: "date"; pattern: "^[1-9][0-9]{3}-[0-9]{2}-[0-9]{2}$" · Inclusive first business-local calendar day.
tostring
format: "date"; pattern: "^[1-9][0-9]{3}-[0-9]{2}-[0-9]{2}$" · Inclusive last business-local day; paired range at most366days.
sortstring
enum: "id", "created_at", "completed_at", "amount" · Allowed sort; omission returns newest-created first. Explicit nullable sorts place null last.
directionstring
enum: "asc", "desc" · Requires sort; explicit sorting defaults to asc with ID tie-breaker.
pageinteger
default: 1; minimum: 1 · One-based page number.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum rows on this page, not the matching total.
amount_minstring
pattern: "^[0-9]{1,10}(\\.[0-9]{1,2})?$" · Inclusive minimum refund amount in dollars.
amount_maxstring
pattern: "^[0-9]{1,10}(\\.[0-9]{1,2})?$" · Inclusive maximum refund amount; must not be below amount_min.
include_summaryboolean
default: false · Include a fixed summary over ALL records matching these filters, before sorting and pagination. Default false. Zero matches returns zero totals.
Addresses and code examples appear once API access is on for your business.
Read one customer refund
GET
Read one stored refund by its global refund ID. The projection identifies its payment and carries bounded parent and customer context when scopes allow it. Missing, foreign or unauthorized parent records return not_found. Does not contact providers.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
refundstringRequired
pattern: "^refund_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`refund_...`) of the customer refund, not a payment ID or platform billing refund.
Addresses and code examples appear once API access is on for your business.
Estimates, invoices & payments
Taxes
1 actionList current business tax rates
GET
Returns the current business tax-rate catalog as exact decimal percentages for use in later invoice and estimate requests.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
include_retiredstring
enum: "true", "false", "1", "0" · When true, include retired tax rates alongside active rates.
pageinteger
default: 1; minimum: 1 · One-based page number for this stable ordered result set.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records returned per page, from 1 through 100.
Addresses and code examples appear once API access is on for your business.
Estimates, invoices & payments
Price Book
8 actionsList Price Book categories
GET
Returns Price Book categories owned by the current business in their stored display order.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
pageinteger
default: 1; minimum: 1 · One-based page number for this stable ordered result set.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records returned per page, from 1 through 100.
Addresses and code examples appear once API access is on for your business.
Create a Price Book category
POST
Creates a business-owned category used to organize Price Book items; the API assigns its API ID.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Read a Price Book category
GET
Returns one category owned by the current business with its current ETag for conditional updates.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
categorystringRequired
pattern: "^price_book_category_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`price_book_category_...`) of the price-book category path resource.
Addresses and code examples appear once API access is on for your business.
Update a Price Book category
PATCH
Updates only supplied mutable category fields after ownership and ETag checks; omitted fields remain unchanged.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
categorystringRequired
pattern: "^price_book_category_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`price_book_category_...`) of the price-book category path resource.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
List Price Book items
GET
Returns business-owned Price Book items after category and search filtering; restricted cost fields are redacted before serialization when required.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
qstring | null
maximum length: 100 · Case-insensitive text search over the documented business-facing fields.
category_idstring
pattern: "^price_book_category_[0-9a-hjkmnp-tv-z]{26}$" · Exact API ID (`price_book_category_...`) of an owned price-book category.
typePriceBookItemType
Exact supported domain type to include.
pageinteger
default: 1; minimum: 1 · One-based page number for this stable ordered result set.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records returned per page, from 1 through 100.
Addresses and code examples appear once API access is on for your business.
Create a Price Book item
POST
Creates a business-owned Price Book item using decimal-string money inputs; customer-facing price and restricted cost remain distinct fields.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Read a Price Book item
GET
Returns one business-owned Price Book item; cost is included only when the caller has the separate permission documented by the resource schema.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
itemstringRequired
pattern: "^price_book_item_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`price_book_item_...`) of the price-book item path resource.
Addresses and code examples appear once API access is on for your business.
Update a Price Book item
PATCH
Updates only supplied mutable fields on a business-owned Price Book item after an ETag check; identity and owner fields cannot be replaced.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
itemstringRequired
pattern: "^price_book_item_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`price_book_item_...`) of the price-book item path resource.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Calls, messages & tickets
Conversations
4 actionsList every phone call with counts per status
GET
Every call in the Call & Message Center: answered, missed, voicemail, answered by Agent Genie, outgoing. meta.summary counts each status for the same dates, direction and customer (status does not narrow it), so it answers totals such as missed calls this week.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
fromstring
format: "date" · Inclusive lower business-local date.
tostring
format: "date" · Inclusive upper business-local date.
directionstring
enum: "incoming", "outgoing" · Only incoming or only outgoing calls.
statusstring
enum: "answered", "missed", "voicemail", "ai_answered", "outbound_answered", "outbound_missed", "in_progress" · Only calls with this outcome.
customer_idstring
pattern: "^customer_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`customer_...`); only calls with this customer.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Mark a phone number or email as spam
POST
Flags a sender in the business's Blocked Contacts list as spam, the same flag as Mark as spam in the Call & Message Center. It is not a full block; the business can block the contact on the Blocked Contacts page. Send is_spam false to clear the flag.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
List customer conversation channels
GET
Returns channel summaries for one business-owned customer without sending or changing messages.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
customer_idstringRequired
pattern: "^customer_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`customer_...`) of the owned customer whose conversations are listed. Required.
Addresses and code examples appear once API access is on for your business.
List customer messages
GET
Returns one channel of the business-owned customer message history. Message bodies are plain text and capped at 100,000 characters; attachment storage paths are never returned.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
customerstringRequired
pattern: "^customer_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`customer_...`) of the owned customer conversation or portal summary.
channelConversationChannel
Code-owned conversation channel key.
fromstring
format: "date" · Inclusive lower business-local date.
tostring
format: "date" · Inclusive upper business date, or documented exclusive instant where stated.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Calls, messages & tickets
Receptionist
9 actionsRead AI Receptionist configuration and readiness
GET
Returns stored AI Receptionist configuration, readiness and bounded usage; it does not place or answer a call.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Addresses and code examples appear once API access is on for your business.
Turn Agent Genie auto-send on or off
PUT
Enables or disables automatic reply sending within the stored receptionist policy.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
List recorded Receptionist calls without live provider state
GET
Lists stored receptionist call summaries using status and business-local date filters; it does not place or answer a call.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
statusstring
enum: "active", "completed", "all" · Code-owned lifecycle state filter; omission includes every allowed state.
fromstring
format: "date" · Inclusive lower business-local date.
tostring
format: "date" · Inclusive upper business date, or documented exclusive instant where stated.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Read one recorded Receptionist call
GET
Returns one stored call transcript and its recorded receptionist actions.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
callstringRequired
pattern: "^receptionist_call_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`receptionist_call_...`) of the stored receptionist call.
Addresses and code examples appear once API access is on for your business.
Turn Agent Genie on or off
PUT
Enables or disables receptionist handling after current readiness checks.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
List recorded Receptionist replies
GET
Lists stored receptionist reply reviews using state and business-local date filters; it does not approve or send a reply.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
statestring
enum: "needs_approval", "handled", "all" · Code-owned lifecycle state filter; omission includes every allowed state.
fromstring
format: "date" · Inclusive lower business-local date.
tostring
format: "date" · Inclusive upper business date, or documented exclusive instant where stated.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Read one recorded Receptionist reply
GET
Returns one stored reply review with bounded excerpts and escalation state.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
replystringRequired
pattern: "^receptionist_reply_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`receptionist_reply_...`) of the stored receptionist reply review.
Addresses and code examples appear once API access is on for your business.
Update Agent Genie settings
PATCH
Updates supported receptionist persona, greeting, knowledge and action permissions under the current ETag.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Turn Agent Genie voice on or off
PUT
Enables or disables the voice channel without changing text-reply settings.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Calls, messages & tickets
Tickets
4 actionsList customer tickets (the Tickets page)
GET
Lists the business's own customer tickets: customer problems or complaints the business tracks, as shown on the Tickets page. These are not tickets the business sent to BizBaby support. Filter by customer, status and created date.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
customer_idstring
pattern: "^customer_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`customer_...`) of an owned customer used to narrow results.
statusstring
enum: "open", "resolved", "expired", "all" · Ticket state filter; omission returns open tickets only. Use all for every state.
fromstring
format: "date" · Inclusive lower business-local date on the ticket's created date.
tostring
format: "date" · Inclusive upper business-local date on the ticket's created date; not before from.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Create a customer ticket
POST
Creates a customer ticket (the Tickets page, not a BizBaby support ticket) for a business-owned customer, optionally linked to a customer-owned appointment or job.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Read a customer ticket
GET
Returns one of the business's own customer tickets (the Tickets page, not BizBaby support) and its linked work identity when present.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
ticketstringRequired
pattern: "^ticket_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`ticket_...`) of the business-owned ticket.
Addresses and code examples appear once API access is on for your business.
Update a customer ticket
PATCH
Updates supplied fields of a customer ticket (the Tickets page, not BizBaby support) only. Supply work_type and work_id together; set both to null to unlink work.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
ticketstringRequired
pattern: "^ticket_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`ticket_...`) of the business-owned ticket.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Calls, messages & tickets
Follow Ups
4 actionsList follow-ups
GET
Lists business-owned follow-ups. customer_id and contact are mutually exclusive filters.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
customer_idstring
pattern: "^customer_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`customer_...`) of an owned customer used to narrow results.
contactstring
maximum length: 320 · Stored follow-up contact label used as an exact filter.
statestring
enum: "waiting", "done", "all" · Code-owned lifecycle state filter; omission includes every allowed state.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Create a follow-up
POST
Creates a follow-up for exactly one business-owned customer or direct contact. No message is sent.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Read a follow-up
GET
Returns one business-owned follow-up and its linked work identity when present.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
follow_upstringRequired
pattern: "^follow_up_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`follow_up_...`) of the business-owned follow-up.
Addresses and code examples appear once API access is on for your business.
Update a follow-up
PATCH
Updates supplied follow-up details under the current ETag; omitted fields remain unchanged.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
follow_upstringRequired
pattern: "^follow_up_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`follow_up_...`) of the business-owned follow-up.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Team & operations
Tasks
13 actionsList tasks visible to the caller
GET
Returns tasks visible under the caller's current business policy, with status, ownership, linkage, due-date, and pagination filters applied together.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
scopestring
default: "own"; enum: "own", "team" · Select the caller’s own tasks or the authorized team view.
sectionstring
enum: "unassigned", "overdue", "all_open", "completed" · Filter team tasks by unassigned, overdue, all_open, or completed. Requires scope=team; omit section for scope=own.
qstring | null
maximum length: 100 · Case-insensitive text search over the documented business-facing fields.
assignee_user_idstring
pattern: "^user_[0-9a-hjkmnp-tv-z]{26}$" · Exact API ID (`user_...`) of an eligible business user.
customer_idstring
pattern: "^customer_[0-9a-hjkmnp-tv-z]{26}$" · Exact API ID (`customer_...`) of the related customer.
context_typeTaskContextType
Exact linked-record family paired with work_id.
due_fromstring
format: "date" · Inclusive first business-local due date.
due_tostring
format: "date" · Inclusive last business-local due date.
pageinteger
default: 1; minimum: 1 · One-based page number for this stable ordered result set.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records returned per page, from 1 through 100.
Addresses and code examples appear once API access is on for your business.
Create a task
POST
Omit assignee_user_id to assign yourself. Creates a task in the current business with optional due time, recurrence, and linked-record context validated under live policy; send null explicitly for Unassigned.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Count team task sections
GET
Returns counts for the same policy-filtered task sections available to the caller; optional work linkage narrows each count consistently.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
scopestring
enum: "own", "team" · Select the caller’s own tasks or the authorized team view.
qstring | null
maximum length: 100 · Case-insensitive text search over the documented business-facing fields.
assignee_user_idstring
pattern: "^user_[0-9a-hjkmnp-tv-z]{26}$" · Exact API ID (`user_...`) of an eligible business user.
customer_idstring
pattern: "^customer_[0-9a-hjkmnp-tv-z]{26}$" · Exact API ID (`customer_...`) of the related customer.
context_typeTaskContextType
Exact linked-record family paired with work_id.
due_fromstring
format: "date" · Inclusive first business-local due date.
due_tostring
format: "date" · Inclusive last business-local due date.
Addresses and code examples appear once API access is on for your business.
Read a task
GET
Returns one task only when it belongs to the current business and remains visible under the caller's current task policy.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
taskstringRequired
pattern: "^task_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`task_...`) of the task path resource; never a business-local number.
Addresses and code examples appear once API access is on for your business.
Update a task
PATCH
Updates only supplied mutable task fields after authorization and an ETag check; omitted fields retain their stored values.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
taskstringRequired
pattern: "^task_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`task_...`) of the task path resource; never a business-local number.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Assign or unassign a task
PUT
Sets or clears the assignee on an authorized task after checking its current ETag and assignment policy.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
taskstringRequired
pattern: "^task_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`task_...`) of the task path resource; never a business-local number.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Block an active task
POST
Moves an authorized active task into the blocked state while retaining its prior activity history.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
taskstringRequired
pattern: "^task_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`task_...`) of the task path resource; never a business-local number.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Cancel a task
POST
Moves an authorized task into the canceled state without deleting the task or its recorded activity.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
taskstringRequired
pattern: "^task_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`task_...`) of the task path resource; never a business-local number.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Complete a task
POST
Marks an authorized task complete and records the resulting lifecycle activity.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
taskstringRequired
pattern: "^task_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`task_...`) of the task path resource; never a business-local number.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Reopen a completed or canceled task
POST
Returns an authorized completed or canceled task to an open state and records the lifecycle transition.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
taskstringRequired
pattern: "^task_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`task_...`) of the task path resource; never a business-local number.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Start an open task
POST
Moves an authorized open task into the active state and records the lifecycle transition.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
taskstringRequired
pattern: "^task_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`task_...`) of the task path resource; never a business-local number.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Stop future recurrence for a task
POST
Stops future recurrence for an authorized task while retaining the task and existing recurrence history.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
taskstringRequired
pattern: "^task_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`task_...`) of the task path resource; never a business-local number.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Unblock a blocked task
POST
Returns an authorized blocked task to an active state and records the lifecycle transition.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
taskstringRequired
pattern: "^task_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`task_...`) of the task path resource; never a business-local number.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Team & operations
Team members and assignments
3 actionsList team members
GET
Lists organisation memberships. Contact fields and inactive search are returned only to contact-authorized managers; hidden email is never searched for other roles.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
activeboolean
default: true · Filter active state; inactive team rows require manager access.
qstring
maximum length: 100 · Literal case-insensitive contains name search; manager-level team search may also match email. %, _, and = are treated as ordinary text.
service_idstring
pattern: "^appointment_service_[0-9a-hjkmnp-tv-z]{26}$" · Filter active workers eligible for this owned Appointment Service API ID (`appointment_service_...`).
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Get a team member
GET
Reads one organisation membership. Optional contact fields follow the same caller-role projection as the list.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
user_idstringRequired
pattern: "^user_[0-9a-hjkmnp-tv-z]{26}$" · Worker user API ID (`user_...`), not membership_id.
activeboolean
default: true · Filter active state; inactive team rows require manager access.
qstring
maximum length: 100 · Literal case-insensitive contains name search; manager-level team search may also match email. %, _, and = are treated as ordinary text.
service_idstring
pattern: "^appointment_service_[0-9a-hjkmnp-tv-z]{26}$" · Filter active workers eligible for this owned Appointment Service API ID (`appointment_service_...`).
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
List existing team assignments
GET
Returns authorized appointment, Job, and Visit assignments. This is assignment evidence, not bookable arrival windows; excluded_types and is_complete prevent an empty list from implying availability.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
user_idstringRequired
pattern: "^user_[0-9a-hjkmnp-tv-z]{26}$" · Worker user API ID (`user_...`), not membership_id.
fromstringRequired
format: "date" · Inclusive business-local start date.
tostringRequired
format: "date" · Inclusive business-local end date; endpoint range limits apply.
Addresses and code examples appear once API access is on for your business.
Team & operations
Notes
12 actionsList note folders
GET
Lists the current person's note folders and their stored ordering without exposing another person's private folders.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Addresses and code examples appear once API access is on for your business.
Create a note folder
POST
Creates a personal note folder for the current person; folders are not shared across users merely because they share a business.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Rename a note folder
PATCH
Renames an owned note folder after checking its current version; notes already in the folder remain there.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
folderstringRequired
pattern: "^note_folder_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`note_folder_...`) of the note-folder path resource.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
List notes visible to the caller
GET
Returns notes the current person owns or may access through active sharing, filtered before pagination and serialization.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
qstring | null
maximum length: 100 · Case-insensitive text search over the documented business-facing fields.
folder_idstring
pattern: "^note_folder_[0-9a-hjkmnp-tv-z]{26}$" · Exact API ID (`note_folder_...`) of an owned note folder.
linked_customer_idstring
pattern: "^customer_[0-9a-hjkmnp-tv-z]{26}$" · Exact API ID (`customer_...`) of an owned customer linked to the note.
linked_job_idstring
pattern: "^job_[0-9a-hjkmnp-tv-z]{26}$" · Exact API ID (`job_...`) of an owned job linked to the note.
pageinteger
default: 1; minimum: 1 · One-based page number for this stable ordered result set.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records returned per page, from 1 through 100.
Addresses and code examples appear once API access is on for your business.
Create a private note
POST
Creates a private note owned by the current person in the current business; sharing and links are managed by their dedicated operations.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Read an authorized note
GET
Returns a note only when the caller owns it or currently has an authorized share, with no public share token or storage path exposed.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
notestringRequired
pattern: "^note_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`note_...`) of the note path resource.
Addresses and code examples appear once API access is on for your business.
Update a note
PATCH
Updates only supplied content fields on an authorized note after an atomic version check, preventing stale text from overwriting newer text.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
notestringRequired
pattern: "^note_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`note_...`) of the note path resource.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Move a note to a folder
PUT
Moves an owned note into an owned folder, or clears its folder when the request explicitly supplies null, after an ETag check.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
notestringRequired
pattern: "^note_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`note_...`) of the note path resource.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Link a customer or Job to a note
POST
Adds an exact business-owned customer or job link to an authorized note after validating both sides of the relationship.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
notestringRequired
pattern: "^note_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`note_...`) of the note path resource.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Remove a link from a note
DELETE
Removes the specified customer or job link from an authorized note without deleting either linked record.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
notestringRequired
pattern: "^note_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`note_...`) of the note path resource.
linkstringRequired
pattern: "^note_link_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`note_link_...`) of the note-link path resource.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Pin or unpin a note
PUT
Sets the desired pinned state for an authorized note after checking its current version; repeating the same desired state is safe.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
notestringRequired
pattern: "^note_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`note_...`) of the note path resource.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Change note sharing
PUT
Replaces the complete worker-sharing set for an owned note with the supplied current-business workers after an ETag check.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
notestringRequired
pattern: "^note_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`note_...`) of the note path resource.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Team & operations
Vehicles
19 actionsList vehicles
GET
Lists business-owned vehicles, with optional active-state and text filtering; it does not calculate routes or contact a provider.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
activeboolean
Filters by active/inactive state when supplied; omission includes both states.
qstring | null
maximum length: 100 · Case-insensitive bounded text search; omission performs no text filtering.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Create a vehicle
POST
Creates one vehicle from the supplied fleet identity, classification, maintenance day and optional driver/details.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Get a vehicle
GET
Returns one business-owned vehicle and its latest independently recorded mileage summary.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
vehiclestringRequired
pattern: "^vehicle_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_...`) of the parent vehicle; nested IDs are valid only under this vehicle.
Addresses and code examples appear once API access is on for your business.
Update a vehicle
PATCH
Updates only supplied vehicle fields; omitted fields keep their stored values and the current ETag is required.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
vehiclestringRequired
pattern: "^vehicle_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_...`) of the parent vehicle; nested IDs are valid only under this vehicle.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
List vehicle accidents
GET
Lists locally stored accident reports for one business-owned vehicle.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
vehiclestringRequired
pattern: "^vehicle_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_...`) of the parent vehicle; nested IDs are valid only under this vehicle.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Get a vehicle accident
GET
Returns one accident report scoped through its owning vehicle.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
vehiclestringRequired
pattern: "^vehicle_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_...`) of the parent vehicle; nested IDs are valid only under this vehicle.
accidentstringRequired
pattern: "^vehicle_accident_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_accident_...`) of the accident under the parent vehicle.
Addresses and code examples appear once API access is on for your business.
List vehicle reminders
GET
Lists maintenance alarms configured for one business-owned vehicle.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
vehiclestringRequired
pattern: "^vehicle_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_...`) of the parent vehicle; nested IDs are valid only under this vehicle.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Create a vehicle reminder
POST
Creates a date-based, mileage-based or combined maintenance reminder without scheduling provider work.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
vehiclestringRequired
pattern: "^vehicle_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_...`) of the parent vehicle; nested IDs are valid only under this vehicle.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Get a vehicle reminder
GET
Returns one vehicle alarm scoped through its owning vehicle.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
vehiclestringRequired
pattern: "^vehicle_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_...`) of the parent vehicle; nested IDs are valid only under this vehicle.
alarmstringRequired
pattern: "^vehicle_alarm_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_alarm_...`) of the alarm under the parent vehicle.
Addresses and code examples appear once API access is on for your business.
Update a vehicle reminder
PATCH
Updates supplied alarm triggers or note while preserving omitted values.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
vehiclestringRequired
pattern: "^vehicle_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_...`) of the parent vehicle; nested IDs are valid only under this vehicle.
alarmstringRequired
pattern: "^vehicle_alarm_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_alarm_...`) of the alarm under the parent vehicle.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Complete a vehicle reminder
POST
Marks the current alarm occurrence complete using its current stored triggers; it does not invent a next service record.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
vehiclestringRequired
pattern: "^vehicle_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_...`) of the parent vehicle; nested IDs are valid only under this vehicle.
alarmstringRequired
pattern: "^vehicle_alarm_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_alarm_...`) of the alarm under the parent vehicle.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
List vehicle expenses
GET
Lists locally stored expenses for one business-owned vehicle; no payment is initiated.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
vehiclestringRequired
pattern: "^vehicle_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_...`) of the parent vehicle; nested IDs are valid only under this vehicle.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Get a vehicle expense
GET
Returns one vehicle expense scoped through its owning vehicle.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
vehiclestringRequired
pattern: "^vehicle_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_...`) of the parent vehicle; nested IDs are valid only under this vehicle.
expensestringRequired
pattern: "^vehicle_expense_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_expense_...`) of the expense under the parent vehicle.
Addresses and code examples appear once API access is on for your business.
List vehicle maintenance records
GET
Lists stored maintenance records for one business-owned vehicle.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
vehiclestringRequired
pattern: "^vehicle_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_...`) of the parent vehicle; nested IDs are valid only under this vehicle.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Create a vehicle maintenance record
POST
Creates a dated maintenance record with whole-mile mileage and optional reportee/details.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
vehiclestringRequired
pattern: "^vehicle_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_...`) of the parent vehicle; nested IDs are valid only under this vehicle.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Get a vehicle maintenance record
GET
Returns one maintenance record scoped through its owning vehicle.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
vehiclestringRequired
pattern: "^vehicle_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_...`) of the parent vehicle; nested IDs are valid only under this vehicle.
maintenancestringRequired
pattern: "^vehicle_maintenance_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_maintenance_...`) of the maintenance row under the parent vehicle.
Addresses and code examples appear once API access is on for your business.
Update a vehicle maintenance record
PATCH
Updates supplied maintenance fields without changing the owning vehicle.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
vehiclestringRequired
pattern: "^vehicle_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_...`) of the parent vehicle; nested IDs are valid only under this vehicle.
maintenancestringRequired
pattern: "^vehicle_maintenance_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_maintenance_...`) of the maintenance row under the parent vehicle.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
List a vehicle's odometer readings
GET
Lists immutable odometer readings for one business-owned vehicle in recorded-time order.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
vehiclestringRequired
pattern: "^vehicle_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_...`) of the parent vehicle; nested IDs are valid only under this vehicle.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Record a vehicle odometer reading
POST
Records one independent whole-mile odometer observation for the vehicle; it does not rewrite maintenance records.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
vehiclestringRequired
pattern: "^vehicle_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vehicle_...`) of the parent vehicle; nested IDs are valid only under this vehicle.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Team & operations
Vendors
4 actionsList vendors
GET
Returns a paginated list of suppliers owned by the current business, optionally narrowed by the documented search filters.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
qstring
maximum length: 100 · Literal case-insensitive contains search over the documented business-facing fields; %, _, and = are treated as ordinary text.
pageinteger
default: 1; minimum: 1 · One-based page number for this stable ordered result set.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records returned per page, from 1 through 100.
Addresses and code examples appear once API access is on for your business.
Create a vendor
POST
Creates a supplier record owned by the current business and returns its assigned API ID.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Get a vendor
GET
Returns one supplier only when it belongs to the current business and is visible to the caller.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
vendorstringRequired
pattern: "^vendor_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vendor_...`) of the vendor path resource.
Addresses and code examples appear once API access is on for your business.
Update a vendor
PATCH
Updates only the supplied mutable fields on a supplier owned by the current business; omitted fields retain their stored values.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
vendorstringRequired
pattern: "^vendor_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`vendor_...`) of the vendor path resource.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Marketing & website
Marketing
8 actionsList stored marketing audiences
GET
Lists stored marketing audience definitions and last-calculated counts without recalculation.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Get a stored marketing audience
GET
Returns one business-owned audience, validated conditions and last-calculated counts.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
audiencestringRequired
pattern: "^audience_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`audience_...`) of the stored marketing audience.
Addresses and code examples appear once API access is on for your business.
List email delivery campaigns
GET
Lists stored delivery campaign definitions and their persisted delivery counters without sending or recalculating.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Get an email delivery campaign
GET
Returns one business-owned delivery campaign and its linked email/audience identities.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
campaignstringRequired
pattern: "^campaign_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`campaign_...`) of the delivery campaign.
Addresses and code examples appear once API access is on for your business.
List campaign email Canvas components
GET
Returns the existing campaign.marketing.v1 catalog for this business and performs no initialization.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Addresses and code examples appear once API access is on for your business.
List campaign email metadata
GET
Lists owned nondeleted emails that have a Live Canvas composition without loading full block documents.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Get campaign email metadata
GET
Returns one business-owned campaign email and its stored composition version.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
emailstringRequired
pattern: "^marketing_email_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`marketing_email_...`) of the campaign email.
Addresses and code examples appear once API access is on for your business.
Get a campaign email canvas document
GET
Returns the current validated stored composition and optimistic lock version. Documents larger than 2 MiB are refused.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
emailstringRequired
pattern: "^marketing_email_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`marketing_email_...`) of the campaign email.
Addresses and code examples appear once API access is on for your business.
Marketing & website
Automations
8 actionsRead the current automation builder catalog
GET
Returns the code-owned triggers, actions, recipients, condition fields and delay choices accepted by validation.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Addresses and code examples appear once API access is on for your business.
List safe automation run history
GET
Lists stored automation execution history; reading it never reruns an action.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
viewstring
enum: "all", "attention", "scheduled" · Selects the stored automation-history view.
statusstring
enum: "completed", "partial", "failed", "scheduled", "overdue", "skipped", "canceled" · Code-owned lifecycle state filter; omission includes every allowed state.
action_typestring
enum: "email", "sms", "notification", "internal" · Filters history by channel: email, sms, notification (pushes only) or internal (every action that is neither an email nor a text).
sortstring
enum: "newest", "oldest" · Selects the documented deterministic history order.
querystring | null
maximum length: 100 · Bounded text filter over documented history fields.
automationstring | null
maximum length: 120; pattern: "^(?:automation_[0-9a-hjkmnp-tv-z]{26}|name-[a-z0-9-]*)$" · API ID (`automation_...`) of the business-owned automation, or the `name-…` key of a deleted automation. Any other value is refused with 422.
fromstring
format: "date" · Inclusive lower business-local date.
tostring
format: "date" · Inclusive upper business date, or documented exclusive instant where stated.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
List visible automation rules
GET
Lists the same scoped automation definitions shown by the Automation Center without executing or replaying them.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
activeboolean
Filters by active/inactive state when supplied; omission includes both states.
qstring | null
maximum length: 100 · Case-insensitive bounded text search; omission performs no text filtering.
trigger_eventstring
enum: "request.submitted", "request.approved", "quote.created", "quote.approved", "quote.rejected", "quote.changes_requested", "quote.expired", "invoice.created", "invoice.paid", "invoice.overdue", "invoice.disputed", "job.created", "job.started", "job.completed", "job.canceled", "visit.created", "visit.completed", "visit.canceled", "order.created", "order.completed", "order.canceled", "order.paid", "order.payment_declined", "order.confirmed", "payment.succeeded", "payment.failed", "payment.refunded", "customer.created", "customer.invitation_requested", "customer.inactive", "call.missed", "call.voicemail_received", "message.received", "storage.nearing_limit", "ai.reply_drafted", "ai.escalated" · Filters by the code-owned trigger event.
actionstring
enum: "send_sms", "send_email", "send_push", "create_follow_up", "create_task" · Filters by the code-owned automation action.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Create an automation draft
POST
Creates one automation definition; no historical trigger is replayed.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Validate a complete automation definition without saving or delivering
POST
Validates an automation draft against the current catalog without saving or executing it.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Addresses and code examples appear once API access is on for your business.
Read an automation rule
GET
Returns one Automation Center-visible business-owned definition and its current enabled state.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
automationstringRequired
pattern: "^automation_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`automation_...`) of the business-owned automation.
Addresses and code examples appear once API access is on for your business.
Update an automation
PATCH
Updates the supplied definition fields under the current ETag without executing the automation.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
automationstringRequired
pattern: "^automation_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`automation_...`) of the business-owned automation.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Turn an automation on or off
PUT
Enables or disables one automation definition under the current ETag; it does not replay missed triggers.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
automationstringRequired
pattern: "^automation_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`automation_...`) of the business-owned automation.
If-MatchstringRequired
minimum length: 1 · The opaque ETag from the latest record read. Missing: 428; stale: 412.
BizBaby sets it: the ETag from your latest read of this record.
Idempotency-Keystring
format: "uuid" · Optional for PUT, PATCH and DELETE. Supply a stable UUID to obtain the same safe receipt/replay behavior as POST. Reuse it only for identical input within the 24-hour retry window.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
Marketing & website
Website
4 actionsList website component field definitions
GET
Returns active addable component schema metadata without mutation handlers or preset controls.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Addresses and code examples appear once API access is on for your business.
List editable website pages
GET
Returns active organisation V2 pages allowed by the current page plan. This read does not initialize page content or rebuild the site.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Get website page metadata
GET
Returns one business-owned V2 website page; template-owner and foreign pages are unavailable.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
pagestringRequired
pattern: "^website_page_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`website_page_...`) of the owned V2 website page.
Addresses and code examples appear once API access is on for your business.
Get structured website page content
GET
Returns body text and structured object fields. Executable markup, style, script, action, attribute and code settings are omitted.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
pagestringRequired
pattern: "^website_page_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`website_page_...`) of the owned V2 website page.
Addresses and code examples appear once API access is on for your business.
Reports, search & account
Reports
4 actionsRead collected financial summary
GET
A business-local inclusive period, limited to 366 days. Required dependency scopes follow the included appointment/job scope.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
fromstringRequired
format: "date" · Inclusive lower business-local date.
tostringRequired
format: "date" · Inclusive upper business date, or documented exclusive instant where stated.
scopestring
enum: "appointments", "jobs", "both" · Selects appointment, job or combined revenue sources. Omitted: every source the caller may read (both when it may read all), with the rest named in excluded_sources; an explicit value is refused with scope_denied when its scopes are missing.
Addresses and code examples appear once API access is on for your business.
Read itemized work-date report
GET
Returns paged appointment, recurring-payment and job revenue rows while calculating totals over the full filtered result.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
fromstringRequired
format: "date" · Inclusive lower business-local date.
tostringRequired
format: "date" · Inclusive upper business date, or documented exclusive instant where stated.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Read collected sales buckets
GET
Returns canonical collected revenue totals grouped into business-calendar buckets.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
fromstringRequired
format: "date" · Inclusive lower business-local date.
tostringRequired
format: "date" · Inclusive upper business date, or documented exclusive instant where stated.
scopestring
enum: "appointments", "jobs", "both" · Selects appointment, job or combined revenue sources. Omitted: every source the caller may read (both when it may read all), with the rest named in excluded_sources; an explicit value is refused with scope_denied when its scopes are missing.
group_bystringRequired
enum: "day", "month", "year" · Calendar unit used for returned revenue buckets.
Addresses and code examples appear once API access is on for your business.
Read stored territory performance
GET
Uses stored ZIP centroids, service zones and collected revenue; it performs no provider geocoding or refresh.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
daysinteger
default: 90; enum: 30, 90, 365 · Fixed lookback window in business calendar days.
Addresses and code examples appear once API access is on for your business.
Reports, search & account
Search
1 actionSearch authorized business records
GET
Searches authorized business records by exact name, partial name, or a bounded similar spelling. Similar results are candidates only and are never reported as exact. Each requested type requires its own product read scope; excluded_types names requested sources omitted for lack of scope.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
qstringRequired
minimum length: 1; maximum length: 80 · Required literal case-insensitive search text, trimmed before execution. %, _, and = are ordinary characters and never wildcards.
typesarray
minimum items: 1; items must be unique · Requested public search record families; omission requests every supported family and inaccessible families are excluded.
limitinteger
default: 4; minimum: 1; maximum: 5 · Maximum results returned per requested search family. Results are ranked exact, prefix, contains, then normalized title and ID.
Addresses and code examples appear once API access is on for your business.
Reports, search & account
Business alerts
2 actionsList business alerts requiring attention
GET
Lists persisted business alerts requiring attention for the acting user’s current inbox audiences; it does not dismiss or mark alerts read.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
statestring
enum: "open", "resolved", "dismissed", "all" · Code-owned lifecycle state filter; omission includes every allowed state.
typeAttentionType
Code-owned business-alert type filter; omission includes all types visible to the actor.
qstring
maximum length: 100 · Case-insensitive bounded text search; omission performs no text filtering.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Count business alerts requiring attention
GET
Counts persisted business alerts requiring attention by lifecycle state using the same audience and text/type filters as the list.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
typeAttentionType
Code-owned business-alert type filter; omission includes all types visible to the actor.
qstring
maximum length: 100 · Case-insensitive bounded text search; omission performs no text filtering.
Addresses and code examples appear once API access is on for your business.
Reports, search & account
References
1 actionResolve record references to owner-facing names
POST
Resolves up to 100 typed record API IDs in one bounded query. Results stay scoped to the connected business and the token's product read permissions. Missing, foreign, inactive, and unauthorized references all return resolved=false so the response does not disclose cross-business existence.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Addresses and code examples appear once API access is on for your business.
Reports, search & account
QuickBooks
6 actionsRead stored QuickBooks connection status
GET
Returns the current business's locally stored QuickBooks connection and synchronization status without contacting QuickBooks.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Addresses and code examples appear once API access is on for your business.
List stored QuickBooks issues
GET
Lists locally stored QuickBooks integrity issues for the current business and requested coverage lane; it does not repair them.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
statestring
enum: "open", "resolved" · Code-owned lifecycle state filter; omission includes every allowed state.
openboolean
Boolean shortcut for open versus resolved QuickBooks issues.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Read one stored QuickBooks issue
GET
Returns one locally stored business-owned QuickBooks integrity issue with its safe explanation and repair state.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
issuestringRequired
pattern: "^quickbooks_issue_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`quickbooks_issue_...`) of the local QuickBooks issue pointer.
Addresses and code examples appear once API access is on for your business.
List local QuickBooks projections
GET
Lists allowed local QuickBooks projections for the requested object type; it performs no provider read, export, or repair.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
statestring
enum: "success", "failed", "unknown", "missing" · Code-owned lifecycle state filter; omission includes every allowed state.
kindstring
enum: "customer", "invoice", "payment", "refund", "stripe_money", "payout_transfer" · Code-owned record/table discriminator; combine it with the bill ID.
currentboolean
default: true · When true, excludes archived QuickBooks projections; omission follows the documented true default.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Read one local QuickBooks projection
GET
Returns one allowed business-owned local QuickBooks projection by type and API ID without contacting QuickBooks.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
objectstringRequired
pattern: "^quickbooks_object_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`quickbooks_object_...`) of the local QuickBooks projection row.
Addresses and code examples appear once API access is on for your business.
Read local QuickBooks run progress
GET
Returns progress already stored for one local QuickBooks run; reading it neither clears claims nor starts or resumes work.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
run_idstringRequired
pattern: "^quickbooks_run_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`quickbooks_run_...`) of the QuickBooks sync run.
Addresses and code examples appear once API access is on for your business.
Reports, search & account
Account
7 actionsList stored platform bills
GET
Lists stored business bills for the requested year without charging or retrying payment.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
yearinteger
minimum: 2000 · Four-digit calendar year used to filter stored bills.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Read one stored platform bill by kind
GET
Returns one type-qualified stored bill by its API ID.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
kindstringRequired
enum: "usage", "monthly", "extra-charge", "refund" · Code-owned record/table discriminator; combine it with the bill ID.
billstringRequired
pattern: "^bill_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`bill_...`) within the selected bill kind.
Addresses and code examples appear once API access is on for your business.
Read the current platform plan
GET
Returns the business’s stored active plan snapshot and feature names without billing mutation.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Addresses and code examples appear once API access is on for your business.
Read stored monthly usage reports
GET
Returns stored usage totals for the requested calendar month without provider refresh.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
monthstring
pattern: "^[0-9]{4}-(0[1-9]|1[0-2])$" · Calendar month in YYYY-MM format; omission uses the operation’s documented current month behavior.
Addresses and code examples appear once API access is on for your business.
Read the safe business profile
GET
Returns the current business profile fields exposed to the API; no account setting is changed.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Addresses and code examples appear once API access is on for your business.
Read permitted implemented operations
GET
Returns operation availability computed from current business role, plan and platform action availability.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Addresses and code examples appear once API access is on for your business.
Read stored storage usage
GET
Returns stored file-usage totals for the requested month without scanning or deleting files.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
monthstring
pattern: "^[0-9]{4}-(0[1-9]|1[0-2])$" · Calendar month in YYYY-MM format; omission uses the operation’s documented current month behavior.
Addresses and code examples appear once API access is on for your business.
Reports, search & account
Authentication
1 actionRead the current credential connection
GET
Returns non-secret metadata for the bearer credential currently authenticating the request, including its live effective scopes and policy revision.
Addresses and code examples appear once API access is on for your business.
Reports, search & account
API activity history
2 actionsList administrator API request activity
GET
Lists up to a 90-day UTC window of redacted audit events for the business. Owner/admin Wingman access may read this history when Account and storage access is enabled; secrets and request bodies remain excluded.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
fromstring
format: "date" · UTC start date. Defaults to 89 days before to.
tostring
format: "date" · UTC inclusive end date. The range may span at most 90 days.
productstring
maximum length: 80 · Code-owned product key used to filter administrator API activity.
operationstring
maximum length: 80 · Exact API operation ID used to filter administrator activity.
outcomestring
enum: "success", "denied", "validation_error", "conflict", "rate_limited", "server_error", "indeterminate" · Code-owned audit outcome filter.
user_idstring
pattern: "^user_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`user_...`) of the acting business user.
grant_idstring
format: "uuid" · Non-secret UUID of an API grant.
request_idstring
format: "uuid" · Server-issued request UUID used for end-to-end audit correlation.
pageinteger
default: 1; minimum: 1 · One-based page number within the currently filtered result set. Keep the same filters when following subsequent pages.
per_pageinteger
default: 25; minimum: 1; maximum: 100 · Maximum records to return on this page. This limits page size, not the full filtered total.
Addresses and code examples appear once API access is on for your business.
Read administrator API request activity
GET
Returns one redacted business-owned audit event. Wingman credentials cannot read this history.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
audit_eventstringRequired
pattern: "^audit_event_[0-9a-hjkmnp-tv-z]{26}$" · API ID (`audit_event_...`) of the redacted API audit event.
Addresses and code examples appear once API access is on for your business.
Reports, search & account
Support Tickets
1 actionSubmit a BizBaby platform support ticket
POST
Creates a ticket for BizBaby platform support after Wingman has presented the exact ticket for owner confirmation. This is not a customer ticket. Page, device, skin, viewport, and observed error context may be included; the full conversation is never attached. Private Wingman image IDs may be copied to the ticket when they belong to the same owner, business, and conversation history.
Parameters
business_idstringRequired
pattern: "^business_[0-9a-hjkmnp-tv-z]{26}$" · The business's API ID (`business_...`). The server rejects a different business; this path parameter cannot switch tenants. Trusted clients obtain it from their connection rather than asking the owner.
Idempotency-KeystringRequired
format: "uuid" · A stable UUID for the same logical request. Reusing it with different input returns 409. Mutation retry window: 24 hours; receipts retained for 30 days.
Your software makes it: a new UUID for each change.
Addresses and code examples appear once API access is on for your business.
No actions match this search.