Send the launch filing
Sends the launch details the carriers review (campaign, consent and a public test video).
US agents send them once they are in testing; we review them before they reach the
carriers. Agents in other markets send them while still in review (requested,
changes_requested or brand_vetting), because we file everything with the carriers at
once; this saves the details without changing the status.
Authorization
bearerAuth API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.rcs.requestRcsAgentLaunch({ path: { agentId: 'agent_abc123', }, body: { companyOverview: 'string', agentOverview: 'string', interactions: [ { type: 'TRANSACTIONAL_UPDATES', }, ], messageExamples: [ 'string', ], consent: { optInMethods: [ { type: 'SMS', }, ], callToAction: 'string', doubleOptIn: false, optInMessage: 'string', helpResponse: 'string', optOutResponse: 'string', }, testVideoUrl: 'https://example.com', },});console.log(data);{ "agent": { "id": "string", "profileId": "string", "accountId": "string", "country": "string", "status": "requested", "displayName": "string", "useCase": "MULTI_USE", "profile": { "description": "string", "logoUrl": "http://example.com", "heroUrl": "http://example.com", "brandColor": "string", "privacyPolicyUrl": "http://example.com", "termsUrl": "http://example.com", "phone": { "number": "string", "label": "string" }, "website": { "url": "http://example.com", "label": "string" }, "email": { "address": "user@example.com", "label": "string" } }, "brand": { "displayName": "string", "legalName": "string", "legalEntityType": "LIMITED_LIABILITY_COMPANY", "organizationType": "PRIVATE_PROFIT", "websiteUrl": "http://example.com", "taxId": "string", "stockSymbol": "string", "address": { "line1": "string", "line2": "string", "city": "string", "state": "string", "postalCode": "string", "country": "US" }, "contact": { "firstName": "string", "lastName": "string", "title": "string", "email": "user@example.com", "phone": "string" }, "id": "string", "status": "draft", "createdAt": "2019-08-24T14:15:22Z" }, "launchRequest": { "companyOverview": "string", "agentOverview": "string", "interactions": [ { "type": "TRANSACTIONAL_UPDATES", "description": "string" } ], "messageExamples": [ "string", "string", "string" ], "consent": { "optInMethods": [ { "type": "SMS", "description": "string" } ], "callToAction": "string", "callToActionUrl": "http://example.com", "callToActionMediaUrl": "http://example.com", "doubleOptIn": true, "doubleOptInMessage": "string", "optInMessage": "string", "helpResponse": "string", "optOutResponse": "string" }, "testVideoUrl": "http://example.com", "additionalInformation": "string" }, "carrierApprovals": [ { "approvalId": "string", "scope": "carrier", "status": "PENDING", "carrier": "string", "approvedAt": "2019-08-24T14:15:22Z", "rejectedReason": "string" } ], "testDevices": [ { "testDeviceId": "string", "phoneNumber": "string", "inviteStatus": "PENDING" } ], "smsFallbackFrom": "string", "reviewNote": "string", "declineReason": "string", "requestedAt": "2019-08-24T14:15:22Z", "submittedAt": "2019-08-24T14:15:22Z", "liveAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z" }}Remove an RCS test phone
Previous Page
Send an RCS message
Sends from one of your agents. Use `text` for a plain message or `content` for rich content (card, carousel, media, suggestion chips). Before launch an agent only reaches test phones that accepted the invite. With the agent's `smsFallbackFrom` set, phones without RCS get `fallbackText` (default: the message's readable text) as SMS. Replies and status arrive as webhooks with `platform: "rcs"`: `message.received` (a tapped chip carries its postback in `metadata.postbackPayload`), `message.delivered`, `message.read` and `message.failed`. Send an `Idempotency-Key` header to make retries safe.