Base URL
All API requests should be made to:Do not include a trailing slash in the base URL. Endpoints are appended
directly, e.g.,
https://api.bizzyco.ai/v1/contacts.v1 being the current stable version. When breaking
changes are introduced, a new version will be released.
Request Format
The API accepts JSON-encoded request bodies and returns JSON-encoded responses.Required Headers
Response Headers
Every authenticated API response includes these headers:
See Rate Limits for per-plan limits and how to
handle
429 responses.
Shared conventions
Every endpoint in the API follows the same conventions for response shape, pagination, errors, timestamps, and IDs. Once you’ve learned them here, you can skim the resource-specific reference pages without rediscovering them each time.Response envelope
All successful responses wrap the payload in adata field:
meta.pagination block:
hasMore is computed server-side. total is included when the underlying query
can provide it cheaply; otherwise it is omitted and you should rely on hasMore
to know when to stop paginating. The request identifier is returned in the
X-Request-ID response header, not in the body.
When
total is omitted, hasMore is inferred from whether the page
returned exactly limit items. This means a page that happens to fill
exactly to limit will report hasMore: true even if it is the last page —
your next request will simply return an empty data array. Always stop
paginating when you receive an empty page, not just when hasMore becomes
false.Pagination
List endpoints accept three query parameters:
The API is offset-based; cursor-based pagination is not available today.
Error responses
Errors use a single consistent shape:details is present on validation errors and omitted otherwise. Validation
errors are returned as a tree mirroring the request body: each node has an
errors array (issues that apply at that path), and object nodes additionally
have a properties map keyed by field name. The top-level errors array
carries issues that apply to the request as a whole. Status codes you’ll see:
See Error Handling for the full list of error codes.
Soft deletes
DELETE endpoints perform soft deletes: the record is retained with a
deletedAt timestamp set. Soft-deleted records are filtered out of list and get
responses — there is currently no query flag to include them. If you need to
recover a record, contact support.
Timestamps and IDs
- Timestamps are ISO 8601 UTC strings, e.g.,
2024-01-15T09:30:00Z. Every resource returnscreatedAtandupdatedAt, plus a nullabledeletedAt. - Identifiers are UUID v4 strings (for example,
550e8400-e29b-41d4-a716-446655440000). Every resource usesidas its primary key, and foreign keys follow the<resource>Idconvention (contactId,businessId, etc.).
SDKs
Official SDKs for TypeScript and Python are coming soon. In the meantime,
you can use the REST API directly with any HTTP client.
OpenAPI Specification
The Bizzy API is documented using OpenAPI 3.1. You can access the specification at:Next Steps
Authentication
Learn how to create and use API keys
Error Handling
Understand error responses and codes