Telefon SMS API

Send and receive SMS and MMS messages globally. Supports A2P (Application-to-Person) messaging, two-way conversational SMS, delivery receipts, inbound webhooks, message queuing for high throughput, and unicode character sets for international languages. Compliant with TCPA (US), GDPR (EU), and other regional regulations.

OpenAPI Specification

telefon-sms-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Telefon SMS API
  description: >-
    Send and receive SMS and MMS messages globally. Supports A2P messaging,
    two-way SMS, delivery receipts, and inbound webhooks.
  version: v1
  contact:
    name: Telefon Support
    url: https://www.telefon.com/support
  termsOfService: https://www.telefon.com/terms
servers:
  - url: https://api.telefon.com/v1/sms
    description: Telefon SMS API
security:
  - ApiKeyAuth: []
tags:
  - name: Messages
    description: Send and receive SMS and MMS messages
paths:
  /messages:
    get:
      operationId: listMessages
      summary: List Messages
      description: List sent and received messages with filtering options.
      tags:
        - Messages
      parameters:
        - name: direction
          in: query
          schema:
            type: string
            enum: [inbound, outbound]
          description: Filter by direction
        - name: status
          in: query
          schema:
            type: string
            enum: [queued, sending, sent, delivered, undelivered, failed, received]
          description: Filter by status
        - name: page
          in: query
          schema:
            type: integer
          description: Page number
        - name: page_size
          in: query
          schema:
            type: integer
            maximum: 100
          description: Results per page
      responses:
        '200':
          description: List of messages
          content:
            application/json:
              schema:
                type: object
                properties:
                  messages:
                    type: array
                    items:
                      $ref: '#/components/schemas/Message'
                  total:
                    type: integer
    post:
      operationId: sendMessage
      summary: Send Message
      description: Send an SMS or MMS message.
      tags:
        - Messages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - to
                - from
              properties:
                to:
                  type: string
                  description: Recipient phone number in E.164 format
                from:
                  type: string
                  description: Sender phone number (must be owned)
                body:
                  type: string
                  description: Message text
                media_url:
                  type: array
                  items:
                    type: string
                  description: Media URLs for MMS
                status_callback:
                  type: string
                  description: URL for delivery status webhooks
      responses:
        '201':
          description: Message sent
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message'
  /messages/{message_id}:
    get:
      operationId: getMessage
      summary: Get Message
      description: Get details for a specific message.
      tags:
        - Messages
      parameters:
        - name: message_id
          in: path
          required: true
          schema:
            type: string
          description: Unique message identifier
      responses:
        '200':
          description: Message details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message'
        '404':
          description: Message not found
    delete:
      operationId: deleteMessage
      summary: Delete Message
      description: Delete a message record.
      tags:
        - Messages
      parameters:
        - name: message_id
          in: path
          required: true
          schema:
            type: string
          description: Unique message identifier
      responses:
        '204':
          description: Message deleted
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
  schemas:
    Message:
      type: object
      required:
        - id
        - status
        - direction
        - from
        - to
      properties:
        id:
          type: string
          description: Unique message identifier
        status:
          type: string
          enum: [queued, sending, sent, delivered, undelivered, failed, received]
          description: Delivery status
        direction:
          type: string
          enum: [inbound, outbound]
          description: Message direction
        from:
          type: string
          description: Sender phone number
        to:
          type: string
          description: Recipient phone number
        body:
          type: string
          description: Message text content
        num_segments:
          type: integer
          description: Number of SMS segments
        num_media:
          type: integer
          description: Number of media attachments
        price:
          type: string
          description: Message cost
        price_unit:
          type: string
          description: Currency code
        date_created:
          type: string
          format: date-time
          description: Creation timestamp
        date_sent:
          type: string
          format: date-time
          description: When the message was sent
        error_code:
          type: integer
          description: Error code if failed
        error_message:
          type: string
          description: Error description if failed