Zernio
Zernio
API Reference

iMessage

List iMessage audienceGETList instantly available iMessage numbersGETList iMessage sender ordersGETList iMessage sendersGETStart an iMessage group chatPOSTCreate a tracked iMessage opt-in linkPOSTGet an iMessage groupGETGet iMessage sender statusGETSubscribe or opt out an iMessage contactPOSTRename an iMessage group or change its photoPATCHUpdate an iMessage senderPATCHAdd a participant to an iMessage groupPOSTCancel an iMessage senderDELETEOrder a new iMessage senderPOSTRegister an iMessage senderPOSTRemove a participant from an iMessage groupDELETEReserve an available iMessage numberPOST
Dashboard
llms.txtOpenAPI
OverviewPlatformsAPI ReferenceResources
iMessage

Create a tracked iMessage opt-in link

Generates a per-campaign link that opens Messages on this sender with body prefilled. iMessage is send-first: a sender can only message a contact who has written to it (a send to anyone else fails with recipient_must_message_first), and the contact's tap-and-send is what opens that door.

Each link carries a unique code in place of the [opt-in-code] placeholder; when the contact sends it, the resulting message.received webhook (and the stored inbox message's metadata) has optIn: true and your parameters under optInParameters, so you can attribute the conversation to the campaign or lead that produced it.

For an untracked link, use the sender's optInLink instead.


POST
/v1/imessage/senders/{senderId}/opt-in-links

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.

In: header

Path Parameters

senderId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

{  "success": true,  "link": {    "id": "string",    "imessage": "string",    "sms": "string",    "whatsapp": "string",    "url": "string"  }}
Was this page helpful?

Start an iMessage group chat

Creates a group chat from one of your senders and sends its first message. The provider processes it asynchronously: the response carries the request id, and the thread appears in the inbox (with its group conversation id) on the first webhook. Starting a group counts as messaging new contacts, so the sender needs the provider's init-conversations add-on and the same sending intervals apply; without it the request fails with 409 `recipient_must_message_first`. WhatsApp groups need a `name`.

Get an iMessage group

The group's name, participants and channel as the provider currently sees them. The conversation must be a group thread of the given account.

body*string

Prefilled message text. Must contain the literal [opt-in-code] placeholder, e.g. "Hi! My code is [opt-in-code]".

Lengthlength <= 500
parameters?

Custom key/values (e.g. leadId, campaign) echoed back on the opt-in message.

optInCode?string

Your own code in place of the generated one (3-8 characters, no spaces or #, !, -). An unredeemed link lives 24 hours; re-issuing with the same code replaces it, and the earlier URL stops matching.

Length3 <= length <= 8