---
title: "Submit an RCS agent for launch"
method: POST
path: "/rcs/agents/{id}/launch"
tags: ["RCS Agents"]
---

# Submit an RCS agent for launch

`POST /rcs/agents/{id}/launch`

Adds the campaign and testing configuration, then starts asynchronous carrier launch. Agent basics must already be submitted. Repeating a launch that is already in progress returns the current agent without creating new work.

## Path parameters

- `id` string, uuid, required

## Request body

- AgentLaunchRequest — unresolved $ref

## Response `202`

The launch submission was accepted.

- AgentResponse
  - `agent_id` string, uuid, required
  - `basics_status` 'SUBMITTED' | 'APPROVED' | 'REJECTED', required
  - `billing_category` 'NON_CONVERSATIONAL' | 'CONVERSATIONAL', required
  - `brand_id` string, uuid, required
  - `campaign_status` 'SUBMITTED' | 'APPROVED' | 'REJECTED', required
  - `capabilities` CapabilitiesResponse, required
    - `brand_entity` boolean, required
    - `brand_verification` boolean, required
    - `campaigns` boolean, required
    - `distinct_launch_phase` boolean, required
    - `invite_test_devices` boolean, required
    - `per_carrier_approval` boolean, required
    - `submission_sections` boolean, required
    - `templates` boolean, required
    - `vendor_webhooks` boolean, required
  - `carrier_approvals` CarrierApprovalResponse[], required
    - `approval_id` string, uuid, required
    - `approved_at` string, date-time, nullable, required
    - `carrier` string, nullable, required
    - `rejected_reason` string, nullable, required
    - `scope_type` 'carrier' | 'hub' | 'bot', required
    - `status` 'PENDING' | 'SUBMITTED' | 'APPROVED' | 'REJECTED', required
    - `submitted_at` string, date-time, nullable, required
  - `configuration` AgentConfiguration, required
    - `basics` union, required — Basic agent identity and contact information. At least one complete phone, website, or email contact is required.
      - object
        - `phone_number` object, nullable, required
          - `label` string, required
          - `number` string, required
        - `brand_color` string, required
        - `description` string, required
        - `email` AgentEmailContact
          - `address` string, email, required
          - `label` string, required
        - `hero_url` string, uri, required
        - `logo_url` string, uri, required
        - `privacy_policy_url` string, uri, required
        - `terms_and_conditions_url` string, uri, required
        - `website` AgentWebsiteContact
          - `label` string, required
          - `url` string, uri, required
      - object
        - `website` object, nullable, required
          - `label` string, required
          - `url` string, uri, required
        - `brand_color` string, required
        - `description` string, required
        - `email` AgentEmailContact
          - `address` string, email, required
          - `label` string, required
        - `hero_url` string, uri, required
        - `logo_url` string, uri, required
        - `phone_number` AgentPhoneContact
          - `label` string, required
          - `number` string, required
        - `privacy_policy_url` string, uri, required
        - `terms_and_conditions_url` string, uri, required
      - object
        - `email` object, nullable, required
          - `address` string, email, required
          - `label` string, required
        - `brand_color` string, required
        - `description` string, required
        - `hero_url` string, uri, required
        - `logo_url` string, uri, required
        - `phone_number` AgentPhoneContact
          - `label` string, required
          - `number` string, required
        - `privacy_policy_url` string, uri, required
        - `terms_and_conditions_url` string, uri, required
        - `website` AgentWebsiteContact
          - `label` string, required
          - `url` string, uri, required
    - `campaign` AgentCampaignConfiguration — unresolved $ref
    - `testing` AgentTestingConfiguration
      - `additional_information` string, nullable
      - `message_id` string, nullable
      - `test_url` string, uri, required
  - `display_name` string, required
  - `hosting_region` string, nullable, required
  - `profile_id` string, nullable, required
  - `status` 'CREATED' | 'SUBMITTED' | 'VERIFYING' | 'VERIFIED' | 'LAUNCHING' | 'LAUNCHED' | 'LIVE' | 'REJECTED' | 'FAILED', required
  - `test_devices` TestDeviceResponse[], required
    - `invite_status` 'PENDING' | 'ACCEPTED' | 'DECLINED', required
    - `phone_number` string, required
    - `test_device_id` string, uuid, required
  - `testing_status` 'SUBMITTED' | 'APPROVED' | 'REJECTED', required
  - `use_case` 'MULTI_USE' | 'PROMOTIONAL' | 'TRANSACTIONAL' | 'OTP', required

## Other responses

- `401` — The request is not authenticated.
- `404` — The resource does not exist, is not owned by the organization, or the provider does not support the requested capability.
- `409` — The operation is not allowed in the current lifecycle state or the idempotency key was used for a different request.
- `422` — The request body or parameters failed validation.

---

[API](https://skmtc.net/team-telnyx/apis/telnyx-api-2.md) · [All operations](https://skmtc.net/team-telnyx/apis/telnyx-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/team-telnyx/telnyx-api-2/revisions/3fdc16374d70/schema)
