Versioning & changelog
Versioning policy
- The API is versioned in the path:
/v1. Webhook payloads carry"apiVersion": "v1". - Within
v1we only make backwards-compatible changes:- new endpoints, optional request fields, response fields, enum values, event types and error codes;
- stricter validation only where the previous behaviour was a bug.
- Clients must ignore unknown response fields and handle unknown enum values (e.g. treat an unknown
statusas "other"). Both SDKs model statuses as strings for this reason. - Breaking changes go to a new major version (
/v2)./v1stays available for at least 12 months after/v2is released, with deprecation announced in this changelog and viaDeprecation/Sunsetresponse headers. - The machine-readable contract is
GET /api/openapi.json(OpenAPI 3.1). CI fails when the implementation and the committed contract diverge.
Changelog
1.4.0 — 2026-10
- Follow-ups and reminders: sequences (
/v1/followups/sequenceswith draft, versioned publish, pause, resume, archive and statistics), enrollments (/v1/followups/enrollmentswithdedupeKey, reschedule, pause, resume, cancel and bulk jobs), rules (/v1/followups/rules), settings (/v1/followups/settings) and/v1/conversations/{id}/followups. See the Follow-ups API. - New scopes
followups:read,followups:write,followups:enroll. - New webhook events
followup.enrolled,followup.step_queued,followup.completed,followup.stopped,followup.failed;message.*events of follow-up messages carryfollowUpEnrollmentId. - Campaigns accept
followUpSequenceId(non-responders enter a no-reply sequence). - New message source
followup; new error codesFOLLOWUP_LIMIT_REACHED,FOLLOWUP_SEQUENCE_NOT_ACTIVE,FOLLOWUP_ALREADY_ENROLLED.
1.3.0 — 2026-10
- CRM: leads (
/v1/leadswith capture/merge, status, assignment, conversion, rescoring, AI extraction, timeline, bulk updates and CSV export), deals and the board (/v1/deals), pipelines (/v1/pipelines), companies (/v1/companies, merge), notes and tasks (/v1/crm/notes,/v1/crm/tasks), settings, custom fields, scoring and assignment rules (/v1/crm/*), lead forms (/v1/lead-forms), click-to-chat links (/v1/lead-links) and reports (/v1/crm/reports). See the CRM API. - New scopes
leads:read,leads:write,deals:read,deals:write,companies:read,companies:write,crm:admin(in the default scopes of new keys). - New webhook events
lead.created,lead.updated,lead.status_changed,lead.qualified,lead.assigned,lead.converted,lead.sla_breached,deal.created,deal.updated,deal.stage_changed,deal.won,deal.lost,company.created,company.updated,task.created,task.due,task.completed. - Contact imports accept
leadoptions to capture a lead per row. - New error codes
LEAD_LIMIT_REACHED,PIPELINE_LIMIT_REACHED,FORM_LIMIT_REACHED,ORIGIN_NOT_ALLOWED,RULE_TOO_COMPLEX,INVALID_FIELD_VALUE,CAPTCHA_FAILED,INVALID_TRANSITION,STAGE_NOT_IN_PIPELINE,FORM_NOT_ACCEPTING.
1.2.0 — 2026-10
- Contacts are a core resource (no team inbox needed):
POST /v1/contacts(upsert by phone orexternalId),POST /v1/contacts/batch,PUT /v1/contacts/{id}/tags,POST /v1/contacts/bulk-tags, consent (POST /v1/contacts/{id}/consent,POST /v1/contacts/{id}/opt-out,GET /v1/contacts/{id}/consent-events) and CSV imports (/v1/contacts/imports). Contacts gaintags,consent,externalId,sourceandlastInboundAt. - Tags can be managed through the API:
POST /v1/tags,PATCH/DELETE /v1/tags/{id}. - Segments:
/v1/segmentswith rule-based audiences andPOST /v1/segments/preview. - Campaigns:
/v1/campaigns(drafts, launch, unschedule, pause, resume, cancel, duplicate, test sends, recipients) and/v1/campaign-settings. - New scopes
campaigns:read,campaigns:write,campaigns:launch(in the default scopes of new keys). - New webhook events
campaign.started,campaign.paused,campaign.resumed,campaign.completed,campaign.cancelled,campaign.failed,contact.opted_out,contact.opted_in.message.*events of campaign messages carrycampaignId. - Messages have a new
sourcevaluecampaign. Opt-out keywords (STOP...) are recorded for every project. - New error codes
SEGMENT_TOO_COMPLEX,CONTACT_LIMIT_REACHED,CAMPAIGN_LIMIT_REACHED,CAMPAIGN_STATE_CONFLICT,CONTACT_OPTED_OUT.
1.1.0 — 2026-10
- Team inbox:
GET/POST /v1/conversations,GET/PATCH /v1/conversations/{id}, timeline, replies with collision detection (REPLY_COLLISION), internal notes, tags (GET /v1/tags,PUT /v1/conversations/{id}/tags). - Contacts:
GET /v1/contacts,GET/PATCH /v1/contacts/{id}, erasure withDELETE /v1/contacts/{id}. - New scopes
conversations:read,conversations:write,contacts:read,contacts:write(in the default scopes of new keys; existing keys keep their scopes). - New webhook events
conversation.created,conversation.assigned,conversation.status_changed. - AI assistant (dashboard): conversation timeline activities
ai_replied,ai_handoff,ai_paused,ai_resumed. Assistant replies are outbound messages withsource: "automation". - New error codes
FEATURE_NOT_AVAILABLE,SEAT_LIMIT_REACHED,REPLY_COLLISION.
1.0.0 — 2026-10
Initial release.
- Instances: create, list (by
externalReference), update, delete, connect via QR or pairing code, status, QR, reconnect, disconnect, logout, hosted connect links. - Messages: text, image and document sends with mandatory idempotency, status history with certainty, inbound messages.
- Media: multipart upload, import from URL, pre-signed downloads.
- Webhooks: signed events with retries, delivery log, replay, test events; event log at
/v1/events. - API keys with scopes, rotation and revocation; usage endpoint.
- SDKs:
@whatstig/sdk1.0.0 (TypeScript),WhatsTig.Client1.0.0 (.NET 8/10).
Not yet available (planned): audio, video, location and contact messages; interactive messages; group chats; online payments.