{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/phone-com/main/json-schema/phone-com-extension-schema.json", "title": "Extension", "x-generated": "2026-10-14", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/phone-com-phoenix-api-by-phone-com-openapi.yml#/components/schemas/Extension", "type": "object", "properties": { "usage_type": { "enum": [ "limited", "unlimited" ], "description": "Can be 'limited' or 'unlimited'. In most cases, changing this will affect your monthly bill." }, "extension": { "type": [ "integer", "null" ], "description": "Extension number that callers may dial. On POST, leaving this empty will result in an auto-generated value. On PUT, this field is required." }, "full_name": { "type": [ "string", "null" ], "maxLength": 70, "description": "Full name of the individual or department to which this extension is assigned" }, "name": { "type": [ "string", "null" ], "maxLength": 30, "description": "User-supplied name for the extension. On POST, leaving this empty will result in an auto-generated value. On PUT, this field is required" }, "timezone": { "type": [ "string", "null" ], "description": "Time zone in IANA time zone database format (like 'America/Los_Angeles')" }, "name_greeting": { "type": [ "object", "null" ], "properties": { "id": { "type": [ "integer", "null" ], "description": "Recording ID. Read-only" }, "name": { "type": [ "string", "null" ], "description": "Name of recording" } }, "description": "Greeting that communicates the extension's name" }, "include_in_directory": { "type": [ "boolean", "null" ], "description": "Whether this extension should be included in the dial-by-name directory for this account." }, "caller_id": { "type": [ "string", "null" ], "description": "Phone number to use as Caller ID for outgoing calls. Must be a phone number belonging to this account, or one of any additional authorized phone number" }, "local_area_code": { "type": [ "integer", "null" ], "description": "For outbound calls, this is the North American area code that this extension is calling from" }, "enable_call_waiting": { "type": [ "boolean", "null" ], "description": "Whether Call Waiting is enabled. Default is TRUE" }, "enable_outbound_calls": { "type": [ "boolean", "null" ], "description": "Whether outgoing calls are enabled. Default is TRUE." }, "bypass_hard_phone": { "type": [ "boolean", "null" ], "description": "Set 'true' if you want to use advanced call handling rules instead of device" }, "voicemail": { "properties": { "enabled": { "type": [ "boolean", "null" ], "description": "Whether voicemail is enabled" }, "password": { "type": [ "string", "null" ], "pattern": "^[0-9]+$", "description": "Password for accessing voicemail box. Must be digits only." }, "greeting": { "properties": { "type": { "enum": [ "name", "standard", "alternate" ], "description": "The greeting to play. Can be 'name' for the name_greeting as described above, 'standard' for the standard greeting, or 'alternate' for an alternate greeting." }, "standard": { "type": [ "object", "null" ], "properties": { "id": { "type": [ "integer", "null" ], "minimum": 1, "description": "Recording ID. Read-only." }, "name": { "type": [ "string", "null" ], "description": "Name of recording" } }, "description": "Greeting to be played when type='standard'" }, "alternate": { "type": [ "object", "null" ], "properties": { "id": { "type": [ "integer", "null" ], "minimum": 1, "description": "Recording ID. Read-only." }, "name": { "type": [ "string", "null" ], "description": "Name of recording" } }, "description": "Greeting to be played when type='alternate'" }, "enable_leave_message_prompt": { "type": [ "boolean", "null" ], "description": "Whether to prompt the caller with the following words after the voicemail greeting has been played: 'Please leave your message after the tone. When finished, hang up or press the pound key." } }, "description": "Voicemail Greeting Object" }, "transcription": { "enum": [ "human", "automated" ], "description": "Type of voicemail transcription to use. Can be 'human' for high-quality manual transcriptions by human operators, 'automated' for machine-generated transcriptions, or NULL to omit trancriptions" }, "attachments": { "enum": [ "wav", "mp3" ], "description": "If notification emails are being used, this defines the format of the audio attachments. Can be 'wav' for WAV format, 'mp3' for MP3 format, or NULL to disable attachments." }, "notifications": { "properties": { "emails": { "type": [ "string", "null" ], "description": "Array of email addresses" }, "sms": { "type": [ "string", "null" ], "pattern": "^\\+?([0-9\\-\\(\\)\\s]*)$", "description": "Phone number capable of receiving SMS messages" } }, "description": "Voicemail Notifications Object. Can be set to NULL to disable notifications." } }, "description": "Voicemail Object." }, "call_notifications": { "type": [ "object", "null" ], "properties": { "emails": { "type": [ "string", "null" ], "description": "Array of email addresses" }, "sms": { "type": [ "string", "null" ], "pattern": "^\\+?([0-9\\-\\(\\)\\s]*)$", "description": "Phone number capable of receiving SMS messages" } }, "description": "Call Notifications Object" }, "presence_publish": { "type": [ "boolean", "null" ], "description": "" }, "presence_subscribe": { "type": [ "boolean", "null" ], "description": "" }, "route": { "description": "Extension route" } } }