Route Mobile Catalog Management API

Create, update, delete, and fetch product feeds and catalog details for WhatsApp Commerce.

Operations 9

POST /wba/catalog/manager/v1/upload Upload File #
POST /wba/catalog/manager/v1/create_product_feed Create Product Feed #
POST /wba/catalog/manager/v1/update_product_feed Update Product Feed #
POST /wba/catalog/manager/v1/delete_product_feed Delete product Feed #
GET /wba/catalog/manager/v1/fetch_product_feed Fetch Product Feed Details #
GET /wba/catalog/manager/v1/fetch_product_details Fetch All Product Feed #
GET /wba/catalog/manager/v1/fetch_catalog_details Fetch Catalog Details #
GET /wba/catalog/manager/v1/schedule_product_feed_details Fetch Schedule Product Feed Details #
GET /wba/catalog/manager/v1/fetch_errors Fetch Errors #

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-catalog-management-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-catalog-management-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.8.0
  title: Route Mobile WhatsApp Business Catalog Management API
  description: 'The Route Mobile WhatsApp Business API enables enterprises to programmatically send and receive WhatsApp messages at scale. Use these APIs to integrate WhatsApp messaging into your applications for notifications, customer engagement, commerce, and support.


    ## Getting Started


    1. **Authenticate** — Call the [Login API](#tag/Authentication/operation/loginApi) to obtain a JWT token.

    2. **Send Messages** — Use the [Send Messages API](#tag/Messaging/operation/sendMessages) to deliver template or session messages.

    3. **Receive Callbacks** — Configure your webhook URL to receive [delivery reports and incoming messages](#tag/Webhooks).


    ## Key Concepts


    - **Template Messages** — Pre-approved message templates for outbound notifications (marketing, utility, authentication).

    - **Session Messages** — Free-form messages within a 24-hour customer service window.

    - **Bulk Campaigns** — Send messages to thousands of recipients via file upload.

    - **Catalog & Commerce** — Product catalogs, payments, and order management via WhatsApp.


    ## Authentication


    All API endpoints (except Login) require a JWT bearer token in the `Authorization` header. Tokens are valid for **one hour** by default.


    ```

    Authorization: <your-jwt-token>

    ```


    ## Rate Limits


    API rate limits are governed by your account tier. Contact your account manager for details.


    ## Support


    For API support, visit the [Route Mobile Developer Hub](https://developers.routemobile.com/) or reach out to [product-desk@routemobile.com](mailto:product-desk@routemobile.com).'
  contact:
    name: Route Mobile Developer Support
    url: https://developers.routemobile.com/
    email: product-desk@routemobile.com
  termsOfService: https://www.routemobile.com/terms-of-service/
  license:
    name: Proprietary
    url: https://www.routemobile.com/terms-of-service/
  x-logo:
    url: https://www.routemobile.com/wp-content/uploads/2023/04/route-mobile-logo.svg
    altText: Route Mobile
servers:
- url: https://apis.rmlconnect.net
security:
- BearerAuth: []
tags:
- name: Catalog Management
  description: Create, update, delete, and fetch product feeds and catalog details for WhatsApp Commerce.
paths:
  /wba/catalog/manager/v1/upload:
    post:
      tags:
      - Catalog Management
      summary: Upload File
      description: Upload the product feed file.
      operationId: uploadFile
      requestBody:
        description: Upload a product catalog file (CSV) with item details.
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CatalogUploadRequest'
            examples:
              Example 1:
                value:
                  action: Update
                  file: string
                  file_name: file_name
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: The status of the upload file.
                  file_url:
                    type: string
                    description: The URL for uploading a file.
                  count:
                    type: integer
                    description: The number of products added in the catalog file.
              examples:
                Example:
                  value:
                    status: success
                    file_url: AWS S3 url
                    count: 20
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: array
                    description: The error received during file upload.
                    items:
                      type: string
              examples:
                Example:
                  value:
                    error:
                    - Provide file_name
        '401':
          description: Authentication Failure
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogUnauthorizedError'
              examples:
                JWT Token Expired:
                  value:
                    message: unable to process campaign request
                    reason: jwt token expired
                    status: failure
        '404':
          description: Page Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
              examples:
                Incorrect API URL:
                  value:
                    message: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: The status of the message delivery.
                  message:
                    type: string
                    description: The message response.
                  reason:
                    type: string
                    description: The reason for not processing the file upload request.
              examples:
                Example:
                  value:
                    status: failed
                    message: unable to process request
                    reason: reason
      security:
      - BearerAuth: []
  /wba/catalog/manager/v1/create_product_feed:
    post:
      tags:
      - Catalog Management
      summary: Create Product Feed
      description: Create a feed of products for a WhatsApp Business account.
      operationId: createProductFeed
      requestBody:
        description: Create a new product feed with a file URL and optional schedule.
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CreateProductFeedRequest'
            examples:
              Example 1:
                value:
                  file_url: file_url
                  name: product_feed_name
                  schedule: '"interval":"HOURLY","scheduled_time":"2022-09-06 11:38:00"'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: The status of the create product feed.
              examples:
                Example:
                  value:
                    status: processing
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  name:
                    type: array
                    description: The required fields name.
                    items:
                      type: string
              examples:
                Example:
                  value:
                    name:
                    - Missing data for required field.
            application/xml:
              schema:
                type: object
            multipart/form-data:
              schema:
                type: object
        '401':
          description: Authentication Failure
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JwtExpiredError'
              examples:
                Incorrect authorization token:
                  value:
                    message: Unable to process request
                    status: Failed
                    reason: Please check the integrity or validity of the token sent.
        '404':
          description: Page Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
              examples:
                Incorrect API URL:
                  value:
                    message: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: The status of the message delivery.
                  message:
                    type: string
                    description: The message response.
                  reason:
                    type: string
                    description: The reason for not processing the product feed request.
              examples:
                Example:
                  value:
                    status: failed
                    message: unable to process request
                    reason: reason
      security:
      - BearerAuth: []
  /wba/catalog/manager/v1/update_product_feed:
    post:
      tags:
      - Catalog Management
      summary: Update Product Feed
      description: Update an existing feed of products for a WhatsApp Business account.
      operationId: updateProductFeed
      requestBody:
        description: Update an existing product feed with new file content or schedule.
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UpdateProductFeedRequest'
            examples:
              Example 1:
                value:
                  file_url: string
                  product_feed_id: string
                  schedule: '"interval":"HOURLY","scheduled_time":"2022-09-06 11:38:00"'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: The status of the product feed.
              examples:
                Example:
                  value:
                    status: processing
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  product_feed_id:
                    type: array
                    description: The unique identifier of the product feed.
                    items:
                      type: string
              examples:
                Example:
                  value:
                    product_feed_id:
                    - Missing data for required field.
        '401':
          description: Authentication Failure
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JwtExpiredError'
              examples:
                Example:
                  value:
                    message: Unable to process request
                    status: Failed
                    reason: Please check the integrity or validity of the token sent.
        '404':
          description: Page Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
              examples:
                Incorrect API URL:
                  value:
                    message: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: The status of product feed updates.
                  message:
                    type: string
                    description: The message response.
                  reason:
                    type: string
                    description: The reason for not updating the product feed.
              examples:
                Example:
                  value:
                    status: failed
                    message: unable to process request
                    reason: reason
      security:
      - BearerAuth: []
  /wba/catalog/manager/v1/delete_product_feed:
    post:
      tags:
      - Catalog Management
      summary: Delete product Feed
      description: Delete an existing feed of products for a WhatsApp Business account.
      operationId: deleteProductFeed
      requestBody:
        description: Delete a product feed by its unique identifier.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteProductFeedRequest'
          application/xml:
            schema:
              $ref: '#/components/schemas/DeleteProductFeedRequestAlt'
            examples:
              Example 1:
                value:
                  product_feed_id: '{product_feed_id}'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: The status of the product feed.
              examples:
                Example 1:
                  value:
                    status: processing
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  product_feed_id:
                    type: array
                    description: The unique identifier of the product feed.
                    items:
                      type: string
              examples:
                Example 1:
                  value:
                    product_feed_id:
                    - Missing data for required field.
        '401':
          description: Authentication Failure
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogAuthError'
              examples:
                Example 1:
                  value:
                    message: Unable to process request
                    status: Failed
                    reason: Please check the integrity or validity of the token sent.
        '404':
          description: Page Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
              examples:
                Incorrect API URL:
                  value:
                    message: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: The status for the product feed.
                  message:
                    type: string
                    description: The response message.
                  reason:
                    type: string
                    description: The reason for not deleting the product feed request.
              examples:
                Example 1:
                  value:
                    status: failed
                    message: unable to process request
                    reason: reason
      security:
      - BearerAuth: []
  /wba/catalog/manager/v1/fetch_product_feed:
    get:
      tags:
      - Catalog Management
      summary: Fetch Product Feed Details
      description: 'Fetch product feed details, which is used to retrieve details about a specific product feed. The product feed includes a comma-separated list of field names:

        - retailer_id: The ID of the retailer associated with the product.

        - name: The name of the product.

        - price: The price of the product.

        - availability: The availability status of the product.

        - id: The ID of the product.

        - description: The description of the product.

        - color: The color of the product.

        - size: The size of the product.

        - condition: The condition of the product.

        - product_type: The type of product.

        - quantity_to_sell_on_facebook: The quantity of the product to be sold on Facebook.

        - url: The URL of the product.

        - gender: The gender for which the product is intended.

        - age_group: The age group for which the product is intended.

        - sale_price: The sale price of the product.

        - mpn: The manufacturer part number of the product.

        - sale_price_effective_date: The effective date range of the sale price.

        - brand: The brand of the product.

        - custom_label_0: A custom label for the product.'
      operationId: fetchProductFeedDetails
      parameters:
      - name: product_feed_id
        in: query
        description: The unique ID of the product feed for which details should be fetched.
        required: true
        schema:
          type: string
      - name: fields
        in: query
        description: The fields that should be included in the response. The value should be a comma-separated list of field names, such as "retailer_id, name, price, id".
        required: true
        schema:
          type: string
      - name: limit
        in: query
        description: The maximum number of products to return in the response. The value should be an integer.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    description: The product feed details.
                    items:
                      type: object
              examples:
                Example 1:
                  value:
                    data:
                    - name: Dairy Milk Silk
                      id: xxxxxxxxxxxxxxxxx
                      price: ₹125.00
                      description: Dairy Products
                      retailer_id: xxxxx
                    - name: Maggie Pasta
                      id: xxxxxxxxxxxxxxxxx
                      price: ₹25.00
                      description: Instant Food
                      retailer_id: xxxxx
                    - name: Pulses 1kg
                      id: xxxxxxxxxxxxxxxxx
                      price: ₹200.00
                      description: Pulses are very good for health
                      retailer_id: xxxxx
                    - name: Cow Ghee
                      id: xxxxxxxxxxxxxxxxx
                      price: ₹499.00
                      description: Healty  Cow Ghee
                      retailer_id: xxxxx
                    - name: BESAN 250 Gm
                      id: xxxxxxxxxxxxxxxxx
                      price: ₹32.00
                      description: Besan or Gram flour is made from Chana Dal. Besan atta is used too make Bhaji, Vada , Sev, Chaklis, and many more items. It has various beauty benefits.
                      retailer_id: xxxxx
                    - name: Pastry
                      id: xxxxxxxxxxxxxxxxx
                      price: ₹50.00
                      description: Dairy Products
                      retailer_id: xxxxx
                    - name: Tea 2 kg
                      id: xxxxxxxxxxxxxxxxx
                      price: ₹800.00
                      description: Tea & Coffee
                      retailer_id: xxxxx
                    - name: Olive Oil 1L
                      id: xxxxxxxxxxxxxxxxx
                      price: ₹400.00
                      description: Olive Oil
                      retailer_id: xxxxx
                    - name: Olive Oil 2L
                      id: xxxxxxxxxxxxxxxxx
                      price: ₹799.00
                      description: Olive Oil
                      retailer_id: xxxxx
                    - name: Yippe Pasta
                      id: xxxxxxxxxxxxxxxxx
                      price: ₹25.00
                      description: Instant Food
                      retailer_id: xxxxx
                    - name: Cotton Oil
                      id: xxxxxxxxxxxxxxxxx
                      price: ₹499.00
                      description: Cotton Oil
                      retailer_id: xxxxx
                    next_url: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/v1/fetch_product_feed?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&limit=10&fields=name,id,price,description,retailer_id&product_feed_id=xxxxxxxxxxxxxxx&after=xxxxxxxxxxxxxxxxxxxxxxxx&before=
                    prev_url: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/v1/fetch_product_feed?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&limit=10&fields=name,id,price,description,retailer_id&product_feed_id=xxxxxxxxxxxxxx&after=&before=xxxxxxxxxxxxxxxxx
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: The response message.
              examples:
                Invalid token:
                  value:
                    message: 'Error validating access token: The session has been invalidated because the user changed their password or Facebook has changed the session for security reasons.'
        '401':
          description: Authentication Failure
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JwtExpiredError'
              examples:
                Incorrect authorization token:
                  value:
                    status: failed
                    message: unable to process request
                    reason: reason
        '404':
          description: Page Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
              examples:
                Incorrect API URL:
                  value:
                    message: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: The response message.
                  status:
                    type: string
                    description: The status of the product feed.
                  reason:
                    type: string
                    description: The reason for not fetching product feed details.
              examples:
                Example 1:
                  value:
                    status: failed
                    message: unable to process request
                    reason: reason
      security:
      - BearerAuth: []
  /wba/catalog/manager/v1/fetch_product_details:
    get:
      tags:
      - Catalog Management
      summary: Fetch All Product Feed
      description: Fetch a list of all product feeds associated with a WhatsApp Business account. To use this endpoint, specify the necessary authorization token credentials.
      operationId: fetchAllProductFeed
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  catalog_id:
                    type: string
                    description: The unique ID of the catalog that contains the product.
                  file_url:
                    type: string
                    description: The URL of the file.
                  interval:
                    type:
                    - string
                    - 'null'
                    description: The time interval at which the product feed should be updated.
                  product_feed_count:
                    type: integer
                    description: The total number of products to fetch.
                  product_feed_id:
                    type: string
                    description: The unique ID of the product feed.
                  product_feed_name:
                    type: string
                    description: The name of the product feed.
                  scheduled:
                    type: boolean
                    description: Indicates whether this event is scheduled.
                  scheduled_timestamp:
                    type:
                    - string
                    - 'null'
                    description: The scheduled time of the message.
                  timestamp:
                    type: string
                    description: The timestamp of when the message was submitted to the API.
                  upload_session_id:
                    type: string
                    description: The unique ID for the product feed upload session that you want to retrieve the errors for.
              examples:
                Example 1:
                  value:
                    catalog_id: 62305622836xxxxx
                    file_url: https://www.example.com/demo_xxxx-xxxd-965a-0a58a9feac02.csv
                    interval: string
                    product_feed_count: 0
                    product_feed_id: 122543386xxxxxxx
                    product_feed_name: testammy
                    scheduled: false
                    scheduled_timestamp: string
                    timestamp: '2023-02-27 09:54:47.337571'
                    upload_session_id: 1225433871xxxxxx
        '401':
          description: Authentication Failure
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JwtExpiredError'
              examples:
                Incorrect authorization token:
                  value:
                    message: Unable to process request
                    status: Failed
                    reason: Please check the integrity or validity of the token sent.
        '404':
          description: Page Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
              examples:
                Incorrect API URL:
                  value:
                    message: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: The status of the product feed.
                  message:
                    type: string
                    description: The message response.
                  reason:
                    type: string
                    description: The reason for not fetching product feeds.
              examples:
                Example 1:
                  value:
                    status: failed
                    message: unable to process request
                    reason: reason
      security:
      - BearerAuth: []
  /wba/catalog/manager/v1/fetch_catalog_details:
    get:
      tags:
      - Catalog Management
      summary: Fetch Catalog Details
      description: 'Fetch details about a specific product catalog associated with a WhatsApp Business account. The fields information includes a comma-separated list:

        - name: The name of the product catalog.

        - product_count: The total number of products in the product catalog.

        - schedule: The schedule for updating the product catalog.

        - latest_upload: The date and time of the most recent upload to the product catalog.

        - retailer_id: The ID of the retailer associated with the product catalog.

        - price: The price of the product.

        - availability: The availability status of the product.

        - id: The ID of the product.

        - description: The description of the product.

        - color: The color of the product.

        - size: The size of the product.

        - condition: The condition of the product.

        - product_type: The type of product.

        - quantity_to_sell_on_facebook: The quantity of the product to sell on Facebook.

        - url: The URL of the product.

        - gender: The gender of the product.

        - age_group: The age group of the product.

        - sale_price: The sale price of the product.

        - mpn: The manufacturer part number of the product.

        - sale_price_effective_date: The effective date of the sale price of the product.

        - brand: The brand of the product.

        - custom_label_0: The custom label of the product.

        - image_url: The URL of the product image.'
      operationId: fetchCatalogDetails
      parameters:
      - name: catalog_id
        in: query
        description: The ID of the catalog the product belongs to.
        required: true
        schema:
          type: string
      - name: fetch_details
        in: query
        description: Option to fetch the product catalog details.
        required: true
        schema:
          type: string
      - name: fields
        in: query
        description: The fields that should be included in the response. The value should be a comma-separated list of field names, such as "name, product_count".
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    description: An array of objects representing the catalog details of a specific product.
                    items:
                      type: object
                      properties:
                        retailer_id:
                          type: string
                          description: The unique identifier for the retailer associated with the product.
                        name:
                          type: string
                          description: The name of the product.
                        price:
                          type: string
                          description: The price of the product.
                        availability:
                          type: string
                          description: The availability status of the product.
                        id:
                          type: string
                          description: The unique identifier for the product.
                        description:
                          type: string
                          description: A brief description of the product.
                        condition:
                          type: string
                          description: The condition of the product.
                        quantity_to_sell_on_facebook:
                          type: integer
                          description: The quantity of the product available for sale on Facebook.
                        url:
                          type: string
                          description: The URL of the product where the product can be viewed or purchased.
                        gender:
                          type: string
 

# --- truncated at 32 KB (52 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/route-mobile/refs/heads/main/openapi/route-mobile-catalog-management-api-openapi.yml