Sequenzy SMS API

The SMS API from Sequenzy — 4 operation(s) for sms.

Operations 5

GET /sms/settings Get SMS settings #
PATCH /sms/numbers/{numberId} Update an SMS number #
DELETE /sms/numbers/{numberId} Remove SMS number #
GET /sms/usage Get SMS usage #
POST /sms/test Send a test SMS #

Specifications

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/sequenzy:sequenzy-sms-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

sequenzy-sms-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Sequenzy SMS API
  description: Sequenzy API for managing subscribers, tags, events, sequences, and transactional emails
  version: 1.0.0
servers:
- url: https://api.sequenzy.com/api/v1
  description: Production server
- url: https://api.sequenzy.com/v1
  description: Legacy production server alias
security:
- bearerAuth: []
tags:
- name: SMS
paths:
  /sms/settings:
    get:
      operationId: getSmsSettings
      summary: Get SMS settings
      description: Returns the company's SMS add-on status, including credit balance, phone numbers, and whether SMS sequence steps will actually send.
      tags:
      - SMS
      responses:
        '200':
          description: SMS settings returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  sms:
                    type: object
                    properties:
                      enabled:
                        type: boolean
                        example: true
                      planEligible:
                        type: boolean
                        example: true
                      creditsBalance:
                        type: number
                        example: 4200
                      brandPrefix:
                        type:
                        - string
                        - 'null'
                        example: Acme
                      numbers:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              example: num_abc123
                            e164:
                              type: string
                              example: '+18885550123'
                            label:
                              type:
                              - string
                              - 'null'
                              description: User-set tag ("Marketing", "Support") shown in number pickers.
                              example: Marketing
                            brandPrefix:
                              type:
                              - string
                              - 'null'
                              description: Per-number brand prefix override; null inherits the account-wide prefix.
                              example: Acme Support
                            linkShorteningEnabled:
                              type: boolean
                              description: When true (the default), links in messages from this number are replaced with click-tracked short links. When false, they are sent exactly as written and SMS clicks from this number are not tracked.
                              example: true
                            status:
                              type: string
                              example: active
                      readyToSend:
                        type: boolean
                        example: true
                  message:
                    type: string
                    example: SMS is enabled and ready to send.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Company not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Failed to load SMS settings
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          $ref: '#/components/responses/TransientDatabaseUnavailable'
  /sms/numbers/{numberId}:
    patch:
      operationId: updateSmsNumberLabel
      summary: Update an SMS number
      description: Updates an SMS number's user-facing label, its brand prefix override, and/or link shortening. Omitted fields keep their value; at least one field is required. Link shortening changes apply to messages prepared after the change. Requires companies:manage.
      tags:
      - SMS
      parameters:
      - name: numberId
        in: path
        required: true
        schema:
          type: string
        description: SMS number ID returned by Get SMS Settings.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                label:
                  type:
                  - string
                  - 'null'
                  maxLength: 100
                  description: Label such as Marketing or Support. Send null to clear it.
                brandPrefix:
                  type:
                  - string
                  - 'null'
                  maxLength: 100
                  description: 'Per-number brand prefix override; messages send as "{prefix}: your message". Send null to clear it back to the account-wide prefix.'
                linkShorteningEnabled:
                  type: boolean
                  description: true replaces links in messages from this number with click-tracked short links; false sends them exactly as written, so SMS clicks from this number are not tracked.
                  example: false
      responses:
        '200':
          description: SMS number updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  number:
                    type: object
                    properties:
                      id:
                        type: string
                        example: num_abc123
                      label:
                        type:
                        - string
                        - 'null'
                        example: Marketing
                      brandPrefix:
                        type:
                        - string
                        - 'null'
                        example: Acme Support
                      linkShorteningEnabled:
                        type: boolean
                        example: false
                  message:
                    type: string
                    example: SMS number updated.
        '400':
          description: No update fields provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Insufficient permission
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Company or SMS number not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: A field has the wrong type, for example a non-boolean linkShorteningEnabled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestValidationError'
    delete:
      operationId: releaseSmsNumber
      summary: Remove SMS number
      description: Release a toll-free number and free its workspace slot. Requires companies:manage. Steps explicitly pinned to this number do not switch to another number. This action cannot reclaim the number after release.
      tags:
      - SMS
      parameters:
      - name: numberId
        in: path
        required: true
        schema:
          type: string
        description: SMS number ID from GET /sms/settings.
      responses:
        '200':
          description: SMS number released
          content:
            application/json:
              schema:
                type: object
                required:
                - success
                - number
                - message
                properties:
                  success:
                    type: boolean
                    example: true
                  number:
                    type: object
                    required:
                    - id
                    - status
                    properties:
                      id:
                        type: string
                      status:
                        type: string
                        enum:
                        - released
                  message:
                    type: string
                    example: SMS number released.
        '400':
          description: The number was already released
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Missing companies:manage or company edit permission
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Company or SMS number not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: A number purchase or conflicting operation is in progress
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Failed to release the number
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Carrier release temporarily failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /sms/usage:
    get:
      operationId: getSmsUsage
      summary: Get SMS usage
      description: Per-number outbound SMS usage for the selected company. Requires account:read. Test sends count only toward testSends, not totalSends, delivered, failed or creditsCharged. lastSentAt may include a test send. Rows are ordered by totalSends descending.
      tags:
      - SMS
      responses:
        '200':
          description: Per-number usage returned
          content:
            application/json:
              schema:
                type: object
                required:
                - success
                - usage
                properties:
                  success:
                    type: boolean
                    example: true
                  usage:
                    type: array
                    items:
                      type: object
                      required:
                      - fromNumber
                      - totalSends
                      - delivered
                      - failed
                      - creditsCharged
                      - lastSentAt
                      - testSends
                      properties:
                        fromNumber:
                          type: string
                          description: Sending phone number.
                        totalSends:
                          type: integer
                        delivered:
                          type: integer
                        failed:
                          type: integer
                        creditsCharged:
                          type: number
                        lastSentAt:
                          type:
                          - string
                          - 'null'
                          format: date-time
                        testSends:
                          type: integer
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Missing account:read or company access
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Failed to load SMS usage
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /sms/test:
    post:
      operationId: sendTestSms
      summary: Send a test SMS
      description: Sends a real test text message. Test sends charge credits, bypass quiet hours, are excluded from step stats, and are limited to 100 per company in a rolling 24-hour window. Requires the SMS add-on with a verified number.
      tags:
      - SMS
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - to
              properties:
                to:
                  type: string
                  description: Destination phone number in international E.164 format.
                  example: '+15550100123'
                text:
                  type: string
                  description: Plain-text message body. Provide text or blocks, not both.
                  example: Test from Sequenzy
                imageUrls:
                  type: array
                  description: Up to 2 publicly reachable image URLs sent as MMS media (US/CA only).
                  items:
                    type: string
                blocks:
                  type: array
                  description: SMS content blocks (text + image subset). Provide text or blocks, not both.
                  items:
                    type: object
                fromNumberId:
                  type: string
                  description: Verified sending number ID from GET /sms/settings. Omit to use the oldest verified company number. An invalid explicit selection returns 400 instead of falling back.
                  maxLength: 128
      responses:
        '200':
          description: Test SMS queued successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  smsSendId:
                    type: string
                    example: sms_abc123
                  toPhone:
                    type: string
                    example: '+15550100123'
                  message:
                    type: string
                    example: Test SMS queued to +15550100123. Test sends bypass quiet hours, charge credits, and are excluded from step stats.
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: SMS add-on not enabled, plan not eligible, or number not verified
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Test send limit reached
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Failed to send test SMS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  headers:
    RetryAfter:
      description: Number of seconds to wait before retrying the request.
      schema:
        type: integer
        minimum: 1
        example: 1
  responses:
    TransientDatabaseUnavailable:
      description: The database was temporarily unavailable. The request may be retried after the delay in Retry-After.
      headers:
        Retry-After:
          $ref: '#/components/headers/RetryAfter'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            success: false
            error: The service could not reach its database for a moment. Retry the request.
            code: SERVICE_UNAVAILABLE
  schemas:
    RequestValidationError:
      type: object
      description: Returned with status 422 when the request does not match the endpoint's field types, for example a missing required field, a value outside an allowed set, or a number sent as a string. Fix the field named in `property` and retry.
      properties:
        type:
          type: string
          example: validation
        'on':
          type: string
          description: Request part that failed, such as `body` or `query`. A query parameter outside its numeric range reports `property` here, with `property` set to `root` and the parameter value in `found`.
          example: body
        property:
          type: string
          description: JSON Pointer to the first failing field.
          example: /enrollmentMode
        message:
          type: string
          example: Expected union value
        summary:
          type: string
          description: Readable description of the first failure.
          example: 'Property ''enrollmentMode'' must be one of: unlimited, one_time, matching_field'
        found:
          description: The request part as received, after unknown fields were removed.
        errors:
          type: array
          maxItems: 10
          description: The first failures found, at most 10.
          items:
            type: object
            properties:
              path:
                type: string
                example: /enrollmentMode
              message:
                type: string
              summary:
                type: string
              allowedValues:
                type: array
                description: Accepted values when the field takes a fixed set of values.
                items: {}
    Error:
      type: object
      properties:
        success:
          type: boolean
          example: false
        error:
          type: string
          example: Error message
        code:
          type: string
          description: Optional stable machine-readable error discriminator when available.
          example: COMPANY_CREATE_REQUIRES_PERSONAL_KEY
        retryable:
          type: boolean
          description: Whether retrying the request can recover from the error.
        issues:
          type: array
          description: Field-level problems with the request, when the endpoint reports them. Up to ten entries; `error` summarizes the first three.
          items:
            $ref: '#/components/schemas/InputIssue'
      required:
      - error
    InputIssue:
      type: object
      properties:
        path:
          type: string
          description: Dotted field path, such as `audience.subscriberIds[0]`. Empty when the problem is with the request body itself.
          example: kind
        message:
          type: string
          description: What is wrong with the field.
          example: must be "add_tags"
        allowedValues:
          type: array
          description: Accepted values when the field only takes a fixed set of values.
          items: {}
          example:
          - add_tags
      required:
      - path
      - message
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key passed as Bearer token