Launch an Agent

POST Method

The Launch Agent API allows you to submit RCS agents automatically for official launch across one or more carrier networks.

Prerequisites

  • After you sign up, your account will be on the trial version. You must complete the KYC to access all the features in kaleyra.io.
  • Before you get started, Create an API Key. To view the API Key and the SID, see View API Key and SID.
  • Before sending the RCS, you must configure the RCS channel in the Kaleyra platform. To configure the RCS channel in your account, please contact your local Kaleyra representative.

Base URL

URLRegion
https://rcs-api.<pod>.kaleyra.ioFor North America (NA).
https://rcs-api.<pod>.kaleyra.ioFor the rest of the world.

API Domain and Value

api_domainValue
IN podhttps://rcs-api.in.kaleyra.io
NA podhttps://rcs-api.na.kaleyra.io

API request to Launch an Agent

To launch an agent, use the https://rcs-api.<pod>.kaleyra.io/v1/<sid>/rcs/agent/launch endpoint with the following request method:

Request Format

The following is the request format to launch an agent.

curl --location --request POST 'https://<api_domain>/v1/<sid>/rcs/agent/launch'\
--header 'Content-Type: <content_type>' \
--header 'api-key: <api-key>' \
--data '{
    "launch": {
        "optin_description": "<optin_description>",
        "trigger_description": "<trigger_description>",
        "interactions_description": "<interaction_description>",
        "optout_description": "<optout_description>",
        "agent_access_instructions": "<agent_access_instructions>",
        "provider_launch_id": "<provider_launch_id>",
        "launch_name": "<launch_name>",
        "launch_type": "<launch_type>",
        "video_uris": [
            "<video_uris>"
        ],
        "screenshot_uris": [
            "<screenshot_uris>"
        ],
        "agent_no": "<agent_no>"
    },
    "regions": [
        {
            "region_id": "<region_id>",
            "region": "<region>"
        }
    ]
}'
           

Sample Request Format

The following is the sample request format to launch an agent.

curl --location --request POST 'https://rcs-api.na.kaleyra.io/v1/xxxxx6913850xxxx/rcs/agent/launch' \
--header 'Content-Type: application/json' \
--header 'api-key: xxxxx3b8497f58a94e84b671aca43xxxx ' \
--data '{
    "launch": {
        "optin_description": "Bigbasket Optin",
        "trigger_description": "START",
        "interactions_description": "Demo Messages",
        "optout_description": "Stop",
        "agent_access_instructions": "This is a demo account",
        "provider_launch_id": "launch_001_google_rcs",
        "launch_name": "launch_48900",
        "launch_type": "1",
        "video_uris": [
            "https://www.example.com/videos"
        ],
        "screenshot_uris": [
            "https://www.example.com/uris"
        ],
        "agent_no": "48900"
    },
    "regions": [
        {
            "region_id": "8346a250-d7a9-47dc-8202-a8XXXXXXXXe8",
            "region": "4f4bf2b0-5110-44e1-9aa1-43XXXXXXXX39"
        }
    ]
}'
  

URL Parameters and Headers

The following is the list of parameters and headers to send the outgoing message request:

Parameter/HeadersData TypeDescriptionExampleMandatory?
sidStringAccount SID (Security Identifier).XXXXX6913850XXXXYes
Content-TypeStringIndicates the format of the content the API will be processing.The only allowed value is application/JSONYes
api-keyStringAPI key generated from kaleyra.io account.XXXXX3b8497f58a94e84b671aca43XXXXYes

The following is the list of attributes to be used in the payload to launch an agent:

ParameterData TypeDescriptionExampleMandatory?
launchJSON objectObject encapsulates all necessary details for launching an RCS Business Messaging agent.See the specific table for details.Yes

The following table describes the different attributes used for the launch JSON object:

ParameterData TypeDescriptionExampleMandatory?
optin_descriptionStringA short explanation on how end users give consent to interact with your agent.Bigbasket Opt inOptional
trigger_descriptionStringExplain when or how the conversation is initiated.STARTOptional
interactions_descriptionStringA description of what type of interaction the agent supports.Demo MessagesOptional
optout_descriptionStringInstructions on how you can stop receiving messages.StopOptional
agent_access_instructionsStringDetail on how reviewers or carriers can access or test your agent during verification.This is a demo accountOptional
provider_launch_idStringA unique identifier assigned by the carrier or Google when the agent is submitted for launch used for tracking.launch_001_google_rcsOptional
launch_nameStringThe unique name for the launch instance.launch_48900Optional
launch_typeStringDefines the type of launch. Determines who approves and controls the rollout.1Optional
video_urisJSON ObjectThe Video link (a unique identifier) that tells a system where a video is located so it can be accessed, streamed, or downloaded.See the specific table for details.Optional
screenshot_urisJSON ObjectThe screenshot link (a unique identifier) that tells a system where a screenshot is located so it can be accessed, streamed, or downloaded.See the specific table for details.Optional
agent_noStringInternal agent identifier or sequence number.48900Yes
regionsJSON ObjectList of carrier regions where the agent will be launched.See the specific table for details.Optional

The following table describes the different attributes used for the video_uris JSON object:

ParameterData TypeDescriptionExampleMandatory?
urisStringURLs pointing to demo videos that showcase how the agent works. Used during review.https://www.example.com/videoOptional

The following table describes the different attributes used for the screenshot_uris JSON object:

ParameterData TypeDescriptionExampleMandatory?
urisStringURLs pointing to the screenshots of the agent's user experience. Required for verification and carrier approval.https://www.example.com/uriOptional

The following table describes the different attributes used for the regions JSON object:

Parameter

Data Type

Description

Example

Mandatory?

region_id

UUID

A unique identifier that represents specific launch region. Note: You can launch 5 agents at a time during launch.

8346a250-d7a9-47dc-8202-a8XXXXXXXXe8

Optional

region

String

List of carrier regions where the agent will be launched.

4f4bf2b0-5110-44e1-9aa1-43xxxxxxxx39

Optional

Sample Success Response

The following is the sample success response:

{
  "code": "RCS902",
  "message": "Agent launch request created successfully",
	{
    "launch": {
        "provider_launch_id": "launch_001_google_rcs",
        "launch_name": "launch__48900",
        "launch_type": 1,
        "optin_description": "Bigbasket Optin",
        "trigger_description": "START",
        "interactions_description": "Demo Messages",
        "optout_description": "Stop",
        "agent_access_instructions": "This is a demo account",
        "video_uris": [
            "https://www.example.com/videos"
        ],
        "screenshot_uris": [
            "https://www.example.com/uris"
        ],
        "status": "ACTIVE",
        "create_date": "Jan 12, 2026, 12:42:58 PM",
        "modified_date": "Jan 12, 2026, 12:42:58 PM",
        "agent_launch_id": "1370ed9d-53ed-47ec-b150-e2XXXXXXXX3d"
    },
    "regions": [
        {
            "region_id": "8346a250-d7a9-47dc-8202-a8XXXXXXXXe8",
            "region": "4f4bf2b0-5110-44e1-9aa1-43392c7d3b17",
            "entry_point": 0,
            "launch_state": 0,
            "dirty_flag": "NEW"
        }
    ],
    "contacts": []
},
"error": {}
}

Sample Failure Responses

The following are the sample failure responses:

Missing Required Fields

{
  "code": "RCS904",
  "message": "Failed to create Agent launch request",
  "data": [],
  "error": {
    "error_code": "PROV_ERROR",
    "error_message": "{\"status\":\"FAILED\",\"message\":\"Missing required fields in launch payload\"}"
  }
}

Invalid JSON

{
  "code": "RCS701",
  "message": "Invalid json format passed",
  "data": [],
  "error": {
    "error_code": "INVALID_JSON_PAYLOAD",
    "error_message": "invalid character '}' looking for beginning of object key string"
  }
}

RCS Not Enabled

{
  "code": "RCS601",
  "message": "RCS Channel is not enabled for this User",
  "data": [],
  "error": {
    "error_code": "RCS_CHANNEL_DISABLED",
    "error_message": "RCS Channel is not enabled for this User"
  }
}

Method Not Allowed

{
  "code": "RCS405",
  "message": "Method not allowed",
  "data": [],
  "error": {
    "error_code": "METHOD_NOT_ALLOWED",
    "error_message": "Method not allowed"
  }
}

Gateway Error

{
  "code": "RCS502",
  "message": "Internal Gateway Error",
  "data": [],
  "error": {
    "error_code": "RCS_CHANNEL_INTERNAL_ERROR",
    "error_message": "Internal Gateway Error"
  }
}





© 2026 Kaleyra Inc. All rights reserved.
Trademarks, logos and service marks displayed on this site are registered and unregistered trademarks of Kaleyra Inc.