SignalWire Message Logs API

Endpoints related to accessing message 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/signalwire-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 email required.

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

OpenAPI Specification

signalwire-message-logs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SignalWire REST Message Logs API
  version: 1.0.0
  contact:
    name: SignalWire
    url: https://support.signalwire.com/portal/en/newticket?departmentId=1029313000000006907&layoutId=1029313000000074011
    email: support@signalwire.com
  license:
    name: MIT
    url: https://github.com/signalwire/docs/blob/main/LICENSE
  termsOfService: https://signalwire.com/legal/signalwire-cloud-agreement
  description: Endpoints related to accessing message logs
servers:
- url: https://{space_name}.signalwire.com
  description: SignalWire API
  variables:
    space_name:
      default: '{Your_Space_Name}'
      description: Your SignalWire Space name
security:
- SignalWireBasicAuth: []
tags:
- name: Message Logs
  description: Endpoints related to accessing message logs
  externalDocs:
    url: https://signalwire.com/docs/apis
    description: Developer documentation on Message API endpoints
paths:
  /api/messaging/logs:
    get:
      operationId: list_message_logs
      summary: List message logs
      description: 'List the available logs.


        #### Permissions


        The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Messaging_.


        [Learn more about API scopes](/docs/platform/your-signalwire-api-space).'
      parameters:
      - $ref: '#/components/parameters/Message.LogListRequest.include_deleted'
      - $ref: '#/components/parameters/Message.LogListRequest.created_before'
      - $ref: '#/components/parameters/Message.LogListRequest.created_on'
      - $ref: '#/components/parameters/Message.LogListRequest.created_after'
      - $ref: '#/components/parameters/Message.LogListRequest.page_size'
      - $ref: '#/components/parameters/Message.LogListRequest.page_number'
      - $ref: '#/components/parameters/Message.LogListRequest.page_token'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message.LogListResponse'
        '400':
          description: The request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode400'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode401'
        '422':
          description: The request contains invalid parameters. See errors for details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message.MessageLogsListStatusCode422'
        '500':
          description: An internal server error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode500'
      tags:
      - Message Logs
  /api/messaging/logs/{id}:
    get:
      operationId: get_message_log
      summary: Get message log
      description: 'Find a log by ID.


        #### Permissions


        The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Messaging_.


        [Learn more about API scopes](/docs/platform/your-signalwire-api-space).'
      parameters:
      - $ref: '#/components/parameters/Message.LogPathID'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message.LogRetrieveResponse'
        '400':
          description: The request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode400'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode401'
        '404':
          description: The server cannot find the requested resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode404'
        '422':
          description: The request contains invalid parameters. See errors for details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message.MessageLogShowStatusCode422'
        '500':
          description: An internal server error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode500'
      tags:
      - Message Logs
components:
  schemas:
    Types.StatusCodes.StatusCode401:
      type: object
      required:
      - error
      properties:
        error:
          type: string
          enum:
          - Unauthorized
      unevaluatedProperties:
        not: {}
      description: Access is unauthorized.
    Message.MessageLogShowStatusCode422:
      type: object
      required:
      - errors
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Types.StatusCodes.RestApiErrorItem'
          description: List of validation errors.
      unevaluatedProperties:
        not: {}
      description: The request contains invalid parameters. See errors for details.
      examples:
      - statusCode: 422
        errors:
        - type: account_error
          code: exceeds_history_logs_limit
          message: The value exceeds the 2025-02-09 date limit.
          attribute: created_at
          url: https://signalwire.com/docs/apis/error-codes
    Message.LogRetrieveResponse:
      type: object
      required:
      - id
      - from
      - to
      - status
      - direction
      - kind
      - source
      - type
      - url
      - number_of_segments
      - charge
      - charge_details
      - created_at
      - error_message
      - error_code
      properties:
        id:
          allOf:
          - $ref: '#/components/schemas/uuid'
          description: A unique identifier for the log.
        from:
          type: string
          description: The origin phone number.
          examples:
          - '+12077447397'
        to:
          type: string
          description: The destination phone number.
          examples:
          - '+12029921413'
        status:
          type: string
          enum:
          - queued
          - initiated
          - delivered
          - sent
          - received
          - undelivered
          - failed
          description: The status of the message.
          examples:
          - failed
        direction:
          type: string
          enum:
          - inbound
          - outbound
          - outbound-api
          - outbound-call
          - outbound-reply
          description: The direction of the message.
          examples:
          - inbound
        kind:
          type: string
          enum:
          - sms
          - mms
          description: The kind of message.
          examples:
          - sms
        source:
          type: string
          enum:
          - realtime_api
          - laml
          description: Source of this log entry.
          examples:
          - laml
        type:
          type: string
          enum:
          - relay_message
          - laml_message
          description: Type of this log entry.
          examples:
          - relay_message
        url:
          anyOf:
          - type: string
            format: uri
          - type: 'null'
          description: URL for the resource associated with this log entry. Null for Relay messages.
          examples:
          - https://example.signalwire.com/api/laml/2010-04-01/Accounts/c38dacad-2f6c-4de1-93d6-cc732e0c70c5/Messages/9ee38635-899a-490a-bfd1-9e72f5eea53c
        number_of_segments:
          type: integer
          format: int32
          description: The number of segments.
          examples:
          - 1
        charge:
          type: number
          format: double
          description: The charge in dollars.
          examples:
          - 0
        charge_details:
          type: array
          items:
            $ref: '#/components/schemas/Message.ChargeDetail'
          description: Details on charges associated with this log.
        created_at:
          type: string
          format: date-time
          description: Date and time when the message entry was created.
          examples:
          - '2024-05-06T12:20:00Z'
        error_message:
          anyOf:
          - type: string
          - type: 'null'
          description: Description of the error when the message failed. Null when the message did not fail. LaML messages use the codes documented at https://signalwire.com/docs/compatibility-api/rest/error-codes.
          examples:
          - From number is not a SMS-capable phone number.
        error_code:
          anyOf:
          - type: string
          - type: 'null'
          description: Error code identifying why the message failed. Null when the message did not fail. Some Relay messages may have an `error_message` without an `error_code` — the `error_code` is a newer pattern that is not used in all Relay areas.
          examples:
          - '21601'
      unevaluatedProperties:
        not: {}
      description: Response model for message log retrieve endpoint
    Types.StatusCodes.StatusCode400:
      type: object
      required:
      - error
      properties:
        error:
          type: string
          enum:
          - Bad Request
      unevaluatedProperties:
        not: {}
      description: The request is invalid.
    uuid:
      type: string
      format: uuid
      description: Universal Unique Identifier.
    Types.StatusCodes.StatusCode404:
      type: object
      required:
      - error
      properties:
        error:
          type: string
          enum:
          - Not Found
      unevaluatedProperties:
        not: {}
      description: The server cannot find the requested resource.
    Message.MessageLog:
      type: object
      required:
      - id
      - from
      - to
      - status
      - direction
      - kind
      - source
      - type
      - url
      - number_of_segments
      - charge
      - charge_details
      - created_at
      - error_message
      - error_code
      properties:
        id:
          allOf:
          - $ref: '#/components/schemas/uuid'
          description: A unique identifier for the log.
        from:
          type: string
          description: The origin phone number.
          examples:
          - '+12077447397'
        to:
          type: string
          description: The destination phone number.
          examples:
          - '+12029921413'
        status:
          type: string
          enum:
          - queued
          - initiated
          - delivered
          - sent
          - received
          - undelivered
          - failed
          description: The status of the message.
          examples:
          - failed
        direction:
          type: string
          enum:
          - inbound
          - outbound
          - outbound-api
          - outbound-call
          - outbound-reply
          description: The direction of the message.
          examples:
          - inbound
        kind:
          type: string
          enum:
          - sms
          - mms
          description: The kind of message.
          examples:
          - sms
        source:
          type: string
          enum:
          - realtime_api
          - laml
          description: Source of this log entry.
          examples:
          - laml
        type:
          type: string
          enum:
          - relay_message
          - laml_message
          description: Type of this log entry.
          examples:
          - relay_message
        url:
          anyOf:
          - type: string
            format: uri
          - type: 'null'
          description: URL for the resource associated with this log entry. Null for Relay messages.
          examples:
          - https://example.signalwire.com/api/laml/2010-04-01/Accounts/c38dacad-2f6c-4de1-93d6-cc732e0c70c5/Messages/9ee38635-899a-490a-bfd1-9e72f5eea53c
        number_of_segments:
          type: integer
          format: int32
          description: The number of segments.
          examples:
          - 1
        charge:
          type: number
          format: double
          description: The charge in dollars.
          examples:
          - 0
        charge_details:
          type: array
          items:
            $ref: '#/components/schemas/Message.ChargeDetail'
          description: Details on charges associated with this log.
        created_at:
          type: string
          format: date-time
          description: Date and time when the message entry was created.
          examples:
          - '2024-05-06T12:20:00Z'
        error_message:
          anyOf:
          - type: string
          - type: 'null'
          description: Description of the error when the message failed. Null when the message did not fail. LaML messages use the codes documented at https://signalwire.com/docs/compatibility-api/rest/error-codes.
          examples:
          - From number is not a SMS-capable phone number.
        error_code:
          anyOf:
          - type: string
          - type: 'null'
          description: Error code identifying why the message failed. Null when the message did not fail. Some Relay messages may have an `error_message` without an `error_code` — the `error_code` is a newer pattern that is not used in all Relay areas.
          examples:
          - '21601'
      unevaluatedProperties:
        not: {}
      description: Message log entry with all activity details
    Types.StatusCodes.StatusCode500:
      type: object
      required:
      - error
      properties:
        error:
          type: string
          enum:
          - Internal Server Error
      unevaluatedProperties:
        not: {}
      description: An internal server error occurred.
    Message.ChargeDetail:
      type: object
      required:
      - description
      - charge
      properties:
        description:
          type: string
          description: Description for this charge.
          examples:
          - Inbound SMS
        charge:
          type: number
          format: double
          description: Charged amount.
          examples:
          - 0.00415
      unevaluatedProperties:
        not: {}
      description: Details on charges associated with this log.
    Types.StatusCodes.RestApiErrorItem:
      type: object
      required:
      - type
      - code
      - message
      - url
      properties:
        type:
          type: string
          description: The category of error.
          examples:
          - validation_error
        code:
          type: string
          description: A specific error code.
          examples:
          - invalid_parameter
        message:
          type: string
          description: A description of what caused the error.
          examples:
          - Name must be present
        attribute:
          anyOf:
          - type: string
          - type: 'null'
          description: The request parameter that caused the error, if applicable.
          examples:
          - name
        url:
          type: string
          description: A link to documentation about this error.
          examples:
          - https://signalwire.com/docs/apis/error-codes
      unevaluatedProperties:
        not: {}
      description: Details about a specific error.
    Message.LogPaginationResponse:
      type: object
      required:
      - self
      - first
      properties:
        self:
          type: string
          description: URL to current page
          examples:
          - https://example.signalwire.com/api/messaging/logs?page_number=0&page_size=50
        first:
          type: string
          description: URL to first page
          examples:
          - https://example.signalwire.com/api/messaging/logs?page_size=50
        next:
          type: string
          description: URL to next page (if available)
          examples:
          - https://example.signalwire.com/api/messaging/logs?page_number=1&page_size=50&page_token=PA6ad4c839-9329-43fe-83c6-fbe7c38583ff
        prev:
          type: string
          description: URL to previous page (if available)
          examples:
          - https://example.signalwire.com/api/messaging/logs?page_number=0&page_size=50&page_token=PA6ad4c839-9329-43fe-83c6-fbe7c38583ff
      unevaluatedProperties:
        not: {}
    Message.LogListResponse:
      type: object
      required:
      - links
      - data
      properties:
        links:
          allOf:
          - $ref: '#/components/schemas/Message.LogPaginationResponse'
          description: Object containing pagination links
        data:
          type: array
          items:
            $ref: '#/components/schemas/Message.MessageLog'
          description: Array of message log entries
      unevaluatedProperties:
        not: {}
    Message.MessageLogsListStatusCode422:
      type: object
      required:
      - errors
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Types.StatusCodes.RestApiErrorItem'
          description: List of validation errors.
      unevaluatedProperties:
        not: {}
      description: The request contains invalid parameters. See errors for details.
      examples:
      - statusCode: 422
        errors:
        - type: validation_error
          code: datetime_required
          message: This value must be a DateTime
          attribute: created_before
          url: https://signalwire.com/docs/apis/error-codes
  parameters:
    Message.LogListRequest.page_token:
      name: page_token
      in: query
      required: false
      description: Token for cursor-based pagination. Required when `page_number` is greater than `0`. The token is returned in pagination links.
      schema:
        type: string
      explode: false
    Message.LogListRequest.include_deleted:
      name: include_deleted
      in: query
      required: false
      description: Include logs for deleted activity.
      schema:
        type: boolean
        default: false
      explode: false
    Message.LogListRequest.created_on:
      name: created_on
      in: query
      required: false
      description: Return logs for activity on this date.
      schema:
        type: string
      explode: false
    Message.LogListRequest.page_size:
      name: page_size
      in: query
      required: false
      description: Specify the number of results to return on a single page. The default page size is `50` and the maximum is `1000`.
      schema:
        type: integer
        format: int32
        minimum: 1
        maximum: 1000
        default: 50
      explode: false
    Message.LogListRequest.created_before:
      name: created_before
      in: query
      required: false
      description: Return logs for activity prior to this date.
      schema:
        type: string
      explode: false
    Message.LogListRequest.created_after:
      name: created_after
      in: query
      required: false
      description: Return logs for activity after this date.
      schema:
        type: string
      explode: false
    Message.LogListRequest.page_number:
      name: page_number
      in: query
      required: false
      description: Page number to retrieve. Requires `page_token` when greater than `0`.
      schema:
        type: integer
        format: int32
        minimum: 0
        default: 0
      explode: false
    Message.LogPathID:
      name: id
      in: path
      required: true
      description: Unique ID of the log.
      schema:
        $ref: '#/components/schemas/uuid'
  securitySchemes:
    SignalWireBasicAuth:
      type: http
      scheme: Basic
      description: 'SignalWire Basic Authentication using Project ID and API Token.


        The client sends HTTP requests with the Authorization header containing

        the word Basic followed by a space and a base64-encoded string of project_id:token.

        The project ID will be used as the username and the API token as the password.


        Example:

        ```

        Authorization: Basic base64(project_id:token)

        ```'
      x-fern-basic:
        username:
          name: project_id
          env: SIGNALWIRE_PROJECT_ID
        password:
          name: api_token
          env: SIGNALWIRE_API_TOKEN
    SignalWireBearerAuth:
      type: http
      scheme: Bearer
      description: 'SignalWire Bearer Token Authentication for subscriber endpoints.

        The client sends HTTP requests with the Authorization header containing

        the word Bearer followed by a space and the subscriber token.


        Example:

        ```

        Authorization: Bearer <subscriber_token>

        ```'