Vibes Platform Wallet Messaging API

Send push-style messages to the holders of a wallet campaign's passes and review messages that have already been sent. Messages can be targeted to specific recipients with filters (for example, by token value or group code).

Business capability
Push Notifications AE-150.30

Operations 3

POST /companies/{company_key}/campaigns/wallet/{wallet_id}/messages Create a wallet message #
GET /companies/{company_key}/campaigns/wallet/{wallet_id}/messages Get wallet messages #
GET /companies/{company_key}/campaigns/wallet/{wallet_id}/messages/{wallet_message_id} Get a wallet message #

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/vibes-platform:vibes-platform-wallet-messaging-api-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

vibes-platform-wallet-messaging-api-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Vibes Platform Wallet Messaging API
  version: 1.0.0
  description: Send push-style messages to the holders of a wallet campaign's passes and review messages that have already been sent. Messages can be targeted to specific recipients with filters (for example, by token value or group code).
servers:
- url: https://public-api.vibescm.com
  description: North America
- url: https://public-api.eu.vibes.com/
  description: EMEA
security:
- basicAuth: []
tags:
- name: Wallet Messaging API
  description: Send push-style messages to the holders of a wallet campaign's passes and review messages that have already been sent. Messages can be targeted to specific recipients with filters (for example, by token value or group code).
paths:
  /companies/{company_key}/campaigns/wallet/{wallet_id}/messages:
    post:
      tags:
      - Wallet Messaging API
      summary: Create a wallet message
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/walletMessageRequest'
      parameters:
      - name: X-API-Version
        in: header
        schema:
          type: string
          default: 1
      - name: Content-Type
        in: header
        schema:
          type: string
        example: application/json
        required: true
      - name: company_key
        in: path
        schema:
          type: string
        required: true
      - name: wallet_id
        in: path
        schema:
          type: string
          description: The `wallet_id` is the SmartLink token for a campaign.
        required: true
        description: <div style="color:#dd1e2e; background:url(https://d2xs7zaan7w9gl.cloudfront.net/data/pages/64014/widgets/48027d01-e827-45e0-b96d-227c1099eedc/image/1680214872.png?icon-24x24-warning.png) no-repeat 10px center; background-color:#FCEAEC; padding:10px; font-size:13px;"><div style="padding-left:35px"><b>Important:</b> If you are entering a real wallet_id, please note that using the <b>"Try It"</b> feature on the righthand console will send an actual API call to our system. This may result in a wallet message being created and sent.</div></div>
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/walletMessageResponse'
        '404':
          description: The specified wallet_id does not exist.
      operationId: postCompaniesByCompanyKeyCampaignsWalletByWalletIdMessages
      x-operation-id-source: derived
    get:
      tags:
      - Wallet Messaging API
      summary: Get wallet messages
      parameters:
      - name: X-API-Version
        in: header
        schema:
          type: string
          default: 1
      - name: company_key
        in: path
        schema:
          type: string
        required: true
      - name: wallet_id
        in: path
        schema:
          type: string
          description: The `wallet_id` is the SmartLink token for a campaign.
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/walletMessagesResponse'
        '404':
          description: The specified `wallet_id` does not exist.
      operationId: getCompaniesByCompanyKeyCampaignsWalletByWalletIdMessages
      x-operation-id-source: derived
  /companies/{company_key}/campaigns/wallet/{wallet_id}/messages/{wallet_message_id}:
    get:
      tags:
      - Wallet Messaging API
      summary: Get a wallet message
      parameters:
      - name: X-API-Version
        in: header
        schema:
          type: string
          default: 1
      - name: company_key
        in: path
        schema:
          type: string
        required: true
      - name: wallet_id
        in: path
        schema:
          type: string
          description: The `wallet_id` is the SmartLink token for a campaign.
        required: true
      - name: wallet_message_id
        in: path
        schema:
          type: string
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/walletMessageResponse'
        '404':
          description: The specific campaign or wallet message does not exist.
      operationId: getCompaniesByCompanyKeyCampaignsWalletByWalletIdMessagesByWalletMessageId
      x-operation-id-source: derived
components:
  schemas:
    walletMessagesResponse:
      type: array
      items:
        $ref: '#/components/schemas/walletMessageResponse'
    wallet-filters-any:
      type: object
      title: Filter by another field using selector "any".
      properties:
        name:
          type: string
          enum:
          - group_code
          - provider
          - expiration_date
        selector:
          type: string
          enum:
          - any
        value:
          type: array
          description: Add each value in its own string
          items:
            type: string
    first-class-filters:
      type: object
      title: Filter by first-class field.
      description: <a href="https://developer-platform.vibes.com/reference/first-class-fields">Learn more about first-class fields.</a>
      properties:
        name:
          type: string
          enum:
          - first_class_field
        field_name:
          type: string
          enum:
          - email_address
          - external_email_id
          - first_name
          - last_name
          - code
          - expiration_date
          - account_number
          - balance
          - tier
          - offer_value
          - loyalty_tier
          - loyalty_balance
          - strip_image_code
        selector:
          type: string
          enum:
          - starts_with
          - between
          - '='
          - <
          - <=
          - '>'
          - '>='
          - before
          - after
          - between
          - 'on'
        value:
          type: string
    wallet-filters:
      type: object
      title: Filter by another field.
      properties:
        name:
          type: string
          enum:
          - group_code
          - provider
          - expiration_date
        selector:
          type: string
          enum:
          - starts_with
          - between
          - '='
          - <
          - <=
          - '>'
          - '>='
          - before
          - after
          - between
          - 'on'
        value:
          type: string
    walletMessageRequest:
      example:
        message:
          header: Reminder
          template: Your Spring Sale offer expires soon!
        filters:
        - name: group_code
          selector: '='
          value: vip
      type: object
      required:
      - message
      properties:
        message:
          type: object
          description: The message content delivered to each targeted pass.
          properties:
            template:
              type: string
              description: Message body sent to each pass. Supports Liquid personalization tags.
            header:
              type: string
              description: Optional header shown with the message.
            message_type:
              type: string
              description: Optional message type used to categorize the notification.
        filters:
          type: array
          description: Filters that target the message to specific passes in the campaign. Omit to message all passes.
          items:
            oneOf:
            - $ref: '#/components/schemas/first-class-filters'
            - $ref: '#/components/schemas/wallet-filters'
            - $ref: '#/components/schemas/first-class-filters-any'
            - $ref: '#/components/schemas/wallet-filters-any'
    first-class-filters-any:
      type: object
      title: Filter by first-class field using selector "any".
      description: <a href="https://developer-platform.vibes.com/reference/first-class-fields">Learn more about first-class fields.</a>
      properties:
        name:
          type: string
          enum:
          - first_class_field
        field-name:
          type: string
          enum:
          - email_address
          - external_email_id
          - first_name
          - last_name
          - code
          - expiration_date
          - account_number
          - balance
          - tier
          - offer_value
          - loyalty_tier
          - loyalty_balance
          - strip_image_code
        selector:
          type: string
          enum:
          - any
        value:
          type: array
          description: Add each value in its own string
          items:
            type: string
    walletMessageResponse:
      type: object
      properties:
        wallet_message_id:
          type: string
          description: Unique system-generated identifier for each message created.
        message:
          type: object
          description: The message content that was delivered.
          properties:
            template:
              type: string
              description: Message body sent to each pass.
            header:
              type: string
              description: Header shown with the message.
        campaign_ref:
          type: object
          description: Reference to the wallet campaign this message belongs to.
          properties:
            id:
              type: string
              description: The campaign's `wallet_id` (SmartLink token).
            type:
              type: string
              description: Wallet campaign type.
            url:
              type: string
              description: Reference URL of the wallet campaign, as a relative URL on the API domain.
        filters:
          type: array
          description: Filters that were applied to target the message.
          items:
            type: object
            properties:
              name:
                type: string
                description: Field the filter is applied to, for example `group_code`, `provider`, or `expiration_date`.
              selector:
                type: string
                description: Comparison used by the filter, for example `=`, `starts_with`, or `between`.
              value:
                type: string
                description: Value compared against the field.
        created_at:
          type: string
          description: When the message was created, in ISO-8601 format.
        updated_at:
          type: string
          description: When the message was last updated, in ISO-8601 format.
        url:
          type: string
          description: A reference URL to this message, as a relative URL on the API domain.
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic