Podium Message API

The Message API from Podium — 6 operation(s) for message.

Operations 6

POST /v4/campaigns/{uid}/messages Create a message for a given campaign #
GET /v4/conversations/{conversation_uid}/messages Retrieve messages from a conversation #
GET /v4/conversations/{conversation_uid}/messages/{uid} Retreive a message from a conversation #
POST /v4/import/messages Import a message. #
POST /v4/messages Send a message. #
POST /v4/messages/attachment Send a message with attachment. #

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/podium-message-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

podium-message-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Podium Message API
  version: 2021.04.01
  description: 'Operations tagged Message across 2 of this provider''s published API definitions: podium-campaigns-openapi.yml, podium-messenger-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.podium.com
  variables: {}
security: []
tags:
- name: Message
paths:
  /v4/campaigns/{uid}/messages:
    post:
      callbacks: {}
      description: 'Send a message through a campaign.


        Required scope: `write_campaign_messages`.'
      operationId: message.create_campaign_message
      parameters:
      - description: Podium unique identifier for campaign.
        in: path
        name: uid
        required: true
        schema:
          example: 00000000-0000-0000-0000-000000000000
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                channelIdentifier:
                  description: Identifies the Messenger channel. Must be a valid email address or a phone number. Non-US/Canada numbers must include the country code (e.g. +61 for AUS)
                  example: email@email.com
                  type: string
              required:
              - channelIdentifier
              type: object
        description: Create campaign message body params
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/message'
                  metadata:
                    description: Additional response data.
                    properties:
                      url:
                        description: The resource URL.
                        example: https://www.podium.com/
                        type: string
                    type: object
                type: object
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                properties:
                  code:
                    description: Podium code for the error.
                    type: integer
                  message:
                    description: Specific details about the error.
                    type:
                    - string
                    - 'null'
                  moreInfo:
                    description: URL providing more information about the error.
                    type: string
                title: Error
                type: object
          description: Error response.
      summary: Create a message for a given campaign
      tags:
      - Message
    servers:
    - url: https://api.podium.com
      variables: {}
  /v4/conversations/{conversation_uid}/messages:
    get:
      callbacks: {}
      description: 'Retrieve limited number of messages from a conversation.


        Required scope: `read_messages`.'
      operationId: message.index
      parameters:
      - description: Podium unique identifier for conversation.
        in: path
        name: conversation_uid
        required: true
        schema:
          example: 00000000-0000-0000-0000-000000000000
          format: uuid
          type: string
      - description: ''
        in: query
        name: cursor
        required: false
        schema:
          description: Cursor used to access next or previous page in pagination.
          example: MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAw
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: '#/components/schemas/message'
                    type: array
                  metadata:
                    description: Additional response data.
                    properties:
                      nextCursor:
                        description: Cursor to get next set of items.
                        example: MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAw
                        type: string
                      previousCursor:
                        description: Cursor to get previous set of items.
                        example: MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAw
                        type: string
                      totalItems:
                        description: Total number of items available.
                        type: integer
                      url:
                        description: The resource URL.
                        example: https://www.podium.com/
                        type: string
                    type: object
                type: object
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                properties:
                  code:
                    description: Podium code for the error.
                    type: integer
                  message:
                    description: Specific details about the error.
                    type:
                    - string
                    - 'null'
                  moreInfo:
                    description: URL providing more information about the error.
                    type: string
                title: Error
                type: object
          description: Error response.
      summary: Retrieve messages from a conversation
      tags:
      - Message
    servers:
    - url: https://api.podium.com
      variables: {}
  /v4/conversations/{conversation_uid}/messages/{uid}:
    get:
      callbacks: {}
      description: 'Retrieve a message from a conversation.


        Required scope: `read_messages`.'
      operationId: message.get
      parameters:
      - description: Podium unique identifier for message.
        in: path
        name: uid
        required: true
        schema:
          example: 00000000-0000-0000-0000-000000000000
          format: uuid
          type: string
      - description: Podium unique identifier for conversation.
        in: path
        name: conversation_uid
        required: true
        schema:
          example: 00000000-0000-0000-0000-000000000000
          format: uuid
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/message'
                  metadata:
                    description: Additional response data.
                    properties:
                      url:
                        description: The resource URL.
                        example: https://www.podium.com/
                        type: string
                    type: object
                type: object
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                properties:
                  code:
                    description: Podium code for the error.
                    type: integer
                  message:
                    description: Specific details about the error.
                    type:
                    - string
                    - 'null'
                  moreInfo:
                    description: URL providing more information about the error.
                    type: string
                title: Error
                type: object
          description: Error response.
      summary: Retreive a message from a conversation
      tags:
      - Message
    servers:
    - url: https://api.podium.com
      variables: {}
  /v4/import/messages:
    post:
      callbacks: {}
      description: 'Import a message from a different system. NOTE: This does not send a message to number, just imports it into a conversation on Podium''s system.


        Required scope: `write_messages`.

        '
      operationId: message.import
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              properties:
                body:
                  description: Text of the message.
                  example: Just a reminder that your appointment is today!
                  type: string
                channel:
                  description: The channel that the message was sent to.
                  properties:
                    identifier:
                      description: Identifies the Messenger channel. Must be a valid email address or a phone number. Non-US/Canada numbers must include the country code (e.g. +61 for AUS)
                      example: email@email.com
                      type: string
                    type:
                      description: Messenger channel for the conversation.
                      enum:
                      - email
                      - phone
                      example: email
                      type: string
                  required:
                  - identifier
                  - type
                  type: object
                contactName:
                  description: Name of the contact that the message was sent to.
                  example: Joe Orange
                  type: string
                direction:
                  description: Direction of the message.
                  enum:
                  - inbound
                  - outbound
                  example: inbound
                  type: string
                locationUid:
                  description: Podium unique identifier for location.
                  example: 00000000-0000-0000-0000-000000000000
                  format: uuid
                  type: string
                publishedAt:
                  description: When the mesage was originally published.
                  example: '2015-01-23T23:50:07Z'
                  format: date-time
                  type: string
                subject:
                  description: Subject of the message.
                  example: Appointment reminder
                  type: string
              required:
              - body
              - channel
              - contactName
              - direction
              - locationUid
              - publishedAt
              type: object
        description: Import message body params
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/message'
                  metadata:
                    description: Additional response data.
                    properties:
                      url:
                        description: The resource URL.
                        example: https://www.podium.com/
                        type: string
                    type: object
                type: object
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                properties:
                  code:
                    description: Podium code for the error.
                    type: integer
                  message:
                    description: Specific details about the error.
                    type:
                    - string
                    - 'null'
                  moreInfo:
                    description: URL providing more information about the error.
                    type: string
                title: Error
                type: object
          description: Error response.
      summary: Import a message.
      tags:
      - Message
    servers:
    - url: https://api.podium.com
      variables: {}
  /v4/messages:
    post:
      callbacks: {}
      description: 'Send a message. A message can only be sent on behalf of a user if they have the necessary permissions to send

        messages in: conversations assigned to them, conversations assigned to others, and unassigned conversations.


        Required scope: `write_messages`.

        '
      operationId: message.send
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              properties:
                body:
                  description: Text of the message.
                  example: Just a reminder that your appointment is today!
                  type: string
                channel:
                  description: Channel to send the message to.
                  properties:
                    identifier:
                      description: Identifies the Messenger channel. Must be a valid email address or a phone number. Non-US/Canada numbers must include the country code (e.g. +61 for AUS)
                      example: email@email.com
                      type: string
                    type:
                      description: Messenger channel for the conversation.
                      enum:
                      - email
                      - phone
                      example: email
                      type: string
                  required:
                  - identifier
                  - type
                  type: object
                contactName:
                  description: Name of the contact to send the message to. If a contact already exists for the channel then their name will be updated.
                  example: Joe Orange
                  type: string
                locationUid:
                  description: Podium unique identifier for location.
                  example: 00000000-0000-0000-0000-000000000000
                  format: uuid
                  type: string
                senderName:
                  description: The name that will be credited with sending the message. This will appear under the sent message in the Podium app.
                  example: Bot1234
                  type: string
                setOpenInbox:
                  default: false
                  description: new conversations will be created in a 'closed' state by default. This will override that setting going to 'open' inbox.
                  example: true
                  type: boolean
                subject:
                  description: Subject of the message.
                  example: Appointment reminder
                  type: string
              required:
              - body
              - channel
              - locationUid
              type: object
        description: Create message body params
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/message'
                  metadata:
                    description: Additional response data.
                    properties:
                      url:
                        description: The resource URL.
                        example: https://www.podium.com/
                        type: string
                    type: object
                type: object
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                properties:
                  code:
                    description: Podium code for the error.
                    type: integer
                  message:
                    description: Specific details about the error.
                    type:
                    - string
                    - 'null'
                  moreInfo:
                    description: URL providing more information about the error.
                    type: string
                title: Error
                type: object
          description: Error response.
      summary: Send a message.
      tags:
      - Message
    servers:
    - url: https://api.podium.com
      variables: {}
  /v4/messages/attachment:
    post:
      callbacks: {}
      description: 'Send a message with an attachment. A message can only be sent on behalf of a user if they have the necessary permissions to send

        messages in: conversations assigned to them, conversations assigned to others, and unassigned conversations.


        Required scope: `write_messages`.

        '
      operationId: message.send_with_attachment
      parameters: []
      requestBody:
        content:
          multipart/form-data:
            schema:
              description: multipart request body
              properties:
                attachment:
                  description: The attachment content.
                  format: binary
                  type:
                  - string
                  - 'null'
                data:
                  properties:
                    body:
                      description: Text of the message.
                      example: Just a reminder that your appointment is today!
                      type: string
                    channel:
                      description: Channel to send the message to.
                      properties:
                        identifier:
                          description: Identifies the Messenger channel. Must be a valid email address or a phone number. Non-US/Canada numbers must include the country code (e.g. +61 for AUS)
                          example: email@email.com
                          type: string
                        type:
                          description: Messenger channel for the conversation.
                          enum:
                          - email
                          - phone
                          example: email
                          type: string
                      required:
                      - identifier
                      - type
                      type: object
                    contactName:
                      description: Name of the contact to send the message to. If a contact already exists for the channel then their name will be updated.
                      example: Joe Orange
                      type: string
                    locationUid:
                      description: Podium unique identifier for location.
                      example: 00000000-0000-0000-0000-000000000000
                      format: uuid
                      type: string
                    senderName:
                      description: The name that will be credited with sending the message. This will appear under the sent message in the Podium app.
                      example: Bot1234
                      type: string
                    subject:
                      description: Subject of the message.
                      example: Appointment reminder
                      type: string
                  required:
                  - body
                  - channel
                  - locationUid
                  type: object
              required:
              - data
              type: object
        description: Create message with attachment body params
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/message'
                  metadata:
                    description: Additional response data.
                    properties:
                      url:
                        description: The resource URL.
                        example: https://www.podium.com/
                        type: string
                    type: object
                type: object
          description: Successful response.
        default:
          content:
            application/json:
              schema:
                properties:
                  code:
                    description: Podium code for the error.
                    type: integer
                  message:
                    description: Specific details about the error.
                    type:
                    - string
                    - 'null'
                  moreInfo:
                    description: URL providing more information about the error.
                    type: string
                title: Error
                type: object
          description: Error response.
      summary: Send a message with attachment.
      tags:
      - Message
    servers:
    - url: https://api.podium.com
      variables: {}
components:
  schemas:
    message:
      description: 'A message from a Podium conversation. Messages include each exchange within a conversation and include

        conversations for all channels within Podium (Facebook Messenger, SMS text, GMB, etc).


        ## Deprecations


        The `contact` and `sender` object fields have been deprecated, they are currently only available in webhook

        and will be completely removed at some point in the future.

        '
      properties:
        attachmentUrl:
          description: URL of message attachment. This field is deprecated, please refer to the attachmentUrl in the items array.
          example: https://www.podium.com/
          type:
          - string
          - 'null'
        body:
          description: Body of the message.
          example: Hello there.
          type:
          - string
          - 'null'
        contact:
          deprecated: true
          description: To whom the message was sent or from whom it was received.
          properties:
            externalIdentifier:
              description: Identifier of the contact that is used external to Podium.
              example: 123-abc
              type:
              - string
              - 'null'
            name:
              description: Name of the contact.
              example: Joe Orange
              type:
              - string
              - 'null'
            uid:
              description: Podium unique identifier for contact.
              example: 00000000-0000-0000-0000-000000000000
              format: uuid
              type:
              - string
              - 'null'
          type: object
        contactName:
          description: Name of the contact.
          example: Joe Orange
          type:
          - string
          - 'null'
        conversation:
          description: The conversation to which the message belongs.
          properties:
            assignedUserUid:
              description: Podium unique identifier for user.
              example: 00000000-0000-0000-0000-000000000000
              format: uuid
              type:
              - string
              - 'null'
            channel:
              description: Channel that the conversation is in.
              properties:
                identifier:
                  description: Identifies the Messenger channel. Must be a valid email address or a phone number. Non-US/Canada numbers must include the country code (e.g. +61 for AUS)
                  example: email@email.com
                  type:
                  - string
                  - 'null'
                type:
                  description: Messenger channel for the conversation.
                  enum:
                  - apple
                  - car_wars
                  - email
                  - facebook
                  - fallback_email
                  - google
                  - google_brand
                  - iframe
                  - instagram
                  - phone
                  - secure
                  - sms
                  - text
                  - whatsapp
                  example: email
                  type:
                  - string
                  - 'null'
              type: object
            startedAt:
              description: When the conversation was started.
              example: '2015-01-23T23:50:07Z'
              format: date-time
              type:
              - string
              - 'null'
            uid:
              description: Podium unique identifier for conversation.
              example: 00000000-0000-0000-0000-000000000000
              format: uuid
              type:
              - string
              - 'null'
          type: object
        createdAt:
          description: When the message was created.
          example: '2015-01-23T23:50:07Z'
          format: date-time
          type:
          - string
          - 'null'
        failureReason:
          description: If the message failed to send, this will be the reason.
          example: Attempted to send SMS to a landline.
          type:
          - string
          - 'null'
        items:
          items:
            description: A list of all items associated with the message uid. This includes text bodies and attachments.
            properties:
              attachmentContentType:
                description: MIME type of the message attachment.
                example: image/png
                type:
                - string
                - 'null'
              attachmentUrl:
                description: 'Public URL of the message attachment. NOTE: There is an expiry of 7 days on this URL.'
                example: https://www.podium.com/image.png
                type:
                - string
                - 'null'
              body:
                description: Body of the message.
                example: https://www.podium.com/image.png
                type:
                - string
                - 'null'
              createdAt:
                description: When the message item was created.
                example: '2015-01-23T23:50:07Z'
                format: date-time
                type:
                - string
                - 'null'
              deliveryStatus:
                description: Status of the message item.
                example: sent
                type:
                - string
                - 'null'
              encryptedAt:
                description: When the item was encrypted. `null` if the item is not encrypted.
                example: '2015-01-23T23:50:07Z'
                format: date-time
                type:
                - string
                - 'null'
              sendBody:
                description: The send body of the message item that the end consumer sees.
                example: 'null'
                type:
                - string
                - 'null'
              sourceType:
                description: The source type of the message item.
                example: outbound
                type:
                - string
                - 'null'
              type:
                description: The type of the message item.
                example: attachment
                type:
                - string
                - 'null'
              uid:
                description: Podium unique identifier for message item.
                example: 00000000-0000-0000-0000-000000000000
                format: uuid
                type: string
            type:
            - object
            - 'null'
          type: array
        location:
          description: Location from which the message was sent or to where the message was sent.
          properties:
            organizationUid:
              description: Podium unique identifier for organization.
              example: 00000000-0000-0000-0000-000000000000
              format: uuid
              type:
              - string
              - 'null'
            uid:
              description: Podium unique identifier for location.
              example: 00000000-0000-0000-0000-000000000000
              format: uuid
              type:
              - string
              - 'null'
          type: object
        sender:
          deprecated: true
          description: If the message was sent from Podium then this will be the Podium user who sent it.
          properties:
            uid:
              description: Podium unique identifier for user.
              example: 00000000-0000-0000-0000-000000000000
              format: uuid
              type:
              - string
              - 'null'
          type: object
        senderUid:
          description: Podium unique identifier for user. If the message was sent from Podium then this will be the Podium user who sent it.
          example: 00000000-0000-0000-0000-000000000000
          format: uuid
          type:
          - string
          - 'null'
        uid:
          description: Podium unique identifier for message.
          example: 00000000-0000-0000-0000-000000000000
          format: uuid
          type:
          - string
          - 'null'
        webchatUrl:
          description: The page URL where the webchat widget was submitted from. Only present when the message originated from a website widget.
          example: https://www.example.com/contact
          type:
          - string
          - 'null'
      title: message
      type: object
x-refined-from:
- podium-campaigns-openapi.yml
- podium-messenger-openapi.yml