Properties
| Name | Type | Description |
|---|---|---|
| name | stringnull | Route Name |
| rules | array | Array of Rule Set Objects |
| extension | objectnull | Extension to which this route belongs |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/phone-com/main/json-schema/phone-com-route-schema.json",
"title": "Route",
"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/Route",
"type": "object",
"properties": {
"name": {
"type": [
"string",
"null"
],
"description": "Route Name"
},
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"filter": {
"type": [
"object",
"null"
],
"properties": {
"type": {
"type": [
"string",
"null"
],
"description": "Filter type"
},
"schedule": {
"type": [
"object",
"null"
],
"properties": {
"id": {
"type": [
"integer",
"null"
],
"description": "Schedule ID"
},
"name": {
"type": [
"string",
"null"
],
"description": "Schedule name"
}
},
"description": "Schedule object for being used as a filter"
},
"group": {
"type": [
"object",
"null"
],
"properties": {
"id": {
"type": [
"integer",
"null"
],
"description": "Contacts group ID"
},
"name": {
"type": [
"string",
"null"
],
"description": "Contacts group name"
}
},
"description": "Contacts group object for being used as a filter"
},
"contact": {
"type": [
"object",
"null"
],
"properties": {
"id": {
"type": [
"integer",
"null"
],
"description": "Contact ID"
},
"name": {
"type": [
"string",
"null"
],
"description": "Contact name"
}
},
"description": "Contact object for being used as a filter"
}
},
"description": "Rule filter (apply rule only if it matches the filter)"
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"abcn_queue",
"directory",
"disconnect",
"fax",
"forward",
"greeting",
"hold",
"menu",
"queue",
"trunk",
"voicemail",
"live_answer"
],
"description": "Routing action"
},
"timeout": {
"type": [
"integer",
"null"
],
"minimum": 5,
"maximum": 90,
"description": "Timeout for the action"
},
"items": {
"type": [
"array",
"null"
],
"items": {
"type": [
"object",
"null"
],
"properties": {
"type": {
"type": [
"string",
"null"
],
"enum": [
"phone_number",
"extension"
],
"description": "Must equal phone_number or extension"
},
"number": {
"type": [
"string",
"null"
],
"description": "Required if type = 'phone_number'. Phone number that callers should be directed to"
},
"extension": {
"type": [
"object",
"null"
],
"properties": {
"id": {
"type": [
"integer",
"null"
],
"minimum": 1,
"description": "ID of the extension"
},
"extension": {
"type": [
"integer",
"null"
],
"minimum": 1,
"description": "Extension number that callers may dial"
},
"name": {
"type": [
"string",
"null"
],
"description": "User-supplied name for the extension"
}
},
"description": "Required if type = 'extension'. Extension that callers should be directed to"
},
"caller_id": {
"type": [
"string",
"null"
],
"description": "Must equal calling_number or called_number. Defines which phone number should be used for Caller ID"
},
"voice_tag": {
"type": [
"string",
"null"
],
"description": "Optional string. If screening = TRUE, this value will be passed into our Text-To-Speech engine and used to inform the caller of who they have reached"
},
"distinctive_ring": {
"type": [
"string",
"null"
],
"description": "Must equal one of: DEFAULT, STYLE_2, STYLE_3, STYLE_4, STYLE_5, STYLE_6, STYLE_7, STYLE_8, or STYLE_9. Identifies the style of ring tone you will hear when an incoming call is waiting"
}
}
},
"description": "Array of Forward Item Objects"
},
"queue": {
"type": [
"object",
"null"
],
"properties": {
"id": {
"type": [
"integer",
"null"
],
"minimum": 1,
"description": "Queue ID"
}
},
"description": "Queue that this action refers to. Input must be a Queue Lookup Object."
},
"menu": {
"type": [
"object",
"null"
],
"properties": {
"id": {
"type": [
"integer",
"null"
],
"minimum": 1,
"description": "Menu ID"
}
},
"description": "Menu that this action refers to. Input must be a Menu Lookup Object."
},
"greeting": {
"type": [
"object",
"null"
],
"properties": {
"id": {
"type": [
"integer",
"null"
],
"minimum": 1,
"description": "Media ID"
}
},
"description": "Greeting that this action refers to. Input must be a Media Lookup Object. Must refer to a media recording that has is_hold_music set to FALSE"
},
"hold_music": {
"type": [
"object",
"null"
],
"properties": {
"id": {
"type": [
"integer",
"null"
],
"minimum": 1,
"description": "Media ID"
},
"duration": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "Duration"
}
},
"description": "Hold Music to be played while callers are waiting. Input must be a Media Lookup Object. Must refer to a media recording that has is_hold_music set to TRUE. Default is to play a standard ring tone"
},
"trunk": {
"type": [
"object",
"null"
],
"properties": {
"id": {
"type": [
"integer",
"null"
],
"minimum": 1,
"description": "Trunk ID"
}
},
"description": "Trunk that this action refers to. Input must be a Trunk Lookup Object."
},
"extension": {
"type": [
"object",
"null"
],
"properties": {
"id": {
"type": [
"integer",
"null"
],
"minimum": 1,
"description": "Extension ID"
}
},
"description": "Extension that this action refers to. Input must be an Extension Lookup Object"
},
"voice_tag": {
"type": [
"string",
"null"
],
"description": "Voice tag"
},
"script": {
"type": [
"object",
"null"
],
"properties": {
"id": {
"type": [
"integer",
"null"
],
"minimum": 1,
"description": "ID of live receptionist script"
}
},
"description": "Live receptionist script"
}
},
"required": [
"action"
]
},
"description": "Array of Action Objects"
}
},
"required": [
"actions"
]
},
"description": "Array of Rule Set Objects"
},
"extension": {
"type": [
"object",
"null"
],
"properties": {
"id": {
"type": [
"integer",
"null"
],
"minimum": 1,
"description": "Extension ID"
},
"extension": {
"type": [
"integer",
"null"
],
"minimum": 1,
"description": "Extension number"
},
"name": {
"type": [
"string",
"null"
],
"description": "Extension name"
}
},
"description": "Extension to which this route belongs"
}
},
"required": [
"rules"
]
}
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/phone-com-route"
All schemas
curl "https://apis.io/api/v1/json-schemas?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.