{
 "$schema": "https://agentdrives.com/schemas/tool.schema.json",
 "id": "prd_01m6azcwbp48f21ck5d1fhj1ra",
 "ids": {
  "org": "org_01m6azcwbpfey6txda6x02ytr4",
  "surfaces": {
   "web": "srf_01m6azcwbpw2xdhc09t345zw5y",
   "api": "srf_01m6azcwbpcrkcjbvbgwd0r2yt",
   "mcp": "srf_01m6azcwbpv7qcs1561fg8azzg",
   "cli": "srf_01m6azcwbpt1675d669fktvv9t",
   "sdk": "srf_01m6azcwbprsnkyxmzk9jht1qp"
  },
  "slugs": [
   "telnyx"
  ],
  "domain": "telnyx.com"
 },
 "slug": "telnyx",
 "name": "Telnyx",
 "url": "https://telnyx.com",
 "domain": "telnyx.com",
 "category": "sms-voice",
 "category_name": "SMS and voice",
 "tested_at": "2026-11-01",
 "run": "20261101T060128Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261101T060128Z",
   "date": "2026-11-01",
   "level": 2,
   "engine": {
    "model": "claude-opus-5-5",
    "driver": 5,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "skip",
    "version": "2026.11.01",
    "commit": "c68783625ec9daf0ad6d4c77e0af2825c859c62f",
    "prompts": {
     "version": "2026.10.31",
     "commit": "89bf772fa7ebc3254cfd6313591a49f5c52a28b7"
    },
    "rules": {
     "version": "2026.10.31",
     "commit": "035d6752f8e8b4dfd75b95d48b7890d0101c6352"
    }
   },
   "stop": "delete",
   "paid": false,
   "agent_paid": null
  }
 ],
 "level": 2,
 "level_name": "Gets in",
 "level_selfhost": null,
 "entry": "self-start",
 "door": {
  "passed": 1,
  "tries": 1,
  "self_start": true
 },
 "badges": [],
 "not_counted": null,
 "stages": [
  {
   "key": "in",
   "label": "Access",
   "state": "yes",
   "text": "Gets in on its own: key by API",
   "way": "api_signup"
  },
  {
   "key": "work",
   "label": "Use",
   "state": "unreached",
   "text": "Most of the core needs a paid plan, so the work is not measured"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "part",
   "text": "Reaches the checkout: an agent payment for part of its API, none made yet",
   "value": "checkout",
   "route": "agent_rail"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "yes",
   "text": "Nothing to cancel; deletes its data, but the login stays",
   "at": "delete",
   "left": "data_only",
   "delete": {
    "state": "part",
    "text": "Deletes its data, but the login stays",
    "why": "Every object we made was deleted over the API and the key revoked, but no account-delete endpoint exists in the OpenAPI, auth.md, agent-signup.md, the CLIs or MCP; after clean-up a new bot_signup with the same address still logged in…"
   }
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Learn",
   "state": "yes",
   "text": "Docs it can act on: llms.txt, an OpenAPI and an MCP server",
   "have": [
    "llms_txt",
    "openapi",
    "mcp"
   ],
   "docs": "complete"
  },
  {
   "key": "access",
   "label": "Access",
   "state": "yes",
   "text": "Gets in on its own: key by API",
   "way": "api_signup",
   "stage": "in"
  },
  {
   "key": "use",
   "label": "Use",
   "state": "unreached",
   "text": "Most of the core needs a paid plan, so the work is not measured",
   "stage": "work"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "part",
   "text": "Reaches the checkout: an agent payment for part of its API, none made yet",
   "value": "checkout",
   "route": "agent_rail",
   "stage": "pay"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "yes",
   "text": "Nothing to cancel; deletes its data, but the login stays",
   "at": "delete",
   "left": "data_only",
   "delete": {
    "state": "part",
    "text": "Deletes its data, but the login stays",
    "why": "Every object we made was deleted over the API and the key revoked, but no account-delete endpoint exists in the OpenAPI, auth.md, agent-signup.md, the CLIs or MCP; after clean-up a new bot_signup with the same address still logged in…"
   },
   "stage": "leave"
  }
 ],
 "access": [
  {
   "key": "key_by_api",
   "label": "Key by API",
   "routes": [
    "api_signup"
   ],
   "minutes": 0.6,
   "core": null
  }
 ],
 "minutes": 0.6,
 "next": {
  "to": 3,
  "text": "Next: let a trial or free plan reach the core features"
 },
 "stop": "delete",
 "core": "2/2",
 "scores": {
  "coverage": 83,
  "reliability": 83,
  "resilience": 68,
  "setup": 100,
  "surface_coverage": 7,
  "docs_accuracy": 73,
  "docs_completeness": 74
 },
 "parts": {
  "holds_up": 76,
  "docs_match": 73,
  "setup": 100,
  "security": "private",
  "standards": [
   {
    "standard": "MCP client registration",
    "state": "behind",
    "behind": null,
    "value": "dcr"
   },
   {
    "standard": "OpenAPI",
    "state": "behind",
    "behind": 1,
    "value": "3.1.0"
   },
   {
    "standard": "A2A",
    "state": "behind",
    "behind": 1,
    "value": "0.3"
   }
  ]
 },
 "reliability_method": "pass^k",
 "resilience": {
  "parts": {
   "error_legibility": 87,
   "recovery": 50
  },
  "summary": null
 },
 "stress": [
  {
   "capability": "Make and control an outbound/inbound call",
   "probe": "call without the required \"to\"",
   "outcome": "422 {\"code\":\"10004\",\"title\":\"Missing required parameter\",\"source\":{\"pointer\":\"/to\"},\"detail\":\"The 'to' parameter is required and cannot be blank.\"}",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Search and buy a phone number",
   "probe": "search with a bad country code",
   "outcome": "400 {\"code\":\"10015\",\"title\":\"Bad Request\",\"detail\":\"No coverage found in the specified country based on the provided search parameters.\"}",
   "grade": "vague",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Search and buy a phone number",
   "probe": "well-formed id that does not exist",
   "outcome": "404 {\"code\":\"10005\",\"title\":\"Resource not found\",\"detail\":\"The requested resource or URL could not be found.\"}",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Make and control an outbound/inbound call",
   "probe": "repeat a create (Idempotency-Key sent)",
   "outcome": "403 {\"code\":\"10039\",\"title\":\"Feature limited\",\"detail\":\"Only 1 messaging profile is allowed at this account level.\"}; OVP: 403 10039 \"Account Level Limit Reached ... only have 1 Outbound Voice Profile",
   "grade": "clear",
   "idempotent": "n/a",
   "rate_limit": null
  },
  {
   "capability": "Search and buy a phone number",
   "probe": "burst of 15 sequential reads",
   "outcome": "all 200; headers \"ratelimit-limit: 5, 5;w=1\", \"ratelimit-remaining: 4\", \"x-ratelimit-*\" (old draft field names, alongside X- legacy); no 429 reached at our sequential pace",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": "none-seen"
  },
  {
   "capability": "Make and control an outbound/inbound call",
   "probe": "bad credential",
   "outcome": "401 {\"code\":\"10009\",\"title\":\"Authentication failed\",\"detail\":\"The API key looks malformed. Check that you copied it correctly.\"}",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Search and buy a phone number",
   "probe": "partial failure: second order refused",
   "outcome": "only the first order listed; no half-written second order",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  }
 ],
 "surface_audit": {
  "totals": {
   "items": 1599,
   "documented": 1598,
   "safe": 1443,
   "exercised": 257,
   "passed": 107,
   "skipped": 155,
   "blocked": 1186,
   "not_run": 0,
   "match": 188,
   "drift": 61,
   "broken_doc": 8,
   "docs_complete": 753,
   "docs_partial": 845,
   "docs_missing": 0,
   "errors_clear": 116,
   "errors_vague": 33,
   "errors_silent": 1
  }
 },
 "coverage_core": null,
 "coverage_own": null,
 "after_wall": null,
 "coverage_source": "computed",
 "driver": {
  "version": 5,
  "model": "claude-opus-5-5",
  "profile": "full",
  "assisted": false,
  "handoff": false
 },
 "methodology": 42,
 "rules_date": "2026-10-30",
 "engine": {
  "model": "claude-opus-5-5",
  "driver": 5,
  "signed": true,
  "inbox": [
   "agentdrives.com"
  ],
  "robots": "skip",
  "version": "2026.11.01",
  "commit": "c68783625ec9daf0ad6d4c77e0af2825c859c62f",
  "prompts": {
   "version": "2026.10.31",
   "commit": "89bf772fa7ebc3254cfd6313591a49f5c52a28b7"
  },
  "rules": {
   "version": "2026.10.31",
   "commit": "035d6752f8e8b4dfd75b95d48b7890d0101c6352"
  }
 },
 "same_level_drives": 1,
 "drives": 1,
 "same_stop_drives": 1,
 "works_assisted": null,
 "freshness": "fresh",
 "newer_drives": null,
 "nothing_to_pay": false,
 "core_gated": true,
 "profiles": {},
 "agent_check": {
  "rung": "first_call",
  "vendor": "Cloudflare WAF (custom rule)",
  "visible": true,
  "type": "network",
  "human": null,
  "how": "Let verified bots and signed agents past the check on sign-up: in Cloudflare, add a WAF custom rule that skips the bot challenge on your sign-up paths for verified bots and for signed agents (rule field cf.bot_management.signed_agent; since 1 July 2026 signed agents count as verified bots), and render Turnstile only when the request is not from a verified agent.",
  "recognises_us": true,
  "vendor_id": "cloudflare",
  "other_way": true,
  "way": "keyless",
  "signed": true
 },
 "agent_pass": {
  "rung": "signup",
  "vendor": "Telnyx bot_challenge (first-party LLM reverse-CAPTCHA over the API)",
  "signed": true
 },
 "who_gets_in": {
  "server": {
   "state": "in"
  },
  "signed": {
   "state": "robots",
   "kind": "signup",
   "at": "2026-11-01"
  },
  "browser": {
   "state": "in",
   "measured": false
  },
  "our_key": "pending",
  "robots": "closed",
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "llms.txt links agent-signup.md, auth.md, the OpenAPI 3.1.0 spec, the MCP server card and x402 discovery; docs pages answer Markdown on Accept: text/markdown and at .md URLs."
  },
  "signup": {
   "status": "headless",
   "note": "Bot signup over the API: POST /v2/bot_challenge gave an LLM reverse-CAPTCHA (a leet-speak string to decode and reverse), answered by the agent as documented; POST /v2/bot_signup with our address and terms_of_service: true -> 200. No phone, card or address asked.",
   "way": "api_signup"
  },
  "verify": {
   "status": "headless",
   "note": "The sign-in mail arrived within seconds; GET of its /v2/bot_sessions link returned an api_v2_token."
  },
  "credentials": {
   "status": "headless",
   "note": "POST /v2/api_keys with the session token -> 201 and a permanent API key. Pretrial allows one key at a time; a second key -> 403 10039. Revoked with DELETE /v2/api_keys/{id} (401 after about 15 s).",
   "via": ""
  },
  "first_call": {
   "status": "headless",
   "note": "GET /v2/balance and GET /v2/messaging_profiles -> 200 with the new key.",
   "route": "account"
  },
  "first_action": {
   "status": "headless",
   "note": "POST /v2/messaging_profiles -> 201, read back with GET; later a US number ordered at 0.00 and a call placed to it, answered and recorded over the API."
  },
  "pay": {
   "status": "blocked",
   "grade": "P3",
   "rails": [
    "x402 v2 keyless pay-per-call on x402.telnyx.com (inference, TTS, STT; USDC on Base, Base, exact and upto)",
    "x402 account funding POST /v2/x402/credit_account",
    "MPP account funding POST /v2/machine-payments/account-credit",
    "ACP checkout POST /v2/checkout_sessions"
   ],
   "rail_ids": [
    "x402",
    "mpp",
    "acp"
   ],
   "first_party": true,
   "rail_scope": "partial",
   "trial_path": "free tier",
   "3ds": "none",
   "route": "agent_rail",
   "checkout": {
    "reached": "no",
    "processor": "none",
    "captcha": "none",
    "three_ds": "not_seen",
    "card_form": false,
    "phone_field": "none",
    "wallets": [],
    "rail_offer": "x402",
    "price": "0.002237",
    "currency": "USDC",
    "period": "usage",
    "plan": "Pay as you go",
    "last_button": ""
   },
   "person": "none",
   "ours": "wallet",
   "note": "The keyless x402 v2 rail on Telnyx's own host answers a valid 402 ($0.002237 USDC per Llama 3.1 8B call, USDC on Base, exact and upto) but buys only inference and audio. We had no wallet on that network and paid nothing. The rails that fund a whole account (x402 credit_account, MPP account-credit, ACP checkout) answered 403 10038 on a Pretrial account. Moving up needs a fraud review (Trial) or a verified mobile, a card and 2FA (Paid) in the portal, which was not opened because its robots.txt names AI agents. No payment went through.",
   "detected_grade": "P4",
   "exercised": false
  },
  "cancel": {
   "status": "n/a",
   "grade": "X5",
   "note": "Nothing to cancel: our agent used the free plan.",
   "docs_note": "Nothing to cancel: Pretrial, pay as you go, no plan, no card, no funding. The pretrial number is reclaimed within 30 days if the account does not upgrade (pretrial.md).",
   "nothing": "free_plan"
  },
  "delete": {
   "status": "blocked",
   "note": "Every object we made was deleted over the API and the key revoked, but no account-delete endpoint exists in the OpenAPI, auth.md, agent-signup.md, the CLIs or MCP; after clean-up a new bot_signup with the same address still logged in (session token, GET /v2/balance 200).",
   "left": "data_only",
   "after_hours": null,
   "account": true
  }
 },
 "routes": [
  {
   "route": "keyless",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "walled",
   "wall": {
    "type": "network",
    "owner": "product"
   },
   "person": "none",
   "brings": "nothing",
   "fresh": true,
   "minutes": 0.5,
   "browser": null
  },
  {
   "route": "claimable",
   "offered": "documented",
   "tried": false,
   "not_tried": "same_as",
   "result": null,
   "wall": null,
   "person": "none",
   "brings": "nothing",
   "fresh": null,
   "minutes": null,
   "browser": null
  },
  {
   "route": "pay_per_call",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "not_reached",
   "wall": {
    "type": null,
    "owner": "ours"
   },
   "person": "none",
   "brings": "wallet",
   "fresh": true,
   "minutes": 0.2,
   "browser": null
  },
  {
   "route": "api_signup",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "in",
   "wall": null,
   "person": "none",
   "brings": "inbox",
   "fresh": true,
   "minutes": 0.6,
   "browser": false
  },
  {
   "route": "authmd",
   "offered": "documented",
   "tried": false,
   "not_tried": "same_as",
   "result": null,
   "wall": null,
   "person": "none",
   "brings": "inbox",
   "fresh": null,
   "minutes": null,
   "browser": null
  },
  {
   "route": "email_password",
   "offered": "seen",
   "tried": true,
   "not_tried": null,
   "result": "walled",
   "wall": {
    "type": "robots",
    "owner": "product"
   },
   "person": "none",
   "brings": "inbox",
   "fresh": true,
   "minutes": 0.5,
   "browser": null
  },
  {
   "route": "magic_link",
   "offered": "seen",
   "tried": false,
   "not_tried": "robots",
   "result": null,
   "wall": null,
   "person": "none",
   "brings": "inbox",
   "fresh": null,
   "minutes": null,
   "browser": null
  },
  {
   "route": "sso_google",
   "offered": "seen",
   "tried": false,
   "not_tried": "policy",
   "result": null,
   "wall": null,
   "person": "once",
   "brings": "google_account",
   "fresh": null,
   "minutes": null,
   "browser": null
  },
  {
   "route": "oauth_consent",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "walled",
   "wall": {
    "type": "robots",
    "owner": "product"
   },
   "person": "none",
   "brings": "inbox",
   "fresh": true,
   "minutes": 2,
   "browser": null
  },
  {
   "route": "sso_microsoft",
   "offered": "seen",
   "tried": false,
   "not_tried": "policy",
   "result": null,
   "wall": null,
   "person": "once",
   "brings": "nothing",
   "fresh": null,
   "minutes": null,
   "browser": null
  },
  {
   "route": "person_key",
   "offered": "documented",
   "tried": false,
   "not_tried": "assisted_only",
   "result": null,
   "wall": null,
   "person": "each",
   "brings": "person_grant",
   "fresh": null,
   "minutes": null,
   "browser": null
  }
 ],
 "checkout": {
  "reached": "no",
  "rail_offer": "x402",
  "period": "usage",
  "plan": "Pay as you go"
 },
 "docs": {
  "at": "2026-11-01",
  "read": 596,
  "listed": 2715,
  "sampled": true,
  "overall": "complete",
  "getting_started": "found",
  "auth": "found",
  "errors": "found",
  "examples": "good",
  "freshness": "fresh",
  "newest": "2026-11-01",
  "core_pages": "8 of 8",
  "capabilities": "covered",
  "label": "No gaps in what we read"
 },
 "claims": {
  "claimed": 18,
  "tried": 3,
  "held": 3,
  "broken": 0,
  "unclear": 0,
  "not_tried": 15,
  "undocumented_works": 0
 },
 "pay_options": {
  "checked": "2026-11-01",
  "source": "probe",
  "options": [
   {
    "id": "ucp",
    "name": "UCP",
    "kind": "agent-checkout",
    "first_party": true,
    "lead": false,
    "networks": [],
    "testnet": false
   },
   {
    "id": "x402",
    "name": "x402",
    "kind": "agent-rail",
    "first_party": true,
    "lead": true,
    "networks": [],
    "testnet": false
   },
   {
    "id": "mpp",
    "name": "MPP",
    "kind": "agent-rail",
    "first_party": true,
    "lead": true,
    "networks": [],
    "testnet": false
   },
   {
    "id": "acp",
    "name": "Agentic Commerce Protocol",
    "kind": "agent-checkout",
    "first_party": true,
    "lead": true,
    "networks": [],
    "testnet": false
   }
  ],
  "agentic": [
   "ucp"
  ],
  "paid": null,
  "exercised": false,
  "detected_grade": "P4",
  "trial": {
   "no_card": null,
   "card_required": null,
   "free_plan": true
  },
  "owner_fixes": [
   {
    "title": "Accept x402 or MPP on your API",
    "how": "Answer an unpaid call with 402 and a payment challenge, so an agent pays per call or buys credits without an account or a card."
   },
   {
    "title": "List your plans on Stripe Projects",
    "how": "Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev)."
   }
  ]
 },
 "surfaces": {
  "api": true,
  "openapi": true,
  "cli": true,
  "sdk": true,
  "mcp": "official",
  "llms_txt": true,
  "webhooks": true,
  "sandbox": false
 },
 "urls": {
  "docs": null,
  "llms_txt": "https://telnyx.com/llms.txt",
  "mcp": "https://api.telnyx.com/v2/mcp"
 },
 "surface_notes": {
  "api": "REST v2, 1,510 operations in the OpenAPI spec",
  "openapi": "3.1.0, one file of 5 MB",
  "mcp": "official, remote, 6 tools in its server card",
  "cli": "@telnyx/agent-cli 0.4.2, @telnyx/cli 2.0.0, Go telnyx 0.24.0",
  "sdk": "telnyx (npm) 7.29.0"
 },
 "surface_sizes": [
  {
   "kind": "api",
   "listed": 1512,
   "tested": 246
  },
  {
   "kind": "mcp",
   "listed": 6,
   "tested": 0
  },
  {
   "kind": "cli",
   "listed": 70,
   "tested": 6
  },
  {
   "kind": "sdk",
   "listed": 1,
   "tested": 1
  }
 ],
 "can_do": [
  "Create its own Telnyx account, verify the email and mint an API key entirely over the API",
  "Search and order a US phone number on the free Pretrial account and release it",
  "Place a call to its own number, answer the inbound leg, speak text, record and hang up through Call Control",
  "Create text embeddings on the Pretrial account",
  "Read Telnyx docs as Markdown and discover every agent surface from llms.txt"
 ],
 "cannot_do": [
  {
   "what": "Send SMS, email, WhatsApp or OTPs",
   "why": "Pretrial accounts answer 10038, and messaging needs a funded balance"
  },
  {
   "what": "Use AI Inference chat or Voice AI assistants with an account",
   "why": "Trial level needed (pretrial.md)"
  },
  {
   "what": "Use the MCP server",
   "why": "Answers 10038 to Pretrial keys; OAuth consent is on the portal, closed to AI agents by robots.txt"
  },
  {
   "what": "Fund the account or upgrade its level",
   "why": "Funding rails are gated at Pretrial; Trial needs a fraud review in the portal, Paid a mobile number and a card"
  },
  {
   "what": "Delete the account",
   "why": "No delete endpoint; the login keeps working after the data is gone"
  }
 ],
 "blockers": [
  "Bot-signup accounts start at Pretrial, where most products answer 403 10038",
  "Moving up a level happens only in the portal, which robots.txt closes to AI agents",
  "Calls were billed on a zero balance and the account was then deactivated (20012)"
 ],
 "tips_for_agents": [],
 "selfhost": null,
 "edge_case": "none",
 "summary": "An agent can open a Telnyx account, verify it and get an API key entirely over the API in under a minute, then order a number and place, answer, record and hang up a call. The new account is Pretrial: email, verify, inference chat, Voice AI, WhatsApp, the MCP server and the account-funding rails answer 403 10038, and SMS stops at 402 Insufficient Funds. Moving up a level happens only in the portal, which robots.txt closes to AI agents. A keyless pay-per-call rail for inference and audio exists, but we had no wallet to use it.",
 "wall": "Pretrial level blocks paid features",
 "plan_scope": "Pretrial (free, no card) account from the bot signup",
 "robots_stop": null,
 "robots": null,
 "terms": {
  "finding": "Their terms say automated sign-up isn't allowed",
  "quote": "L NOT DISPUTE THE ENFORCEABILITY OF THIS AGREEMENT OR ANY RELATED REGISTRATION, CONSENT, ORDER, OR INSTRUCTION ON THE BASIS THAT IT WAS INITIATED OR ACCEPTED BY AN AUTOMATED AGENT RATHER THAN A HUMAN.",
  "url": "https://telnyx.com/terms-and-conditions-of-service",
  "document": "Terms",
  "section": null,
  "terms_date": null,
  "checked": "2026-11-01",
  "fix": "Allow accounts made by an agent that acts openly for an identified person or company.",
  "work": null
 },
 "terms_read": "2026-11-01",
 "email_gate": null,
 "plain": {
  "summary": "Telnyx sells phone, messaging, email and AI services through an API. An agent created its own account, confirmed its email and got a working key without a person, then ordered a phone number and ran a test call. It stopped there because a new account starts at a restricted level and moving up happens in a web portal that tells AI agents to stay out.",
  "can_do": [
   "Create an account, confirm the email and get an API key over the API",
   "Search for a US phone number, order it for free and release it",
   "Place a call to its own number, answer it, speak, record it and hang up",
   "Create text embeddings",
   "Read the docs as Markdown and find every agent surface from the docs index"
  ],
  "cannot_do": [
   {
    "what": "Send SMS, email, WhatsApp messages or one-time codes",
    "why": "New accounts are restricted or have no funds; upgrading is in the portal"
   },
   {
    "what": "Use AI chat models or Voice AI assistants with the account",
    "why": "Needs a higher account level than a new agent account gets"
   },
   {
    "what": "Use the MCP server",
    "why": "Keys from a new account are refused; the OAuth sign-in page is closed to AI agents"
   },
   {
    "what": "Fund the account or pay",
    "why": "Funding routes are refused at the new-account level; we had no wallet"
   },
   {
    "what": "Delete the account",
    "why": "The no delete route; the login still worked after clean-up"
   }
  ]
 },
 "plan_gated": [
  {
   "capability": "Send an SMS",
   "plan": "Funded account (Paid); Pretrial sends only to a verified mobile",
   "evidence": "PATCH /v2/phone_numbers/{id}/messaging -> 402 20100 Insufficient Funds"
  },
  {
   "capability": "Send a transactional email",
   "plan": "Trial or higher",
   "evidence": "POST /v2/email_messages -> 403 10038"
  },
  {
   "capability": "Verify a user with an OTP",
   "plan": "Trial or higher",
   "evidence": "GET /v2/verify_profiles -> 403 10038; pretrial.md Verify: No access"
  },
  {
   "capability": "Deploy a Voice AI agent",
   "plan": "Trial or higher",
   "evidence": "GET /v2/ai/assistants -> 403 10038; pretrial.md: cannot create AI Assistants"
  },
  {
   "capability": "Call an open-weight LLM through the Inference API",
   "plan": "Trial or higher (or keyless x402 per call)",
   "evidence": "POST /v2/ai/chat/completions -> 403 10038"
  },
  {
   "capability": "Send a WhatsApp message",
   "plan": "Trial or higher",
   "evidence": "GET /v2/whatsapp/business_accounts -> 403 10038"
  }
 ],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "capability": "Make and control an outbound/inbound call",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v2/calls",
    "mcp": "invoke_api_endpoint",
    "cli": "telnyx",
    "ui": "Mission Control Portal"
   },
   "check": "GET /v2/calls/{call_control_id} shows the call's leg state and events",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://telnyx.com/products/voice-api",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-02",
   "capability": "Send an SMS",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v2/messages",
    "mcp": "invoke_api_endpoint",
    "cli": "telnyx",
    "ui": "Mission Control Portal"
   },
   "check": "GET /v2/messages/{id} shows delivery status via webhook/MDR report",
   "capability_id": "cap_cxbypwkq",
   "unmapped": null,
   "source": "https://telnyx.com/products/sms-api",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-03",
   "capability": "Send a transactional email",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v2/emails",
    "mcp": "invoke_api_endpoint",
    "cli": "telnyx",
    "ui": "Mission Control Portal"
   },
   "check": "Webhook or event-polling API shows delivered/opened/clicked/bounced events for the message id",
   "capability_id": "cap_f606h51a",
   "unmapped": null,
   "source": "https://telnyx.com/products/email-api",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-04",
   "capability": "Search and buy a phone number",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "GET /v2/available_phone_numbers then POST /v2/number_orders",
    "mcp": "invoke_api_endpoint",
    "cli": "telnyx",
    "ui": "Mission Control Portal number search"
   },
   "check": "GET /v2/phone_numbers lists the newly purchased DID with status active",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://telnyx.com/products/phone-numbers",
   "result": "done",
   "via": "api",
   "done_on": [
    "api",
    "cli"
   ]
  },
  {
   "id": "cap-05",
   "capability": "Verify a user with an OTP (SMS, voice, flash call)",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v2/verifications/sms then POST /v2/verifications/{id}/actions/verify",
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": "Mission Control Portal"
   },
   "check": "Verify-code response returns response_code=accepted for a correct code",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://telnyx.com/products/verify-api",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-06",
   "capability": "Deploy a Voice AI agent to answer or make calls",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": "Mission Control Portal AI Assistant Builder"
   },
   "check": "Dashboard call trace/transcript shows the assistant handled the call end to end",
   "capability_id": "cap_jzq3rf56",
   "unmapped": null,
   "source": "https://telnyx.com/products/voice-ai-agents",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-07",
   "capability": "Call an open-weight LLM through the Inference API",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v2/ai/chat/completions",
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": null
   },
   "check": "Response body returns a completion with usage token counts for the given model id",
   "capability_id": "cap_ttac6ph8",
   "unmapped": null,
   "source": "https://telnyx.com/products/inference",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-08",
   "capability": "Send a WhatsApp message",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": "Mission Control Portal WhatsApp integration"
   },
   "check": "Webhook delivery-status event shows the WhatsApp message delivered to the recipient",
   "capability_id": "cap_d2h4v75a",
   "unmapped": null,
   "source": "https://telnyx.com/products/whatsapp-business-api",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-09",
   "capability": "Receive an inbound SMS or MMS",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "webhook to configured URL / POST /v2/messages inbound event",
    "mcp": null,
    "cli": null,
    "ui": "Mission Control Portal"
   },
   "check": "Inbound webhook payload carries the received message text and sender number",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://developers.telnyx.com/docs/messaging/messages/receive-message",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-10",
   "capability": "Send an email from a template",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v2/emails with template_id",
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": "Mission Control Portal"
   },
   "check": "Sent message event shows the rendered template variables in the delivered body",
   "capability_id": "cap_c3h6tdt7",
   "unmapped": null,
   "source": "https://telnyx.com/products/email-api",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-11",
   "capability": "Schedule an email for later delivery",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v2/emails with send_at (PATCH to reschedule)",
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": null
   },
   "check": "GET on the message shows status queued until the scheduled send_at time, then sent",
   "capability_id": "cap_db90z4g6",
   "unmapped": null,
   "source": "https://telnyx.com/products/email-api",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-12",
   "capability": "Send a batch of up to 1,000 emails in one call",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v2/emails/batch",
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": null
   },
   "check": "207 multi-status response lists per-recipient accept/reject results",
   "capability_id": "cap_yyjf1d29",
   "unmapped": null,
   "source": "https://telnyx.com/products/email-api",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-13",
   "capability": "Receive inbound email on a verified domain",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "webhook / email inbox listing endpoint",
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": "Mission Control Portal email inboxes"
   },
   "check": "Inbox listing shows the received message with thread and labels",
   "capability_id": "cap_bzws4rsg",
   "unmapped": null,
   "source": "https://telnyx.com/products/email-api",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-14",
   "capability": "Add and verify a sending domain (SPF/DKIM/DMARC)",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v2/sending_domains then verify",
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": "Mission Control Portal"
   },
   "check": "GET /v2/sending_domains/{id} shows verification_status verified",
   "capability_id": "cap_1gwq82zt",
   "unmapped": null,
   "source": "https://telnyx.com/products/email-api",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-15",
   "capability": "Track email opens and clicks",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "webhook events opened/clicked",
    "mcp": null,
    "cli": null,
    "ui": "Mission Control Portal"
   },
   "check": "Webhook stream shows an opened or clicked event tied to the message id",
   "capability_id": "cap_nw8j8qcb",
   "unmapped": null,
   "source": "https://telnyx.com/products/email-api",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-16",
   "capability": "Capture test emails in a sandbox without sending",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /v2/emails to @test.telnyx.com recipients",
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": null
   },
   "check": "Response simulates delivered/bounced/deferred outcome with no real email sent or billed",
   "capability_id": "cap_h7yvyc2h",
   "unmapped": null,
   "source": "https://telnyx.com/products/email-api",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-17",
   "capability": "Record a call",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v2/calls/{call_control_id}/actions/record_start",
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": "Mission Control Portal"
   },
   "check": "Recording webhook/GET returns a downloadable recording URL for the call leg",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://telnyx.com/products/voice-api",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-18",
   "capability": "Stream call audio in real time over WebSockets",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v2/calls/{call_control_id}/actions/streaming_start",
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": null
   },
   "check": "Connected WebSocket receives RTP audio frames for the live call leg",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://telnyx.com/products/voice-api",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-19",
   "capability": "Transcribe a call to text in real time",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v2/calls/{call_control_id}/actions/transcription_start",
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": null
   },
   "check": "Transcription webhook events deliver incremental text for the call leg",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://telnyx.com/products/speech-to-text-api",
   "result": "partial",
   "via": "api"
  },
  {
   "id": "cap-20",
   "capability": "Synthesize speech from text (TTS) for a call",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v2/calls/{call_control_id}/actions/speak",
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": null
   },
   "check": "Call audio plays the synthesized text to the far-end party",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://telnyx.com/products/text-to-speech-api",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-21",
   "capability": "Port an existing number to Telnyx",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v2/porting_orders",
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": "Mission Control Portal FastPort"
   },
   "check": "GET /v2/porting_orders/{id} shows status progressing to ported",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://telnyx.com/products/number-porting",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-22",
   "capability": "Register a 10DLC brand and campaign",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v2/10dlc/brand then POST /v2/10dlc/campaign",
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": "Mission Control Portal"
   },
   "check": "GET on the campaign resource shows TCR registration status approved",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://telnyx.com/products/10dlc-registration",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-23",
   "capability": "Look up a phone number's carrier, line type, and fraud signals",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "GET /v2/number_lookup/{phone_number}",
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": "Mission Control Portal"
   },
   "check": "Response body includes carrier name, line type, and portability/fraud fields for the number",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://telnyx.com/products/number-lookup",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-24",
   "capability": "Create text embeddings",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v2/ai/embeddings",
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": null
   },
   "check": "Response returns a vector array of the configured dimension for the input text",
   "capability_id": "cap_0g9776e9",
   "unmapped": null,
   "source": "https://telnyx.com/products/embeddings-api",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-25",
   "capability": "Upload a file to object storage",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "PUT /{bucket}/{object} (S3-compatible)",
    "mcp": "invoke_api_endpoint",
    "cli": "telnyx",
    "ui": "Mission Control Portal"
   },
   "check": "GET on the object key returns the uploaded bytes; bucket usage endpoint shows the increased size",
   "capability_id": "cap_facpbh70",
   "unmapped": null,
   "source": "https://telnyx.com/products/cloud-storage",
   "result": "failed",
   "via": "api"
  },
  {
   "id": "cap-26",
   "capability": "Deploy a serverless function at the edge",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v2/functions",
    "mcp": "invoke_api_endpoint",
    "cli": "telnyx",
    "ui": "Mission Control Portal"
   },
   "check": "Invoking the function's public URL returns the deployed code's response",
   "capability_id": "cap_kdfqww03",
   "unmapped": null,
   "source": "https://developers.telnyx.com/docs/edge-compute/overview",
   "result": "failed",
   "via": "api"
  },
  {
   "id": "cap-27",
   "capability": "Store a key-value pair with TTL",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "PUT /v2/kv/{namespace}/{key}",
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": null
   },
   "check": "GET on the key returns the stored value until the TTL expires",
   "capability_id": "cap_rjjr7dhj",
   "unmapped": null,
   "source": "https://developers.telnyx.com/docs/edge-compute/kv",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-28",
   "capability": "Run a SQL query against a serverless edge database",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v2/sqldb/{db}/query",
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": null
   },
   "check": "Query response returns the expected rows for a known seeded table",
   "capability_id": "cap_hw0v5ga0",
   "unmapped": null,
   "source": "https://developers.telnyx.com/docs/edge-compute/sqldb",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-29",
   "capability": "Register a webhook for delivery/call events",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "PATCH /v2/messaging_profiles/{id} webhook_url, or connection webhook_event_url",
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": "Mission Control Portal"
   },
   "check": "A triggered event (e.g. message delivered) arrives at the configured webhook URL",
   "capability_id": "cap_977hxacb",
   "unmapped": null,
   "source": "https://telnyx.com/products/email-api",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-30",
   "capability": "Provision an eSIM or IoT SIM for a connected device",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v2/sim_cards or /v2/esims",
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": "Mission Control Portal"
   },
   "check": "GET on the SIM resource shows status active with assigned data plan",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://telnyx.com/products/esim",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-31",
   "capability": "Set up branded caller ID / STIR-SHAKEN attestation",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v2/branded_calls or outbound_voice_profile settings",
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": "Mission Control Portal"
   },
   "check": "Outbound call metadata shows A-level STIR/SHAKEN attestation on the receiving handset",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://telnyx.com/products/branded-calling",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-32",
   "capability": "Connect a Cloud VPN or virtual cross connect to the backbone",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v2/cloud_vpn or /v2/vxc",
    "mcp": "invoke_api_endpoint",
    "cli": null,
    "ui": "Mission Control Portal"
   },
   "check": "GET on the connection resource shows status established with the configured peer",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://telnyx.com/products/cloud-vpn",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  }
 ],
 "stale": false,
 "unreachable_since": null,
 "not_driven_since": null,
 "icon": "/logos/telnyx.png",
 "agent_kinds": {
  "browser": {
   "who": "An assistant in a browser",
   "passed": [
    "signup",
    "verify",
    "first_action"
   ],
   "stop": "work",
   "why": "The core work wasn't measured in this drive",
   "tone": "neutral",
   "text": "Signs up, confirms its email and does a first task. The core work wasn't measured in this drive."
  },
  "direct": {
   "who": "An agent talking to it directly",
   "passed": [
    "signup",
    "verify",
    "credentials",
    "first_call",
    "first_action"
   ],
   "stop": "work",
   "why": null,
   "tone": "neutral",
   "text": "Signs up, confirms its email, gets an API key, makes its first API call and does a first task. The core work wasn't measured in this drive."
  }
 },
 "sdk": null,
 "surface_reach": {
  "surfaces": {
   "api": true,
   "mcp": true,
   "cli": true
  },
  "read_at": "2026-10-30T02:05:49Z"
 },
 "connect": {
  "mcp": {
   "url": "https://api.telnyx.com/v2/mcp",
   "transport": "streamable-http",
   "state": "documented",
   "tools": {
    "count": 6,
    "names": [
     "list_api_endpoints",
     "get_api_endpoint_schema",
     "invoke_api_endpoint",
     "open_number_intelligence",
     "open_usage_cost_explorer",
     "open_voice_monitor"
    ],
    "read_at": "2026-10-30"
   }
  },
  "cli": {
   "install": "npm install -g @telnyx/agent-cli",
   "package": "@telnyx/agent-cli",
   "ecosystem": "npm",
   "source": "https://telnyx.com/llms.txt",
   "state": "documented"
  },
  "api": {
   "base_url": "https://api.telnyx.com/v2",
   "state": "documented"
  }
 },
 "surface_sources": {
  "mcp": "https://api.telnyx.com/v2/mcp",
  "docs": "https://telnyx.com/llms.txt",
  "llms_txt": "https://telnyx.com/llms.txt",
  "cli": "https://telnyx.com/llms.txt",
  "api": "https://developers.telnyx.com/api-reference",
  "sdk": "https://github.com/team-telnyx/telnyx-node",
  "openapi": "https://telnyx.com/openapi.json",
  "pay": "https://telnyx.com/.well-known/ucp"
 },
 "copilot_connector": null,
 "stripe_directory": null,
 "in_stripe_directory": null,
 "stripe_projects": null,
 "pay_rails": [
  {
   "rail": "x402",
   "drive": true,
   "listed": null
  },
  {
   "rail": "mpp",
   "drive": true,
   "listed": null
  },
  {
   "rail": "acp",
   "drive": true,
   "listed": null
  },
  {
   "rail": "ucp",
   "drive": true,
   "listed": null
  }
 ],
 "stop_evidence": {
  "at": "delete",
  "date": "2026-11-01",
  "line": "Every object we made was deleted over the API and the key revoked, but no account-delete endpoint exists in the OpenAPI, auth.md, agent-signup.md, the CLIs or MCP; after clean-up a new bot_signup with the same address still logged in (session token, GET /v2/balance 200)."
 },
 "wall_vendor": null,
 "mcp_sign_in": {
  "sign_in": true,
  "prm": true,
  "registration": "dcr",
  "device": false
 },
 "safety_issues": 0,
 "fix_counts": {
  "small": 6,
  "medium": 3,
  "large": 0,
  "total": 9
 },
 "evidence_sha256": "636126cfa77433a8300d593ad56f3bd7bd7028ab60c4ce9cb59d0cc274241138",
 "first_seen": "2026-11-01",
 "license": {
  "name": "CC BY 4.0",
  "url": "https://creativecommons.org/licenses/by/4.0/"
 },
 "correction": {
  "status": "none",
  "open": 0,
  "since": null,
  "reply_by": null
 },
 "attribution": {
  "vendor": "Cloudflare WAF",
  "at": "first_call",
  "state": "markers",
  "stopped": false,
  "line": null
 },
 "confirmation": {
  "state": "awaiting",
  "drives": 1,
  "agree": 1,
  "review": null,
  "text": "1 drive, awaiting confirmation"
 },
 "stop_shot": null,
 "stop_shot_hash": null,
 "attempts_count": 116,
 "detail": {
  "public": false,
  "in": [
   "report",
   "api"
  ],
  "since": "2026-10-17"
 },
 "what_it_does": "Telnyx sells phone, messaging, email and AI services through an API.",
 "kind": "product",
 "rules_version": "rules-2026-10-30-42",
 "rules_url": "https://agentdrives.com/method/changelog#rules-2026-10-30-42",
 "category_median": null,
 "peers": {
  "API-03": {
   "basis": "all",
   "n": 88,
   "below": 35,
   "above": 10,
   "percentile": 64
  },
  "API-04": {
   "basis": "all",
   "n": 86,
   "below": 13,
   "above": 62,
   "percentile": 22
  },
  "API-07": {
   "basis": "all",
   "n": 98,
   "below": 38,
   "above": 0,
   "percentile": 69
  },
  "DOCS-08": {
   "basis": "all",
   "n": 142,
   "below": 0,
   "above": 54,
   "percentile": 31
  },
  "DOCS-10": {
   "basis": "all",
   "n": 142,
   "below": 111,
   "above": 0,
   "percentile": 89
  },
  "DOCS-11": {
   "basis": "all",
   "n": 142,
   "below": 10,
   "above": 44,
   "percentile": 38
  },
  "ERR-01": {
   "basis": "all",
   "n": 128,
   "below": 2,
   "above": 0,
   "percentile": 51
  },
  "ERR-02": {
   "basis": "all",
   "n": 105,
   "below": 40,
   "above": 21,
   "percentile": 59
  },
  "ERR-03": {
   "basis": "all",
   "n": 104,
   "below": 24,
   "above": 23,
   "percentile": 50
  },
  "ERR-04": {
   "basis": "all",
   "n": 36,
   "below": 24,
   "above": 7,
   "percentile": 74
  },
  "ERR-07": {
   "basis": "all",
   "n": 104,
   "below": 34,
   "above": 40,
   "percentile": 47
  },
  "FIND-06": {
   "basis": "all",
   "n": 106,
   "below": 25,
   "above": 0,
   "percentile": 62
  },
  "IN-03": {
   "basis": "all",
   "n": 86,
   "below": 14,
   "above": 0,
   "percentile": 58
  },
  "IN-08": {
   "basis": "all",
   "n": 120,
   "below": 0,
   "above": 65,
   "percentile": 23
  },
  "IN-09": {
   "basis": "all",
   "n": 10,
   "below": 0,
   "above": 6,
   "quartile": 1
  },
  "IN-11": {
   "basis": "all",
   "n": 146,
   "below": 56,
   "above": 38,
   "percentile": 56
  },
  "IN-12": {
   "basis": "all",
   "n": 148,
   "below": 98,
   "above": 0,
   "percentile": 83
  },
  "LEAVE-03": {
   "basis": "all",
   "n": 145,
   "below": 56,
   "above": 28,
   "percentile": 60
  },
  "LIM-02": {
   "basis": "all",
   "n": 48,
   "below": 33,
   "above": 0,
   "percentile": 84
  },
  "PAY-04": {
   "basis": "all",
   "n": 24,
   "below": 4,
   "above": 6,
   "percentile": 46
  },
  "PAY-05": {
   "basis": "all",
   "n": 119,
   "below": 113,
   "above": 0,
   "percentile": 97
  },
  "PROTO-02": {
   "basis": "all",
   "n": 94,
   "below": 92,
   "above": 1,
   "percentile": 98
  }
 },
 "probe": null,
 "probe_history": [],
 "surface_changes": [],
 "agent_reports": null,
 "verdict": null,
 "changes": {
  "source": "store",
  "drives": [
   {
    "run": "20261101T060128Z",
    "date": "2026-11-01",
    "level": 2,
    "stop": "delete",
    "entry": "self-start",
    "driver": 5,
    "listed": true,
    "paid": false,
    "agent_paid": null
   }
  ],
  "events": [],
  "feed": "https://agentdrives.com/api/tools/telnyx/changes.json"
 },
 "agreement": null,
 "method_release": "2026-Q4.27",
 "found": {
  "agent_blockers": 3,
  "surface_issues": 70
 },
 "agent_surfaces": {
  "api": {
   "state": "tested",
   "reachable": true,
   "documented": 1512,
   "tested": 246,
   "source": "https://developers.telnyx.com/api-reference"
  },
  "mcp": {
   "state": "documented",
   "reachable": true,
   "documented": 6,
   "tested": 0,
   "source": "https://api.telnyx.com/v2/mcp"
  },
  "cli": {
   "state": "tested",
   "reachable": true,
   "documented": 70,
   "tested": 6,
   "source": "https://telnyx.com/llms.txt"
  },
  "sdk": {
   "state": "tested",
   "documented": 1,
   "tested": 1,
   "source": "https://github.com/team-telnyx/telnyx-node"
  },
  "docs": {
   "state": "tested",
   "documented": 2715,
   "tested": 596,
   "source": "https://telnyx.com/llms.txt"
  },
  "payment": {
   "state": "documented",
   "documented": null,
   "tested": null,
   "source": "https://telnyx.com/.well-known/ucp"
  }
 },
 "issues_found": 73,
 "rank": 1,
 "rank_of": 1,
 "rank_change": null,
 "rank_since": "2026-11-01",
 "links": {
  "category": [
   {
    "label": "Communication APIs",
    "href": "https://agentdrives.com/categories/communication"
   },
   {
    "label": "SMS and voice",
    "href": "https://agentdrives.com/categories/sms-voice"
   }
  ],
  "tasks": [
   {
    "label": "Register a webhook",
    "href": "https://agentdrives.com/tasks/register-a-webhook"
   },
   {
    "label": "Create text embeddings",
    "href": "https://agentdrives.com/tasks/create-text-embeddings"
   }
  ],
  "walls": [
   {
    "label": "Bot checks",
    "href": "https://agentdrives.com/access/get-in/bot-checks",
    "note": "our agent got in another way"
   },
   {
    "label": "Terms that forbid agent accounts",
    "href": "https://agentdrives.com/findings/terms-against-agents",
    "note": "our agent got in another way"
   }
  ],
  "vendors": [
   {
    "label": "Cloudflare",
    "href": "https://agentdrives.com/vendors/cloudflare",
    "note": "on one way in",
    "slug": "cloudflare"
   }
  ],
  "standards": [
   {
    "label": "MCP",
    "href": "https://agentdrives.com/standards/mcp",
    "note": "tools an agent can call"
   },
   {
    "label": "OpenAPI",
    "href": "https://agentdrives.com/standards/openapi",
    "note": "its API, described"
   },
   {
    "label": "llms.txt",
    "href": "https://agentdrives.com/standards/llms-txt",
    "note": "its docs, listed for agents"
   },
   {
    "label": "x402",
    "href": "https://agentdrives.com/standards/x402",
    "note": "pay per request"
   },
   {
    "label": "MPP",
    "href": "https://agentdrives.com/standards/mpp",
    "note": "machine payments"
   }
  ],
  "steps": [
   {
    "label": "Find",
    "href": "https://agentdrives.com/access/find"
   },
   {
    "label": "Get in",
    "href": "https://agentdrives.com/access/get-in"
   },
   {
    "label": "Use",
    "href": "https://agentdrives.com/access/use"
   },
   {
    "label": "Pay",
    "href": "https://agentdrives.com/access/pay"
   },
   {
    "label": "Leave",
    "href": "https://agentdrives.com/access/leave"
   }
  ],
  "rivals": [],
  "compare": [],
  "rail": [
   {
    "label": "Watch this product",
    "href": "https://agentdrives.com/watch"
   },
   {
    "label": "Get the data",
    "href": "https://agentdrives.com/data#plans"
   }
  ]
 },
 "capability_matrix": [
  {
   "id": "cap-01",
   "name": "Make and control an outbound/inbound call",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "untried",
    "cli": "untried",
    "ui": "untried"
   }
  },
  {
   "id": "cap-02",
   "name": "Send an SMS",
   "core": true,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "untried",
    "cli": "untried",
    "ui": "untried"
   }
  },
  {
   "id": "cap-03",
   "name": "Send a transactional email",
   "core": true,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "untried",
    "cli": "untried",
    "ui": "untried"
   }
  },
  {
   "id": "cap-04",
   "name": "Search and buy a phone number",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "untried",
    "cli": "done",
    "ui": "untried"
   }
  },
  {
   "id": "cap-05",
   "name": "Verify a user with an OTP (SMS, voice, flash call)",
   "core": true,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-06",
   "name": "Deploy a Voice AI agent to answer or make calls",
   "core": true,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-07",
   "name": "Call an open-weight LLM through the Inference API",
   "core": true,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "untried",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-08",
   "name": "Send a WhatsApp message",
   "core": true,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-09",
   "name": "Receive an inbound SMS or MMS",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-10",
   "name": "Send an email from a template",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-11",
   "name": "Schedule an email for later delivery",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "untried",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-12",
   "name": "Send a batch of up to 1,000 emails in one call",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "untried",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-13",
   "name": "Receive inbound email on a verified domain",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-14",
   "name": "Add and verify a sending domain (SPF/DKIM/DMARC)",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-15",
   "name": "Track email opens and clicks",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-16",
   "name": "Capture test emails in a sandbox without sending",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "untried",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-17",
   "name": "Record a call",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-18",
   "name": "Stream call audio in real time over WebSockets",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-19",
   "name": "Transcribe a call to text in real time",
   "core": false,
   "result": "partial",
   "surfaces": {
    "api": "partial",
    "mcp": "untried",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-20",
   "name": "Synthesize speech from text (TTS) for a call",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "untried",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-21",
   "name": "Port an existing number to Telnyx",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-22",
   "name": "Register a 10DLC brand and campaign",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-23",
   "name": "Look up a phone number's carrier, line type, and fraud signals",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-24",
   "name": "Create text embeddings",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "untried",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-25",
   "name": "Upload a file to object storage",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "untried",
    "ui": "untried"
   }
  },
  {
   "id": "cap-26",
   "name": "Deploy a serverless function at the edge",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "untried",
    "ui": "untried"
   }
  },
  {
   "id": "cap-27",
   "name": "Store a key-value pair with TTL",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "untried",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-28",
   "name": "Run a SQL query against a serverless edge database",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "untried",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-29",
   "name": "Register a webhook for delivery/call events",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-30",
   "name": "Provision an eSIM or IoT SIM for a connected device",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-31",
   "name": "Set up branded caller ID / STIR-SHAKEN attestation",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-32",
   "name": "Connect a Cloud VPN or virtual cross connect to the backbone",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  }
 ],
 "category_place": {
  "category": "sms-voice",
  "products": 1,
  "higher": 0,
  "same_level": 0,
  "as_of": "2026-11-01",
  "stop": "delete",
  "rivals_by": "stop",
  "rivals": []
 },
 "page": "https://agentdrives.com/tools/telnyx?via=api"
}