Changelog

What changed in the API, newest first.

1.24.0: senders

November 9, 2026

  • New: Senders, the people your campaigns speak as. GET and POST /senders, GET, PATCH and DELETE /senders/{id}. A sender has one LinkedIn account at most, any number of mailboxes and WhatsApp numbers, and the members who manage it.
  • senderId on LinkedIn accounts, mailboxes, WhatsApp numbers, leads in campaigns, inbox chats, and on every webhook payload with an accountId. PATCH /accounts/{id} and PATCH /whatsapp-accounts/{id} take senderId, and PATCH /email-accounts/{id} is new for it.
  • senderIds on campaigns, read and written. In a campaign whose pools hold accounts with a sender, a lead hears from one sender on every channel; campaigns whose accounts have no sender work as before.
  • GET /inbox/chats?senderId=.
  • MCP: list_senders, get_sender, create_sender, update_sender, delete_sender, and senderIds on create_campaign and update_campaign.

Your own domains for bought mailboxes

November 4, 2026

  • New: POST /managed-domains puts bought mailboxes on a domain the workspace already owns. Nothing is charged for the domain, only for its mailboxes. Set the two nameservers it returns at the registrar; the domain connects on its own, then add mailboxes with an existing: true entry in the quote.
  • New: GET /managed-domains/{id}, POST /managed-domains/{id}/check and DELETE /managed-domains/{id}.
  • Every domain carries source (purchased or own), and a domain you own its connection. reason gains connecting and moved. Quotes and orders refuse a domain you own that is not ready (409, code: domain-not-ready).
  • New webhook events, sent only to endpoints that subscribe to them: managed_domain.ready and managed_domain.action_required.
  • MCP: add_own_domain, get_managed_domain, check_own_domain and remove_own_domain.

See Using a domain you own.

The JavaScript SDK

October 28, 2026

  • New: @swarmhit/swarmhit-sdk, the official client for JavaScript and TypeScript, in beta (1.0.0-beta.0). It calls /api/v1 with the same API key, covers every endpoint, types every parameter, result and webhook event, retries what can be retried safely, pages through lists and verifies webhooks. npm install @swarmhit/swarmhit-sdk.
  • Each endpoint in the API Reference names its SDK method at the top, and All methods lists them all.

1.9.0: archived LinkedIn accounts

October 23, 2026

  • DELETE /accounts/{id} archives the account instead of deleting it. The response is the same, and so are the effects: the session is revoked, the seat freed, the account leaves its campaigns and GET /accounts, and GET /accounts/{id} answers 404. No new webhook is sent unless you subscribe to it. What changes: its conversations, its settings (limits, warm-up) and its history are kept, archived.
  • Archived accounts are kept for 90 days, then deleted permanently; pass ?permanent=true to delete right away.
  • DELETE /accounts/{id}?permanent=true erases an account for good, live or archived, conversations and settings included. Use it where you delete accounts to erase their data. It takes a key created by an owner or admin.
  • New: GET /accounts?archived=true lists the archived accounts, and POST /accounts/{id}/restore brings one back under the same id, with its limits and warm-up, disconnected until it is reconnected with its credentials, a liAt or a hosted link. {"campaigns": true} puts it back in its campaigns. A restore is refused (400, code: already-connected) once the same LinkedIn account is connected again.
  • New webhook events, sent only to endpoints that subscribe to them: account.archived, account.restored and account.deleted (via: retention when the 90 days ran out).
  • MCP: disconnect_sender archives (permanent: true erases), list_accounts takes archived, and restore_account is new.

See Archived accounts.

On this page