DID Logic SMS API

The SMS API from DID Logic — 2 operation(s) for sms.

Operations 3

GET /api/v1/sms List sent SMS messages #
POST /api/v1/sms Send SMS message #
GET /api/v1/sms/{id} Get SMS message details #

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/didlogic-com:didlogic-com-sms-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

didlogic-com-sms-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Didlogic Com SMS API
  version: 1.0.0
  description: 'Operations tagged SMS across 2 of this provider''s published API definitions: didlogic-com-public-api-openapi.yaml, didlogic-com-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://app.didlogic.com
  description: Production
tags:
- name: SMS
  x-version: v1
paths:
  /api/v1/sms:
    get:
      summary: List sent SMS messages
      description: 'Retrieve paginated list of SMS messages sent by the authenticated user.

        Note: Contact your account manager to set up a Relay URL for inbound messages.


        `sms[].id` feeds sms_show. Full record: sms_show.'
      tags:
      - SMS
      operationId: sms_index
      security:
      - BearerAuth: []
      parameters:
      - name: page
        in: query
        required: false
        schema:
          type: string
          minimum: 1
          default: 1
        description: Page number for pagination (starts from 1)
      - name: per_page
        in: query
        required: false
        schema:
          type: string
          minimum: 1
          maximum: 100
          default: 20
        description: Number of items per page
      responses:
        '200':
          description: Successfully returns paginated list of sent SMS messages
          content:
            application/json:
              schema:
                type: object
                properties:
                  pagination:
                    type: object
                    properties:
                      pages:
                        type: integer
                      page:
                        type: integer
                      total_records:
                        type: integer
                      per_page:
                        type: integer
                    required:
                    - pages
                    - page
                    - total_records
                    - per_page
                  sms:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 29
                          description: SMS ID
                        destination:
                          type: string
                          example: '1234567890'
                          description: Destination number
                        message:
                          type: string
                          example: Test
                          description: Message content
                        status:
                          type: string
                          enum:
                          - created
                          - failed
                          - sent
                          - dlr_error
                          - delivered
                          - not_delivered
                          - interrupted
                          example: created
                          description: Delivery status
                        charge:
                          type: number
                          format: float
                          example: 0.0
                          description: SMS cost
                        segments_count:
                          type: integer
                          example: 1
                          description: Number of segments
                        error_code:
                          type:
                          - integer
                          - 'null'
                          description: 'Why the SMS failed, as an SMPP command_status; `null` unless `status` is `failed`. A failure with no more specific code reads `255`.

                            - `10` (`ESME_RINVSRCADR`) — Invalid sender ID: the sender ID is not accepted for this destination

                            - `11` (`ESME_RINVDSTADR`) — Invalid destination number: the destination number is not valid

                            - `69` (`ESME_RSUBMITFAIL`) — Submit failed: the message was rejected and not delivered

                            - `255` (`ESME_RUNKNOWNERR`) — Unknown error: the message failed for any other reason'
                        error_description:
                          type:
                          - string
                          - 'null'
                          description: The text for `error_code` ("Invalid sender ID", "Invalid destination number", "Submit failed", "Unknown error"); `null` unless `status` is `failed`.
                      required:
                      - id
                      - destination
                      - message
                      - status
                      - charge
                      - segments_count
                      - error_code
                      - error_description
                    description: List of SMS messages
                required:
                - pagination
                - sms
              example:
                pagination:
                  pages: 1
                  page: 1
                  total_records: 1
                  per_page: 100
                sms:
                - id: 29
                  destination: '1234567890'
                  message: Test
                  status: created
                  charge: 0.0
                  segments_count: 1
                  error_code: null
                  error_description: null
        '403':
          description: Returns 403 error when API token is incorrect
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
              example:
                error: Unauthorized
    post:
      summary: Send SMS message
      description: 'Send an SMS message from a DID number owned by the authenticated user.


        **Requirements:**

        - Source DID must be owned by user

        - Source DID must have SMS enabled

        - Sufficient account balance for SMS cost

        - Valid destination phone number


        **Cost:**

        - Charged per segment (160 characters)

        - Price varies by destination country


        `sms.id` feeds sms_show. See also: numbers_search_show, to find SMS-enabled numbers to buy.'
      tags:
      - SMS
      operationId: sms_create
      security:
      - BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                sm:
                  type: object
                  properties:
                    source:
                      type: string
                      description: Source number from numbers_index, purchases_index; it must be one of your numbers with SMS enabled (in numbers_index its `services` include `sms`) or one of your approved sender IDs
                      example: '1234567890'
                    destination:
                      type: string
                      description: Destination phone number (must be a valid international number)
                      example: '+12012025555'
                    message:
                      type: string
                      description: SMS text content (160 chars per segment)
                      example: Test message from API
                  required:
                  - source
                  - destination
                  - message
                dlr:
                  type: object
                  properties:
                    callback_endpoint:
                      type: string
                      description: Optional DLR (Delivery Receipt) callback URL
                      example: https://example.com/webhook
              required:
              - sm
      responses:
        '200':
          description: Successfully sends SMS message and returns details with ID
          content:
            application/json:
              schema:
                type: object
                properties:
                  sms:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 28
                        description: SMS ID
                      destination:
                        type: string
                        example: '12012025555'
                        description: Destination number
                      message:
                        type: string
                        example: Test message from API
                        description: Message content
                      status:
                        type: string
                        enum:
                        - created
                        - failed
                        - sent
                        - dlr_error
                        - delivered
                        - not_delivered
                        - interrupted
                        example: created
                        description: Delivery status
                      charge:
                        type: number
                        format: float
                        example: 0.0001
                        description: SMS cost
                      segments_count:
                        type: integer
                        example: 1
                        description: Number of segments
                      error_code:
                        type:
                        - integer
                        - 'null'
                        description: 'Why the SMS failed, as an SMPP command_status; `null` unless `status` is `failed`. A failure with no more specific code reads `255`.

                          - `10` (`ESME_RINVSRCADR`) — Invalid sender ID: the sender ID is not accepted for this destination

                          - `11` (`ESME_RINVDSTADR`) — Invalid destination number: the destination number is not valid

                          - `69` (`ESME_RSUBMITFAIL`) — Submit failed: the message was rejected and not delivered

                          - `255` (`ESME_RUNKNOWNERR`) — Unknown error: the message failed for any other reason'
                      error_description:
                        type:
                        - string
                        - 'null'
                        description: The text for `error_code` ("Invalid sender ID", "Invalid destination number", "Submit failed", "Unknown error"); `null` unless `status` is `failed`.
                    required:
                    - id
                    - destination
                    - message
                    - status
                    - charge
                    - segments_count
                    - error_code
                    - error_description
                    description: Created SMS details
                required:
                - sms
              example:
                sms:
                  id: 28
                  destination: '12012025555'
                  message: Test message from API
                  status: created
                  charge: 0.0001
                  segments_count: 1
                  error_code: null
                  error_description: null
        '400':
          description: The request body must be valid JSON.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                errors:
                  base:
                  - malformed request body
        '403':
          description: Returns 403 error when destination number is blocked
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
              examples:
                returns_403_error_when_api_token_is_incorrect:
                  summary: Returns 403 error when API token is incorrect
                  value:
                    error: Unauthorized
                returns_403_error_when_destination_number_is_blocked:
                  summary: Returns 403 error when destination number is blocked
                  value:
                    error: SMS delivery to this destination is currently restricted
        '422':
          description: Returns 422 error when destination phone number is invalid
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/Error'
                - type: object
                  properties:
                    error:
                      type: string
                  required:
                  - error
              examples:
                returns_422_error_when_destination_parameter_is_missing_or_empty:
                  summary: Returns 422 error when destination parameter is missing or empty
                  value:
                    errors:
                      destination:
                      - Required
                returns_422_error_when_destination_phone_number_is_invalid:
                  summary: Returns 422 error when destination phone number is invalid
                  value:
                    error: 'SMS delivery failed: Invalid phone number'
    servers:
    - url: https://app.didlogic.com
      description: Production
  /api/v1/sms/{id}:
    get:
      summary: Get SMS message details
      description: 'Retrieve details of a specific SMS message sent by the authenticated user.


        **Returned Information:**

        - SMS ID and status

        - Source and destination numbers

        - Message content

        - Delivery status and timestamps

        - Cost and segment count


        Rows: sms_index.'
      tags:
      - SMS
      operationId: sms_show
      security:
      - BearerAuth: []
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
        example: 0
        description: SMS message id from sms_index, sms_create
      responses:
        '200':
          description: Successfully returns SMS message details including status and timestamps
          content:
            application/json:
              schema:
                type: object
                properties:
                  sms:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 26
                        description: SMS ID
                      destination:
                        type: string
                        example: '1234567890'
                        description: Destination number
                      message:
                        type: string
                        example: Test message
                        description: Message content
                      status:
                        type: string
                        enum:
                        - created
                        - failed
                        - sent
                        - dlr_error
                        - delivered
                        - not_delivered
                        - interrupted
                        example: created
                        description: Delivery status
                      charge:
                        type: number
                        format: float
                        example: 0.0
                        description: SMS cost
                      segments_count:
                        type: integer
                        example: 1
                        description: Number of segments
                      error_code:
                        type:
                        - integer
                        - 'null'
                        description: 'Why the SMS failed, as an SMPP command_status; `null` unless `status` is `failed`. A failure with no more specific code reads `255`.

                          - `10` (`ESME_RINVSRCADR`) — Invalid sender ID: the sender ID is not accepted for this destination

                          - `11` (`ESME_RINVDSTADR`) — Invalid destination number: the destination number is not valid

                          - `69` (`ESME_RSUBMITFAIL`) — Submit failed: the message was rejected and not delivered

                          - `255` (`ESME_RUNKNOWNERR`) — Unknown error: the message failed for any other reason'
                      error_description:
                        type:
                        - string
                        - 'null'
                        description: The text for `error_code` ("Invalid sender ID", "Invalid destination number", "Submit failed", "Unknown error"); `null` unless `status` is `failed`.
                    required:
                    - id
                    - destination
                    - message
                    - status
                    - charge
                    - segments_count
                    - error_code
                    - error_description
                    description: SMS message details
                required:
                - sms
              example:
                sms:
                  id: 26
                  destination: '1234567890'
                  message: Test message
                  status: created
                  charge: 0.0
                  segments_count: 1
                  error_code: null
                  error_description: null
        '403':
          description: Returns 403 error when API token is incorrect
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
              example:
                error: Unauthorized
        '404':
          description: The requested resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                errors:
                  base:
                  - data not found
    servers:
    - url: https://app.didlogic.com
      description: Production
components:
  schemas:
    Error:
      type: object
      description: Standard error response. `errors` maps a field name (or `base` for errors not tied to a specific field) to an array of human-readable messages.
      required:
      - errors
      properties:
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          example:
            base:
            - data not found
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Authenticate API requests via API key like "Bearer YOUR_TOKEN"
x-refined-from:
- didlogic-com-public-api-openapi.yaml
- didlogic-com-openapi.yml