Route Mobile Bulk Upload Campaign API

Upload campaign files and manage bulk RCS messaging campaigns at scale.

Operations 1

POST /rcs/v1/bulk_message Bulk Upload Campaign #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/route-mobile-bulk-upload-campaign-api-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

route-mobile-bulk-upload-campaign-api-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.1.0
  title: Route Mobile Rich Communication Services (RCS) API Documentation Bulk Upload Campaign API
  description: 'Welcome to the Route Mobile developer hub. You will find comprehensive RCS API documentation to help you start working with Route Mobile as quickly as possible and support if you get stuck. Let''s jump right in!


    For more information, see the [Route Mobile Open API Specifications](https://routemobile.github.io/RCS-Business-Messaging-API/RCS.html)'
  contact:
    url: https://developers.routemobile.com/
    name: Route Mobile Development
    email: support@routemobile.com
  license:
    name: Proprietary
    url: https://www.routemobile.com/terms-and-conditions/
  x-logo:
    url: https://www.routemobile.com/wp-content/uploads/2021/07/RM-Logo.png
    altText: Route Mobile Logo
  x-readme:
    samples-languages:
    - curl
    - python
    - node
    - java
    - php
servers:
- url: https://apis.rmlconnect.net
security:
- jwt: []
tags:
- name: Bulk Upload Campaign API
  description: Upload campaign files and manage bulk RCS messaging campaigns at scale.
paths:
  /rcs/v1/bulk_message:
    post:
      tags:
      - Bulk Upload Campaign API
      summary: Bulk Upload Campaign
      description: 'Bulk Upload Campaign APIs send messages to many recipients simultaneously using a batch upload process. It allows businesses to efficiently send personalized and interactive messages to their customers at scale. '
      operationId: bulkCampaignUploadRCS
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/rcs_bulkcamp_text_msg'
              - $ref: '#/components/schemas/rcs_bulkcamp_media_msg'
              - $ref: '#/components/schemas/rcs_bulkcamp_richcrdstd_msg'
              - $ref: '#/components/schemas/rcs_bulkcamp_richcardcarsl_msg'
              - $ref: '#/components/schemas/rcs_bulkcamp_urlsugg_msg'
              - $ref: '#/components/schemas/rcs_bulkcamp_textsugg_msg'
              - $ref: '#/components/schemas/rcs_bulkcamp_dialsugg_msg'
              - $ref: '#/components/schemas/rcs_bulkcamp_locsugg_msg'
              - $ref: '#/components/schemas/rcs_bulkcamp_calendarsugg_msg'
            examples:
              Text:
                value:
                  type: text
                  country_code: '+91'
                  file_url: http://<Domain Name>/v1/download/Misc/e260e874-831c-11eb-af5c-0242ac12xxx.txt
                  campaign_name: Testing bulk APIs
                  scheduled_time: '2021-03-13 11:30:00'
                  ttl: '{Time in seconds}'
                  expire_time: '2024-03-15 13:00:00'
                  bot_name: '{RML agent name}'
                  text: '{plain text}'
                  suggestions:
                  - type: '{label name}'
                    text: '{plain text}'
                    latitude: '{latitude value}'
                    longitude: '{longitude value}'
                    postback: '{postback text}'
                  fallback_text: '{value {#var#} value}'
              Media:
                value:
                  type: media
                  country_code: '+91'
                  file_url: http://<Domain Name>/v1/download/Misc/e260e874-831c-11eb-af5c-0242ac12xxxx.txt
                  campaign_name: Testing bulk APIs
                  scheduled_time: '2021-03-13 11:30:00'
                  bot_name: '{RML agent name}'
                  url: '{sample (image/pdf/video mp4) url starting with https://}'
                  suggestions:
                  - type: '{label name}'
                    text: '{plain text}'
                    latitude: '{latitude value}'
                    longitude: '{longitude value}'
                    postback: '{postback text}'
                  fallback_text: '{value {#var#} value}'
              Rich Card Standalone:
                value:
                  type: card
                  country_code: '+91'
                  file_url: http://<Domain Name>/v1/download/Misc/e260e874-831c-11eb-af5c-0242ac12xxxx.txt
                  campaign_name: Testing bulk APIs
                  scheduled_time: '2021-03-13 11:30:00'
                  bot_name: '{RML agent name}'
                  url: '{sample (image/pdf/video mp4) url starting with https://}'
                  card:
                    title: '{label}'
                    description: '{plain text}'
                    url: '{sample (image/pdf/video mp4) url starting with https://}'
                    suggestions:
                    - type: '{label name}'
                      text: '{plain text}'
                      latitude: '{latitude value}'
                      longitude: '{longitude value}'
                      postback: '{postback text}'
                  fallback_text: '{value {#var#} value}'
              Rich Card Carousel:
                value:
                  type: multiple_cards
                  country_code: '+91'
                  file_url: http://<Domain Name>/v1/download/Misc/e260e874-831c-11eb-af5c-0242ac12xxxx.txt
                  campaign_name: Testing bulk APIs
                  scheduled_time: '2021-03-13 11:30:00'
                  bot_name: '{RML agent name}'
                  cards:
                  - card:
                      title: '{label}'
                      description: '{plain text}'
                      url: '{sample (image/pdf/video mp4) url starting with https://}'
                      suggestions:
                      - type: message
                        text: '{text}'
                        postback: '{postback text}'
                      - type: message
                        text: '{text}'
                        postback: '{postback text}'
                  - card:
                      title: '{label}'
                      description: '{plain text}'
                      url: '{sample (image/pdf/video mp4) url starting with https://}'
                      suggestions:
                      - type: dial
                        text: '{label}'
                        call_to: '{your number}'
                        postback: '{postback label}'
                  - card:
                      title: '{label}'
                      description: '{plain text}'
                      url: '{sample (image/pdf/video mp4) url starting with https://}'
                      suggestions:
                      - type: url
                        text: '{label}'
                        url: '{url with http://}'
                        postback: '{postback label}'
                  fallback_text: '{value {#var#} value}'
              URL Suggestion:
                value:
                  type: media
                  country_code: '+91'
                  file_url: http://<Domain Name>/v1/download/Misc/e260e874-831c-11eb-af5c-0242ac12xxxx.txt
                  campaign_name: Testing bulk APIs
                  scheduled_time: '2021-03-13 11:30:00'
                  bot_name: '{RML agent name}'
                  url: '{sample (image/pdf/video mp4) url starting with https://}'
                  suggestions:
                  - type: url
                    text: '{label}'
                    url: '{url with http://}'
                    postback: '{postback label}'
                  fallback_text: '{value {#var#} value}'
              Text Suggestion:
                value:
                  type: text
                  country_code: '+91'
                  file_url: http://<Domain Name>/v1/download/Misc/e260e874-831c-11eb-af5c-0242ac12xxxx.txt
                  campaign_name: Testing bulk APIs
                  scheduled_time: '2021-03-13 11:30:00'
                  bot_name: '{RML agent name}'
                  text: '{plain text}'
                  suggestions:
                  - type: message
                    text: '{text}'
                    postback: '{postback text}'
                  - type: message
                    text: '{text}'
                    postback: '{postback text}'
                  fallback_text: '{value {#var#} value}'
              Dial Suggestion:
                value:
                  type: media
                  country_code: '+91'
                  file_url: http://<Domain Name>/v1/download/Misc/e260e874-831c-11eb-af5c-0242ac12xxxx.txt
                  campaign_name: Testing bulk APIs
                  scheduled_time: '2021-03-13 11:30:00'
                  bot_name: '{RML agent name}'
                  url: '{sample (image/pdf/video mp4) url starting with https://}'
                  suggestions:
                  - type: dial
                    text: '{label}'
                    call_to: '{your number}'
                    postback: '{postback label}'
                  fallback_text: '{value {#var#} value}'
              Location Suggestion:
                value:
                  type: text
                  country_code: '+91'
                  file_url: http://<Domain Name>/v1/download/Misc/e260e874-831c-11eb-af5c-0242ac12xxxx.txt
                  campaign_name: Testing bulk APIs
                  scheduled_time: '2021-03-13 11:30:00'
                  bot_name: '{RML agent name}'
                  text: '{plain text}'
                  suggestions:
                  - type: '{label name}'
                    text: '{plain text}'
                    latitude: '{latitude value}'
                    longitude: '{longitude value}'
                    postback: '{postback text}'
                  fallback_text: '{value {#var#} value}'
              Calendar Suggestion:
                value:
                  type: text
                  country_code: '+91'
                  file_url: http://<Domain Name>/v1/download/Misc/e260e874-831c-11eb-af5c-0242ac12xxxx.txt
                  campaign_name: Testing bulk APIs
                  scheduled_time: '2021-03-13 11:30:00'
                  bot_name: '{RML agent name}'
                  text: '{plain text}'
                  suggestions:
                  - type: calendar
                    postback: '{postback text}'
                    text: '{plain text}'
                    start: '{start time}'
                    end: '{end time}'
                    title: '{label}'
                    description: '{Description of the calendar event}'
                  fallback_text: '{value {#var#} value}'
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: The response message.
                  campaign_id:
                    type: string
                    description: The unique ID of the campaign.
              examples:
                Example 1:
                  value:
                    message: Message request has been created
                    campaign_id: 1xx
            application/xml:
              schema:
                type: object
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: The status of the message delivery.
                  errors:
                    type: object
                    description: 'The error for not processing the request.


                      '
                    properties:
                      text:
                        type: array
                        description: The error description.
                        items:
                          type: string
              examples:
                Example 1:
                  value:
                    status: string
                    errors:
                      text:
                      - string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: The status of the message delivery.
              examples:
                Example 1:
                  value:
                    status: string
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: The status of the message delivery.
              examples:
                Example 1:
                  value:
                    status: string
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: The message response.
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Rate limit exceeded message.
                  retry_after:
                    type: integer
                    description: Number of seconds to wait before retrying.
              examples:
                Rate Limit Exceeded:
                  value:
                    message: Rate limit exceeded. Please retry after the specified time.
                    retry_after: 60
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: The status of the message delivery.
                  errors:
                    type: string
                    description: 'The error for not processing the request.


                      '
              examples:
                Example 1:
                  value:
                    status: string
                    errors: string
      security:
      - jwt: []
components:
  schemas:
    rcs_bulkcamp_locsugg_msg:
      type: object
      title: Location Suggestion
      properties:
        type:
          type: string
          description: 'The type of the message.

            '
        country_code:
          type: string
          description: "The country code to be used for the recipient phone numbers. The user can include the country code in the upload file or select it from the user interface. \n"
        file_url:
          type: string
          description: 'The URL of the file containing the list of recipient phone numbers. The file should be in plain text format with each phone number on a new line.

            '
        campaign_name:
          type: string
          description: 'The name of the campaign for identification purposes.

            '
        scheduled_time:
          type: string
          description: 'The date and time at which the message should be scheduled to be sent in the format "YYYY-MM-DD HH:MM:SS".

            '
        bot_name:
          type: string
          description: 'The name of the bot sending the message.

            '
        text:
          type: string
          description: 'The main text content of the message to be sent via RCS.

            '
        suggestions:
          type: array
          description: An array of suggestions shown as actions for the endpoint.
          items:
            type: object
            properties:
              type:
                type: string
                description: The label name for the suggestion.
              text:
                type: string
                description: The plain text content of the suggestion.
              latitude:
                type: string
                description: The latitude value associated with the suggestion.
              longitude:
                type: string
                description: The longitude value associated with the suggestion.
              postback:
                type: string
                description: The postback text or action associated with the suggestion.
        fallback_text:
          type: string
          description: 'The fallback text that is displayed on devices. The fallback text to be sent if the RCS message cannot be delivered. This field supports variable substitution using {#var#} format. It is optional.

            '
      required:
      - type
      - file_url
      - campaign_name
      - bot_name
      - text
    rcs_bulkcamp_urlsugg_msg:
      type: object
      title: URL Suggestion
      description: A message type that includes a suggested URL or link for the user to click. It can be used to direct users to specific web pages, landing pages, or external content.
      properties:
        type:
          type: string
          description: 'The type of the message.

            '
        country_code:
          type: string
          description: "The country code to be used for the recipient phone numbers. The user can include the country code in the upload file or select it from the user interface. \n"
        file_url:
          type: string
          description: 'The URL of the file containing the list of recipient phone numbers. The file should be in plain text format with each phone number on a new line.

            '
        campaign_name:
          type: string
          description: 'The name of the campaign for identification purposes.

            '
        scheduled_time:
          type: string
          description: 'The date and time at which the message should be scheduled to be sent in the format "YYYY-MM-DD HH:MM:SS".

            '
        bot_name:
          type: string
          description: 'The name of the bot sending the message.

            '
        url:
          type: string
          description: The URL of the media file starting with https:// to be included in the message.
        suggestions:
          type: array
          description: An array of suggestions shown as actions for the endpoint. Each suggestion can have a "text" field with plain text content. This field is optional.
          items:
            type: object
            properties:
              type:
                type: string
                description: The label name for the suggestion.
              text:
                type: string
                description: The plain text content of the suggestion.
              url:
                type: string
                description: The (image/pdf/video mp4) url starting with https:// .
              postback:
                type: string
                description: The postback text or action associated with the suggestion.
        fallback_text:
          type: string
          description: 'The fallback text that is displayed on devices. The fallback text to be sent if the RCS message cannot be delivered. This field supports variable substitution using {#var#} format. It is optional.

            '
      required:
      - type
      - file_url
      - campaign_name
      - bot_name
      - url
    rcs_bulkcamp_text_msg:
      type: object
      title: Text
      description: A message type that is used to send simple text message to users.
      properties:
        type:
          type: string
          description: 'The type of the message.

            '
        country_code:
          type: string
          description: "The country code to be used for the recipient phone numbers. The user can include the country code in the upload file or select it from the user interface. \n"
        file_url:
          type: string
          description: 'The URL of the file containing the list of recipient phone numbers. The file should be in plain text format with each phone number on a new line.

            '
        campaign_name:
          type: string
          description: 'The name of the campaign for identification purposes.

            '
        scheduled_time:
          type: string
          description: 'The date and time at which the message should be scheduled to be sent in the format "YYYY-MM-DD HH:MM:SS".

            '
        ttl:
          type: integer
          description: time to live.
        expire_time:
          type: string
          description: "The date and time at which the message should be expired and should be in the format YYYY-MM-DD HH:MM:SS.\n -Either ttl or expire time can be used in a single message"
        bot_name:
          type: string
          description: 'The name of the bot sending the message.

            '
        text:
          type: string
          description: 'The main text content of the message to be sent via RCS.

            '
        suggestions:
          type: array
          description: An array of suggestions shown as actions for the endpoint.
          items:
            type: object
            properties:
              type:
                type: string
                description: The label name for the suggestion.
              text:
                type: string
                description: The plain text content of the suggestion.
              latitude:
                type: string
                description: The latitude value associated with the suggestion.
              longitude:
                type: string
                description: The longitude value associated with the suggestion.
              postback:
                type: string
                description: The postback text or action associated with the suggestion.
        fallback_text:
          type: string
          description: 'The fallback text that is displayed on devices. The fallback text to be sent if the RCS message cannot be delivered. This field supports variable substitution using {#var#} format. It is optional.

            '
      required:
      - type
      - file_url
      - campaign_name
      - bot_name
      - text
    rcs_bulkcamp_richcardcarsl_msg:
      type: object
      title: Rich Card Carousel
      description: A message type that consists of multiple cards presented in a carousel format. Each card can have an image, title, description, and interactive components like buttons or links. It provides a visually engaging way to present multiple options or information to users.
      properties:
        type:
          type: string
          description: 'The type of the message.

            '
        country_code:
          type: string
          description: "The country code to be used for the recipient phone numbers. The user can include the country code in the upload file or select it from the user interface. \n"
        file_url:
          type: string
          description: 'The URL of the file containing the list of recipient phone numbers. The file should be in plain text format with each phone number on a new line.

            '
        campaign_name:
          type: string
          description: 'The name of the campaign for identification purposes.

            '
        scheduled_time:
          type: string
          description: 'The date and time at which the message should be scheduled to be sent in the format "YYYY-MM-DD HH:MM:SS".

            '
        bot_name:
          type: string
          description: 'The name of the bot sending the message.

            '
        cards:
          type: array
          description: 'An array of objects representing multiple rich cards. Each card object has a "title", "description", "url", and an array of "suggestions". This field is optional for "multiple_cards" type messages.

            '
          items:
            type: object
            properties:
              card:
                type: object
                description: An object representing a standalone rich card. It includes a "title", "description", "url", and an array of "suggestions". This field is optional for "card" type messages.
                properties:
                  title:
                    type: string
                    description: The label name for the card.
                  description:
                    type: string
                    description: A short description of the card.
                  url:
                    type: string
                    description: The (image/pdf/video mp4) url starting with https:// .
                  suggestions:
                    type: array
                    description: An array of suggestions shown as actions for the endpoint. Each suggestion can have a "text" field with plain text content. This field is optional.
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          description: The label name for the suggestion.
                        text:
                          type: string
                          description: The plain text content of the suggestion.
                        postback:
                          type: string
                          description: The postback text or action associated with the suggestion.
                        call_to:
                          type: string
                          description: The sender phone number.
                        url:
                          type: string
                          description: The (image/pdf/video mp4) url starting with https:// .
        fallback_text:
          type: string
          description: 'The fallback text that is displayed on devices. The fallback text to be sent if the RCS message cannot be delivered. This field supports variable substitution using {#var#} format. It is optional.

            '
      required:
      - type
      - file_url
      - campaign_name
      - bot_name
    rcs_bulkcamp_dialsugg_msg:
      type: object
      title: Dial Suggestion
      properties:
        type:
          type: string
          description: 'The type of the message.

            '
        country_code:
          type: string
          description: "The country code to be used for the recipient phone numbers. The user can include the country code in the upload file or select it from the user interface. \n"
        file_url:
          type: string
          description: 'The URL of the file containing the list of recipient phone numbers. The file should be in plain text format with each phone number on a new line.

            '
        campaign_name:
          type: string
          description: 'The name of the campaign for identification purposes.

            '
        scheduled_time:
          type: string
          description: 'The date and time at which the message should be scheduled to be sent in the format "YYYY-MM-DD HH:MM:SS".

            '
        bot_name:
          type: string
          description: 'The name of the bot sending the message.

            '
        url:
          type: string
          description: The URL of the media file starting with https:// to be included in the message.
        suggestions:
          type: array
          description: An array of suggestions shown as actions for the endpoint. Each suggestion can have a "text" field with plain text content. This field is optional.
          items:
            type: object
            properties:
              type:
                type: string
                description: The label name for the suggestion.
              text:
                type: string
                description: The plain text content of the suggestion.
              call_to:
                type: string
                description: The sender's phone number.
              postback:
                type: string
                description: The postback text or action associated with the suggestion.
        fallback_text:
          type: string
          description: 'The fallback text that is displayed on devices. The fallback text to be sent if the RCS message cannot be delivered. This field supports variable substitution using {#var#} format. It is optional.

            '
      required:
      - type
      - file_url
      - campaign_name
      - bot_name
      - url
    rcs_bulkcamp_calendarsugg_msg:
      type: object
      title: Calendar Suggestion
      properties:
        type:
          type: string
          description: 'The type of message to be sent.


            '
          example: Text. Media, Card, or Multiple Cards
        phone_no:
          type: string
          description: The recipient's phone number, including the country code.
        bot_name:
          type: string
          description: The name of the bot sending the message.
        text:
          type: string
          description: The plain text content of the message. This field is required for "text" type messages.
        suggestions:
          type: array
          description: 'An array of suggestions shown as actions for the endpoint. Each suggestion can have a "text" field with plain text content. This field is optional.


            '
          items:
            type: object
            properties:
              type:
                type: string
                description: 'The label name for the suggestion.


                  '
              text:
                type: string
                description: 'The plain text content of the suggestion.


                  '
              title:
                type: string
                description: 'The plain title of the suggestion.


                  '
              url:
                type: string
                description: 'The (image/pdf/video mp4) url starting with https:// .


                  '
              start:
                type: string
                description: 'The latitude value associated with the suggestion.


                  '
              end:
                type: string
                description: 'The longitude value associated with the suggestion.


                  '
              decription:
                type: string
                description: 'The description associated with the suggestion.


                  '
              postback:
                type: string
                description: 'The postback text or action associated with the suggestion.


                  '
    rcs_bulkcamp_textsugg_msg:
      type: object
      title: Text Suggestion
      description: A message type that includes a list of suggested text responses for the user to choose from. It simplifies user interactions by providing predefined options for quick replies or actions.
      properties:
        type:
          type: string
          description: 'The type of the message.

            '
        country_code:
          type: string
          description: "The country code to be used for the recipient phone numbers. The user can include the country code in the upload file or select it from the user interface. \n"
        file_url:
          type: string
          description: 'The URL of the file containing the list of recipient phone numbers. The file should be in plain text format with each phone number on a new line.

            '
        campaign_name:
          type: string
          description: 'The name of the campaign for identification purposes.

            '
        scheduled_time:
          type: string
          description: 'The date and time at which the message should be scheduled to be sent in the format "YYYY-MM-DD HH:MM:SS".

            '
        bot_name:
          type: string
          description: 'The name of the bot sending the message.

            '
        text:
          type: string
          description: 'The main text content of the message to be sent via RCS.

            '
        suggestions:
          type: array
          description: An array of suggestions shown as actions for the endpoint.
          items:
            type: object
            properties:
              type:
                type: string
                description: The label name for the suggestion.
              text:
                type: string
                description: The plain text content of the suggestion.
              postback:
                type: string
                description: The postback text o

# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/route-mobile/refs/heads/main/openapi/route-mobile-bulk-upload-campaign-api-api-openapi.yml