https://docs.breakcold.com/api/changelog/rss.xml to your RSS reader.
Cleaned API Error Responses
REST and MCP error responses now return stable, caller-facing messages without internal stack frames.Changes
- Removes uncaught-error prefixes and internal stack frames from error messages.
- Preserves status codes and error codes for recognized API failures.
- Applies consistent message handling to MCP tool and request errors.
Consistent API Error Responses
REST and MCP consumers now receive consistent caller errors for expected validation, authorization, and conflict cases.Changes
- Expected errors retain their response data, message, and status behavior across REST and MCP.
- Validation failures before writes return structured caller errors.
- Failures after a write continue to roll back the transaction.
List Conversation Attendees
A new endpoint exposes all participants in an inbox conversation, including large groups whose list is truncated.Changes
- Added GET /conversations/{conversationId}/attendees.
- Added cursor pagination with data and pagination fields.
- Conversation responses may include attendeesTruncated when participant data is incomplete.
Migration
- Use the attendees endpoint when attendeesTruncated is true.
- Follow pagination.cursor while pagination.hasMore is true.
Public API request accounting changes
Public API request processing now separates authorization from rate-limit reservation and records write-route usage after successful handling.Changes
- Requests reserve applicable organization, actor, route, API-key, and workspace rate-limit buckets.
- Rate-limited responses include retry timing and workspace context when applicable.
- Write-route usage fees are recorded separately from the write transaction.
- Fallback processing preserves bucket enforcement when the combined reservation path fails.
Select Record List Fields
Records list consumers can request only selected fields, reducing unnecessary response data.Changes
- Added optional REST
fieldsquery parameter using comma-separated slugs or field definition IDs. - Added MCP support for
fieldsarrays, converted to the REST selection format. - Repeated REST
fieldsparameters are combined into one selection. - Unknown or hidden field selections return a 400 error.
- Zapier and Make records-list modules expose the optional fields parameter.
Migration
- No migration is required; add
fieldsonly when you want to limit returned record fields.
Valid Authorization Error Headers
REST API authorization errors now use safe, concise descriptions that remain valid HTTP header values.Changes
- Sanitized authorization error descriptions before returning them in WWW-Authenticate headers.
- Removed stack traces and unsupported characters from missing-scope messages.
- Preserved the insufficient_scope error code and HTTP 403 response.
Added Image Callback Endpoints
Two authenticated REST endpoints now support image upload URL generation and completion reporting.Changes
- Added POST /image-fetcher/upload-urls for requesting temporary upload URLs.
- Added POST /image-fetcher/complete for reporting stored, failed, or deferred image fetches.
- Endpoints require the existing shared-secret authentication mechanism.
Inbox responses identify connected accounts
Inbox REST, MCP, Zapier, and Make responses now identify the connected account associated with each conversation and message.Changes
- Conversation responses include required workspaceIntegrationAccountId.
- Message responses include required workspaceIntegrationAccountId.
- Conversation attendees expose isSelf and channel-specific identifiers.
- Generated Zapier and Make schemas include the new fields.
Migration
- Update consumers to read workspaceIntegrationAccountId from conversation and message responses.
- Regenerate or refresh integrations using the updated Zapier and Make schemas.
Public API Billing Changed
Public API requests now record usage fees against plan usage rather than deducting token balances.Changes
- API route fees are recorded through usage billing.
- Token balance preflights and deductions are no longer used.
- Developer console request records no longer expose token billing amounts or totals.
- Token-based insufficient-balance responses are no longer part of API billing.
Migration
- Remove integrations that read token billing fields or depend on token balance checks.
- Use plan usage and request outcomes instead of token balances for billing-related reporting.
Inbox Send Errors Become Actionable
REST API inbox-send failures now return specific statuses and codes for common provider and account conditions.Changes
- Subscription-required failures return HTTP 402 with subscription_required.
- Unreachable recipients return HTTP 422 with recipient_unreachable.
- Rate limits return HTTP 429 with rate_limited.
- Disconnected or unavailable sending accounts return HTTP 409 with account-specific codes.
- Provider timeouts return HTTP 504 with provider_timeout.
Migration
- Handle the new error status codes and codes instead of treating these send failures as generic HTTP 500 errors.
API Usage Fees Are Enforced
Public API and MCP requests now reserve and record usage using each route’s configured fee.Changes
- Usage preflight checks the specific route fee instead of a generic estimate.
- Read and write routes record their configured fees in usage events.
- Enforced usage limits can reject requests based on the route-specific charge.
Public API Usage Limits
Public API requests can now be blocked by usage limits and report structured reset information.Changes
- Requests exceeding an enforced usage window return HTTP 402 with code usage_limit.
- Usage-limit details include the affected window, plan, lane, reset time, and retry timing.
- Requests under usage enforcement are recorded against the usage model instead of token balances.
Migration
- Handle HTTP 402 responses with code usage_limit.
- Use the returned reset timing before retrying, or direct users to an available reset or upgrade option.
Expanded REST Integration Capabilities
REST, Zapier, and Make integrations now expose note deletion, linked conversation records, and record-filtered meeting searches.Changes
- Added DELETE /notes/{noteId}, requiring the notes:write scope and returning the deleted note ID.
- Added linkedRecords to conversation-related responses, with record ID, object type, and name.
- Added optional recordId filtering to meeting list operations.
- Published the new note deletion action in Zapier and Make.
Migration
- Add the new note deletion operation only if your integration needs it.
- Handle linkedRecords and the optional recordId parameter when consuming updated schemas.
Expanded conversation integration fields
REST, Zapier, and Make consumers can use additional conversation timing fields, reply-status filtering, and task conversation context.Changes
- Conversation responses expose the latest inbound and outbound message timestamps.
- Conversation search supports an optional awaitingReply filter.
- Task updates accept an optional conversation identifier.
Normalize Saved View Requests
REST view creation and updates now normalize supported configuration formats and return actionable client errors.Changes
- View filters receive required identifiers, values, and field references when omitted.
- Sorting and column references can be resolved from supported field names.
- Invalid view configurations return HTTP 400 errors with the failing field or path.
- Chat-originated internal API failures include a request reference for support.
Migration
- Update clients to send valid view configuration fields and handle HTTP 400 validation errors.
Accept Option Labels
REST and Make integrations can now submit select values using case-insensitive option labels or existing option IDs.Changes
- Select and multiselect values accept trimmed, case-insensitive labels.
- Internal option values are also accepted.
- Unknown and ambiguous labels return descriptive validation errors.
- Invalid workspace IDs return a named validation error.
Conversation record links added
REST, MCP, Zapier, and Make now support linking inbox conversations to CRM records.Changes
- Added conversation-to-record link creation with idempotent responses.
- Added conversation-to-record unlinking with idempotent responses.
- Added corresponding Zapier and Make actions.
- Added MCP tools for linking and unlinking conversations.
List Conversation Drafts
REST, Zapier, Make, and MCP consumers can list the authenticated user’s conversation drafts with pagination.Changes
- Added the paginated GET /inbox/drafts endpoint.
- Added corresponding Zapier and Make search modules.
- Added MCP support for listing private conversation drafts.
- Draft-setting responses now include replacedExisting.
Migration
- Update clients that validate draft-setting responses to accept the required replacedExisting boolean.
- Use cursor pagination when reading /inbox/drafts.
Affiliate HTTP Endpoints Added
Affiliate integrations can now send click, regional, and peer activity through dedicated HTTP endpoints.Changes
- Added POST /affiliate/click for public affiliate click tracking.
- Added token-authenticated POST /affiliate/peer for regional activity reporting.
- Added token-authenticated POST /affiliate/region for affiliate regional operations.
- Added charge.refunded webhook handling for affiliate reward adjustments.
Chat API Contract Updates
The in-app chat API can now aggregate records without exposing the route through public REST or hosted MCP.Changes
- Added chat-only records aggregation with counts, sums, grouping, filters, and time periods.
- Added in-app actor support for chat API execution.
- Malformed record identifiers now return structured invalid-id errors.
- Chat-originated requests use request idempotency and are logged with their source.
Expanded Conversation Search
The conversation search operation now searches additional conversation and participant fields with relevance-based results.Changes
- Search covers participant names, email addresses, phone numbers, linked-record names, subjects, and message snippets.
- Results are ordered by relevance rather than message date.
- The final search term supports prefix matching; typo correction is not provided.
- Search cursors must be reused with the same search parameters.
Organization moves return routing details
REST and MCP requests for moved organizations now return a 421 response with routing details for replaying the request.Changes
- Moved organizations return error code organization_moved with HTTP status 421.
- Responses include the destination region and organization ID headers.
- The behavior applies to API keys, OAuth grants, and requests after source-region cleanup.
Migration
- Update clients to recognize HTTP 421 and organization_moved.
- Replay the request against the destination region or the universal REST/MCP endpoint.
Developer Console API Updates
Developer-console responses now expose structured actor, key, workspace, permission, and usage data.Changes
- Developer-console responses include accessible workspaces and workspace roles.
- Actor and API-key details include scopes, statuses, expiration, usage, and workspace access.
- Usage summaries include request counts, status categories, billed token totals, and recent requests.
- API-key creation responses return the new key identifier, secret, and prefix.
Concurrent API requests handled reliably
Public API rate limiting now distributes per-key reservations across shards, reducing avoidable failures during concurrent requests.Changes
- Per-organization, workspace, actor, API-key, and route rate-limit buckets now use 20 shards.
- Concurrent requests can reserve rate-limit capacity without contending on a single bucket record.
- Billing and request logging continue through the same internal settlement flow.
Remove FullEnrich Webhook
The FullEnrich webhook callback route has been removed from production.Changes
- POST /fullenrich/webhook no longer accepts FullEnrich callback requests.
- Webhook callers will receive a not-found response instead of callback processing.
Migration
- Stop sending callbacks to /fullenrich/webhook.
- Move to the currently supported enrichment completion workflow.
Recording Connection Flag Handling
Recording connection requests now allow providers that do not define a recording feature flag.Changes
- Providers without a recording feature flag are no longer blocked by feature-flag checks.
- Providers with a configured recording flag continue using organization and user eligibility checks.
Email Webhook Endpoint Changed
The production email delivery webhook now accepts Cloudflare Email Service events at a new endpoint.Changes
- POST /resend-webhook was replaced by POST /email/cloudflare-events.
- The endpoint now processes Cloudflare email delivery event batches.
Migration
- Update webhook producers to POST Cloudflare event batches to /email/cloudflare-events.
- Stop sending events to /resend-webhook.
Webhook Endpoint Responses
Outbound webhook endpoint reads now return endpoints created by automation integrations, including their integration metadata.Changes
- Webhook endpoint responses include optional automation metadata such as source and integration platform.
- Zapier-created endpoints can be read successfully through the existing endpoint query.
Streamlined API request handling
Public API requests now preflight rate limits and settle billing and request logs through consolidated production paths.Changes
- Rate-limit checks now occur in a single preflight operation before authorization continues.
- Fixed-price API billing and request logging are settled together.
- API-key authentication can return usage metadata while preserving existing authentication results.
- Rate-limit failures return the existing 429 response behavior with retry timing.
Payment Webhook and Billing Updates
REST integrations now receive processing for successful or failed asynchronous checkout payments, while billing settlement uses the updated usage flow.Changes
- Checkout session asynchronous payment success events now use the completed-checkout handler.
- Checkout session asynchronous payment failure events now use the completed-checkout handler.
- Public API billing settlement now routes usage debits through the current settlement flow.
Add Nylas ownership endpoint
A new authenticated REST endpoint reports active workspace ownership for batches of Nylas grant IDs.Changes
- Added POST /cross-region/nylas-grant-ownership.
- Accepts 1 to 25 unique grant IDs per request.
- Returns the Nylas application ID and active link count for each grant.
- Requires the x-cross-region-token header.
Migration
- Configure the shared cross-region check token.
- Send authenticated POST requests with a grantIds array containing up to 25 unique IDs.
Preserve Field Read-Only State
CRM field updates now preserve read-only behavior for automatic and formula fields.Changes
- Automatic system fields remain read-only when their metadata is updated.
- Disabling a custom formula makes the field editable.
- CRM metadata updates now apply the same read-only rules as the application.
Inbox read authorization
REST and MCP inbox read endpoints now enforce conversation-level access for user actors.Changes
- Record conversation lists filter out conversations the authenticated user cannot read.
- Message list and message detail requests reject inaccessible conversations.
- Explicit conversation permissions allow authorized user reads.
- Application actors retain organization-scoped inbox access.
Add Fireflies Webhook Endpoint
A new production webhook route accepts Fireflies meeting events for native connections.Changes
- Added POST handling for Fireflies webhook URLs.
- Legacy or retired Fireflies connections now return HTTP 404.
Migration
- Configure Fireflies to send events to the new webhook URL for native connections.
- Stop using legacy Fireflies webhook connections before retirement.
Webhook Rate Limit Tracking
Webhook delivery processing continues using the existing workspace quota while rate-limit tracking is distributed across shards.Changes
- Webhook endpoints continue enforcing a 350-request burst capacity per workspace.
- Rate-limit accounting now distributes requests across ten internal workspace shards.
- Existing webhook delivery statistics include both legacy and newly sharded rate-limited records.
Added internal SSO store endpoint
Added an authenticated internal REST endpoint for central SSO session coordination.Changes
- Added POST /internal/sso/store for authenticated internal SSO reads and writes.
- Requests require signed authentication and replay protection.
- Invalid requests return structured authentication or availability errors.
Integration Catalogue Endpoint
External developers can retrieve published integration catalogue data through new authenticated HTTP routes.Changes
- Added GET /public/integrations/crm for the published integration list.
- Added GET /public/integrations/crm/{slug} for integration details.
- Responses expose public catalogue fields, including logos and screenshots, without internal identifiers.
Secure Granola Webhooks
Granola webhook deliveries now require signature verification and use event identifiers for idempotent processing.Changes
- Granola webhook requests are authenticated using Standard Webhooks signatures.
- Granola event identifiers are used to derive stable request identities.
- Webhook enablement is evaluated using the provider-specific recording feature flag.
Aircall Webhook Endpoint Added
Production now accepts Aircall webhook events through a dedicated calling webhook route.Changes
- Added POST support for Aircall webhook requests under /calling/webhooks/.
- Processes call lifecycle events for calling integrations.
Migration
- Configure Aircall to send call webhooks to the new production endpoint.
Remove Attachment Download Endpoint
The record email attachment download route has been removed from production.Changes
- GET /record-email-attachment-download is no longer available.
- Requests to the removed route will no longer download record email attachments.
Migration
- Stop calling the removed route and remove dependent attachment-download workflows.
Regional MCP OAuth Compatibility
Legacy regional MCP endpoints now proxy MCP traffic and discovery requests through the universal gateway.Changes
- Regional MCP requests are forwarded to the universal MCP gateway.
- Regional OAuth discovery endpoints advertise the universal gateway.
- Existing MCP request methods, query parameters, authorization, sessions, and bodies are preserved.
Identity Resolution API Safeguards
REST APIs now prevent ambiguous record creation and reject direct changes to source-managed tasks.Changes
- Record creation now blocks identity matches requiring review instead of silently creating a potentially duplicate record.
- Repeated requests with the same idempotency key can return the existing operation without emitting a duplicate creation event.
- Updates to source-managed tasks reject changes to title, description, due date, or status.
- Manual deletion of source-managed tasks is rejected.
- Identity-resolution conflicts are returned as structured HTTP 409 conflict errors.
Migration
- Handle HTTP 409 conflicts for identity matches and route them to review.
- Do not update or delete source-managed tasks directly; resolve them through the task workspace.
OAuth scopes are now required
OAuth-authenticated REST and MCP requests now require recognized Breakcold API scopes.Changes
- Authorization requests reject empty or unsupported scopes with invalid_scope.
- Access tokens retain only scopes approved in the grant.
- Gateway-authenticated requests reject missing or unknown-only scopes with insufficient_scope.
- Verified OAuth JWTs must contain at least one recognized public API scope.
Migration
- Update OAuth authorization requests to include one or more supported Breakcold API scopes.
- Ensure clients handle invalid_scope and insufficient_scope responses.
Strengthen Webhook Secrets
New outbound webhook and integration signing secrets now contain 256 bits of cryptographically secure randomness.Changes
- New signing secrets use the whsec_ prefix followed by 64 hexadecimal characters.
- Outbound webhook signature verification remains HMAC-SHA256 compatible.
- New bearer secret identifiers are 64-character hexadecimal values.
Record-Scoped Inbox Access
Public API conversation access now requires record links for record-scoped permissions.Changes
- Users with record-scoped read permission can access only conversations linked to a CRM record.
- Users with record-scoped reply permission can reply only to conversations linked to a CRM record.
- Users with all-message permissions retain access without a record link.
Public API Rate Limit Scaling
Public API rate limiting now distributes capacity across multiple shards to better handle concentrated request traffic.Changes
- Public API rate-limit capacity is distributed across 20 shards.
- Concurrent API traffic is less likely to contend on a single rate-limit record.
Email Unsubscribe Endpoint Added
Production email unsubscribe handling is now available through a public HTTP endpoint.Changes
- Added GET /email/unsubscribe for displaying unsubscribe confirmation.
- Added POST /email/unsubscribe for human-confirmed and RFC 8058 one-click unsubscribe requests.
- POST requests return idempotent success responses for repeated unsubscribe actions.
MCP Sending Requires Confirmation
MCP outbound message tools now return a draft preview unless delivery is explicitly requested.Changes
- inbox_conversations_compose accepts sendMode=“draft” or “send”.
- inbox_messages_send accepts sendMode=“draft” or “send”.
- Omitting sendMode returns a non-sending preview.
- sendMode=“send” preserves immediate delivery behavior.
- Invalid sendMode values return an error.
Migration
- Add sendMode=“send” to calls intended to deliver messages immediately.
- Handle draft responses with sent=false and confirmationRequired=true.
Make Synchronization Handles Relationships
Make app synchronization now reads and maintains connection and webhook relationships when comparing or updating components.Changes
- Webhook connection relationships are retrieved when list responses omit them.
- Instant-trigger module webhook relationships are retrieved before synchronization.
- Component updates preserve configured connections, CRUD settings, and webhook associations.
- Deployment drift errors include the specific actions required to reconcile differences.
MCP Pagination Behavior Updated
MCP list tools now return partial pages when filtering exhausts a raw batch, allowing callers to continue with the returned cursor.Changes
- List operations perform one paginated query per invocation.
- Filtered results may contain fewer items than the requested limit.
- Returned cursors continue from the next raw page or remaining batch position.
- Callers should keep requesting pages until pagination indicates no more results.
Migration
- Continue following returned cursors until hasMore is false or the cursor is null.
- Do not assume every page contains the requested number of items.
Conversation Draft API
New REST, Zapier, and Make operations let authenticated users manage conversation drafts.Changes
- Added endpoints to create or update a conversation draft.
- Added an endpoint to retrieve the authenticated user’s draft.
- Added an endpoint to clear the authenticated user’s draft.
- HTML draft content is accepted for email conversations only.
Make integration available
Make users can access Breakcold REST operations and event triggers through a generated integration.Changes
- Added 57 Make REST modules covering supported Breakcold operations.
- Added 14 instant webhook triggers for supported event types.
- Added a universal module for relative Breakcold API paths.
- Webhook subscriptions now enforce event and object-type filters before delivery.
Zapier Integration Behavior Updates
The generated Zapier integration now exposes dynamic choices and normalizes request and response data for production workflows.Changes
- Adds dynamic Zapier choices for workspaces, records, CRM fields, conversations, messages, meetings, notes, and tasks.
- Parses JSON-formatted array and object inputs before sending requests.
- Maps the Zapier idempotencyKey field to the API clientMessageId field.
- Normalizes search and action responses for Zapier compatibility.
- Updates authentication setup help with a direct developer documentation link.
Paginated Inbox Results
MCP-backed inbox conversation listing now supports selective indexes and stable cursors for filtered views.Changes
- Filtered conversation views use matching lifecycle, channel, mailbox, status, and account indexes when available.
- Pagination cursors retain filter scope and resume correctly after post-filtering.
- Large restricted conversation views check permissions only for candidate conversations instead of scanning unrelated memberships.
Record creation now requires complete initial fields
Record creation now rejects empty field payloads and enforces fields configured as required for the target object.Action required
- REST
POST /recordsrequires a non-emptyfieldsobject. - Include every required field unless it has a configured default.
- REST retries may use the optional
Idempotency-Keyheader. - MCP
records_createrequires a stableidempotencyKeytool argument.
Migration
- List fields with
GET /crm/objects/{objectTypeId}/fields. - Include values for required fields without defaults.
- Reuse the same idempotency value when retrying the same logical request.