CONNSKILL SMS API

The SMS API from CONNSKILL — 9 operation(s) for sms.

Operations 9

GET /sms/v1/sms-services List valid service and country codes for SMS verification (free) #
GET /sms/v1/sms-pricing Cheapest countries for one SMS service, with the exact sell price (free) #
GET /sms/v1/sms-quote Get the current price for a service and country (free) #
POST /sms/v1/sms-order Rent a phone number for SMS verification and receive the code (paid) #
POST /sms/v1/sms-status Retrieve the verification code of an order (free, orderId acts as the secret) #
POST /sms/v1/sms-cancel Cancel an order and get the provider refund (free) #
GET /sms/v1/sms-rental-quote Price and availability for renting a US number for 1 or 7 days (free) #
POST /sms/v1/sms-rental-order Rent a US phone number for 1 or 7 days and read every SMS it receives (paid) #
POST /sms/v1/sms-rental-messages Read the SMS received on a rented number (free, orderId acts as the secret) #

Documentation

Specifications

Other Resources

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/connskill-com:connskill-com-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

connskill-com-sms-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: CONNSKILL Growth Services SMS API
  version: 3.0.0
  description: 'Search research for AI agents: Local Market Check packages, domain ranking snapshots and keyword demand data.'
  termsOfService: https://agent.connskill.com/pricing
  contact:
    email: info@connskill.com
  x-logo:
    url: https://agent.connskill.com/icon.png
    altText: CONNSKILL
  logo: https://agent.connskill.com/icon.png
  icon: https://agent.connskill.com/icon.png
  x-guidance: Read the free discovery, input and quote routes first. Paid operations return an x402 challenge carrying the exact amount, asset, network and recipient. Prices can vary with selected tier, inputs or usage; use the actual challenge before approving payment. Support is free and uses a separate wallet ownership signature. Preserve the original request and payment proof for redelivery; never pay again for an unresolved purchase.
  x-trust:
    operator: CONNSKILL GmbH & Co. KG
    jurisdiction: Germany (EU)
    contact: info@connskill.com
    auth: No account or API key. Manual first purchases and private redelivery require a free Sign-In-With-X wallet proof from POST /v1/payments/challenge.
    payment: x402 v2, USDC on Base (eip155:8453), pay-per-call to 0x43B85AE58f0A2505c710Bc715d6f3EB16b1f63dE
    idempotency: A fresh wallet proof bound to the exact original request and payment references can retrieve its retained private result without another payment.
    redelivery: Private redelivery only reads a retained result. A missing result or uncertain purchase remains held for wallet support; it never starts another provider order.
    refund: On-chain settlement is technically final. This does not exclude statutory claims. Invalid input is rejected before settlement; failed delivery must be resolved through the delivery policy and support.
    unclearState: If a purchase times out and we cannot tell whether the provider charged us, you get HTTP 504 with stateUnclear — so you never blindly re-order.
    timeouts: No uptime SLA. Every outbound call has a timeout (provider 20s, DataForSEO 45s, purchase 60s); the gateway hard-caps at 90s and returns 504 rather than hanging.
    rateLimit: Paid service calls have no per-caller rate limit. Wallet challenges have bounded capacity and can return 429. Request size limits apply. We never log your IP; only technical metadata such as User-Agent and Referer.
    discovery: https://agent.connskill.com/openapi.json · https://agent.connskill.com/.well-known/x402 · https://agent.connskill.com/llms.txt · https://agent.connskill.com/pricing
tags:
- name: SMS
paths:
  /sms/v1/sms-services:
    get:
      operationId: smsServices
      summary: List valid service and country codes for SMS verification (free)
      tags:
      - SMS
      security: []
      parameters:
      - name: q
        in: query
        required: false
        schema:
          type: string
        description: Filter services by name, e.g. telegram
      - name: limit
        in: query
        required: false
        schema:
          type: integer
        description: Max services returned (default 200)
      responses:
        '200':
          description: Service and country catalogue
  /sms/v1/sms-pricing:
    get:
      operationId: smsPricing
      summary: Cheapest countries for one SMS service, with the exact sell price (free)
      tags:
      - SMS
      security: []
      parameters:
      - name: service
        in: query
        required: true
        schema:
          type: string
        description: Service name, e.g. Discord
      - name: max_usd
        in: query
        required: false
        schema:
          type: number
        description: Skip countries above this provider cost
      - name: limit
        in: query
        required: false
        schema:
          type: integer
        description: Max rows (default 25, max 250)
      responses:
        '200':
          description: Countries sorted cheapest first, with sellUsd per country
  /sms/v1/sms-quote:
    get:
      operationId: smsQuote
      summary: Get the current price for a service and country (free)
      tags:
      - SMS
      security: []
      parameters:
      - name: service
        in: query
        required: true
        schema:
          type: string
      - name: country
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Quote
  /sms/v1/sms-order:
    post:
      operationId: smsOrder
      summary: Rent a phone number for SMS verification and receive the code (paid)
      tags:
      - SMS
      x-payment-info:
        price:
          mode: dynamic
          currency: USD
          min: '0.250000'
          max: '3.000000'
        protocols:
        - x402: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - service
              - country
              properties:
                service:
                  type: string
                  minLength: 1
                  description: Ziel-Dienst (SMSPool-Namen, z.B. Telegram, WhatsApp, Discord)
                country:
                  type: string
                  minLength: 2
                  description: ISO-Landeskuerzel (z.B. US, DE, NL)
      responses:
        '200':
          description: Nummer + orderId
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  orderId:
                    type: string
                  number:
                    type: string
                  provider:
                    type: string
                  costUsd:
                    type: number
                  sellUsd:
                    type: number
              example:
                status: ordered
                orderId: '123456789'
                number: '+12765550123'
                provider: smspool
                costUsd: 0.84
                sellUsd: 2.55
        '402':
          description: Payment Required
  /sms/v1/sms-status:
    post:
      operationId: smsStatus
      summary: Retrieve the verification code of an order (free, orderId acts as the secret)
      tags:
      - SMS
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - orderId
              properties:
                orderId:
                  type: string
      responses:
        '200':
          description: Status + ggf. Code
  /sms/v1/sms-cancel:
    post:
      operationId: smsCancel
      summary: Cancel an order and get the provider refund (free)
      tags:
      - SMS
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - orderId
              properties:
                orderId:
                  type: string
      responses:
        '200':
          description: Storno-Ergebnis
  /sms/v1/sms-rental-quote:
    get:
      operationId: smsRentalQuote
      summary: Price and availability for renting a US number for 1 or 7 days (free)
      tags:
      - SMS
      security: []
      parameters:
      - name: days
        in: query
        required: false
        schema:
          type: integer
          enum:
          - 1
          - 7
        description: Omit to list every SKU
      responses:
        '200':
          description: SKUs with sellUsd, pool size and orderability
  /sms/v1/sms-rental-order:
    post:
      operationId: smsRentalOrder
      summary: Rent a US phone number for 1 or 7 days and read every SMS it receives (paid)
      tags:
      - SMS
      x-payment-info:
        price:
          mode: dynamic
          currency: USD
          min: '9.000000'
          max: '18.000000'
        protocols:
        - x402: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - days
              properties:
                days:
                  type: integer
                  enum:
                  - 1
                  - 7
                  description: Rental duration in days (US number)
      responses:
        '200':
          description: Nummer + orderId
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  orderId:
                    type: string
                  number:
                    type: string
                  days:
                    type: integer
                  expiresAt:
                    type: integer
                  sellUsd:
                    type: integer
                  next:
                    type: string
              example:
                status: rented
                orderId: R1a2b3c4d5e6
                number: '+12765550123'
                days: 7
                expiresAt: 1793000000
                sellUsd: 18
                next: POST /v1/sms-rental-messages {"orderId":"R1a2b3c4d5e6"}
        '402':
          description: Payment Required
  /sms/v1/sms-rental-messages:
    post:
      operationId: smsRentalMessages
      summary: Read the SMS received on a rented number (free, orderId acts as the secret)
      tags:
      - SMS
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - orderId
              properties:
                orderId:
                  type: string
      responses:
        '200':
          description: Rental-Status + empfangene SMS
components:
  securitySchemes:
    signInWithX:
      type: apiKey
      in: header
      name: Sign-In-With-X
      description: Base64 JSON containing the exact challenge fields, checksummed address, chainId eip155:8453, type eip191 and EIP-191 signature. Free authentication, not payment. One use, five minutes, bound to method, path and JSON body.
x-discovery:
  ownershipProofs:
  - '0x4b92ee6ef3357beddfb6b0d39fbe8be660a934bde8a226539a16a0ea414768394cdc20d14f025c6bf5a630e99eafe177a742d81b4c16d2933cd1c2f85e708cbb1b'
  support:
    title: Wallet support
    url: /v1/support/policy
    authentication: sign-in-with-x
    network: eip155:8453
    paid: false
    description: Free, private support for settled purchases. A short-lived wallet signature proves ownership; never pay again merely to open a case.
    endpoints:
    - url: /v1/support/policy
      method: GET
    - url: /v1/support/challenge
      method: POST
    - url: /v1/support/tickets
      method: GET
    - url: /v1/support/tickets
      method: POST
    - url: /v1/support/tickets/{ticketId}
      method: GET
    - url: /v1/support/tickets/{ticketId}/checkout
      method: POST
    - url: /v1/support/tickets/{ticketId}/discount
      method: POST
  serviceSearch:
    endpoint: /v1/service-search
    method: GET
    requiresPayment: false
    querySentToSources: false
    exhaustiveMarket: false
    sources:
    - connskill-directory
    - cdp-bazaar
    description: Free local search of bounded cached catalogues. Source coverage, age and failures are explicit; unknown units are not price-ranked.
x-support:
  title: Wallet support
  url: /v1/support/policy
  authentication: sign-in-with-x
  network: eip155:8453
  paid: false
  description: Free, private support for settled purchases. A short-lived wallet signature proves ownership; never pay again merely to open a case.
  endpoints:
  - url: /v1/support/policy
    method: GET
  - url: /v1/support/challenge
    method: POST
  - url: /v1/support/tickets
    method: GET
  - url: /v1/support/tickets
    method: POST
  - url: /v1/support/tickets/{ticketId}
    method: GET
  - url: /v1/support/tickets/{ticketId}/checkout
    method: POST
  - url: /v1/support/tickets/{ticketId}/discount
    method: POST