Properties
| Name | Type | Description |
|---|---|---|
| channel | object | |
| digits | integer | The length of the code. |
| expiry | integer | The expiry of the code in seconds. |
| from | string | The number of the sender. This must be a valid phone number in E.164 format. |
| to | string | The number of the receiver. This must be a valid phone number in E.164 format. |
| locale | string | Set the spoken language in the voice call. |
| anonymous | boolean | Set whether the number of the caller (from) is hidden in the voice call. |
| message | string | Set a custom message to be used in the voice call. |
| gender | string | Set the gender of the text-to-speech voice used in the voice call. |
| number | integer | Set which text-to-speech voice to use in the voice call. For the list of numbers, see [TTS voices](https://developers.cm.com/voice/docs/supported-languages). |
| premium | boolean | Set whether a premium text-to-speech voice is used in the voice call. Enabling this may incur additional cost. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/cm-com/main/json-schema/cm-com-create-otp-voice-schema.json",
"title": "Create OTP (Voice)",
"x-generated": "2026-10-13",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/cm-com-verification-otp-v2-openapi.yml#/components/schemas/CreateOtpVoice",
"type": "object",
"allOf": [
{
"$ref": "#/$defs/CreateOtpBase"
}
],
"properties": {
"channel": {
"enum": [
"voice"
]
},
"from": {
"type": "string",
"description": "The number of the sender. This must be a valid phone number in E.164 format."
},
"to": {
"type": "string",
"description": "The number of the receiver. This must be a valid phone number in E.164 format."
},
"locale": {
"type": "string",
"description": "Set the spoken language in the voice call.",
"enum": [
"de-DE",
"en-AU",
"en-GB",
"en-IN",
"en-US",
"es-ES",
"fr-CA",
"fr-FR",
"it-IT",
"ja-JP",
"nl-NL"
],
"default": "en-GB"
},
"anonymous": {
"type": "boolean",
"description": "Set whether the number of the caller (from) is hidden in the voice call.",
"default": true
},
"message": {
"type": "string",
"description": "Set a custom message to be used in the voice call.",
"maxLength": 500
},
"gender": {
"type": "string",
"description": "Set the gender of the text-to-speech voice used in the voice call.",
"enum": [
"male",
"female"
],
"default": "female"
},
"number": {
"type": "integer",
"format": "int32",
"description": "Set which text-to-speech voice to use in the voice call. For the list of numbers, see [TTS voices](https://developers.cm.com/voice/docs/supported-languages).",
"minimum": 1,
"maximum": 2147483647
},
"premium": {
"type": "boolean",
"description": "Set whether a premium text-to-speech voice is used in the voice call. Enabling this may incur additional cost.",
"default": false
}
},
"required": [
"from",
"to"
],
"$defs": {
"CreateOtpBase": {
"type": "object",
"properties": {
"channel": {
"type": "string",
"description": "The channel to send the code."
},
"digits": {
"type": "integer",
"description": "The length of the code.",
"minimum": 4,
"maximum": 10,
"default": 5
},
"expiry": {
"type": "integer",
"description": "The expiry of the code in seconds.",
"minimum": 10,
"maximum": 3600,
"default": 60
}
},
"required": [
"channel"
]
}
}
}
Work with this as data
Every JSON Schema 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 schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/cm-com-create-otp-voice"
All schemas
curl "https://apis.io/api/v1/json-schemas?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.