Boom Ai Message logs API

The Message logs API from Boom Ai — 1 operation(s) for message logs.

Operations 1

GET /api/v1/message-logs List message delivery logs #

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/boom-ai:boom-ai-message-logs-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

boom-ai-message-logs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Boom Message logs API
  version: 1.0.0
  description: 'Boom''s public REST API — one uniform surface over every platform capability. CDP: upsert people and custom objects, define object and relationship types, link and unlink relationships, and record behavioral events — one record per request or up to 1000 per request via the `/batch` endpoints. Segments: read (list, read, membership) and full authoring — discover the filterable catalog, validate a filter, create and update segments, preview match counts, and trigger evaluation. Initiatives: create and configure outreach initiatives, link WhatsApp templates, drive the lifecycle (launch, cancel, archive), and read collected-data summaries. Participants: enroll people into an active initiative, track their status, read conversation transcripts, and stop outreach. Journeys: read-only access to always-on message flows and their metrics. WhatsApp templates: list your WhatsApp numbers and list, read, and create message templates. The same capabilities are exposed as MCP tools with identical schemas.'
servers:
- url: https://www.useboom.ai
  description: Production
- url: https://dev.useboom.ai
  description: Development (sandbox — use a development organization API key)
security:
- bearerAuth: []
tags:
- name: Message logs
paths:
  /api/v1/message-logs:
    get:
      operationId: message_logs_list
      summary: List message delivery logs
      description: 'List the messages your organization sent or received and what happened to each one — delivered, failed, or blocked — with the recipient and the failure reason. The same rows as Settings → Logs, so you can review delivery in bulk instead of opening conversations one at a time.


        Statuses are a lifecycle, not a set of outcomes. SENT, DELIVERED and READ all mean the message went out; they differ only in how far it got. SENT means it left Boom and no receipt has come back yet. To count what you sent, ask for all three — asking for SENT alone returns only the ones still unconfirmed.


        How far a message can get depends on the channel. WhatsApp reaches READ. Email never does: there is no read receipt, so an email resting at DELIVERED is fully settled. PENDING on an inbound message is normal and permanent — nobody sends a receipt for a message a customer wrote to you.


        This is a log of messages, not a delivery-rate report. A few send failures never create a row at all, so an absent message is not proof that nothing was attempted.'
      tags:
      - Message logs
      parameters:
      - name: status
        in: query
        required: false
        schema:
          $schema: https://json-schema.org/draft/2020-12/schema
          description: 'Keep only these statuses. Omit for every status. Several as a list, or over HTTP as one comma-separated value: `?status=SENT,DELIVERED,READ`.'
          anyOf:
          - type: string
            enum:
            - PENDING
            - SENT
            - DELIVERED
            - READ
            - FAILED
          - type: array
            items:
              type: string
              enum:
              - PENDING
              - SENT
              - DELIVERED
              - READ
              - FAILED
          - type: string
      - name: channel
        in: query
        required: false
        schema:
          $schema: https://json-schema.org/draft/2020-12/schema
          description: 'Keep only these channels. Omit for every channel. Several as a list, or over HTTP as one comma-separated value: `?channel=WHATSAPP,SMS`.'
          anyOf:
          - type: string
            enum:
            - WHATSAPP
            - EMAIL
            - SMS
            - VOICE
            - WEB_CHAT
            - WEB_WIDGET
            - FACEBOOK_MESSENGER
            - INSTAGRAM
          - type: array
            items:
              type: string
              enum:
              - WHATSAPP
              - EMAIL
              - SMS
              - VOICE
              - WEB_CHAT
              - WEB_WIDGET
              - FACEBOOK_MESSENGER
              - INSTAGRAM
          - type: string
      - name: direction
        in: query
        required: false
        schema:
          $schema: https://json-schema.org/draft/2020-12/schema
          default: OUTBOUND
          description: Defaults to OUTBOUND — a delivery status only means something for a message you sent. Pass INBOUND for what customers sent you.
          type: string
          enum:
          - INBOUND
          - OUTBOUND
      - name: createdAfter
        in: query
        required: false
        schema:
          $schema: https://json-schema.org/draft/2020-12/schema
          description: Only messages created at or after this moment. A date (2026-08-01) or a full ISO 8601 timestamp.
          type: string
      - name: createdBefore
        in: query
        required: false
        schema:
          $schema: https://json-schema.org/draft/2020-12/schema
          description: Only messages created at or before this moment. A date (2026-08-01) or a full ISO 8601 timestamp.
          type: string
      - name: search
        in: query
        required: false
        schema:
          $schema: https://json-schema.org/draft/2020-12/schema
          description: Match the recipient's name, phone or email address. A phone matches in any format. Over MCP, refused with sensitive_field when the organization hid any of those fields.
          type: string
          maxLength: 100
      - name: limit
        in: query
        required: false
        schema:
          $schema: https://json-schema.org/draft/2020-12/schema
          description: Page size, up to 1000.
          type: integer
          minimum: 1
          maximum: 1000
      - name: cursor
        in: query
        required: false
        schema:
          $schema: https://json-schema.org/draft/2020-12/schema
          description: Opaque cursor from a previous page.
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  range:
                    type: object
                    properties:
                      from:
                        anyOf:
                        - type: string
                        - type: 'null'
                      to:
                        anyOf:
                        - type: string
                        - type: 'null'
                    required:
                    - from
                    - to
                    additionalProperties: false
                    description: The window these rows actually cover. Quote it alongside any count you report — with no dates given the read covers a recent window, not all time.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        direction:
                          type: string
                          enum:
                          - INBOUND
                          - OUTBOUND
                        channel:
                          anyOf:
                          - type: string
                            enum:
                            - WHATSAPP
                            - EMAIL
                            - SMS
                            - VOICE
                            - WEB_CHAT
                            - WEB_WIDGET
                            - FACEBOOK_MESSENGER
                            - INSTAGRAM
                          - type: 'null'
                          description: Which channel carried the message. Statuses do not mean the same thing on every channel — see `status`.
                        status:
                          type: string
                          enum:
                          - PENDING
                          - SENT
                          - DELIVERED
                          - READ
                          - FAILED
                        createdAt:
                          type: string
                          description: ISO 8601 timestamp.
                        sentAt:
                          anyOf:
                          - type: string
                          - type: 'null'
                        deliveredAt:
                          anyOf:
                          - type: string
                          - type: 'null'
                        readAt:
                          anyOf:
                          - type: string
                          - type: 'null'
                        failedAt:
                          anyOf:
                          - type: string
                          - type: 'null'
                        errorMessage:
                          anyOf:
                          - type: string
                          - type: 'null'
                          description: Why it failed, in words. Populated for email (from the bounce or complaint notice); usually null on WhatsApp, where `errorCode` is what you get.
                        errorCode:
                          anyOf:
                          - anyOf:
                            - type: string
                            - type: number
                          - type: 'null'
                          description: 'The provider''s numeric failure code on WhatsApp. The ones you will actually see: 63024 — the number is not reachable on WhatsApp (wrong number, or it never had an account); 63049 — the recipient''s provider chose not to deliver a marketing message; 63032 — the recipient has blocked this business; 63050 — the business is not allowed to message this recipient. Any other code is passed through as-is. Null on rows sent before codes were recorded, which is not a data error.'
                        imported:
                          type: boolean
                          description: Carried over from a previous system rather than sent by Boom, so its status reflects whatever that system last knew and will never settle further.
                        recipient:
                          type: object
                          properties:
                            name:
                              anyOf:
                              - type: string
                              - type: 'null'
                            phone:
                              anyOf:
                              - type: string
                              - type: 'null'
                            email:
                              anyOf:
                              - type: string
                              - type: 'null'
                              description: 'Read the handle that matches the row''s channel: the email address on an email row, the phone on a WhatsApp or SMS one.'
                          required:
                          - name
                          - phone
                          - email
                          additionalProperties: false
                      required:
                      - id
                      - direction
                      - channel
                      - status
                      - createdAt
                      - sentAt
                      - deliveredAt
                      - readAt
                      - failedAt
                      - errorMessage
                      - errorCode
                      - imported
                      - recipient
                      additionalProperties: false
                  next_cursor:
                    anyOf:
                    - type: string
                    - type: 'null'
                required:
                - range
                - data
                - next_cursor
                additionalProperties: false
        '400':
          description: Validation failed or the request cannot proceed.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                    - code
                    - message
                required:
                - error
        '401':
          description: Missing, malformed, or revoked API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                    - code
                    - message
                required:
                - error
        '404':
          description: The resource does not exist in this organization.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                    - code
                    - message
                required:
                - error
        '409':
          description: Conflicts with the current state (duplicates, wrong lifecycle state).
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                    - code
                    - message
                required:
                - error
        '422':
          description: The request is well-formed but semantically invalid.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                    - code
                    - message
                required:
                - error
        '429':
          description: Rate limit exceeded — retry after `Retry-After`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                    - code
                    - message
                required:
                - error
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                    - code
                    - message
                required:
                - error
        '503':
          description: Transient error — retry with a narrower request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                    - code
                    - message
                required:
                - error
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Organization API key, sent as `Authorization: Bearer boom_org_...`.'
x-provenance:
  method: harvested
  publisher: Boom Ai
  source: https://docs.useboom.ai/api-reference/openapi.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)