Leadping Sms Events API

Provides SMS and MMS event records for delivery tracking and diagnostics. Use these endpoints to search and inspect message lifecycle events, including outbound delivery updates and inbound messaging activity.

OpenAPI Specification

leadping-smsevents-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Leadping Sms Events API
  description: The Leadping API helps businesses capture and manage leads, automate follow-up, send SMS and MMS messages, place calls, track conversations, enforce contact suppression, and analyze communication workflows. Use this OpenAPI 3.1 contract to integrate lead sources, build organization tools, or generate a typed API client. Authenticate protected operations with a Leadping user access token or WorkOS organization API key. Lead intake operations also accept a Leadping source key.
  termsOfService: https://leadping.ai/docs/terms-of-service
  contact:
    name: Leadping Support
    url: https://leadping.ai/contact
    email: support@leadping.ai
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  version: v1
  summary: Lead management, messaging, calling, and automation API
servers:
- url: https://api.leadping.ai
  description: Production
tags:
- name: SmsEvents
  description: Provides SMS and MMS event records for delivery tracking and diagnostics. Use these endpoints to search and inspect message lifecycle events, including outbound delivery updates and inbound messaging activity.
paths:
  /events/sms/all/my:
    post:
      tags:
      - SmsEvents
      summary: List current-user lead SMS event history
      description: Lists SMS events visible to the current user with paging, sorting, and filters for message history and follow-up review.
      operationId: SmsEvents_GetAllForCurrentUser
      requestBody:
        description: Pagination, filtering, and sorting options.
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/RequestDataOptions'
              description: Defines cursor pagination, sorting, search, exact-match filters, and range filters for a structured API query.
          application/*+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/RequestDataOptions'
              description: Defines cursor pagination, sorting, search, exact-match filters, and range filters for a structured API query.
        required: true
      responses:
        '200':
          description: SMS events were successfully retrieved.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/PagedResultOfSmsEventTableRow'
                description: Returns one page of query results together with page-size, optional total-count, and opaque continuation-cursor metadata.
        '400':
          description: The request was invalid or malformed.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ProblemDetails'
                description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
        '401':
          description: Authentication credentials are missing or invalid.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ProblemDetails'
                description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
        '403':
          description: The authenticated user or organization does not have permission to perform this operation.
          content:
            application/problem+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ProblemDetails'
                description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
        '429':
          description: The API rate limit for this account or client has been exceeded.
          headers:
            Retry-After:
              description: Number of seconds to wait before retrying the request.
              schema:
                minimum: 0
                type: integer
                format: int32
          content:
            application/problem+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ProblemDetails'
                description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
      security:
      - Bearer: []
  /events/sms/{smsEventId}:
    get:
      tags:
      - SmsEvents
      summary: Get lead SMS event details by event ID
      description: Returns one SMS event, including message metadata, provider status, related lead, and delivery context.
      operationId: SmsEvents_GetById
      parameters:
      - name: smsEventId
        in: path
        description: The ID of the SMS event to retrieve.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Returns the sms event table row.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/SmsEventTableRow'
                description: Summarizes SMS event data in paginated and searchable results.
        '404':
          description: The requested resource was not found.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ProblemDetails'
                description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
        '401':
          description: Authentication credentials are missing or invalid.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ProblemDetails'
                description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
        '403':
          description: The authenticated user or organization does not have permission to perform this operation.
          content:
            application/problem+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ProblemDetails'
                description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
        '429':
          description: The API rate limit for this account or client has been exceeded.
          headers:
            Retry-After:
              description: Number of seconds to wait before retrying the request.
              schema:
                minimum: 0
                type: integer
                format: int32
          content:
            application/problem+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ProblemDetails'
                description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
      security:
      - Bearer: []
  /events/sms/lead/{leadId}:
    post:
      tags:
      - SmsEvents
      summary: List message event history for a lead
      description: Lists SMS events for one lead with paging, helping users review sent messages, scheduled messages, and delivery outcomes.
      operationId: SmsEvents_GetByLeadId
      parameters:
      - name: leadId
        in: path
        description: The ID of the lead.
        required: true
        schema:
          type: string
      requestBody:
        description: Pagination, filtering, and sorting options.
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/RequestDataOptions'
              description: Defines cursor pagination, sorting, search, exact-match filters, and range filters for a structured API query.
          application/*+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/RequestDataOptions'
              description: Defines cursor pagination, sorting, search, exact-match filters, and range filters for a structured API query.
        required: true
      responses:
        '200':
          description: Returns the paged sms event table row.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/PagedResultOfSmsEventTableRow'
                description: Returns one page of query results together with page-size, optional total-count, and opaque continuation-cursor metadata.
        '400':
          description: The request was invalid or failed validation.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ProblemDetails'
                description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
        '401':
          description: Authentication credentials are missing or invalid.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ProblemDetails'
                description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
        '403':
          description: The authenticated user or organization does not have permission to perform this operation.
          content:
            application/problem+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ProblemDetails'
                description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
        '429':
          description: The API rate limit for this account or client has been exceeded.
          headers:
            Retry-After:
              description: Number of seconds to wait before retrying the request.
              schema:
                minimum: 0
                type: integer
                format: int32
          content:
            application/problem+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ProblemDetails'
                description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
      security:
      - Bearer: []
  /events/sms/phone/{phoneNumber}:
    post:
      tags:
      - SmsEvents
      summary: List SMS event history for a phone number
      description: Lists SMS events for one phone number with paging, helping users review volume, delivery outcomes, and communication history.
      operationId: SmsEvents_GetByPhoneNumber
      parameters:
      - name: phoneNumber
        in: path
        description: The phone number to search for.
        required: true
        schema:
          type: string
      requestBody:
        description: Pagination, filtering, and sorting options.
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/RequestDataOptions'
              description: Defines cursor pagination, sorting, search, exact-match filters, and range filters for a structured API query.
          application/*+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/RequestDataOptions'
              description: Defines cursor pagination, sorting, search, exact-match filters, and range filters for a structured API query.
        required: true
      responses:
        '200':
          description: Returns the paged sms event table row.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/PagedResultOfSmsEventTableRow'
                description: Returns one page of query results together with page-size, optional total-count, and opaque continuation-cursor metadata.
        '400':
          description: The request was invalid or failed validation.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ProblemDetails'
                description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
        '401':
          description: Authentication credentials are missing or invalid.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ProblemDetails'
                description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
        '403':
          description: The authenticated user or organization does not have permission to perform this operation.
          content:
            application/problem+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ProblemDetails'
                description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
        '429':
          description: The API rate limit for this account or client has been exceeded.
          headers:
            Retry-After:
              description: Number of seconds to wait before retrying the request.
              schema:
                minimum: 0
                type: integer
                format: int32
          content:
            application/problem+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ProblemDetails'
                description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
      security:
      - Bearer: []
components:
  schemas:
    RequestDataOptions:
      type: object
      properties:
        pageSize:
          type: integer
          description: Maximum number of items requested for one page; the server may enforce a lower maximum or apply a default.
          format: int32
        continuationToken:
          type:
          - 'null'
          - string
          description: Opaque cursor returned by the previous paged response; omit it when requesting the first page and do not parse or modify it.
        orderBy:
          type:
          - 'null'
          - array
          items:
            allOf:
            - $ref: '#/components/schemas/OrderByOption'
            description: Defines one field and direction used to order an API query result set.
          description: Sort instructions applied in priority order, with the first entry acting as the primary sort.
        includeCount:
          type:
          - 'null'
          - boolean
          description: Whether the response should include the total number of matching records; counting may increase query cost or latency.
        search:
          type:
          - 'null'
          - string
          description: Free-text search term applied to the configured SearchFields.
        searchFields:
          type:
          - 'null'
          - array
          items:
            type: string
          description: Serializable string field names searched for Search; supported names are determined by the queried resource.
        filters:
          type:
          - 'null'
          - array
          items:
            allOf:
            - $ref: '#/components/schemas/ExactMatchFilter'
            description: Selects records whose named field equals a supplied scalar value.
          description: Exact-match conditions that require each named field to equal its supplied value.
        rangeFilters:
          type:
          - 'null'
          - array
          items:
            allOf:
            - $ref: '#/components/schemas/RangeFilter'
            description: Selects records by applying inclusive or exclusive lower and upper bounds to a named comparable field.
          description: Range conditions that constrain comparable fields with inclusive or exclusive lower and upper bounds.
      description: Defines cursor pagination, sorting, search, exact-match filters, and range filters for a structured API query.
    CommunicationConsoleEntry:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of this diagnostic console entry.
        stage:
          type: string
          description: Communication-processing stage that produced the entry, such as validation, routing, or provider delivery.
        status:
          type: string
          description: Outcome or state recorded for this processing stage.
        message:
          type: string
          description: User-safe diagnostic message describing what occurred at this stage.
        occurredAt:
          type: string
          description: UTC timestamp when this communication-processing event occurred.
          format: date-time
      description: Describes one durable diagnostic entry from the processing of a communication.
    SmsEventTableRow:
      type: object
      properties:
        id:
          type: string
          description: Unique Leadping identifier for this SMS event table row.
        conversationId:
          type:
          - 'null'
          - string
          description: Conversation ID that links this SMS event table row to the Leadping inbox thread.
        lead:
          allOf:
          - $ref: '#/components/schemas/IdNamePair'
          description: Identifier and display name of the related lead.
        fromPhoneNumberId:
          type: string
          description: Sender phone number ID used for this outbound SMS or call.
        outboundPhoneNumberId:
          type: string
          description: Phone number ID selected for outbound delivery.
        fromPhoneNumber:
          type: string
          description: Sender phone number used for this communication.
        toPhoneNumber:
          type: string
          description: Recipient phone number used for this communication.
        text:
          type: string
          description: Body text for the SMS message or communication represented by this SMS event table row.
        media:
          type: array
          items:
            allOf:
            - $ref: '#/components/schemas/MessageMediaAttachment'
            description: Media attached to an SMS/MMS conversation event.
          description: Media attached to this SMS/MMS event.
        status:
          enum:
          - draft
          - scheduled
          - queued
          - sending
          - sent
          - received
          - delivered
          - failed
          - undeliverable
          - opted_out
          - blocked_compliance
          - blocked_billing
          - blocked_missing_campaign
          - canceled
          type:
          - 'null'
          - string
          description: Describes the normalized lifecycle of an SMS or MMS message from scheduling through delivery or failure.
        statusReason:
          type:
          - 'null'
          - string
          description: Human-readable reason explaining the current status of this SMS event table row.
        direction:
          type: string
          description: Communication direction for this SMS event table row, such as inbound or outbound.
        createdAt:
          type: string
          description: UTC timestamp when this SMS event table row was created.
          format: date-time
        queuedAt:
          type:
          - 'null'
          - string
          description: UTC timestamp when Leadping queued this SMS event table row for processing.
          format: date-time
        scheduledFor:
          type:
          - 'null'
          - string
          description: UTC timestamp when this SMS event is scheduled to send.
          format: date-time
        scheduledReason:
          type:
          - 'null'
          - string
          description: Reason Leadping scheduled this delivery for a later time.
        sendingStartedAt:
          type:
          - 'null'
          - string
          description: UTC timestamp when Leadping began sending this message.
          format: date-time
        sentAt:
          type:
          - 'null'
          - string
          description: UTC timestamp when Leadping sent this message to the provider.
          format: date-time
        deliveredAt:
          type:
          - 'null'
          - string
          description: UTC timestamp when the provider confirmed delivery.
          format: date-time
        failedAt:
          type:
          - 'null'
          - string
          description: UTC timestamp when processing failed for this SMS event table row.
          format: date-time
        undeliverableAt:
          type:
          - 'null'
          - string
          description: UTC timestamp when the provider marked the message undeliverable.
          format: date-time
        receivedAt:
          type:
          - 'null'
          - string
          description: UTC timestamp when Leadping received this inbound event or message.
          format: date-time
        blockedAt:
          type:
          - 'null'
          - string
          description: UTC timestamp when Leadping blocked this communication.
          format: date-time
        canceledAt:
          type:
          - 'null'
          - string
          description: UTC timestamp when this delivery or workflow was canceled.
          format: date-time
        cancelReason:
          type:
          - 'null'
          - string
          description: Reason this delivery, run, or request was canceled.
        errorCode:
          type:
          - 'null'
          - string
          description: Machine-readable error code returned while processing this SMS event table row.
        errorMessage:
          type:
          - 'null'
          - string
          description: Human-readable error message returned while processing this SMS event table row.
        isAutomated:
          type: boolean
          description: Indicates whether automation created or triggered this SMS event table row.
        outboundSource:
          enum:
          - manual
          - automation
          - campaign
          - import
          - api
          - system_notification
          - warmup
          - retry
          type:
          - 'null'
          - string
          description: Defines the source that requested outbound delivery.
        trafficType:
          enum:
          - RealLead
          - Warmup
          - Test
          - SystemInternal
          - FailedAttempt
          type:
          - 'null'
          - string
          description: Classifies messaging traffic by conversational, informational, marketing, or other compliance-relevant purpose.
        billableAmount:
          type:
          - 'null'
          - number
          description: Monetary amount billed for this Leadping communication or transaction.
          format: double
        billingStatus:
          type:
          - 'null'
          - string
          description: Billing state for this communication, charge, or transaction.
        complianceAction:
          type:
          - 'null'
          - string
          description: Compliance action applied to this message, lead, or sender.
        consoleEntries:
          type: array
          items:
            allOf:
            - $ref: '#/components/schemas/CommunicationConsoleEntry'
            description: Describes one durable diagnostic entry from the processing of a communication.
          description: Ordered diagnostic entries recorded while Leadping processed this message.
        user:
          type: string
          description: User summary connected to this SMS event table row.
        actorUserId:
          type:
          - 'null'
          - string
          description: User ID for the actor that performed the action.
        actorDisplayName:
          type:
          - 'null'
          - string
          description: Display name for the actor that performed the action.
        userName:
          type:
          - 'null'
          - string
          description: Display name for the user connected to this SMS event table row.
        senderName:
          type:
          - 'null'
          - string
          description: Display name for the sender of this message.
        organization:
          type: string
          description: Organization summary connected to this SMS event table row.
        organizationName:
          type:
          - 'null'
          - string
          description: Organization display name shown for this SMS event.
      description: Summarizes SMS event data in paginated and searchable results.
    MessageMediaAttachment:
      type: object
      properties:
        url:
          type: string
          description: URL from which the media attachment can be retrieved.
          format: uri
        contentType:
          type:
          - 'null'
          - string
          description: MIME content type of the media attachment.
        size:
          type:
          - 'null'
          - integer
          description: Size of the media attachment in bytes.
          format: int64
        sha256:
          type:
          - 'null'
          - string
          description: SHA-256 digest of the media content, when available.
        fileName:
          type:
          - 'null'
          - string
          description: Original file name of the media attachment, when available.
      description: Media attached to an SMS/MMS conversation event.
    PagedResultOfSmsEventTableRow:
      type: object
      properties:
        items:
          type: array
          items:
            allOf:
            - $ref: '#/components/schemas/SmsEventTableRow'
            description: Summarizes SMS event data in paginated and searchable results.
          description: Items included in the current page, in the order determined by the query.
        pageSize:
          type: integer
          description: Effective page-size limit used for this response, which may differ from the requested size because of server defaults or limits.
          format: int32
        totalCount:
          type:
          - 'null'
          - integer
          description: Total number of records matching the query across all pages, or null when counting was not requested or computed.
          format: int32
        continuationToken:
          type:
          - 'null'
          - string
          description: Opaque cursor for requesting the next page, or null when no additional page is available; clients must not parse or modify it.
      description: Returns one page of query results together with page-size, optional total-count, and opaque continuation-cursor metadata.
    IdNamePair:
      required:
      - id
      - name
      type: object
      properties:
        id:
          type: string
          description: Stable unique identifier of the referenced resource.
        name:
          type: string
          description: Human-readable display name of the referenced resource.
      description: Provides a compact API reference to another resource using its stable identifier and human-readable display name.
    OrderByOption:
      type: object
      properties:
        field:
          type: string
          description: Serializable field name used for sorting; supported names are determined by the queried resource.
        direction:
          enum:
          - asc
          - desc
          type:
          - 'null'
          - string
          description: Identifies whether query results are ordered from lower to higher values or from higher to lower values.
      description: Defines one field and direction used to order an API query result set.
    ExactMatchFilter:
      type: object
      properties:
        value:
          description: Scalar value the target field must equal; its JSON type should match the field being queried.
        field:
          type: string
          description: Serializable field name to evaluate; supported names are determined by the queried resource.
      description: Selects records whose named field equals a supplied scalar value.
    ProblemDetails:
      type: object
      properties:
        type:
          type:
          - 'null'
          - string
          description: URI reference that identifies the problem type.
        title:
          type:
          - 'null'
          - string
          description: Short, human-readable summary of the problem.
        status:
          type:
          - 'null'
          - integer
          description: HTTP status code returned for the problem.
          format: int32
        detail:
          type:
          - 'null'
          - string
          description: Human-readable explanation specific to this occurrence of the problem.
        instance:
          type:
          - 'null'
          - string
          description: URI reference that identifies this specific occurrence of the problem.
      description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
      example:
        type: https://leadping.ai/docs/errors/validation
        title: Request validation failed
        status: 400
        detail: One or more request fields are invalid.
        instance: /leads/intake
    RangeFilter:
      type: object
      properties:
        greaterThan:
          description: Exclusive lower bound; matching field values must be greater than this value.
        greaterThanOrEqual:
          description: Inclusive lower bound; matching field values must be greater than or equal to this value.
        lessThan:
          description: Exclusive upper bound; matching field values must be less than this value.
        lessThanOrEqual:
          description: Inclusive upper bound; matching field values must be less than or equal to this value.
        field:
          type: string
          description: Serializable field name to evaluate; supported names are determined by the queried resource.
      description: Selects records by applying inclusive or exclusive lower and upper bounds to a named comparable field.
  securitySchemes:
    Bearer:
      type: http
      description: Authorization header using the Bearer scheme. Accepted values are Leadping user JWT access tokens and WorkOS organization API keys beginning with sk_.
      scheme: bearer
      bearerFormat: JWT or organization API key
    SourceKey:
      type: http
      description: 'Leadping source key for lead ingestion endpoints only using the Authorization header. Example: "Authorization: Bearer lp_src_...".'
      scheme: bearer
      bearerFormat: Leadping source key
externalDocs:
  description: Leadping API documentation, authentication guide, concepts, and integration guidance.
  url: https://leadping.ai/docs/api-reference