API specification overhaul: accuracy, completeness, and breaking corrections
API specification overhaul: accuracy, completeness, and breaking corrections
This release reflects a major rework of the OpenAPI specification to bring it in line with actual API behavior. Some changes correct inaccuracies between the spec and the responses, some generated SDK types will change. See the breaking changes section before upgrading.
Breaking changes
These are corrections to the spec that reflect reality but will require updates to code relying on the previously incorrect types.
- Process endpoints (
GET /processes,GET /processes/{processId}) — Importinfofields (invalid_emails,duplicate_contact_id,duplicate_ext_id,duplicate_email_id,duplicate_phone_id,duplicate_whatsapp_id,duplicate_landline_number_id) are now typed asstring(URL to a CSV report) instead ofinteger. This corrects the type for all fields, not justduplicate_email_idwhich was previously patched. - Process endpoints — The following fields have been removed from the response schema as they are not returned by the API:
error,created_at,completed_at, andinfo.export(withtotal_recordsandfile_size). - Process endpoints —
GET /processes/{processId}404 error code corrected frominvalid_parametertodocument_not_found. - Account endpoint (
GET /account) —dateTimePreferencesobject removed from the response schema (includingtimezone,timeFormat,dateFormat).startDate,endDate, andusersremoved from the required fields list in plan objects. - Webhooks — Event names corrected:
listAdditions→listAddition,hardBounces→hardBounce. - Feeds (
GET /feeds,GET /feeds/{uuid}) —alias,isInternal,personalization,defaultAttr, anddefaultContactfields removed from the response schema as they are not returned by the API. - Export webhook history (
POST /webhooks/export) —messageIdfield corrected fromintegertostring. - Domain creation (
POST /senders/domains) — Domain name validation changed from a custom regex pattern toformat: hostname. - Pagination minimums —
limitminimum onGET /processesandmaxRetriesminimum on feed endpoints raised from0to1.
Added
GET /account—400error response now documented.- Master account endpoints —
400error responses now documented onGET /corporate/groups/{id},GET /corporate/groups,GET /corporate/admin-users,GET /corporate/ips. - Webhook associations (
PUT /crm/objects/{object_type}/records) — Associations now support anactionfield (linkorunlink), enabling removal of associations in the same upsert request. Added three illustrative request body examples. - Marketing webhook events —
contactUpdatedandcontactDeletedadded as supported event types for marketing webhooks.
Improved
- Process endpoints —
infoandexport_urlfields now clearly scoped:infois only returned for completedIMPORTUSERprocesses;export_urlis only returned forSEARCH_EXPORT_USERS,SEARCH_EXPORT_USERS_API,CAMPAIGN_USER_DETAILS, andEXPORT_WEBHOOKprocess types. - Feeds — Auth fields (
username,password,token) now documented as conditionally returned based onauthType.cachedefault corrected totrue. - Custom objects upsert — Significantly expanded description with upsert semantics,
idvsext_idbehavior, attribute key vs label guidance, and async processing details. - Organization / User endpoints — Added descriptions to
GET /organization/invited/users,PUT /organization/user/invitation/revoke/{email},PUT /organization/user/invitation/{action}/{email},GET /organization/user/{email}/permissions. - Sub-account deletion —
DELETE /corporate/subAccount/{id}now includes a description warning that deletion is permanent and unrecoverable. - Missing summaries — Added
summaryfields to several Senders, Domains, Webhooks, and Organization endpoints that previously had none.