Zernio
Zernio
API Reference

Rcs

List RCS agentsGETList RCS brandsGETList RCS test phonesGETRequest an RCS agentPOSTGet an RCS agentGETCheck RCS capabilityGETUpdate an RCS agentPATCHInvite an RCS test phonePOSTDeactivate an RCS agentDELETERemove an RCS test phoneDELETESend the launch filingPOSTSend an RCS messagePOSTUpload an RCS logo or bannerPOST
Dashboard
llms.txtOpenAPI
OverviewPlatformsAPI ReferenceResources
Rcs

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.


POST
/v1/rcs/agents/{agentId}/launch-request

Authorization

bearerAuth
AuthorizationBearer <token>

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

In: header

Path Parameters

agentId*string

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"  }}
Was this page helpful?

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.

companyOverview*string
Lengthlength <= 2000
agentOverview*string
Lengthlength <= 2000
interactions*array<>
Items1 <= items
messageExamples*array<>
Items3 <= items <= 10
consent*
testVideoUrl*string

Public video of a test phone sending START, STOP and HELP plus one example conversation.

Formaturi
additionalInformation?string
Lengthlength <= 2000