Insider OTP for SMS API

The OTP for SMS API from Insider — 5 operation(s) for otp for sms.

Operations 5

POST /v1/channel/create Create a channel #
POST /v1/channel/generate Generate OTP codes #
GET /v1/channel/list List OTP templates #
POST /v1/channel/update Update a channel #
POST /v1/check Verify OTP codes #

Documentation

📖
Documentation
https://academy.insiderone.com/docs/ucd-user-data-apis-overview
📖
APIReference
https://developers.insiderone.com/
📖
Authentication
https://raw.githubusercontent.com/api-evangelist/insider/refs/heads/main/authentication/insider-authentication.yml
📖
RateLimits
https://raw.githubusercontent.com/api-evangelist/insider/refs/heads/main/rate-limits/insider-rate-limits.yml
📖
Documentation
https://academy.insiderone.com/docs/data-collection-consent-apis
📖
Documentation
https://academy.insiderone.com/docs/email-apis-overview
📖
Documentation
https://academy.insiderone.com/docs/transactional-sms-overview
📖
Documentation
https://academy.insiderone.com/docs/whatsapp-transactional-api
📖
Documentation
https://academy.insiderone.com/docs/web-push-apis-overview
📖
Documentation
https://academy.insiderone.com/docs/app-push-apis-overview
📖
Documentation
https://academy.insiderone.com/docs/mobile-app-analytics-apis
📖
Documentation
https://academy.insiderone.com/docs/mobile-app-integration-guide-1
📖
Documentation
https://academy.insiderone.com/docs/otp-for-sms
📖
Documentation
https://academy.insiderone.com/docs/product-catalog-api-introduction
📖
Documentation
https://academy.insiderone.com/docs/recommendation-api
📖
Documentation
https://academy.insiderone.com/docs/eureka-search-api-overview
📖
Documentation
https://academy.insiderone.com/docs/eureka-event-collection-api-implementation
📖
Documentation
https://academy.insiderone.com/docs/email-analytics-api
📖
Documentation
https://academy.insiderone.com/docs/architect-analytics-api
📖
Documentation
https://academy.insiderone.com/docs/transactional-journeys-on-api-call-starter

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/insider-otp-for-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

insider-otp-for-sms-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Insider One Verify (OTP) OTP for SMS API
  version: 1.0.0
  description: 'OTP channels and templates for SMS and WhatsApp: create/update channels, manage templates, generate and verify OTP codes.'
  contact:
    name: Insider One Support
    email: support@useinsider.com
    url: https://academy.insiderone.com/docs/insider-one-apis-1
  termsOfService: https://insiderone.com/terms-of-use/
servers:
- url: https://verify.useinsider.com
tags:
- name: OTP for SMS
paths:
  /v1/channel/create:
    post:
      operationId: createAChannel
      summary: Create a channel
      tags:
      - OTP for SMS
      description: 'The Verify API enables you to generate, send, and verify OTP codes for the SMS channel. You can utilize this API to generate OTP codes as defined in the payloads. Integrating it into your own websites or apps, you can trigger it on login pages, payment pages, and more.


        In this regard, in order to send OTP codes, you must create a channel for your brand just once. Creating a channel, you will have predefined templates for 10 languages by default.


        To be able to use the Verify API:


        Both SMS & Transactional SMS Products should be enabled in Insider''s InOne Panel.


        SMS Integration should be finalized and you should be able to receive a test message from the Insider''s InOnePanel.


        Body Parameters


        Parameter

        Description

        Data Type

        Required

        Rules


        channel

        Channel that you will send the OTP code. Currently it is SMS only.

        String

        Yes

        oneof:sms


        brandName

        Your brand name defines your OTP SMS content in pre-defined templates.

        String

        Yes

        min:3 max:30 characters


        Sample Example

        Sample Request

        Every request made to the request endpoint requires a request body formatted in JSON and containing your parameters.


        Make sure to replace the sample values in the request header(s) and body where required before sending your request.


        curl --location ''https://verify.useinsider.com/v1/channel/create'' \

        --header ''Content-Type: application/json'' \

        --header ''x-ins-auth-key: INS.************************'' \

        --data ''{

        "channel": "sms",

        "brandName": "YourBrandName"

        }''


        Sample Responses

        201 CREATED

        {

        "status": "success"

        }


        400 BAD REQUEST

        {

        "errors": [

        {

        "message": "invalid request payload"

        }

        ]

        }


        400 BAD REQUEST

        {

        "errors": [

        {

        "message": "this field must be one of these:sms",

        "field": "channel"

        }

        ]

        }


        401 UNAUTHORIZED

        {

        "errors": [

        {

        "message": "unauthorized"

        }

        ]

        }


        429 TOO MANY REQUESTS

        {

        "errors": [

        {

        "message": "rate limit exceeded"

        }

        ]

        }


        500 INTERNAL SERVER ERROR

        {

        "errors": [

        {

        "message": "channel already exists"

        }

        ]

        }


        500 INTERNAL SERVER ERROR

        {

        "errors": [

        {

        "message": "server error"

        }

        ]

        }


        Limitations


        All functions must be executed with a simple HTTPS POST request.


        The API Key should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.


        You can only create OTP for SMS channel.'
      security:
      - InsAuthKey: []
      requestBody:
        content:
          application/json:
            examples:
              default:
                value:
                  channel: sms
                  brandName: YourBrand
              create-a-channel:
                summary: Create a channel
                value:
                  channel: whatsapp
      responses:
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /v1/channel/generate:
    post:
      operationId: generateOtpCodes
      summary: Generate OTP codes
      tags:
      - OTP for SMS
      description: 'The Verify API enables you to generate, send, and verify OTP codes for the SMS channel. You can utilize this API to generate OTP codes as defined in the payloads. Integrating it into your own websites or apps, you can trigger it on login pages, payment pages, and more.


        After you create your channel for your brand and update the templates, you need to perform the generate action for your OTP.


        Body Parameters


        Parameter

        Description

        Data Type

        Required

        Rules


        channel

        Channel that you will send the OTP code. Currently it is SMS only.

        String

        Yes

        oneof:sms


        to

        Specifies the destination phone number in E.164 format to which the OTP code will be sent.

        String

        Yes

        e164


        locale

        Determines the language/locale in which the OTP code message will be sent.

        String

        No (Default: en)

        oneof:de en es fr it ja nl pt ru tr


        ttl

        Specifies the Time-To-Live (TTL) duration for the OTP code, i.e., the time window within which the OTP code is valid. Measured in seconds.

        Integer

        No (Default: 180)

        min:60 max:600


        code-length

        Specifies the length of the OTP code to be generated. The code length must be between 4 and 8 digits.

        Integer

        No (Default: 4)

        min:4 max:8


        custom-code

        If provided, allows you to specify a custom OTP code instead of generating one.

        Integer

        No

        min:1000 max:99999999


        max-attempts

        Sets the maximum number of allowed OTP verification attempts. If the verification fails after reaching this limit, further attempts might be denied.

        Integer

        No (Default: 3)

        min:1 max:10


        Sample Example

        Sample Request

        Every request made to the request endpoint requires a request body formatted in JSON and containing your parameters.


        Make sure to replace the sample values in the request header(s) and body where required before sending your request.


        curl --location ''https://verify.useinsider.com/v1/generate'' \

        --header ''Content-Type: application/json'' \

        --header ''x-ins-auth-key: INS.************************'' \

        --data ''{

        "channel": "sms",

        "to": "+905XXXXXXXXX"

        }''


        Sample Responses

        202 ACCEPTED

        This response indicates that your request was successfully completed.


        {

        "channel": "sms",

        "dateCreated": "2023-07-28T14:40:41Z",

        "dateUpdated": "2023-07-28T14:40:41Z",

        "locale": "en",

        "maxAttempts": 3,

        "ttl": 180

        }


        400 BAD REQUEST

        {

        "errors": [

        {

        "message": "invalid request payload"

        }

        ]

        }


        400 BAD REQUEST

        {

        "errors": [

        {

        "message": "channel information must be a valid phone number for sms",

        "field": "to"

        }

        ]

        }


        401 UNAUTHORIZED

        {

        "errors": [

        {

        "message": "unauthorized"

        }

        ]

        }


        429 TOO MANY REQUESTS

        {

        "errors": [

        {

        "message": "rate limit exceeded"

        }

        ]

        }


        500 INTERNAL SERVER ERROR

        {

        "errors": [

        {

        "message": "server error"

        }

        ]

        }


        Limitations


        All functions must be executed with a simple HTTPS POST request.


        The API Key should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.


        You can only create OTP for SMS channel.'
      security:
      - InsAuthKey: []
      requestBody:
        content:
          application/json:
            example:
              channel: sms
              to: +905XXXXXXXXX
      responses:
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /v1/channel/list:
    get:
      operationId: listOtpTemplates
      summary: List OTP templates
      tags:
      - OTP for SMS
      description: 'The Verify API enables you to generate, send, and verify OTP codes for the SMS channel.


        After you create a channel for your brand, you can list its templates later.


        Body Parameters


        Parameter

        Description

        Data Type

        Required

        Rules


        channel

        Channel that you will send the OTP code. Currently it is SMS only.

        String

        Yes

        oneof:sms


        brandName

        Your brand name defines your OTP SMS content in pre-defined templates.

        String

        Yes

        min:3 max:30 characters


        Sample Example

        Sample Request

        Every request made to the request endpoint requires a request body formatted in JSON and containing your parameters.


        Make sure to replace the sample values in the request header(s) and body where required before sending your request.


        curl --location ''verify.useinsider.com/v1/template/list'' \

        --header ''Content-Type: application/json'' \

        --header ''x-ins-auth-key: INS.************************''


        Sample Responses

        200 OK

        This response indicates that your request was successfully completed.


        {

        "templates": {

        "sms": [

        {

        "locale": "de",

        "text": "Ihr {brandName} Bestätigungscode lautet: {code}"

        },

        {

        "locale": "en",

        "text": "Your {brandName} verification code is: {code}"

        },

        {

        "locale": "es",

        "text": "Su código de verificación de {brandName} es: {code}"

        },

        {

        "locale": "fr",

        "text": "Votre code de vérification {brandName} est: {code}"

        },

        {

        "locale": "it",

        "text": "Il tuo codice di verifica {brandName} è: {code}"

        },

        {

        "locale": "ja",

        "text": "あなたの{brandName}確認コードは: {code}です"

        },

        {

        "locale": "nl",

        "text": "Uw {brandName} verificatiecode is: {code}"

        },

        {

        "locale": "pt",

        "text": "Seu código de verificação {brandName} é: {code}"

        },

        {

        "locale": "ru",

        "text": "Ваш проверочный код {brandName}: {code}"

        },

        {

        "locale": "tr",

        "text": "{brandName} doğrulama kodunuz: {code}"

        }

        ]

        }

        }


        401 UNAUTHORIZED

        {

        "errors": [

        {

        "message": "unauthorized"

        }

        ]

        }


        429 TOO MANY REQUESTS

        {

        "errors": [

        {

        "message": "rate limit exceeded"

        }

        ]

        }


        Limitations


        All functions must be executed with a simple HTTPS GET request.


        The API Key should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.


        You can only create OTP for SMS channel.'
      security:
      - InsAuthKey: []
      responses:
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /v1/channel/update:
    post:
      operationId: updateAChannel
      summary: Update a channel
      tags:
      - OTP for SMS
      description: 'The Verify API enables you to generate, send, and verify OTP codes for the SMS channel. You can utilize this API to generate OTP codes as defined in the payloads. Integrating it into your own websites or apps, you can trigger it on login pages, payment pages, and more.


        After you create a channel for your brand, you can edit and update it later.


        Body Parameters


        Parameter

        Description

        Data Type

        Required

        Rules


        channel

        Channel that you will send the OTP code. Currently it is SMS only.

        String

        Yes

        oneof:sms


        brandName

        Your brand name defines your OTP SMS content in pre-defined templates.

        String

        Yes

        min:3 max:30 characters


        Sample Example

        Sample Request

        Every request made to the request endpoint requires a request body formatted in JSON and containing your parameters.


        Make sure to replace the sample values in the request header(s) and body where required before sending your request.


        curl --location ''verify.useinsider.com/v1/channel/update'' \

        --header ''Content-Type: application/json'' \

        --header ''x-ins-auth-key: INS.************************'' \

        --data ''{

        "channel": "sms",

        "brandName": "YourBrand"

        }''


        Sample Responses

        202 ACCEPTED

        {

        "status": "success"

        }


        400 BAD REQUEST

        {

        "errors": [

        {

        "message": "invalid request payload"

        }

        ]

        }


        400 BAD REQUEST

        {

        "errors": [

        {

        "message": "this field must be one of these:sms",

        "field": "channel"

        }

        ]

        }


        401 UNAUTHORIZED

        {

        "errors": [

        {

        "message": "unauthorized"

        }

        ]

        }


        429 TOO MANY REQUESTS

        {

        "errors": [

        {

        "message": "rate limit exceeded"

        }

        ]

        }


        500 INTERNAL SERVER ERROR

        {

        "errors": [

        {

        "message": "channel already exists"

        }

        ]

        }


        500 INTERNAL SERVER ERROR

        {

        "errors": [

        {

        "message": "server error"

        }

        ]

        }


        Limitations


        All functions must be executed with a simple HTTPS POST request.


        The API Key should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.


        You can only create OTP for SMS channel.'
      security:
      - InsAuthKey: []
      requestBody:
        content:
          application/json:
            examples:
              default:
                value:
                  channel: sms
                  brandName: YOURBRAND
              update-otp-templates:
                summary: Update OTP templates
                value:
                  channel: sms
                  locale: en
                  text: 'Your {brandName} verification code is: {code}'
      responses:
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /v1/check:
    post:
      operationId: verifyOtpCodes
      summary: Verify OTP codes
      tags:
      - OTP for SMS
      description: 'The Verify API enables you to generate, send, and verify OTP codes for the SMS channel. You can utilize this API to generate OTP codes as defined in the payloads. Integrating it into your own websites or apps, you can trigger it on login pages, payment pages, and more.


        After you create your channel for your brand and update the templates, you need to perform the verify action for your OTP.


        Body Parameters


        Parameter

        Description

        Data Type

        Required

        Rules


        to

        Specifies the destination phone number in E.164 format to which the OTP code will be sent.

        String

        Yes

        e164


        code

        Represents the OTP code provided for verification. The code length must be between 4 and 8 digits.

        Integer

        No (Default: 4)

        min:4 max:8


        Sample Example

        Sample Request

        Every request made to the request endpoint requires a request body formatted in JSON and containing your parameters.


        Make sure to replace the sample values in the request header(s) and body where required before sending your request.


        curl --location ''verify.useinsider.com/v1/check'' \

        --header ''Content-Type: application/json'' \

        --header ''x-ins-auth-key: INS.**************************'' \

        --data

        "to": "+905XXXXXXXXX",

        "code": 1234

        }''


        Sample Responses

        202 ACCEPTED

        This response indicates that your request was successfully completed.


        {

        "status": "success"

        }


        400 BAD REQUEST

        {

        "errors": [

        {

        "message": "invalid request payload"

        }

        ]

        }


        401 UNAUTHORIZED

        {

        "errors": [

        {

        "message": "invalid code"

        }

        ]

        }


        401 UNAUTHORIZED

        {

        "errors": [

        {

        "message": "unauthorized"

        }

        ]

        }


        404 NOT FOUND

        {

        "errors": [

        {

        "message": "code not found",

        "field": "code"

        }

        ]

        }


        429 TOO MANY REQUESTS

        {

        "errors": [

        {

        "message": "rate limit exceeded"

        }

        ]

        }


        429 TOO MANY REQUESTS

        {

        "errors": [

        {

        "message": "maximum attempts exceeded",

        "field": "code"

        }

        ]

        }


        500 INTERNAL SERVER ERROR

        {

        "errors": [

        {

        "message": "server error"

        }

        ]

        }


        Limitations


        All functions must be executed with a simple HTTPS POST request.


        The API Key should be provided as the authorization key on the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.


        You can only create OTP for SMS channel.'
      security:
      - InsAuthKey: []
      requestBody:
        content:
          application/json:
            examples:
              default:
                value:
                  to: +905XXXXXXXXX
                  code: 1234
              verify-otp-codes:
                summary: Verify OTP codes
                value:
                  to: +905XXXXXXXXX
                  code: 1234
      responses:
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  responses:
    TooManyRequests:
      description: Too Many Requests. The published per-endpoint rate limit was exceeded; back off and retry, honouring Retry-After when present.
      content:
        application/json:
          example:
            message: Too Many Requests
            status: 429
  securitySchemes:
    InsAuthKey:
      type: apiKey
      in: header
      name: X-INS-AUTH-KEY
      description: Insider One authorization key for this API, generated in the InOne panel.
externalDocs:
  description: Insider One API reference
  url: https://academy.insiderone.com/docs/api-reference-welcome
x-provenance:
  generated: '2026-08-13'
  method: derived
  source: postman/insider-one-apis.postman_collection.json
  source_url: https://documenter.gw.postman.com/api/collections/24851117/2sB3dSR9bM
  publisher_page: https://developers.insiderone.com/
  note: Insider One publishes a single public Postman collection covering every REST API. This document is the subset of that collection served from verify.useinsider.com.