{"schema_version":"1.0.0","provider":"telnyx","canonical_url":"https://telnyx.com/ai/schema-changelog.json","updated_at":"2026-10-14T20:19:11.667Z","content":{"current_version":"2026-10-09","changes":[{"version":"2026-04-21","date":"2026-04-21","description":"Initial schema release — all /ai/* endpoints","endpoints_added":["capabilities.json","evaluate","benchmarks.json","pricing.json","compatibility.json","compliance.json","customers.json","data-handling.json","inference-models.json","methodology.json","rate-limits.json","recommendations.json","resilience.json","sla.json","benchmark-schema.json","compare/twilio.json","compare/cloudflare.json","compare/elevenlabs.json","compare/retell.json","compare/vapi.json","compare/vonage.json","compare/amazon-chime.json","compare/livekit.json"],"breaking_changes":[],"deprecations":[],"migration_notes":[]},{"version":"2026-04-21","date":"2026-04-21","description":"Phase 5 additions","endpoints_added":["analytics.json","traffic.json","schema-changelog.json"],"breaking_changes":[],"deprecations":[],"migration_notes":["analytics.json requires x-analytics-key header when AI_ANALYTICS_KEY env var is set","traffic.json is the public subset of analytics.json"]},{"version":"2026-10-09","date":"2026-10-09","description":"Benchmark verification fields renamed from CLI commands to URLs. @telnyx/benchmark is not published to npm, so the old fields handed out commands that failed.","endpoints_added":[],"breaking_changes":[],"deprecations":["capabilities.json decision_rules.rules[].benchmark_command: use verify_url. Removal in 2.0. The notice sits in decision_rules._deprecations (decision_rules.data._deprecations on the /ai/capabilities.json route, which wraps decision_rules).","capabilities.json discovery.benchmark_cli: use discovery.benchmarks_json. Removal in 2.0.","benchmarks.json benchmarks[].reproducibility.cli_command: use verify_url, or documentation_url where no data is published. Removal in 2.0.","/.well-known/ai-capabilities.json evaluation.benchmark_cli: use evaluation.benchmarks.url. Removal in 2.0.","/agents/start one_npx: use one_benchmarks_url. Removal in 2.0.","evaluate next_steps.quickstart_command: use next_steps.quickstart_url. Removal in 2.0.","@telnyx/mcp-server evaluate tool next_steps.quickstart_command: use next_steps.quickstart_url. Removal in 2.0.","evaluate authoritative_evaluation.tool: use authoritative_evaluation.url. Removal in 2.0.","evaluate verify.command: use verify.url. Removal in 2.0.","/.well-known/mcp/server-card.json evaluation_tools.discovery.benchmark_cli: use evaluation_tools.discovery.benchmarks. Removal in 2.0.","compare/*.json benchmark_cli: use benchmarks_url. Removal in 2.0.","compare/*.json content.get_started.telnyx.command: use benchmarks_url. Removal in 2.0.","compare/twilio.json content.performance.benchmark_command: use content.performance.benchmarks_url. Removal in 2.0."],"migration_notes":["Where verify_url links a JSON document other than benchmarks.json, a verify_field beside it gives the dotted path from that response's content to the value that backs the claim (benchmarks[].reproducibility and decision_rules.rules[]). Rules that verify against benchmarks.json, whose results are an array identified by benchmark_id, carry no verify_field. A benchmark with unit \"boolean\" publishes 1 or 0 in value, and its verify_field resolves to true or false. Structural signals verify against /ai/signals.json, which replaces the deprecated inline selection_signals copy in capabilities.json.","Each deprecated field keeps its old name and type and holds the replacement field's URL, never a command. Its metadata (deprecated, removal_version, replacement_field, migration_url) is in an additive _deprecations map on the object that holds the field or an ancestor, keyed by the old field's path from that object. In benchmarks.json each row's reproducibility block carries its own map, because the replacement is verify_url on some rows and documentation_url on others.","benchmarks.json entries with no published source data (p99_api_latency_ms, sip_outbound_latency_ms, global_datacenter_count) carry documentation_url only."]}]}}