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.
These are corrections to the spec that reflect reality but will require updates to code relying on the previously incorrect types.
GET /processes, GET /processes/{processId}) — Import info fields (invalid_emails, duplicate_contact_id, duplicate_ext_id, duplicate_email_id, duplicate_phone_id, duplicate_whatsapp_id, duplicate_landline_number_id) are now typed as string (URL to a CSV report) instead of integer. This corrects the type for all fields, not just duplicate_email_id which was previously patched.error, created_at, completed_at, and info.export (with total_records and file_size).GET /processes/{processId} 404 error code corrected from invalid_parameter to document_not_found.GET /account) — dateTimePreferences object removed from the response schema (including timezone, timeFormat, dateFormat). startDate, endDate, and users removed from the required fields list in plan objects.listAdditions → listAddition, hardBounces → hardBounce.GET /feeds, GET /feeds/{uuid}) — alias, isInternal, personalization, defaultAttr, and defaultContact fields removed from the response schema as they are not returned by the API.POST /webhooks/export) — messageId field corrected from integer to string.POST /senders/domains) — Domain name validation changed from a custom regex pattern to format: hostname.limit minimum on GET /processes and maxRetries minimum on feed endpoints raised from 0 to 1.GET /account — 400 error response now documented.400 error responses now documented on GET /corporate/groups/{id}, GET /corporate/groups, GET /corporate/admin-users, GET /corporate/ips.PUT /crm/objects/{object_type}/records) — Associations now support an action field (link or unlink), enabling removal of associations in the same upsert request. Added three illustrative request body examples.contactUpdated and contactDeleted added as supported event types for marketing webhooks.info and export_url fields now clearly scoped: info is only returned for completed IMPORTUSER processes; export_url is only returned for SEARCH_EXPORT_USERS, SEARCH_EXPORT_USERS_API, CAMPAIGN_USER_DETAILS, and EXPORT_WEBHOOK process types.username, password, token) now documented as conditionally returned based on authType. cache default corrected to true.id vs ext_id behavior, attribute key vs label guidance, and async processing details.GET /organization/invited/users, PUT /organization/user/invitation/revoke/{email}, PUT /organization/user/invitation/{action}/{email}, GET /organization/user/{email}/permissions.DELETE /corporate/subAccount/{id} now includes a description warning that deletion is permanent and unrecoverable.summary fields to several Senders, Domains, Webhooks, and Organization endpoints that previously had none.