Edit a DIR. DIRs in draft, rejected, unsuccessful, or suspended can be edited freely: PATCH is a pure edit, status is never changed, and you re-vet by calling POST /v2/dir/{dir_id}/submit explicitly. A verified DIR can also be edited in place: a PATCH that changes any value returns the DIR to draft; the currently approved identity keeps displaying, and the edited content goes live only after you re-submit and the DIR is approved again. A PATCH that changes nothing (an empty body or values identical to the current ones) leaves the DIR verified, so idempotent retries are safe. Changing only bpo_authorizations or webhook_url is the exception: the DIR stays verified. Each BPO authorization is reviewed on its own instead. DIRs in any other status (submitted, in_review, expired, infringement_claimed, permanently_rejected) cannot be edited.
PATCH
/
dir
/
{dir_id}
JavaScript
import Telnyx from 'telnyx';const client = new Telnyx({ apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted});const dir = await client.dir.update('16635d38-75a6-4481-82e8-69af60e05011', { call_reasons: ['Appointment reminders', 'Billing inquiries', 'Lab results'], display_name: 'Acme Plumbing & Wellness', logo_url: 'https://acmeplumbing.example.com/logo-v2-256.bmp',});console.log(dir.data);
import os
from telnyx import Telnyx
client = Telnyx(
api_key=os.environ.get("TELNYX_API_KEY"), # This is the default and can be omitted
)
dir = client.dir.update(
dir_id="16635d38-75a6-4481-82e8-69af60e05011",
call_reasons=["Appointment reminders", "Billing inquiries", "Lab results"],
display_name="Acme Plumbing & Wellness",
logo_url="https://acmeplumbing.example.com/logo-v2-256.bmp",
)
print(dir.data)
Certification that this DIR is not used for SHAFT content (Sex, Hate, Alcohol, Firearms, Tobacco) where prohibited. Must be true for the DIR to be submitted for vetting.
Additional supporting documents to attach. Append-only: existing documents are never removed or replaced, and an empty or omitted list is a no-op. Each document_id may appear at most once on a DIR.
Optional https:// URL that receives webhook notifications when this DIR's compliance review completes. Send null to clear. Changing only this field on a verified DIR does not re-vet it. Maximum 2048 characters.
Optional. Replace this DIR's authorized BPO (Business Process Outsourcer) accounts with these, each with its signed Letter of Authorization. The supplied list replaces the current one: a BPO left out has its authorization removed, and a new BPO (or a changed Letter of Authorization) is created pending admin review. Send an empty list to clear all authorizations; omit the field to leave them unchanged. Editing this list does not re-vet the DIR. Maximum 10.
import Telnyx from 'telnyx';const client = new Telnyx({ apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted});const dir = await client.dir.update('16635d38-75a6-4481-82e8-69af60e05011', { call_reasons: ['Appointment reminders', 'Billing inquiries', 'Lab results'], display_name: 'Acme Plumbing & Wellness', logo_url: 'https://acmeplumbing.example.com/logo-v2-256.bmp',});console.log(dir.data);
import os
from telnyx import Telnyx
client = Telnyx(
api_key=os.environ.get("TELNYX_API_KEY"), # This is the default and can be omitted
)
dir = client.dir.update(
dir_id="16635d38-75a6-4481-82e8-69af60e05011",
call_reasons=["Appointment reminders", "Billing inquiries", "Lab results"],
display_name="Acme Plumbing & Wellness",
logo_url="https://acmeplumbing.example.com/logo-v2-256.bmp",
)
print(dir.data)
{"docsConfig":{"theme":"sequoia","$schema":"https://mintlify.com/docs.json","name":"Telnyx","description":"Infrastructure for real-time agents. Voice, AI, Edge Compute","colors":{"primary":"#00B688","light":"#00B688","dark":"#00B688"},"logo":{"light":"https://mintcdn.com/telnyx/v2FpkbJg6PQ53qHU/assets/images/site/logo.svg?fit=max\u0026auto=format\u0026n=v2FpkbJg6PQ53qHU\u0026q=85\u0026s=5ee3f61d11ba90a197dd9a1e3499fab6","dark":"https://mintcdn.com/telnyx/v2FpkbJg6PQ53qHU/assets/images/site/logo-dark.svg?fit=max\u0026auto=format\u0026n=v2FpkbJg6PQ53qHU\u0026q=85\u0026s=d65aaa12ec708c79e5833cbdea958055"},"favicon":"https://mintcdn.com/telnyx/t-qaBUa_gCxdRz_m/favicon.ico?fit=max\u0026auto=format\u0026n=t-qaBUa_gCxdRz_m\u0026q=85\u0026s=8291283238ab8c0e2a7a985e69f38c2f","background":{"decoration":"gradient"},"navbar":{"links":[{"icon":"triangle-exclamation","href":"/docs/development/api-fundamentals/api-errors","label":"Error codes"},{"icon":"headset","href":"https://telnyx.com/contact-us","label":"Contact us"},{"icon":"user","href":"https://portal.telnyx.com/#/login/sign-in","label":"Login"}],"primary":{"type":"button","label":"Sign Up","href":"https://telnyx.com/sign-up"}},"footer":{"socials":{"github":"https://github.com/team-telnyx","linkedin":"https://www.linkedin.com/company/telnyx","slack":"https://joinslack.telnyx.com","x":"https://x.com/telnyx"},"links":[{"header":"Resources","items":[{"label":"Pricing","href":"https://developers.telnyx.com/internal/pages/pricing"},{"label":"Compare Telnyx","href":"https://developers.telnyx.com/internal/pages/compare"},{"label":"Support center","href":"https://support.telnyx.com/en"},{"label":"SETI","href":"https://seti.telnyx.com"},{"label":"Agent platform configs","href":"https://github.com/team-telnyx/ai"},{"label":"About Telnyx","href":"https://developers.telnyx.com/internal/pages/about"},{"label":"Service status","href":"https://status.telnyx.com"}]},{"header":"Updates","items":[{"label":"Release notes","href":"https://telnyx.com/release-notes"}]},{"header":"Community","items":[{"label":"Low Latency Club","href":"https://lowlatencyclub.ai/"}]},{"header":"Legal","items":[{"label":"Privacy policy","href":"https://telnyx.com/privacy-policy"},{"label":"Terms and conditions","href":"https://telnyx.com/terms-and-conditions"}]}]},"seo":{"metatags":{"og:description":"Infrastructure for real-time agents. Voice, AI, Edge Compute","description":"Infrastructure for real-time agents. Voice, AI, Edge Compute"},"organization":{"name":"Telnyx","url":"https://telnyx.com","logo":"https://telnyx.com/favicon.ico","sameAs":["https://x.com/telnyx","https://www.linkedin.com/company/telnyx/","https://github.com/team-telnyx"]}},"fonts":{"heading":{"family":"PP Formula","weight":800,"source":"assets/fonts/PPFormula-Extrabold.woff2","format":"woff2"},"body":{"family":"Inter","weight":400,"source":"assets/fonts/Inter-Regular.woff2","format":"woff2"}},"styling":{"eyebrows":"breadcrumbs","latex":true},"integrations":{"gtm":{"tagId":"GTM-NRRX236"}},"banner":{"content":"Check out our upcoming events and meetups! [View events →](https://lowlatencyclub.ai/)","dismissible":true},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"navigation":{"global":{"anchors":[{"anchor":"Home","icon":"house","href":"/docs/overview"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"telnyx","hasAudioNarration":false,"actualSubdomain":"telnyx","customDomains":["developers.telnyx.com"],"gitSource":{"type":"github","owner":"team-telnyx","repo":"developer-docs-mintlify","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae29bd61a757e9af44d98b5","collectionId":"abed3d1c-b33c-4860-9184-20b19d2db78c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae29bd61a757e9af44d98b5"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae29e47a8421b43b25816a1","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"Calling","count":591},{"language":"default","tag":"API Reference","count":551},{"language":"default","tag":"Other APIs","count":402},{"language":"default","tag":"AI","count":381},{"language":"default","tag":"Messaging","count":353},{"language":"default","tag":"Numbers","count":287},{"language":"default","tag":"Agent Platform","count":217},{"language":"default","tag":"Assistants","count":201},{"language":"default","tag":"Voice API","count":178},{"language":"default","tag":"SMS \u0026 MMS","count":149}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"[class*=sidebar] [class*=badge],[class*=sidebar] [class*=tag],nav [class*=badge],nav [class*=tag]{font-size:.8rem!important}#ot-sdk-btn-floating{left:auto!important;right:10px!important}body:has([aria-label=\"Preview Widget\"]) #ot-sdk-btn-floating{bottom:88px!important}#navbar .nav-tabs-item:has(>div>svg[style*=\"/book-open.svg\"]),#navbar div:has(>div>.nav-tabs>a.nav-tabs-item:first-child:last-child){display:none}.nav-tabs a.nav-tabs-item:not([aria-current=location]){display:none}#mobile-nav #navigation-items>div:has(>div>button[aria-haspopup=menu]),#mobile-nav [data-component-part=products-selector-trigger],#mobile-nav.tx-has-directory #navigation-items{display:none!important}#mobile-nav .tx-mobile-directory{padding:0;margin-bottom:1.5rem}#mobile-nav .tx-mobile-directory .tx-dir-suite-head,#mobile-nav .tx-mobile-directory a{min-height:2.75rem}#mobile-nav .tx-mobile-directory :is(a, .tx-dir-suite-head):focus-visible{outline:2px solid currentColor;outline-offset:-2px}.txd-shell{display:flex;gap:0;max-width:none;margin:0;padding:3rem 2rem 6rem 0}.txd-side{width:18rem;flex-shrink:0}.txd-main{flex:1;min-width:0;max-width:56rem;margin-left:11.75rem}@media (max-width:80rem){.txd-main{margin-left:4rem}}:is(#tx-directory, .tx-mobile-directory){margin:0 0 .5rem;padding:0 .5rem 0 1rem}:is(#tx-directory, .tx-mobile-directory) .tx-dir-label{font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;opacity:.55;margin:0 0 .4rem}:is(#tx-directory, .tx-mobile-directory) .tx-dir-label-gap{margin-top:1.5rem}:is(#tx-directory, .tx-mobile-directory) .tx-dir-link,:is(#tx-directory, .tx-mobile-directory) summary{display:flex;align-items:center;cursor:pointer;font-size:.875rem;line-height:1.25rem;padding:.35rem .5rem;border-radius:.375rem;color:rgb(55 65 81);text-decoration:none}html.dark :is(#tx-directory, .tx-mobile-directory) .tx-dir-link,html.dark :is(#tx-directory, .tx-mobile-directory) summary{color:rgb(156 163 175)}:is(#tx-directory, .tx-mobile-directory) .tx-dir-link:hover,:is(#tx-directory, .tx-mobile-directory) summary:hover{color:rgb(17 24 39);background:rgb(0 0 0/.04)}:is(#tx-directory, .tx-mobile-directory) .tx-dir-link[aria-current=page]{color:#00b688;background:0 0;box-shadow:none;font-weight:400;text-shadow:-.2px 0 0 currentColor,.2px 0 0 currentColor}html.dark :is(#tx-directory, .tx-mobile-directory) .tx-dir-link:hover,html.dark :is(#tx-directory, .tx-mobile-directory) summary:hover{color:rgb(229 231 235);background:rgb(255 255 255/.06)}html.dark :is(#tx-directory, .tx-mobile-directory) .tx-dir-link[aria-current=page]{color:#5eead4;background:0 0;box-shadow:none}:is(#tx-directory, .tx-mobile-directory) .tx-dir-soon,:is(#tx-directory, .tx-mobile-directory) .tx-dir-soon:hover,html.dark :is(#tx-directory, .tx-mobile-directory) .tx-dir-soon,html.dark :is(#tx-directory, .tx-mobile-directory) .tx-dir-soon:hover{cursor:default;opacity:.45;background:0 0;color:inherit}:is(#tx-directory, .tx-mobile-directory) .tx-dir-soon sup{font-size:.6rem;line-height:1;letter-spacing:.05em;text-transform:uppercase;margin-left:.4rem;vertical-align:super}:is(#tx-directory, .tx-mobile-directory) .tx-dir-suite{margin-bottom:.15rem}:is(#tx-directory, .tx-mobile-directory) .tx-dir-suite-head{display:flex;align-items:center;cursor:pointer;user-select:none;font-size:.875rem;line-height:1.25rem;font-weight:500;padding:.35rem .5rem;border-radius:.375rem;color:rgb(55 65 81)}html.dark :is(#tx-directory, .tx-mobile-directory) .tx-dir-suite-head,html.dark :is(#tx-directory, .tx-mobile-directory) li a{color:rgb(156 163 175)}:is(#tx-directory, .tx-mobile-directory) .tx-dir-suite-head:hover,:is(#tx-directory, .tx-mobile-directory) li a:hover{color:rgb(17 24 39);background:rgb(0 0 0/.04)}html.dark :is(#tx-directory, .tx-mobile-directory) .tx-dir-suite-head:hover,html.dark :is(#tx-directory, .tx-mobile-directory) .tx-dir-suite.open>.tx-dir-suite-head,html.dark :is(#tx-directory, .tx-mobile-directory) li a:hover{color:rgb(229 231 235);background:rgb(255 255 255/.06)}:is(#tx-directory, .tx-mobile-directory) .tx-dir-suite-head::after{content:'';width:.42rem;height:.42rem;margin-left:auto;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .15s;flex-shrink:0;opacity:.7}:is(#tx-directory, .tx-mobile-directory) .tx-dir-suite.open>.tx-dir-suite-head::after{transform:rotate(45deg)}:is(#tx-directory, .tx-mobile-directory) .tx-dir-suite.open>.tx-dir-suite-head{color:rgb(17 24 39);background:rgb(0 0 0/.04);font-weight:600}:is(#tx-directory, .tx-mobile-directory) .tx-dir-suite>ul{display:none}:is(#tx-directory, .tx-mobile-directory) .tx-dir-suite.open>ul{display:block}:is(#tx-directory, .tx-mobile-directory) ul{margin:.15rem 0 .5rem;padding:0}:is(#tx-directory, .tx-mobile-directory) li{list-style:none}:is(#tx-directory, .tx-mobile-directory) li a{display:flex;align-items:center;font-size:.875rem;line-height:1.25rem;padding:.3rem .5rem .3rem 1.6rem;border-radius:.375rem;color:rgb(107 114 128);text-decoration:none}:is(#tx-directory, .tx-mobile-directory) .tx-dir-section-item{font-weight:500}:is(#tx-directory, .tx-mobile-directory) .tx-dir-icon{display:inline-block;width:1rem;height:1rem;flex-shrink:0;margin-right:.5rem;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}.txi-arrows-left-right-to-line{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/arrows-left-right-to-line.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/arrows-left-right-to-line.svg)}.txi-bolt{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/bolt.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/bolt.svg)}.txi-brain{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/brain.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/brain.svg)}.txi-brain-circuit{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/brain-circuit.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/brain-circuit.svg)}.txi-brands-whatsapp{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/whatsapp.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/whatsapp.svg)}.txi-broadcast-tower{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/broadcast-tower.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/broadcast-tower.svg)}.txi-browser{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/browser.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/browser.svg)}.txi-circle-nodes{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/circle-nodes.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/circle-nodes.svg)}.txi-clone{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/clone.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/clone.svg)}.txi-cloud{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/cloud.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/cloud.svg)}.txi-code{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/code.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/code.svg)}.txi-comment-sms{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/comment-sms.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/comment-sms.svg)}.txi-cubes{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/cubes.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/cubes.svg)}.txi-database{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/database.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/database.svg)}.txi-envelope{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/envelope.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/envelope.svg)}.txi-eye{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/eye.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/eye.svg)}.txi-file-certificate{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/file-certificate.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/file-certificate.svg)}.txi-fingerprint{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/fingerprint.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/fingerprint.svg)}.txi-folder-tree{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/folder-tree.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/folder-tree.svg)}.txi-globe{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/globe.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/globe.svg)}.txi-hard-drive{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/hard-drive.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/hard-drive.svg)}.txi-hashtag{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/hashtag.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/hashtag.svg)}.txi-headset{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/headset.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/headset.svg)}.txi-key{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/key.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/key.svg)}.txi-layer-group{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/layer-group.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/layer-group.svg)}.txi-magnifying-glass{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/magnifying-glass.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/magnifying-glass.svg)}.txi-message{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/message.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/message.svg)}.txi-message-dots{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/message-dots.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/message-dots.svg)}.txi-microchip-ai{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/microchip-ai.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/microchip-ai.svg)}.txi-microphone{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/microphone.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/microphone.svg)}.txi-network-wired{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/network-wired.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/network-wired.svg)}.txi-phone{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/phone.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/phone.svg)}.txi-phone-volume{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/phone-volume.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/phone-volume.svg)}.txi-plug{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/plug.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/plug.svg)}.txi-right-left{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/right-left.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/right-left.svg)}.txi-robot{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/robot.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/robot.svg)}.txi-server{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/server.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/server.svg)}.txi-share-nodes{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/share-nodes.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/share-nodes.svg)}.txi-shield{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/shield.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/shield.svg)}.txi-shield-check{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/shield-check.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/shield-check.svg)}.txi-signal{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/signal.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/signal.svg)}.txi-sim-card{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/sim-card.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/sim-card.svg)}.txi-split{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/split.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/split.svg)}.txi-table{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/table.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/table.svg)}.txi-tower-control{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/tower-control.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/tower-control.svg)}.txi-train-tunnel{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/train-tunnel.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/train-tunnel.svg)}.txi-video{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/video.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/video.svg)}.txi-wand-magic-sparkles{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/wand-magic-sparkles.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/wand-magic-sparkles.svg)}.txi-waveform{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/waveform.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/waveform.svg)}.txi-waveform-lines{-webkit-mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/waveform-lines.svg);mask-image:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/waveform-lines.svg)}.txd-main .txd-h1{font-family:var(--font-family-headings-custom, \"PP Formula\"),-apple-system,BlinkMacSystemFont,\"Segoe UI\",system-ui,sans-serif;font-size:2.1rem;font-weight:500;letter-spacing:-.01em;margin:1.2rem 0 .4rem;color:rgb(22 28 26)}html.dark .txd-main .txd-h1{color:rgb(229 231 235)}.txd-main .txd-lead{font-size:1.3rem;line-height:1.55;font-weight:500;margin:.9rem 0 1.3rem;color:rgb(31 41 55)}html.dark .txd-main .txd-lead{color:rgb(209 213 219)}.txd-main .txd-h2{font-family:var(--font-family-headings-custom, \"PP Formula\"),-apple-system,BlinkMacSystemFont,\"Segoe UI\",system-ui,sans-serif;font-size:1.45rem;font-weight:500;margin:2.4rem 0 .4rem;color:rgb(22 28 26)}html.dark .txd-main .txd-h2{color:rgb(229 231 235)}.txd-main .txd-section-h{font-size:1.05rem;font-weight:600;margin:1.8rem 0 .2rem;opacity:.85}.txd-main .txd-p{margin:.7rem 0 1rem;line-height:1.65;color:rgb(75 85 99)}html.dark .txd-main .txd-p{color:rgb(156 163 175)}.txd-main .txd-follow-up a:hover,.txd-main .txd-p a{text-decoration:underline}.txd-main .txd-h1{max-width:46rem;line-height:1.12}.txd-main .txd-hero-copy{max-width:45rem}.txd-main .txd-follow-up{margin-top:1rem}.txd-main .txd-follow-up a{color:#00b688;font-weight:600;text-decoration:none}.txd-main a:focus-visible{outline:2px solid #00b688;outline-offset:3px}@media (max-width:48rem){.txd-main .txd-h1{font-size:1.9rem}}@media (min-width:64.01rem) and (max-width:90rem){.txd-main{margin-right:4rem}}.rm-explorer{--rm-border:rgb(15 23 42 / 14%);--rm-muted:#5f6b68;--rm-soft:#f6f8f7}.dark .rm-explorer{--rm-border:rgb(255 255 255 / 14%);--rm-muted:#a2aaa8;--rm-soft:#151a19}#resource-map-toolbar{position:sticky;top:5rem;z-index:20;margin:1.25rem 0 1.75rem;padding:.75rem 0;background:var(--rm-surface, #fff);border-bottom:1px solid var(--rm-border)}.dark #resource-map-toolbar{background:#0b0e0d}.rm-controls{display:grid;grid-template-columns:minmax(15rem,1fr) minmax(10rem,auto) auto;gap:.625rem;align-items:center}.rm-search{position:relative;min-width:0}.rm-search svg{position:absolute;top:50%;left:.75rem;width:1rem;height:1rem;color:var(--rm-muted);fill:none;stroke:currentColor;stroke-width:1.8;transform:translateY(-50%);pointer-events:none}.rm-area-select,.rm-collapse,.rm-search input{min-height:2.5rem;font-size:.875rem}.rm-area-select,.rm-clear,.rm-collapse,.rm-empty button,.rm-search input{color:inherit;background:0 0;border:1px solid var(--rm-border);border-radius:.5rem;font:inherit}.rm-empty button{font-size:.875rem}.rm-search input{width:100%;padding:.58rem 2.6rem .58rem 2.35rem}.rm-search input::placeholder{color:var(--rm-muted);opacity:1}.rm-shortcut{position:absolute;top:50%;right:.65rem;display:grid;width:1.5rem;height:1.5rem;place-items:center;color:var(--rm-muted);background:var(--rm-soft);border:1px solid var(--rm-border);border-radius:.35rem;font:inherit;font-size:.72rem;transform:translateY(-50%);pointer-events:none}.rm-area-wrap{position:relative;max-width:13rem}.rm-area-select{width:100%;max-width:13rem;padding:.55rem 2.25rem .55rem .75rem;appearance:none;cursor:pointer}.rm-area-caret{position:absolute;top:50%;right:.85rem;width:.45rem;height:.45rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-70%) rotate(45deg);pointer-events:none}.rm-collapse{padding:.5rem .75rem}.rm-clear,.rm-collapse,.rm-empty button{font-weight:650;cursor:pointer}.rm-empty button{padding:.5rem .75rem}.rm-area-select:focus-visible,.rm-clear:focus-visible,.rm-collapse:focus-visible,.rm-empty button:focus-visible,.rm-search input:focus-visible{outline:2px solid #00b688;outline-offset:2px;border-color:#00b688;box-shadow:none!important}.rm-clear:hover,.rm-collapse:hover,.rm-empty button:hover{color:#08785d;background:var(--rm-soft)}.dark .rm-clear:hover,.dark .rm-collapse:hover,.dark .rm-empty button:hover{color:#5eead4}.rm-meta{display:flex;min-height:1.65rem;align-items:center;justify-content:space-between;gap:.75rem;padding:.45rem .15rem 0}.rm-status{color:var(--rm-muted);font-size:.78rem;line-height:1.35}.rm-clear{min-height:1.8rem;padding:.2rem .55rem;border-color:transparent;font-size:.78rem}.rm-empty{display:grid;justify-items:start;gap:.35rem;margin:-.5rem 0 1.75rem;padding:1.1rem 1.2rem;color:var(--rm-muted);background:var(--rm-soft);border:1px solid var(--rm-border);border-radius:.75rem;font-size:.875rem}.rm-empty strong{color:inherit;font-size:.95rem}.rm-empty button{min-height:2.2rem;margin-top:.35rem}.rm-resource-list{display:block!important;margin:0 0 .75rem!important;border-color:var(--rm-border)!important;border-top:0!important;border-radius:0 0 .75rem .75rem!important}.rm-resource-list>details.accordion{margin:0!important;border:0!important;border-radius:0!important}.rm-resource-list>details.accordion+details.accordion{border-top:1px solid var(--rm-border)!important}.rm-resource-list>details.accordion>summary{min-height:3rem;padding:.7rem .9rem!important;border-radius:0!important}.rm-resource-list>details.accordion:first-child>summary{border-radius:0!important}.rm-resource-list>details.accordion:last-child:not([open])>summary{border-radius:0 0 .75rem .75rem!important}.rm-resource-list [data-component-part=accordion-title]{display:flex;min-width:0;align-items:baseline;justify-content:space-between;gap:1rem}.rm-resource-name{min-width:0;overflow-wrap:anywhere;font-weight:650}.rm-method-count{flex:0 0 auto;color:var(--rm-muted);font-size:.75rem;font-weight:500;white-space:nowrap}.rm-resource-list details[open]>summary{background:var(--rm-soft)}.rm-resource-list details[open] [data-component-part=accordion-content]{margin-right:1rem;margin-left:1rem}.rm-resource-list tbody tr.rm-row-match{background:rgb(0 182 136/8%)}.rm-resource-list td:first-child code{white-space:nowrap}.rm-clear[hidden],.rm-collapse[hidden],.rm-empty[hidden],.rm-explorer h2[hidden],.rm-resource-list tbody tr[hidden],.rm-resource-list[hidden]{display:none!important}.rm-explorer h2{position:relative;min-height:3rem;margin:.45rem 0 0!important;scroll-margin-top:10rem;border:1px solid var(--rm-border);border-radius:.75rem}.rm-explorer h2.rm-section-open{border-radius:.75rem .75rem 0 0}.rm-section-toggle{display:grid;width:100%;min-height:3rem;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.75rem;padding:.6rem .9rem;color:inherit;text-align:left;background:0 0;border:0;cursor:pointer}.rm-section-toggle:focus-visible,.rm-section-toggle:hover{background:var(--rm-soft)}.rm-section-toggle:focus-visible{outline:2px solid #00b688;outline-offset:2px;border-radius:.7rem}.rm-section-name{font-size:1rem;font-weight:700}.rm-section-count{display:grid;min-width:1.65rem;min-height:1.4rem;place-items:center;padding:3px 6px;color:#08785d;background:rgb(0 182 136/10%);border-radius:.35rem;font-size:12px;font-weight:700;line-height:16px;white-space:nowrap}.dark .rm-section-count{color:#5eead4;background:#12302b}.rm-section-caret{width:.5rem;height:.5rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-.15rem)}.rm-section-toggle[aria-expanded=true] .rm-section-caret{transform:rotate(225deg) translate(-.1rem,-.05rem)}@media (max-width:767px){#resource-map-toolbar{position:static;top:auto;z-index:auto;margin-top:1rem;padding-top:.6rem}.rm-controls{grid-template-columns:minmax(0,1fr) auto}.rm-search{grid-column:1/-1}.rm-search input{padding-right:.75rem}.rm-resource-list thead,.rm-shortcut{display:none}.rm-area-select,.rm-area-wrap{width:100%;max-width:none}.rm-resource-list [data-component-part=accordion-title]{gap:.65rem}.rm-method-count{font-size:.7rem}.rm-resource-list table,.rm-resource-list tbody{display:block;width:100%;min-width:0!important}.rm-resource-list tbody tr{display:grid;width:100%;grid-template-columns:minmax(0,1fr);gap:.45rem;padding:.75rem 0}.rm-resource-list tbody tr+tr{border-top:1px solid var(--rm-border)}.rm-resource-list tbody td{display:grid;width:100%;min-width:0!important;grid-template-columns:4.5rem minmax(0,1fr);align-items:start;gap:.5rem;padding:0!important;border:0!important}.rm-resource-list tbody td::before{color:var(--rm-muted);font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.rm-resource-list tbody td:first-child::before{content:\"Method\"}.rm-resource-list tbody td:last-child::before{content:\"Endpoint\"}.rm-resource-list tbody td a,.rm-resource-list tbody td code{min-width:0;white-space:normal!important;overflow-wrap:anywhere}}@media (prefers-reduced-motion:reduce){.rm-explorer *,.rm-explorer ::after,.rm-explorer ::before{scroll-behavior:auto!important;transition-duration:.01ms!important}}.sdk-launchpad{--sdk-border:#d8e1de;--sdk-panel:#ffffff;margin:1rem 0 1.5rem;padding:1rem;overflow:hidden;color:inherit;background:var(--sdk-panel);border:1px solid var(--sdk-border);border-radius:12px}.dark .sdk-launchpad{--sdk-border:#293431;--sdk-panel:#101513}.sdk-launchpad-kicker{margin:0 0 .25rem!important;color:#08785d;font-size:.68rem;font-weight:800;letter-spacing:.1em}.dark .sdk-launchpad-kicker{color:#5eead4}.sdk-launchpad>h2{margin-top:.25rem}.sdk-launchpad [role=tablist]{display:flex;flex-wrap:wrap;gap:.25rem}.sdk-launchpad [role=tab]{min-width:56px;min-height:44px}.sdk-launchpad [role=tab][aria-selected=true]{color:#08785d!important}.dark .sdk-launchpad [role=tab][aria-selected=true]{color:#5eead4!important}.sdk-launchpad [role=tab]:focus-visible,.sdk-launchpad a:focus-visible,.sdk-launchpad-code:focus-visible{outline:2px solid #08785d;outline-offset:2px}.dark .sdk-launchpad [role=tab]:focus-visible,.dark .sdk-launchpad a:focus-visible,.dark .sdk-launchpad-code:focus-visible{outline-color:#5eead4}.sdk-launchpad-code{max-width:100%;overflow-x:auto;border-radius:.5rem}.sdk-launchpad-code pre{max-width:none;overflow-x:visible!important}.sdk-launchpad-code button{min-width:44px;min-height:44px}#content-area:has(#sdk-launchpad) .chat-assistant-floating-input{display:none}@media (max-width:640px){.sdk-launchpad{margin-top:.75rem;padding:.75rem}.sdk-launchpad-kicker{display:none}.sdk-launchpad [role=tablist]{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.2rem;overflow:visible}.sdk-launchpad [role=tab]{min-width:0;min-height:44px;padding-inline:.2rem;font-size:.75rem;line-height:1.15;white-space:nowrap}}.sdk-directory li{margin-block:.5rem}.mdx-content table td{min-width:0!important}.mdx-content table td :is(code, a){overflow-wrap:anywhere}.mdx-content table :is(th, td):first-child code{white-space:nowrap;word-break:normal;overflow-wrap:normal}@media (min-width:768px){.tx-table-grid table{table-layout:fixed}.tx-table-grid table :is(th, td):first-child{width:40%}}.tx-retirement-banner{margin-bottom:1.5rem}.tx-retirement-banner>div{margin:0}@media (min-width:1024px){.tx-retirement-banner{position:sticky;top:calc(6rem + var(--banner-height, 0px));z-index:20;padding-top:.5rem;background:rgb(var(--background-light, 255 255 255))}.dark .tx-retirement-banner{background:rgb(var(--background-dark, 9 12 14))}}#content>.callout:first-child{margin-top:0}#content strong{font-weight:600}"}],"page":{"pagePath":"api-reference/display-identity-records/update-a-dir","slug":"/api-reference/display-identity-records/update-a-dir","pageMetadata":{"title":"Update a DIR","description":"Edit a DIR. DIRs in `draft`, `rejected`, `unsuccessful`, or `suspended` can be edited freely: PATCH is a pure edit, `status` is never changed, and you re-vet by calling `POST /v2/dir/{dir_id}/submit` explicitly. A `verified` DIR can also be edited in place: a PATCH that changes any value returns the DIR to `draft`; the currently approved identity keeps displaying, and the edited content goes live only after you re-submit and the DIR is approved again. A PATCH that changes nothing (an empty body or values identical to the current ones) leaves the DIR `verified`, so idempotent retries are safe. Changing only `bpo_authorizations` or `webhook_url` is the exception: the DIR stays `verified`. Each BPO authorization is reviewed on its own instead. DIRs in any other status (`submitted`, `in_review`, `expired`, `infringement_claimed`, `permanently_rejected`) cannot be edited.","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json patch /dir/{dir_id}","href":"/api-reference/display-identity-records/update-a-dir","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Edit a DIR. DIRs in \", _jsx(_components.code, {\n children: \"draft\"\n }), \", \", _jsx(_components.code, {\n children: \"rejected\"\n }), \", \", _jsx(_components.code, {\n children: \"unsuccessful\"\n }), \", or \", _jsx(_components.code, {\n children: \"suspended\"\n }), \" can be edited freely: PATCH is a pure edit, \", _jsx(_components.code, {\n children: \"status\"\n }), \" is never changed, and you re-vet by calling \", _jsx(_components.code, {\n children: \"POST /v2/dir/{dir_id}/submit\"\n }), \" explicitly. A \", _jsx(_components.code, {\n children: \"verified\"\n }), \" DIR can also be edited in place: a PATCH that changes any value returns the DIR to \", _jsx(_components.code, {\n children: \"draft\"\n }), \"; the currently approved identity keeps displaying, and the edited content goes live only after you re-submit and the DIR is approved again. A PATCH that changes nothing (an empty body or values identical to the current ones) leaves the DIR \", _jsx(_components.code, {\n children: \"verified\"\n }), \", so idempotent retries are safe. Changing only \", _jsx(_components.code, {\n children: \"bpo_authorizations\"\n }), \" or \", _jsx(_components.code, {\n children: \"webhook_url\"\n }), \" is the exception: the DIR stays \", _jsx(_components.code, {\n children: \"verified\"\n }), \". Each BPO authorization is reviewed on its own instead. DIRs in any other status (\", _jsx(_components.code, {\n children: \"submitted\"\n }), \", \", _jsx(_components.code, {\n children: \"in_review\"\n }), \", \", _jsx(_components.code, {\n children: \"expired\"\n }), \", \", _jsx(_components.code, {\n children: \"infringement_claimed\"\n }), \", \", _jsx(_components.code, {\n children: \"permanently_rejected\"\n }), \") cannot be edited.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Update a DIR","description":"Edit a DIR. DIRs in `draft`, `rejected`, `unsuccessful`, or `suspended` can be edited freely: PATCH is a pure edit, `status` is never changed, and you re-vet by calling `POST /v2/dir/{dir_id}/submit` explicitly. A `verified` DIR can also be edited in place: a PATCH that changes any value returns the DIR to `draft`; the currently approved identity keeps displaying, and the edited content goes live only after you re-submit and the DIR is approved again. A PATCH that changes nothing (an empty body or values identical to the current ones) leaves the DIR `verified`, so idempotent retries are safe. Changing only `bpo_authorizations` or `webhook_url` is the exception: the DIR stays `verified`. Each BPO authorization is reviewed on its own instead. DIRs in any other status (`submitted`, `in_review`, `expired`, `infringement_claimed`, `permanently_rejected`) cannot be edited.","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json patch /dir/{dir_id}","href":"/api-reference/display-identity-records/update-a-dir","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/telnyx/a2dd5aaa2ff5831a/reading-progress.js","/_mintlify/custom/telnyx/7b77ce9cedb163fd/webmcp-init.js","/_mintlify/custom/telnyx/7fbfee588ac7ad38/structured-data.js","/_mintlify/custom/telnyx/84283928b1e31919/scripts/tests/generate-llms-txt.test.js","/_mintlify/custom/telnyx/8851ad5fd6e9b5c7/scripts/tests/direct-source-workflows.test.js","/_mintlify/custom/telnyx/7ad13bb6588be22f/scripts/tests/redirects.test.js","/_mintlify/custom/telnyx/f981035eb45fcbdb/scripts/tests/generate-error-catalog.test.js","/_mintlify/custom/telnyx/132bc205f55282a5/scripts/tests/sync-llms-automerge.test.js","/_mintlify/custom/telnyx/05e787f15f45952b/scripts/tests/webhook-catalog-lifecycle.test.js","/_mintlify/custom/telnyx/01b840b27496e6c8/scripts/tests/repository-structure.test.js","/_mintlify/custom/telnyx/5ebc7d6e18012563/scripts/tests/legacy-content-usage.test.js","/_mintlify/custom/telnyx/ac1f21e68bf4050a/scripts/docs/check-llms-links.js","/_mintlify/custom/telnyx/5f7d2f1ae375b9ad/scripts/docs/check-llms-native-routes.js","/_mintlify/custom/telnyx/b8d13287c2dcc5b9/scripts/docs/fetch-coverage.js","/_mintlify/custom/telnyx/e0a29f76f2645359/scripts/docs/generate-error-catalog.js","/_mintlify/custom/telnyx/0bc5eef76b84f366/scripts/docs/generate-llms-txt.js","/_mintlify/custom/telnyx/f1f111fe784c3ede/scripts/docs/update-tts-voices.js","/_mintlify/custom/telnyx/c2dca47194e47168/scripts/docs/build-sdk-doc-pages.js","/_mintlify/custom/telnyx/f840117777d76f9e/scripts/tests/sdk-doc-pages.test.js","/_mintlify/custom/telnyx/414c53c50b0e1968/resource-map-filter.js","/_mintlify/custom/telnyx/80af622b3010a712/scripts/tests/sdk-language-switcher.test.js","/_mintlify/custom/telnyx/52fa0fbcb966f8b6/sdk-language-switcher.js","/_mintlify/custom/telnyx/a8c4ad94eeedc2c8/home-directory.js","/_mintlify/custom/telnyx/da7a630a1adf8a7a/scripts/generate-home-directory.js","/_mintlify/custom/telnyx/137e3eb8e1d1d85a/scripts/tests/api-fundamentals.test.js","/_mintlify/custom/telnyx/24a8eed3a5010d4c/scripts/tests/agent-sdk-workflow.test.js","/_mintlify/custom/telnyx/9797dbea7468c103/scripts/tests/homepage-overview.test.js","/_mintlify/custom/telnyx/8edf49ac62deef02/scripts/tests/batch-detail-records-navigation.test.js","/_mintlify/custom/telnyx/e005178572336f01/scripts/tests/api-discoverability.test.js","/_mintlify/custom/telnyx/78cb83896fbea5cf/scripts/tests/home-directory.test.js","/_mintlify/custom/telnyx/11ae45253e6b7be6/scripts/tests/agent-readiness.test.js","/_mintlify/custom/telnyx/82396d5a75077c2a/scripts/tests/sample-workflow-regressions.test.js","/_mintlify/custom/telnyx/5f6625c0420c9328/scripts/tests/openapi-mintlify-parsing.test.js","/_mintlify/custom/telnyx/c7dca602ca9641ec/scripts/tests/llms-markdown-assets.test.js","/_mintlify/custom/telnyx/02d6acd7c86b79f9/scripts/tests/agent-browser-quickstart.test.js"],"openApiReferenceData":{"operation":{"summary":"Update a DIR","description":"Edit a DIR. DIRs in `draft`, `rejected`, `unsuccessful`, or `suspended` can be edited freely: PATCH is a pure edit, `status` is never changed, and you re-vet by calling `POST /v2/dir/{dir_id}/submit` explicitly. A `verified` DIR can also be edited in place: a PATCH that changes any value returns the DIR to `draft`; the currently approved identity keeps displaying, and the edited content goes live only after you re-submit and the DIR is approved again. A PATCH that changes nothing (an empty body or values identical to the current ones) leaves the DIR `verified`, so idempotent retries are safe. Changing only `bpo_authorizations` or `webhook_url` is the exception: the DIR stays `verified`. Each BPO authorization is reviewed on its own instead. DIRs in any other status (`submitted`, `in_review`, `expired`, `infringement_claimed`, `permanently_rejected`) cannot be edited.","operationId":"updateDirSimple","tags":["Display Identity Records"],"parameters":["5c340893-a1c4-4b6b-b27b-61f84aafa5c2"],"requestBody":"caa97b74-7284-4911-bcdf-c458f43b3b52","responses":{"200":"d31f149e-5eb7-4524-9750-64ba133c85e3","default":"11cd3db0-74d1-4386-b515-2c7e3ff8bff6","4XX":"bd1355bf-af2e-45ab-843a-1c0e7ca0a253"},"x-codeSamples":[{"lang":"JavaScript","source":"import Telnyx from 'telnyx';\n\nconst client = new Telnyx({\n apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted\n});\n\nconst dir = await client.dir.update('16635d38-75a6-4481-82e8-69af60e05011', {\n call_reasons: ['Appointment reminders', 'Billing inquiries', 'Lab results'],\n display_name: 'Acme Plumbing \u0026 Wellness',\n logo_url: 'https://acmeplumbing.example.com/logo-v2-256.bmp',\n});\n\nconsole.log(dir.data);"},{"lang":"Python","source":"import os\nfrom telnyx import Telnyx\n\nclient = Telnyx(\n api_key=os.environ.get(\"TELNYX_API_KEY\"), # This is the default and can be omitted\n)\ndir = client.dir.update(\n dir_id=\"16635d38-75a6-4481-82e8-69af60e05011\",\n call_reasons=[\"Appointment reminders\", \"Billing inquiries\", \"Lab results\"],\n display_name=\"Acme Plumbing \u0026 Wellness\",\n logo_url=\"https://acmeplumbing.example.com/logo-v2-256.bmp\",\n)\nprint(dir.data)\n"},{"lang":"Go","source":"package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/team-telnyx/telnyx-go\"\n\t\"github.com/team-telnyx/telnyx-go/option\"\n)\n\nfunc main() {\n\tclient := telnyx.NewClient(\n\t\toption.WithAPIKey(\"My API Key\"),\n\t)\n\tdir, err := client.Dir.Update(\n\t\tcontext.TODO(),\n\t\t\"16635d38-75a6-4481-82e8-69af60e05011\",\n\t\ttelnyx.DirUpdateParams{\n\t\t\tCallReasons: []string{\"Appointment reminders\", \"Billing inquiries\", \"Lab results\"},\n\t\t\tDisplayName: telnyx.String(\"Acme Plumbing \u0026 Wellness\"),\n\t\t\tLogoURL: telnyx.String(\"https://acmeplumbing.example.com/logo-v2-256.bmp\"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", dir.Data)\n}\n"},{"lang":"Java","source":"package com.telnyx.sdk.example;\n\nimport com.telnyx.sdk.client.TelnyxClient;\nimport com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;\nimport com.telnyx.sdk.models.dir.DirUpdateParams;\nimport com.telnyx.sdk.models.dir.DirUpdateResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n TelnyxClient client = TelnyxOkHttpClient.fromEnv();\n\n DirUpdateResponse dir = client.dir().update(\"16635d38-75a6-4481-82e8-69af60e05011\");\n }\n}"},{"lang":"Ruby","source":"require \"telnyx\"\n\ntelnyx = Telnyx::Client.new(api_key: \"My API Key\")\n\ndir = telnyx.dir.update(\"16635d38-75a6-4481-82e8-69af60e05011\")\n\nputs(dir)"},{"lang":"PHP","source":"\u003c?php\n\nrequire_once dirname(__DIR__) . '/vendor/autoload.php';\n\nuse Telnyx\\Client;\nuse Telnyx\\Core\\Exceptions\\APIException;\n\n$client = new Client(apiKey: getenv('TELNYX_API_KEY') ?: 'My API Key');\n\ntry {\n $dir = $client->dir->update(\n '16635d38-75a6-4481-82e8-69af60e05011',\n authorizerEmail: '[email protected]',\n authorizerName: 'authorizer_name',\n callReasons: ['Appointment reminders', 'Billing inquiries', 'Lab results'],\n certifyBrandIsAccurate: true,\n certifyIPOwnership: true,\n certifyNoShaftContent: true,\n displayName: 'Acme Plumbing \u0026 Wellness',\n documents: [\n [\n 'documentID' => '2a7e8337-e803-4057-a4ae-26c40eb0bc6c',\n 'documentType' => 'business_registration',\n 'description' => 'Certificate of incorporation.',\n ],\n ],\n logoURL: 'https://acmeplumbing.example.com/logo-v2-256.bmp',\n reselling: true,\n );\n\n var_dump($dir);\n} catch (APIException $e) {\n echo $e->getMessage();\n}"},{"lang":"CLI","source":"telnyx dir update \\\n --api-key 'My API Key' \\\n --dir-id 16635d38-75a6-4481-82e8-69af60e05011"}],"method":"patch","type":"path","servers":["62f7e5fa-27e1-4c04-9cff-62e50a3390a2"],"security":["1c1e4728-920b-41b2-af99-204405ee4449"],"path":"/dir/{dir_id}","baseUrlOptions":["https://api.telnyx.com/v2"],"title":"Update a DIR","codeSamples":[{"lang":"JavaScript","source":"import Telnyx from 'telnyx';\n\nconst client = new Telnyx({\n apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted\n});\n\nconst dir = await client.dir.update('16635d38-75a6-4481-82e8-69af60e05011', {\n call_reasons: ['Appointment reminders', 'Billing inquiries', 'Lab results'],\n display_name: 'Acme Plumbing \u0026 Wellness',\n logo_url: 'https://acmeplumbing.example.com/logo-v2-256.bmp',\n});\n\nconsole.log(dir.data);"},{"lang":"Python","source":"import os\nfrom telnyx import Telnyx\n\nclient = Telnyx(\n api_key=os.environ.get(\"TELNYX_API_KEY\"), # This is the default and can be omitted\n)\ndir = client.dir.update(\n dir_id=\"16635d38-75a6-4481-82e8-69af60e05011\",\n call_reasons=[\"Appointment reminders\", \"Billing inquiries\", \"Lab results\"],\n display_name=\"Acme Plumbing \u0026 Wellness\",\n logo_url=\"https://acmeplumbing.example.com/logo-v2-256.bmp\",\n)\nprint(dir.data)\n"},{"lang":"Go","source":"package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/team-telnyx/telnyx-go\"\n\t\"github.com/team-telnyx/telnyx-go/option\"\n)\n\nfunc main() {\n\tclient := telnyx.NewClient(\n\t\toption.WithAPIKey(\"My API Key\"),\n\t)\n\tdir, err := client.Dir.Update(\n\t\tcontext.TODO(),\n\t\t\"16635d38-75a6-4481-82e8-69af60e05011\",\n\t\ttelnyx.DirUpdateParams{\n\t\t\tCallReasons: []string{\"Appointment reminders\", \"Billing inquiries\", \"Lab results\"},\n\t\t\tDisplayName: telnyx.String(\"Acme Plumbing \u0026 Wellness\"),\n\t\t\tLogoURL: telnyx.String(\"https://acmeplumbing.example.com/logo-v2-256.bmp\"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", dir.Data)\n}\n"},{"lang":"Java","source":"package com.telnyx.sdk.example;\n\nimport com.telnyx.sdk.client.TelnyxClient;\nimport com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;\nimport com.telnyx.sdk.models.dir.DirUpdateParams;\nimport com.telnyx.sdk.models.dir.DirUpdateResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n TelnyxClient client = TelnyxOkHttpClient.fromEnv();\n\n DirUpdateResponse dir = client.dir().update(\"16635d38-75a6-4481-82e8-69af60e05011\");\n }\n}"},{"lang":"Ruby","source":"require \"telnyx\"\n\ntelnyx = Telnyx::Client.new(api_key: \"My API Key\")\n\ndir = telnyx.dir.update(\"16635d38-75a6-4481-82e8-69af60e05011\")\n\nputs(dir)"},{"lang":"PHP","source":"\u003c?php\n\nrequire_once dirname(__DIR__) . '/vendor/autoload.php';\n\nuse Telnyx\\Client;\nuse Telnyx\\Core\\Exceptions\\APIException;\n\n$client = new Client(apiKey: getenv('TELNYX_API_KEY') ?: 'My API Key');\n\ntry {\n $dir = $client->dir->update(\n '16635d38-75a6-4481-82e8-69af60e05011',\n authorizerEmail: '[email protected]',\n authorizerName: 'authorizer_name',\n callReasons: ['Appointment reminders', 'Billing inquiries', 'Lab results'],\n certifyBrandIsAccurate: true,\n certifyIPOwnership: true,\n certifyNoShaftContent: true,\n displayName: 'Acme Plumbing \u0026 Wellness',\n documents: [\n [\n 'documentID' => '2a7e8337-e803-4057-a4ae-26c40eb0bc6c',\n 'documentType' => 'business_registration',\n 'description' => 'Certificate of incorporation.',\n ],\n ],\n logoURL: 'https://acmeplumbing.example.com/logo-v2-256.bmp',\n reselling: true,\n );\n\n var_dump($dir);\n} catch (APIException $e) {\n echo $e->getMessage();\n}"},{"lang":"CLI","source":"telnyx dir update \\\n --api-key 'My API Key' \\\n --dir-id 16635d38-75a6-4481-82e8-69af60e05011"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{"5c340893-a1c4-4b6b-b27b-61f84aafa5c2":{"name":"dir_id","in":"path","description":"The DIR id. Lowercase UUID.","required":true,"schema":{"type":"string","format":"uuid","example":"16635d38-75a6-4481-82e8-69af60e05011","isRequired":true,"description":"The DIR id. Lowercase UUID.","uniqueKey":"","typeLabel":"string\u003cuuid>"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"All fields are optional; only those supplied are updated. Same per-field rules as `DirCreateRequest`.","properties":{"display_name":{"type":"string","minLength":1,"maxLength":35,"description":"Name shown to call recipients. 1–35 characters, no emoji, not whitespace-only.","uniqueKey":"display_name","typeLabel":"string"},"reselling":{"type":"boolean","description":"Set to true if your organization places calls on behalf of other enterprises (BPO/reseller). Updating this triggers re-vetting on next submit.","uniqueKey":"reselling","typeLabel":"boolean"},"authorizer_name":{"type":"string","maxLength":255,"description":"Name of the person at your enterprise authorizing this DIR. Must be a real individual.","uniqueKey":"authorizer_name","typeLabel":"string"},"authorizer_email":{"type":"string","format":"email","description":"Contact email of the authorizer. Telnyx may send verification or infringement notices here.","uniqueKey":"authorizer_email","typeLabel":"string\u003cemail>"},"logo_url":{"type":"string","format":"uri","maxLength":128,"description":"Publicly accessible HTTPS URL (max 128 chars) to a 256x256 BMP logo (max 1 MB).","uniqueKey":"logo_url","typeLabel":"string\u003curi>"},"call_reasons":{"type":"array","items":{"type":"string","maxLength":64,"uniqueKey":"call_reasons.items.[INDEX]","typeLabel":"string"},"minItems":1,"maxItems":10,"description":"1–10 reasons your business calls customers. Validate phrasing against `POST /call_reasons/validate`.","uniqueKey":"call_reasons","typeLabel":"string[]"},"certify_brand_is_accurate":{"type":"boolean","description":"Certification that the DIR information is accurate. Must be `true` for the DIR to be submitted for vetting.","example":true,"uniqueKey":"certify_brand_is_accurate","typeLabel":"boolean"},"certify_no_shaft_content":{"type":"boolean","description":"Certification that this DIR is not used for SHAFT content (Sex, Hate, Alcohol, Firearms, Tobacco) where prohibited. Must be `true` for the DIR to be submitted for vetting.","example":true,"uniqueKey":"certify_no_shaft_content","typeLabel":"boolean"},"certify_ip_ownership":{"type":"boolean","description":"Certification of ownership of any logos/trademarks shown. Must be `true` for the DIR to be submitted for vetting.","example":true,"uniqueKey":"certify_ip_ownership","typeLabel":"boolean"},"documents":{"type":"array","items":{"type":"object","required":["document_id","document_type"],"properties":{"document_id":{"type":"string","format":"uuid","description":"Id returned by the Telnyx Documents API after you upload the file (upload via `POST /v2/documents`; see https://developers.telnyx.com/api/documents).","example":"2a7e8337-e803-4057-a4ae-26c40eb0bc6c","isRequired":true,"uniqueKey":"documents.items.[INDEX].document_id","typeLabel":"string\u003cuuid>"},"document_type":{"type":"string","enum":["letter_of_authorization","business_registration","articles_of_incorporation","certificate_of_good_standing","tax_document","ein_letter","trademark_registration","website_ownership","business_license","professional_license","government_id","utility_bill","bank_statement","business_credit_report","bank_reference_letter","other"],"example":"business_registration","description":"Type of supporting document. Pick the closest match to what the file actually contains; `other` triggers manual vetting and may slow approval. The matching short_name reference list is at `GET /v2/dir/document_types`.","isRequired":true,"uniqueKey":"documents.items.[INDEX].document_type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","maxLength":255,"description":"An optional note describing this document, for example what it proves.","example":"Certificate of incorporation.","uniqueKey":"documents.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"documents.items.[INDEX]","typeLabel":"object"},"maxItems":20,"description":"Additional supporting documents to attach. Append-only: existing documents are never removed or replaced, and an empty or omitted list is a no-op. Each `document_id` may appear at most once on a DIR.","uniqueKey":"documents","typeLabel":"object[]"},"webhook_url":{"oneOf":[{"type":"string","format":"uri","maxLength":2048,"description":"Optional `https://` URL that receives webhook notifications when this DIR's compliance review completes. Send `null` to clear. Changing only this field on a `verified` DIR does not re-vet it. Maximum 2048 characters.","example":"https://mapleridge.example.com/webhooks/branded-calling","uniqueKey":"webhook_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","maxLength":2048,"description":"Optional `https://` URL that receives webhook notifications when this DIR's compliance review completes. Send `null` to clear. Changing only this field on a `verified` DIR does not re-vet it. Maximum 2048 characters.","example":"https://mapleridge.example.com/webhooks/branded-calling","uniqueKey":"webhook_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"webhook_url","typeLabel":"string\u003curi> | null"},"bpo_authorizations":{"type":"array","items":{"type":"object","description":"One authorization to include when creating or updating a DIR: an approved BPO (Business Process Outsourcer) account plus the signed Letter of Authorization the Brand Owner granted it.","required":["bpo_enterprise_id","loa_document_id"],"properties":{"bpo_enterprise_id":{"type":"string","format":"uuid","description":"Enterprise id of an approved BPO (Business Process Outsourcer) account on your organization to authorize for this DIR.","example":"4a6192a4-573d-446d-b3ce-aff9117272a6","isRequired":true,"uniqueKey":"bpo_authorizations.items.[INDEX].bpo_enterprise_id","typeLabel":"string\u003cuuid>"},"loa_document_id":{"type":"string","format":"uuid","description":"Id of the signed Letter of Authorization document (uploaded via the Telnyx Documents API) in which the Brand Owner authorizes this BPO.","example":"2a7e8337-e803-4057-a4ae-26c40eb0bc6c","isRequired":true,"uniqueKey":"bpo_authorizations.items.[INDEX].loa_document_id","typeLabel":"string\u003cuuid>"}},"uniqueKey":"bpo_authorizations.items.[INDEX]","typeLabel":"object"},"maxItems":10,"description":"Optional. Replace this DIR's authorized BPO (Business Process Outsourcer) accounts with these, each with its signed Letter of Authorization. The supplied list replaces the current one: a BPO left out has its authorization removed, and a new BPO (or a changed Letter of Authorization) is created `pending` admin review. Send an empty list to clear all authorizations; omit the field to leave them unchanged. Editing this list does not re-vet the DIR. Maximum 10.","uniqueKey":"bpo_authorizations","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"display_name":"Acme Plumbing \u0026 Wellness","call_reasons":["Appointment reminders","Billing inquiries","Lab results"],"logo_url":"https://acmeplumbing.example.com/logo-v2-256.bmp"},"examples":{"Example":{"title":"Example","value":{"display_name":"Acme Plumbing \u0026 Wellness","call_reasons":["Appointment reminders","Billing inquiries","Lab results"],"logo_url":"https://acmeplumbing.example.com/logo-v2-256.bmp"}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"d31f149e-5eb7-4524-9750-64ba133c85e3":{"description":"DIR updated.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"16635d38-75a6-4481-82e8-69af60e05011","readOnly":true,"uniqueKey":"data.id","typeLabel":"string\u003cuuid>"},"enterprise_id":{"type":"string","format":"uuid","example":"4a6192a4-573d-446d-b3ce-aff9117272a6","uniqueKey":"data.enterprise_id","typeLabel":"string\u003cuuid>"},"display_name":{"type":"string","example":"Acme Plumbing","uniqueKey":"data.display_name","typeLabel":"string"},"reselling":{"type":"boolean","example":false,"uniqueKey":"data.reselling","typeLabel":"boolean"},"certify_brand_is_accurate":{"type":"boolean","example":true,"uniqueKey":"data.certify_brand_is_accurate","typeLabel":"boolean"},"certify_no_shaft_content":{"type":"boolean","example":true,"uniqueKey":"data.certify_no_shaft_content","typeLabel":"boolean"},"certify_ip_ownership":{"type":"boolean","example":true,"uniqueKey":"data.certify_ip_ownership","typeLabel":"boolean"},"authorizer_name":{"oneOf":[{"type":"string","example":"Sam Owner","uniqueKey":"data.authorizer_name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Sam Owner","uniqueKey":"data.authorizer_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.authorizer_name","typeLabel":"string | null"},"authorizer_email":{"oneOf":[{"type":"string","format":"email","example":"[email protected]","uniqueKey":"data.authorizer_email.oneOf.0","typeLabel":"string\u003cemail>"},{"type":"null","format":"email","example":"[email protected]","uniqueKey":"data.authorizer_email.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.authorizer_email","typeLabel":"string\u003cemail> | null"},"logo_url":{"oneOf":[{"type":"string","format":"uri","example":"https://acmeplumbing.example.com/logo-256.bmp","uniqueKey":"data.logo_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","example":"https://acmeplumbing.example.com/logo-256.bmp","uniqueKey":"data.logo_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.logo_url","typeLabel":"string\u003curi> | null"},"call_reasons":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string","maxLength":64,"example":"Appointment reminders","uniqueKey":"data.call_reasons.items.[INDEX].reason","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","example":"2026-04-26T18:06:51.940749Z","readOnly":true,"uniqueKey":"data.call_reasons.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"data.call_reasons.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.call_reasons","typeLabel":"object[]"},"documents":{"oneOf":[{"type":"array","items":{"type":"object","required":["document_id","document_type"],"properties":{"document_id":{"type":"string","format":"uuid","description":"Id returned by the Telnyx Documents API after you upload the file (upload via `POST /v2/documents`; see https://developers.telnyx.com/api/documents).","example":"2a7e8337-e803-4057-a4ae-26c40eb0bc6c","isRequired":true,"uniqueKey":"data.documents.oneOf.0.items.[INDEX].document_id","typeLabel":"string\u003cuuid>"},"document_type":{"type":"string","enum":["letter_of_authorization","business_registration","articles_of_incorporation","certificate_of_good_standing","tax_document","ein_letter","trademark_registration","website_ownership","business_license","professional_license","government_id","utility_bill","bank_statement","business_credit_report","bank_reference_letter","other"],"example":"business_registration","description":"Type of supporting document. Pick the closest match to what the file actually contains; `other` triggers manual vetting and may slow approval. The matching short_name reference list is at `GET /v2/dir/document_types`.","isRequired":true,"uniqueKey":"data.documents.oneOf.0.items.[INDEX].document_type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","maxLength":255,"description":"An optional note describing this document, for example what it proves.","example":"Certificate of incorporation.","uniqueKey":"data.documents.oneOf.0.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"data.documents.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.documents.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["document_id","document_type"],"properties":{"document_id":{"type":"string","format":"uuid","description":"Id returned by the Telnyx Documents API after you upload the file (upload via `POST /v2/documents`; see https://developers.telnyx.com/api/documents).","example":"2a7e8337-e803-4057-a4ae-26c40eb0bc6c"},"document_type":{"type":"string","enum":["letter_of_authorization","business_registration","articles_of_incorporation","certificate_of_good_standing","tax_document","ein_letter","trademark_registration","website_ownership","business_license","professional_license","government_id","utility_bill","bank_statement","business_credit_report","bank_reference_letter","other"],"example":"business_registration","description":"Type of supporting document. Pick the closest match to what the file actually contains; `other` triggers manual vetting and may slow approval. The matching short_name reference list is at `GET /v2/dir/document_types`."},"description":{"type":"string","maxLength":255,"description":"An optional note describing this document, for example what it proves.","example":"Certificate of incorporation."}}},"uniqueKey":"data.documents.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.documents","typeLabel":"object[] | null"},"status":{"type":"string","enum":["draft","submitted","in_review","verified","rejected","unsuccessful","suspended","expired","infringement_claimed","permanently_rejected","delete_requested"],"description":"DIR lifecycle status.\n- `draft` - newly created; editable; not yet submitted.\n- `submitted` / `in_review` - Telnyx is reviewing.\n- `verified` - approved; phone numbers may be attached.\n- `rejected` - Telnyx rejected this submission; `rejection_reasons` is populated; customer can edit and resubmit.\n- `unsuccessful` - system-side error during processing; customer can edit and resubmit.\n- `suspended` - temporarily disabled (e.g. by an active infringement claim).\n- `expired` - verification expired; customer must resubmit.\n- `infringement_claimed` - a trademark/impersonation claim is open against this DIR.\n- `permanently_rejected` - terminal; cannot be resubmitted.\n- `delete_requested` - you have requested deletion; the DIR still exists and Telnyx is completing the removal (de-registration and cleanup). A verified DIR keeps serving its branded identity, and keeps billing, until the removal finishes.","uniqueKey":"data.status","typeLabel":"enum\u003cstring>"},"rejection_reasons":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"documentation_incomplete","uniqueKey":"data.rejection_reasons.oneOf.0.items.[INDEX].code","typeLabel":"string"},"title":{"type":"string","example":"Documentation incomplete","uniqueKey":"data.rejection_reasons.oneOf.0.items.[INDEX].title","typeLabel":"string"},"detail":{"type":"string","example":"Provided documents do not establish business identity.","uniqueKey":"data.rejection_reasons.oneOf.0.items.[INDEX].detail","typeLabel":"string"},"message":{"oneOf":[{"type":"string","description":"Customer-visible free-text comment from the Telnyx vetting team. Only the first entry of `rejection_reasons` carries this; the rest are `null`.","example":"Please re-upload a clearer scan of the certificate.","uniqueKey":"data.rejection_reasons.oneOf.0.items.[INDEX].message.oneOf.0","typeLabel":"string"},{"type":"null","description":"Customer-visible free-text comment from the Telnyx vetting team. Only the first entry of `rejection_reasons` carries this; the rest are `null`.","example":"Please re-upload a clearer scan of the certificate.","uniqueKey":"data.rejection_reasons.oneOf.0.items.[INDEX].message.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.rejection_reasons.oneOf.0.items.[INDEX].message","typeLabel":"string | null"}},"uniqueKey":"data.rejection_reasons.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Populated when `status` is `rejected`; cleared on `/submit` or successful approval.","uniqueKey":"data.rejection_reasons.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"code":{"type":"string","example":"documentation_incomplete"},"title":{"type":"string","example":"Documentation incomplete"},"detail":{"type":"string","example":"Provided documents do not establish business identity."},"message":{"oneOf":[{"type":"string","description":"Customer-visible free-text comment from the Telnyx vetting team. Only the first entry of `rejection_reasons` carries this; the rest are `null`.","example":"Please re-upload a clearer scan of the certificate."},{"type":"null","description":"Customer-visible free-text comment from the Telnyx vetting team. Only the first entry of `rejection_reasons` carries this; the rest are `null`.","example":"Please re-upload a clearer scan of the certificate."}]}}},"description":"Populated when `status` is `rejected`; cleared on `/submit` or successful approval.","uniqueKey":"data.rejection_reasons.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.rejection_reasons","typeLabel":"object[] | null"},"rejected_at":{"oneOf":[{"type":"string","format":"date-time","readOnly":true,"uniqueKey":"data.rejected_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","readOnly":true,"uniqueKey":"data.rejected_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.rejected_at","typeLabel":"string\u003cdate-time> | null"},"created_at":{"type":"string","format":"date-time","example":"2026-04-26T18:06:51.940749Z","readOnly":true,"uniqueKey":"data.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","example":"2026-04-26T18:09:24.785211Z","readOnly":true,"uniqueKey":"data.updated_at","typeLabel":"string\u003cdate-time>"},"submitted_at":{"oneOf":[{"type":"string","format":"date-time","example":"2026-04-26T18:07:03.716411Z","readOnly":true,"uniqueKey":"data.submitted_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","example":"2026-04-26T18:07:03.716411Z","readOnly":true,"uniqueKey":"data.submitted_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.submitted_at","typeLabel":"string\u003cdate-time> | null"},"verified_at":{"oneOf":[{"type":"string","format":"date-time","example":"2026-04-26T18:07:29.537926Z","readOnly":true,"uniqueKey":"data.verified_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","example":"2026-04-26T18:07:29.537926Z","readOnly":true,"uniqueKey":"data.verified_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.verified_at","typeLabel":"string\u003cdate-time> | null"},"expiring_at":{"oneOf":[{"type":"string","format":"date-time","example":"2027-04-26T18:07:29.537981Z","readOnly":true,"uniqueKey":"data.expiring_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","example":"2027-04-26T18:07:29.537981Z","readOnly":true,"uniqueKey":"data.expiring_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.expiring_at","typeLabel":"string\u003cdate-time> | null"},"delete_requested_at":{"oneOf":[{"type":"string","format":"date-time","description":"When deletion was requested. Set once the DIR enters `delete_requested`; `null` otherwise.","example":"2026-04-27T09:12:44.201820Z","readOnly":true,"uniqueKey":"data.delete_requested_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When deletion was requested. Set once the DIR enters `delete_requested`; `null` otherwise.","example":"2026-04-27T09:12:44.201820Z","readOnly":true,"uniqueKey":"data.delete_requested_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.delete_requested_at","typeLabel":"string\u003cdate-time> | null"},"webhook_url":{"oneOf":[{"type":"string","format":"uri","description":"`https://` URL that receives webhook notifications for this DIR's compliance-review outcomes. `null` when not subscribed.","example":"https://acmehealthcare.example.com/webhooks/branded-calling","uniqueKey":"data.webhook_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"`https://` URL that receives webhook notifications for this DIR's compliance-review outcomes. `null` when not subscribed.","example":"https://acmehealthcare.example.com/webhooks/branded-calling","uniqueKey":"data.webhook_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.webhook_url","typeLabel":"string\u003curi> | null"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"id":"16635d38-75a6-4481-82e8-69af60e05011","enterprise_id":"4a6192a4-573d-446d-b3ce-aff9117272a6","display_name":"Acme Plumbing","reselling":false,"certify_brand_is_accurate":true,"certify_no_shaft_content":true,"certify_ip_ownership":true,"authorizer_name":"Sam Owner","authorizer_email":"[email protected]","logo_url":"https://acmeplumbing.example.com/logo-256.bmp","call_reasons":[{"reason":"Appointment reminders","created_at":"2026-04-26T18:06:51.940749Z"}],"documents":[{"document_id":"2a7e8337-e803-4057-a4ae-26c40eb0bc6c","document_type":"business_registration","description":"Certificate of incorporation."}],"status":"draft","rejection_reasons":[{"code":"documentation_incomplete","title":"Documentation incomplete","detail":"Provided documents do not establish business identity.","message":"Please re-upload a clearer scan of the certificate."}],"rejected_at":"2023-11-07T05:31:56Z","created_at":"2026-04-26T18:06:51.940749Z","updated_at":"2026-04-26T18:09:24.785211Z","submitted_at":"2026-04-26T18:07:03.716411Z","verified_at":"2026-04-26T18:07:29.537926Z","expiring_at":"2027-04-26T18:07:29.537981Z","delete_requested_at":"2026-04-27T09:12:44.201820Z","webhook_url":"https://acmehealthcare.example.com/webhooks/branded-calling"}}}},"exampleType":"generated"}},"exampleType":"generated"},"11cd3db0-74d1-4386-b515-2c7e3ff8bff6":{"description":"An error occurred. The response carries the standard Telnyx error envelope.","content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","title","detail","meta"],"properties":{"code":{"type":"string","example":"10005","description":"Stable numeric Telnyx error catalog id. See `meta.url` for the full catalog entry.","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"title":{"type":"string","example":"Invalid parameters","description":"Short human-readable category, e.g. `Bad Request`, `Duplicate resource`, `Not Found`, `Forbidden`. Treat as advisory only - the stable identifier is `code`.","isRequired":true,"uniqueKey":"errors.items.[INDEX].title","typeLabel":"string"},"detail":{"type":"string","example":"field required","description":"Context-specific message describing what went wrong on this particular request. May embed offending values; do not rely on it for programmatic matching - branch on `code`.","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"meta":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","example":"https://developers.telnyx.com/docs/overview/errors/10005","isRequired":true,"uniqueKey":"errors.items.[INDEX].meta.url","typeLabel":"string\u003curi>"},"pending_check_ids":{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"errors.items.[INDEX].meta.pending_check_ids.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Set on `422 vetting_checks_incomplete` responses from `/admin/dir/{id}/approve` and `/admin/phone-number-batches/approve`. Lists the still-pending vetting check ids.","uniqueKey":"errors.items.[INDEX].meta.pending_check_ids","typeLabel":"string\u003cuuid>[]"},"pending_check_codes":{"type":"array","items":{"type":"string","uniqueKey":"errors.items.[INDEX].meta.pending_check_codes.items.[INDEX]","typeLabel":"string"},"description":"Codes of the pending vetting checks (e.g. `loa_signature_valid`).","uniqueKey":"errors.items.[INDEX].meta.pending_check_codes","typeLabel":"string[]"},"pending_check_labels":{"type":"array","items":{"type":"string","uniqueKey":"errors.items.[INDEX].meta.pending_check_labels.items.[INDEX]","typeLabel":"string"},"description":"Human-readable labels of the pending vetting checks.","uniqueKey":"errors.items.[INDEX].meta.pending_check_labels","typeLabel":"string[]"}},"description":"Carries `url` linking to the Telnyx error catalog entry for this `code`. Useful for forwarding the user to documentation.","isRequired":true,"uniqueKey":"errors.items.[INDEX].meta","typeLabel":"object"},"source":{"type":"object","description":"Optional pointer at the offending field of the request.","properties":{"pointer":{"type":"string","example":"/body/legal_name","uniqueKey":"errors.items.[INDEX].source.pointer","typeLabel":"string"},"parameter":{"type":"string","example":"page[size]","uniqueKey":"errors.items.[INDEX].source.parameter","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].source","typeLabel":"object"}},"description":"A single entry in the canonical Telnyx error envelope. `code` is the stable Telnyx error catalog id; the human-readable explanation lives at `meta.url`. `detail` is a context-specific message; `source.pointer` (when present) names the offending field of the request.","uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"List of one or more error entries. Order is not significant.","isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"}},"description":"Canonical Telnyx error envelope. Returned on every 4xx and 5xx response from this service. `errors` is non-empty; multiple entries indicate multiple distinct problems with the same request (e.g. one entry per invalid phone number on a bulk operation).","uniqueKey":"","typeLabel":"object"},"examples":{"validation_error":{"title":"validation_error","value":{"errors":[{"code":"10005","title":"Invalid parameters","detail":"field required","meta":{"url":"https://developers.telnyx.com/docs/overview/errors/10005"},"source":{"pointer":"/body/legal_name"}}]}},"bad_request":{"title":"bad_request","description":"Returned when the request itself is well-formed but the resource is in a state that disallows this action (e.g. updating a DIR while it is being vetted, or deleting an enterprise that still has DIRs in vetting).","value":{"errors":[{"code":"10015","title":"Bad Request","detail":"Cannot update DIR in 'verified' status","meta":{"url":"https://developers.telnyx.com/docs/overview/errors/10015"}}]}},"not_found":{"title":"not_found","value":{"errors":[{"code":"10009","title":"Resource not found","detail":"Enterprise not found.","meta":{"url":"https://developers.telnyx.com/docs/overview/errors/10009"}}]}},"conflict":{"title":"conflict","value":{"errors":[{"code":"10021","title":"Resource in use","detail":"DIR has 1 active infringement claim(s). Resolve the claim before making this change.","meta":{"url":"https://developers.telnyx.com/docs/overview/errors/10021"}}]}}},"exampleType":"examples"}},"exampleType":"examples"},"bd1355bf-af2e-45ab-843a-1c0e7ca0a253":{"description":"An error occurred. The response carries the standard Telnyx error envelope.","content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","title","detail","meta"],"properties":{"code":{"type":"string","example":"10005","description":"Stable numeric Telnyx error catalog id. See `meta.url` for the full catalog entry.","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"title":{"type":"string","example":"Invalid parameters","description":"Short human-readable category, e.g. `Bad Request`, `Duplicate resource`, `Not Found`, `Forbidden`. Treat as advisory only - the stable identifier is `code`.","isRequired":true,"uniqueKey":"errors.items.[INDEX].title","typeLabel":"string"},"detail":{"type":"string","example":"field required","description":"Context-specific message describing what went wrong on this particular request. May embed offending values; do not rely on it for programmatic matching - branch on `code`.","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"meta":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","example":"https://developers.telnyx.com/docs/overview/errors/10005","isRequired":true,"uniqueKey":"errors.items.[INDEX].meta.url","typeLabel":"string\u003curi>"},"pending_check_ids":{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"errors.items.[INDEX].meta.pending_check_ids.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Set on `422 vetting_checks_incomplete` responses from `/admin/dir/{id}/approve` and `/admin/phone-number-batches/approve`. Lists the still-pending vetting check ids.","uniqueKey":"errors.items.[INDEX].meta.pending_check_ids","typeLabel":"string\u003cuuid>[]"},"pending_check_codes":{"type":"array","items":{"type":"string","uniqueKey":"errors.items.[INDEX].meta.pending_check_codes.items.[INDEX]","typeLabel":"string"},"description":"Codes of the pending vetting checks (e.g. `loa_signature_valid`).","uniqueKey":"errors.items.[INDEX].meta.pending_check_codes","typeLabel":"string[]"},"pending_check_labels":{"type":"array","items":{"type":"string","uniqueKey":"errors.items.[INDEX].meta.pending_check_labels.items.[INDEX]","typeLabel":"string"},"description":"Human-readable labels of the pending vetting checks.","uniqueKey":"errors.items.[INDEX].meta.pending_check_labels","typeLabel":"string[]"}},"description":"Carries `url` linking to the Telnyx error catalog entry for this `code`. Useful for forwarding the user to documentation.","isRequired":true,"uniqueKey":"errors.items.[INDEX].meta","typeLabel":"object"},"source":{"type":"object","description":"Optional pointer at the offending field of the request.","properties":{"pointer":{"type":"string","example":"/body/legal_name","uniqueKey":"errors.items.[INDEX].source.pointer","typeLabel":"string"},"parameter":{"type":"string","example":"page[size]","uniqueKey":"errors.items.[INDEX].source.parameter","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].source","typeLabel":"object"}},"description":"A single entry in the canonical Telnyx error envelope. `code` is the stable Telnyx error catalog id; the human-readable explanation lives at `meta.url`. `detail` is a context-specific message; `source.pointer` (when present) names the offending field of the request.","uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"List of one or more error entries. Order is not significant.","isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"}},"description":"Canonical Telnyx error envelope. Returned on every 4xx and 5xx response from this service. `errors` is non-empty; multiple entries indicate multiple distinct problems with the same request (e.g. one entry per invalid phone number on a bulk operation).","uniqueKey":"","typeLabel":"object"},"examples":{"validation_error":{"title":"validation_error","value":{"errors":[{"code":"10005","title":"Invalid parameters","detail":"field required","meta":{"url":"https://developers.telnyx.com/docs/overview/errors/10005"},"source":{"pointer":"/body/legal_name"}}]}},"bad_request":{"title":"bad_request","description":"Returned when the request itself is well-formed but the resource is in a state that disallows this action (e.g. updating a DIR while it is being vetted, or deleting an enterprise that still has DIRs in vetting).","value":{"errors":[{"code":"10015","title":"Bad Request","detail":"Cannot update DIR in 'verified' status","meta":{"url":"https://developers.telnyx.com/docs/overview/errors/10015"}}]}},"not_found":{"title":"not_found","value":{"errors":[{"code":"10009","title":"Resource not found","detail":"Enterprise not found.","meta":{"url":"https://developers.telnyx.com/docs/overview/errors/10009"}}]}},"conflict":{"title":"conflict","value":{"errors":[{"code":"10021","title":"Resource in use","detail":"DIR has 1 active infringement claim(s). Resolve the claim before making this change.","meta":{"url":"https://developers.telnyx.com/docs/overview/errors/10021"}}]}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"1c1e4728-920b-41b2-af99-204405ee4449":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Telnyx API key. Generate one at https://portal.telnyx.com/#/app/api-keys.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"62f7e5fa-27e1-4c04-9cff-62e50a3390a2":{"url":"https://api.telnyx.com/v2","description":"Telnyx API v2 (production)"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Telnyx API key. Generate one at https://portal.telnyx.com/#/app/api-keys.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Telnyx API key. Generate one at https://portal.telnyx.com/#/app/api-keys.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi/source/external/branded-calling/branded-calling.json"},"subdomain":"telnyx","siteName":"Telnyx","title":"Update a DIR - Telnyx","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-19T14:56:15.489Z","originalFileLocation":"api-reference/display-identity-records/update-a-dir.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Edit a DIR. DIRs in draft, rejected, unsuccessful, or suspended can be edited freely: PATCH is a pure edit, status is never changed, and you re-vet by calling POST /v2/dir/{dir_id}/submit explicitly. A verified DIR can also be edited in place: a PATCH that changes any value returns the DIR to draft; the currently approved identity keeps displaying, and the edited content goes live only after you re-submit and the DIR is approved again. A PATCH that changes nothing (an empty body or values identical to the current ones) leaves the DIR verified, so idempotent retries are safe. Changing only bpo_authorizations or webhook_url is the exception: the DIR stays verified. Each BPO authorization is reviewed on its own instead. DIRs in any other status (submitted, in_review, expired, infringement_claimed, permanently_rejected) cannot be edited.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Telnyx\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/telnyx/MhCJ9JWG11MInbt6/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/telnyx/MhCJ9JWG11MInbt6/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/telnyx/MhCJ9JWG11MInbt6/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/telnyx/MhCJ9JWG11MInbt6/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/telnyx/MhCJ9JWG11MInbt6/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/telnyx/MhCJ9JWG11MInbt6/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/telnyx/MhCJ9JWG11MInbt6/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/telnyx/MhCJ9JWG11MInbt6/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/telnyx/MhCJ9JWG11MInbt6/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update a DIR - Telnyx\">\u003cmeta data-mint-head property=\"og:description\" content=\"Infrastructure for real-time agents. Voice, AI, Edge Compute\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Telnyx\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.telnyx.com/api-reference/display-identity-records/update-a-dir\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://telnyx.mintlify.app/_mintlify/api/og/v2?division=Display+Identity+Records+API\u0026amp;title=Update+a+DIR\u0026amp;description=Edit+a+DIR.+DIRs+in+%60draft%60%2C+%60rejected%60%2C+%60unsuccessful%60%2C+or+%60suspended%60+can+be+edited+freely%3A+PATCH+is+a+pure+edit%2C+%60status%60+is+never+changed%2C+and+you+re-vet+by\u0026amp;theme=0dd46d2166d1a00e34819206\u0026amp;signature=a985d093a0162c522879dd51f15b8cdb3886e66cfe0d0416906de8b82d14a3d0\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Update a DIR - Telnyx\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Infrastructure for real-time agents. Voice, AI, Edge Compute\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://telnyx.mintlify.app/_mintlify/api/og/v2?division=Display+Identity+Records+API\u0026amp;title=Update+a+DIR\u0026amp;description=Edit+a+DIR.+DIRs+in+%60draft%60%2C+%60rejected%60%2C+%60unsuccessful%60%2C+or+%60suspended%60+can+be+edited+freely%3A+PATCH+is+a+pure+edit%2C+%60status%60+is+never+changed%2C+and+you+re-vet+by\u0026amp;theme=0dd46d2166d1a00e34819206\u0026amp;signature=a985d093a0162c522879dd51f15b8cdb3886e66cfe0d0416906de8b82d14a3d0\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/telnyx/MhCJ9JWG11MInbt6/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Telnyx\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#00B688\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers.telnyx.com/api-reference/display-identity-records/update-a-dir\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/display-identity-records/update-a-dir.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://telnyx.com/#organization\",\"name\":\"Telnyx\",\"url\":\"https://telnyx.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://telnyx.com/favicon.ico\"},\"sameAs\":[\"https://x.com/telnyx\",\"https://www.linkedin.com/company/telnyx/\",\"https://github.com/team-telnyx\"]},{\"@type\":\"WebSite\",\"@id\":\"https://developers.telnyx.com#website\",\"name\":\"Telnyx\",\"url\":\"https://developers.telnyx.com\",\"publisher\":{\"@id\":\"https://telnyx.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developers.telnyx.com/api-reference/display-identity-records/update-a-dir#webpage\",\"url\":\"https://developers.telnyx.com/api-reference/display-identity-records/update-a-dir\",\"name\":\"Update a DIR\",\"description\":\"Edit a DIR. DIRs in draft, rejected, unsuccessful, or suspended can be edited freely: PATCH is a pure edit, status is never changed, and you re-vet by calling POST /v2/dir/{dir_id}/submit explicitly. A verified DIR can also be edited in place: a PATCH that changes any value returns the DIR to draft; the currently approved identity keeps displaying, and the edited content goes live only after you re-submit and the DIR is approved again. A PATCH that changes nothing (an empty body or values identical to the current ones) leaves the DIR verified, so idempotent retries are safe. Changing only bpo_authorizations or webhook_url is the exception: the DIR stays verified. Each BPO authorization is reviewed on its own instead. DIRs in any other status (submitted, in_review, expired, infringement_claimed, permanently_rejected) cannot be edited.\",\"dateModified\":\"2026-10-19T14:56:15.489Z\",\"isPartOf\":{\"@id\":\"https://developers.telnyx.com#website\"},\"breadcrumb\":{\"@id\":\"https://developers.telnyx.com/api-reference/display-identity-records/update-a-dir#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.telnyx.com/api-reference/display-identity-records/update-a-dir#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Branded Calling\",\"item\":\"https://developers.telnyx.com/docs/branded-calling/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API Reference\",\"item\":\"https://developers.telnyx.com/api-reference/enterprises/list-enterprises\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Display Identity Records\",\"item\":\"https://developers.telnyx.com/api-reference/display-identity-records/list-all-dirs-across-your-enterprises\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Display Identity Records API\",\"item\":\"https://developers.telnyx.com/api-reference/display-identity-records/list-all-dirs-across-your-enterprises\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Update a DIR\",\"item\":\"https://developers.telnyx.com/api-reference/display-identity-records/update-a-dir\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developers.telnyx.com/api-reference/display-identity-records/update-a-dir#apireference\",\"headline\":\"Update a DIR\",\"name\":\"Update a DIR\",\"description\":\"Edit a DIR. DIRs in draft, rejected, unsuccessful, or suspended can be edited freely: PATCH is a pure edit, status is never changed, and you re-vet by calling POST /v2/dir/{dir_id}/submit explicitly. A verified DIR can also be edited in place: a PATCH that changes any value returns the DIR to draft; the currently approved identity keeps displaying, and the edited content goes live only after you re-submit and the DIR is approved again. A PATCH that changes nothing (an empty body or values identical to the current ones) leaves the DIR verified, so idempotent retries are safe. Changing only bpo_authorizations or webhook_url is the exception: the DIR stays verified. Each BPO authorization is reviewed on its own instead. DIRs in any other status (submitted, in_review, expired, infringement_claimed, permanently_rejected) cannot be edited.\",\"url\":\"https://developers.telnyx.com/api-reference/display-identity-records/update-a-dir\",\"mainEntityOfPage\":{\"@id\":\"https://developers.telnyx.com/api-reference/display-identity-records/update-a-dir#webpage\"},\"dateModified\":\"2026-10-19T14:56:15.489Z\",\"publisher\":{\"@id\":\"https://telnyx.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.telnyx.com#website\"}}]}\u003c/script>","siteName":"Telnyx","nav":{"global":{"anchors":[{"anchor":"Home","icon":"house","href":"/docs/overview"}]},"products":[{"product":"Home","icon":"house","pages":[{"title":"Home","href":"/docs/overview"}]},{"product":"Other APIs","icon":"ellipsis","pages":[{"title":"Other APIs","href":"/docs/other-apis"}]},{"product":"Agent Platform","icon":"circle-nodes","pages":[{"title":"Agent Platform","href":"/docs/agents"}]},{"product":"AI","icon":"microchip-ai","pages":[{"title":"AI","href":"/docs/inference/models"}]},{"product":"Voice","icon":"waveform","pages":[{"title":"Voice","href":"/docs/voice/overview"}]},{"product":"Compute","icon":"server","pages":[{"title":"Compute","href":"/docs/edge-compute/platform-overview"}]},{"product":"Storage","icon":"hard-drive","pages":[{"title":"Storage","href":"/docs/cloud-storage/overview"}]},{"product":"Virtual Private Cloud","icon":"cloud","pages":[{"title":"Virtual Private Cloud","href":"/docs/network/overview"}]},{"product":"Calling","icon":"phone","tabs":[{"tab":"Voice API","icon":"phone-volume","pages":[{"title":"Voice API","href":"/docs/voice/programmable-voice/voice-api-fundamentals"}]},{"tab":"TeXML","icon":"code","pages":[{"title":"TeXML","href":"/docs/voice/programmable-voice/texml-fundamentals"}]},{"tab":"SIP Trunking","icon":"headset","pages":[{"title":"SIP Trunking","href":"/docs/voice/sip-trunking/get-started"}]},{"tab":"UAC Connections","icon":"plug","pages":[{"title":"UAC Connections","href":"/docs/voice/uac-connections"}]},{"tab":"WebRTC","icon":"browser","pages":[{"title":"WebRTC","href":"/docs/voice/webrtc/fundamentals"}]},{"tab":"Trusted Calling","icon":"shield-check","groups":[{"group":"Branded Calling","tag":"BETA","pages":[{"title":"Branded Calling","sidebarTitle":"Overview","href":"/docs/branded-calling/overview"},{"title":"Quickstart","sidebarTitle":"Quickstart","href":"/docs/branded-calling/quickstart"},{"title":"Pricing","sidebarTitle":"Pricing","href":"/docs/branded-calling/pricing"},{"group":"Enterprises","pages":[{"title":"Register an enterprise for Branded Calling","sidebarTitle":"Overview","href":"/docs/branded-calling/enterprises/index"}]},{"group":"Display Identity Records","pages":[{"title":"Create and manage Display Identity Records (DIRs)","sidebarTitle":"Overview","href":"/docs/branded-calling/brands/index"}]},{"group":"BPO (Business Process Outsourcer)","pages":[{"title":"BPO (Business Process Outsourcer) support","sidebarTitle":"Overview","href":"/docs/branded-calling/bpo/index"}]},{"group":"Phone Numbers","pages":[{"title":"Phone Numbers","sidebarTitle":"Overview","href":"/docs/branded-calling/bc-phone-numbers/index"}]},{"group":"Call Reasons","pages":[{"title":"Call Reasons","sidebarTitle":"Overview","href":"/docs/branded-calling/call-reasons/index"}]},{"group":"Terms of Service","pages":[{"title":"Terms of Service","sidebarTitle":"Overview","href":"/docs/branded-calling/terms-of-service/index"}]},{"group":"Infringement Claims","pages":[{"title":"Contest and resolve DIR infringement claims","sidebarTitle":"Overview","href":"/docs/branded-calling/infringement-claims/index"}]},{"group":"API Reference","pages":[{"group":"Enterprises","pages":[{"group":"Enterprises API","pages":[{"title":"List enterprises","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /enterprises","href":"/api-reference/enterprises/list-enterprises"},{"title":"Create an enterprise","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /enterprises","href":"/api-reference/enterprises/create-an-enterprise"},{"title":"Delete an enterprise","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json delete /enterprises/{enterprise_id}","href":"/api-reference/enterprises/delete-an-enterprise"},{"title":"Get an enterprise","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /enterprises/{enterprise_id}","href":"/api-reference/enterprises/get-an-enterprise"},{"title":"Replace an enterprise","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json put /enterprises/{enterprise_id}","href":"/api-reference/enterprises/replace-an-enterprise"},{"title":"Activate Branded Calling on an enterprise","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /enterprises/{enterprise_id}/branded_calling","href":"/api-reference/enterprises/activate-branded-calling-on-an-enterprise"}]},{"group":"Email Verification API","pages":[{"title":"Send an email-ownership verification code to an enterprise","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /enterprises/{enterprise_id}/verify_email","href":"/api-reference/email-verification/send-an-email-ownership-verification-code-to-an-enterprise"},{"title":"Confirm an enterprise email-ownership verification code","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /enterprises/{enterprise_id}/verify_email/confirm","href":"/api-reference/email-verification/confirm-an-enterprise-email-ownership-verification-code"}]},{"group":"Display Identity Records API","pages":[{"title":"List DIRs in an enterprise","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /enterprises/{enterprise_id}/dir","href":"/api-reference/display-identity-records/list-dirs-in-an-enterprise"},{"title":"Create a Display Identity Record (DIR)","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /enterprises/{enterprise_id}/dir","href":"/api-reference/display-identity-records/create-a-display-identity-record-dir"}]}]},{"group":"Display Identity Records","pages":[{"group":"Display Identity Records API","pages":[{"title":"List all DIRs across your enterprises","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /dir","href":"/api-reference/display-identity-records/list-all-dirs-across-your-enterprises"},{"title":"Request deletion of a DIR","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json delete /dir/{dir_id}","href":"/api-reference/display-identity-records/request-deletion-of-a-dir"},{"title":"Get a DIR by id","description":"Returns a single DIR by id. The enterprise is resolved server-side from the DIR id. Returns `404` if the DIR does not exist or is not yours.","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /dir/{dir_id}","href":"/api-reference/display-identity-records/get-a-dir-by-id"},{"title":"Update a DIR","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json patch /dir/{dir_id}","href":"/api-reference/display-identity-records/update-a-dir"},{"title":"Submit a DIR for vetting","description":"Submit a DIR for vetting. Sends the DIR back through the vetting cycle from any non-terminal status. When re-submitting from `suspended` or `expired`, the DIR's previous Branded Calling registration is torn down transactionally and its phone numbers flip back to `submitted`. When re-submitting from `verified`, the existing registration stays live throughout the new vetting cycle.\n\nReturns `400` from `submitted`/`in_review`/`permanently_rejected`. Returns `400` if the DIR has an unresolved infringement claim.","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /dir/{dir_id}/submit","href":"/api-reference/display-identity-records/submit-a-dir-for-vetting"},{"title":"Render the Branded Calling LOA for a DIR","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /dir/{dir_id}/loa","href":"/api-reference/display-identity-records/render-the-branded-calling-loa-for-a-dir"},{"title":"Render the BPO Authorization LOA for a DIR","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /dir/{dir_id}/bpo_loa","href":"/api-reference/display-identity-records/render-the-bpo-authorization-loa-for-a-dir"},{"title":"List a DIR's authorized BPOs","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /dir/{dir_id}/bpo_authorizations","href":"/api-reference/display-identity-records/list-a-dirs-authorized-bpos"}]},{"group":"Email Verification API","pages":[{"title":"Send an email-ownership verification code","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /dir/{dir_id}/verify_email","href":"/api-reference/email-verification/send-an-email-ownership-verification-code"},{"title":"Confirm an email-ownership verification code","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /dir/{dir_id}/verify_email/confirm","href":"/api-reference/email-verification/confirm-an-email-ownership-verification-code"},{"title":"Get email-ownership verification status","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /dir/{dir_id}/verify_email","href":"/api-reference/email-verification/get-email-ownership-verification-status"}]},{"group":"DIR References API","pages":[{"title":"List a DIR's references","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /dir/{dir_id}/references","href":"/api-reference/dir-references/list-a-dirs-references"},{"title":"Submit a DIR's references","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /dir/{dir_id}/references","href":"/api-reference/dir-references/submit-a-dirs-references"},{"title":"Update a DIR reference","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json patch /dir/{dir_id}/references/{ref_type}/{slot}","href":"/api-reference/dir-references/update-a-dir-reference"}]},{"group":"Reference Data API","pages":[{"title":"List supported DIR document types","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /dir/document_types","href":"/api-reference/reference-data/list-supported-dir-document-types"}]},{"group":"Comments API","pages":[{"title":"List comments on a DIR","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /dir/{dir_id}/comments","href":"/api-reference/comments/list-comments-on-a-dir"},{"title":"Post a comment on a DIR","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /dir/{dir_id}/comments","href":"/api-reference/comments/post-a-comment-on-a-dir"}]}]},{"group":"Phone Numbers","pages":[{"group":"Phone Numbers API","pages":[{"title":"Remove phone numbers from a DIR","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json delete /dir/{dir_id}/phone_numbers","href":"/api-reference/phone-numbers/remove-phone-numbers-from-a-dir"},{"title":"List phone numbers attached to a DIR","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /dir/{dir_id}/phone_numbers","href":"/api-reference/phone-numbers/list-phone-numbers-attached-to-a-dir"},{"title":"Add phone numbers to a DIR","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /dir/{dir_id}/phone_numbers","href":"/api-reference/phone-numbers/add-phone-numbers-to-a-dir"}]},{"group":"Phone Number Batches API","pages":[{"title":"List phone-number batches for a DIR","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /dir/{dir_id}/phone_number_batches","href":"/api-reference/phone-number-batches/list-phone-number-batches-for-a-dir"},{"title":"Get a phone-number batch","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /dir/{dir_id}/phone_number_batches/{batch_id}","href":"/api-reference/phone-number-batches/get-a-phone-number-batch"}]}]},{"group":"Call Reasons","pages":[{"title":"List standard call reasons","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /call_reasons","href":"/api-reference/reference-data/list-standard-call-reasons"},{"title":"Validate a list of call reasons","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /call_reasons/validate","href":"/api-reference/reference-data/validate-a-list-of-call-reasons"}]},{"group":"Infringement Claims","pages":[{"title":"List infringement claims for a DIR","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /dir/{dir_id}/infringement_claims","href":"/api-reference/infringement-claims/list-infringement-claims-for-a-dir"},{"title":"Update a DIR to resolve an infringement concern","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json put /dir/{dir_id}/infringement_update","href":"/api-reference/infringement-claims/update-a-dir-to-resolve-an-infringement-concern"},{"title":"Get an infringement claim","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /infringement_claims/{claim_id}","href":"/api-reference/infringement-claims/get-an-infringement-claim"},{"title":"Contest an infringement claim","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /infringement_claims/{claim_id}/contest","href":"/api-reference/infringement-claims/contest-an-infringement-claim"}]},{"group":"Terms of Service","pages":[{"title":"Agree to the Branded Calling Terms of Service","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json post /terms_of_service/branded_calling/agree","href":"/api-reference/terms-of-service/agree-to-the-branded-calling-terms-of-service"},{"title":"Get Terms of Service information","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /terms_of_service/info","href":"/api-reference/terms-of-service/get-terms-of-service-information"},{"title":"Get the calling user's Terms of Service status","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /terms_of_service/status","href":"/api-reference/terms-of-service/get-the-calling-users-terms-of-service-status"},{"title":"List the calling user's Terms of Service agreements","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /terms_of_service/agreements","href":"/api-reference/terms-of-service/list-the-calling-users-terms-of-service-agreements"},{"title":"Get a Terms of Service agreement by id","deprecated":null,"version":null,"openapi":"/openapi/source/external/branded-calling/branded-calling.json get /terms_of_service/agreements/{agreement_id}","href":"/api-reference/terms-of-service/get-a-terms-of-service-agreement-by-id"}]}]}]},{"group":"For AI Agents","pages":[{"title":"Trusted Calling llms.txt","sidebarTitle":"Trusted Calling llms txt","href":"/docs/development/llms/calling-trusted-calling-llms-txt/index"},{"title":"Trusted Calling llms-full.txt","sidebarTitle":"Trusted Calling llms full txt","href":"/docs/development/llms/calling-trusted-calling-llms-full-txt/index"}]}]}]},{"product":"Messaging","icon":"message","pages":[{"title":"Messaging","href":"/docs/messaging/messages/send-message"}]},{"product":"Numbers","icon":"hashtag","pages":[{"title":"Numbers","href":"/docs/numbers/phone-numbers/getting-started"}]},{"product":"Wireless","icon":"broadcast-tower","pages":[{"title":"Wireless","href":"/docs/iot-sim/wireless-overview"}]}]},"title":"Update a DIR - Telnyx","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["10e4515597","c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["BannerMarkdown-B-Glu166.js","dist-zbf22OZA.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-Cs6nMGht.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","OpenApiReferenceProvider-DmVyH30O.js","utils-BHQqGGOd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CD-E4BIt.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp5Lq9Ds.js","snippetPresets-C4xAVCFP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-CBCH2P7b.js","ApiExamples-CgXVLxUC.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BF8I5oUf.js","shallow-Byd0lWnC.js","getApiPlaygroundDisplay-BGOZG1OK.js","CodeSnippet-CpvQL0CY.js","CodeSnippets-B8wkBKXa.js","getPastedJson-Ry3scI3Y.js","icon-D7a9HcdD.js","MethodPill-CJ8pmHhz.js","DuplicateIcon-rh1HJF0t.js","createIcon-DvGznqYs.js","DynamicMarkdown-Cc6AuSHS.js","SectionHeading-B4A0S-ep.js","axios-vUo_bRtp.js","Markdown-Cc16CX65.js","AssistantPageLink-C_fs-y5n.js"]}