Move the IP to another pool, or pause/resume its warm-up ramp. One change applies per request. pool_id takes precedence over warm-up changes. Otherwise, use warmup_paused or warmup.paused; a Boolean warmup_paused takes precedence. Moving the last IP out of a pool requires force: true and drain: true. The PTR hostname is managed by Telnyx: a request that includes ptr_hostname returns 422 unless pool_id or a warm-up field is present, in which case ptr_hostname is ignored.
PATCH
/
email
/
dedicated_ips
/
{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 DedicatedIpShow = await client.email.dedicatedIps.update('id', { pool_id: 'pool_id',});console.log(DedicatedIpShow.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
)
dedicated_ip_show = client.email.dedicated_ips.update(
id="id",
pool_id="pool_id",
)
print(dedicated_ip_show.data)
Telnyx API key supplied as Authorization: Bearer <token>. In production, auth may be validated by the API gateway and forwarded via Telnyx auth headers.
Applies one change per request. pool_id takes precedence over warm-up changes: when it is present, the IP moves to that pool (with weight, force, and drain) and other fields are ignored. Otherwise, use warmup_paused or warmup.paused; a Boolean warmup_paused takes precedence. The PTR hostname is managed by Telnyx and cannot be changed: when neither pool_id nor a warm-up field is present, a body that includes ptr_hostname (including null) returns 422 and the IP is unchanged. A body with none of these fields returns the IP unchanged.
Move the IP to this pool, replacing its current membership. Use the IP's current pool to change only its weight. To take an IP out of a pool, use DELETE /email/ip_pools/{id}/ips/{ip_id}.
Set together with force: true to move the last IP out of its current pool. Acknowledges that mail routed to the emptied pool is held. Used only with pool_id.
Pause (true) or resume (false) the warm-up ramp; equivalent to the pause_warmup and resume_warmup actions. A Boolean value takes precedence over warmup.paused. When a pause field is present and pool_id is absent, supplying neither pause field as a Boolean invokes resume.
A dedicated sending IP address owned by the account.
Show child attributes
Was this page helpful?
JavaScript
import Telnyx from 'telnyx';const client = new Telnyx({ apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted});const DedicatedIpShow = await client.email.dedicatedIps.update('id', { pool_id: 'pool_id',});console.log(DedicatedIpShow.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
)
dedicated_ip_show = client.email.dedicated_ips.update(
id="id",
pool_id="pool_id",
)
print(dedicated_ip_show.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":""},"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":"6af453c09ab9c7bf98cbb051","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"API Reference","count":597},{"language":"default","tag":"Calling","count":592},{"language":"default","tag":"Other APIs","count":406},{"language":"default","tag":"AI","count":391},{"language":"default","tag":"Messaging","count":353},{"language":"default","tag":"Numbers","count":287},{"language":"default","tag":"Agent Platform","count":282},{"language":"default","tag":"Assistants","count":202},{"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":"custom-rbac-roles","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":"rbac-expansion","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":"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":"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":"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":"full-page-search","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":"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":"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":"turbopuffer-dual-write","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},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"[class*=\"sidebar\"] [class*=\"tag\"],[class*=\"sidebar\"] [class*=\"badge\"],nav [class*=\"tag\"],nav [class*=\"badge\"]{font-size:0.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\"]){display:none}.nav-tabs a.nav-tabs-item:not([aria-current=\"location\"]){display:none}#navbar div:has(>div>.nav-tabs>a.nav-tabs-item:first-child:last-child){display:none}@media (width >= 64rem){.txd-side{display:block}button[data-component-part=\"products-selector-trigger\"],button.tx-product-switcher{display:none!important}}#mobile-nav [data-component-part=\"products-selector-trigger\"],#mobile-nav #navigation-items>div:has(>div>button[aria-haspopup=\"menu\"]),#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 a,#mobile-nav .tx-mobile-directory .tx-dir-suite-head{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}}@media (width \u003c 64rem){.txd-shell{display:block;padding:2rem 1.5rem 5rem}.txd-side{display:none}.txd-main{margin-left:0}}:is(#tx-directory,.tx-mobile-directory){margin:0 0 0.5rem;padding:0 0.5rem 0 1rem}:is(#tx-directory,.tx-mobile-directory) .tx-dir-label{font-size:0.72rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;opacity:0.55;margin:0 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:0.875rem;line-height:1.25rem;padding:0.35rem 0.5rem;border-radius:0.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 / 0.04)}:is(#tx-directory,.tx-mobile-directory) .tx-dir-link[aria-current=\"page\"]{color:#00b688;background:transparent;box-shadow:none;font-weight:400;text-shadow:-0.2px 0 0 currentColor, 0.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 / 0.06)}html.dark :is(#tx-directory,.tx-mobile-directory) .tx-dir-link[aria-current=\"page\"]{color:#5eead4;background:transparent;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:0.45;background:transparent;color:inherit}:is(#tx-directory,.tx-mobile-directory) .tx-dir-soon sup{font-size:0.6rem;line-height:1;letter-spacing:0.05em;text-transform:uppercase;margin-left:0.4rem;vertical-align:super}:is(#tx-directory,.tx-mobile-directory) .tx-dir-suite{margin-bottom:0.15rem}:is(#tx-directory,.tx-mobile-directory) .tx-dir-suite-head{display:flex;align-items:center;cursor:pointer;user-select:none;font-size:0.875rem;line-height:1.25rem;font-weight:500;padding:0.35rem 0.5rem;border-radius:0.375rem;color:rgb(55 65 81)}html.dark :is(#tx-directory,.tx-mobile-directory) .tx-dir-suite-head{color:rgb(156 163 175)}:is(#tx-directory,.tx-mobile-directory) .tx-dir-suite-head:hover{color:rgb(17 24 39);background:rgb(0 0 0 / 0.04)}html.dark :is(#tx-directory,.tx-mobile-directory) .tx-dir-suite-head:hover{color:rgb(229 231 235);background:rgb(255 255 255 / 0.06)}:is(#tx-directory,.tx-mobile-directory) .tx-dir-suite-head::after{content:'';width:0.42rem;height:0.42rem;margin-left:auto;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform 0.15s;flex-shrink:0;opacity:0.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 / 0.04);font-weight:600}html.dark :is(#tx-directory,.tx-mobile-directory) .tx-dir-suite.open>.tx-dir-suite-head{color:rgb(229 231 235);background:rgb(255 255 255 / 0.06)}: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:0.15rem 0 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:0.875rem;line-height:1.25rem;padding:0.3rem 0.5rem 0.3rem 1.6rem;border-radius:0.375rem;color:rgb(107 114 128);text-decoration:none}:is(#tx-directory,.tx-mobile-directory) .tx-dir-section-item{font-weight:500}html.dark :is(#tx-directory,.tx-mobile-directory) li a{color:rgb(156 163 175)}:is(#tx-directory,.tx-mobile-directory) li a:hover{color:rgb(17 24 39);background:rgb(0 0 0 / 0.04)}html.dark :is(#tx-directory,.tx-mobile-directory) li a:hover{color:rgb(229 231 235);background:rgb(255 255 255 / 0.06)}:is(#tx-directory,.tx-mobile-directory) .tx-dir-icon{display:inline-block;width:1rem;height:1rem;flex-shrink:0;margin-right:0.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-door-open{-webkit-mask-image:url(\"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/door-open.svg\");mask-image:url(\"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/door-open.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:-0.01em;margin:1.2rem 0 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:0.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 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 0.2rem;opacity:0.85}.txd-main .txd-p{margin:0.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-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 .txd-follow-up a:hover{text-decoration:underline}.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-search input,.rm-area-select,.rm-collapse,.rm-clear,.rm-empty button{min-height:2.5rem;color:inherit;background:transparent;border:1px solid var(--rm-border);border-radius:.5rem;font:inherit;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,.rm-clear,.rm-empty button{padding:.5rem .75rem;font-weight:650;cursor:pointer}.rm-search input:focus-visible,.rm-area-select:focus-visible,.rm-collapse:focus-visible,.rm-clear:focus-visible,.rm-empty button:focus-visible{outline:2px solid #00b688;outline-offset:2px;border-color:#00b688;box-shadow:none!important}.rm-collapse:hover,.rm-clear:hover,.rm-empty button:hover{color:#08785d;background:var(--rm-soft)}.dark .rm-collapse:hover,.dark .rm-clear: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-resource-list tbody tr[hidden],.rm-explorer h2[hidden],.rm-resource-list[hidden],.rm-empty[hidden],.rm-collapse[hidden],.rm-clear[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:transparent;border:0;cursor:pointer}.rm-section-toggle:hover,.rm-section-toggle:focus-visible{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-shortcut{display:none}.rm-area-wrap,.rm-area-select{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 thead{display:none}.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 code,.rm-resource-list tbody td a{min-width:0;white-space:normal!important;overflow-wrap:anywhere}}@media (prefers-reduced-motion: reduce){.rm-explorer *,.rm-explorer *::before,.rm-explorer *::after{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%}}@media (min-width: 768px){.tx-table-grid-3 table{table-layout:fixed}.tx-table-grid-3 table :is(th,td):first-child{width:22%}.tx-table-grid-3 table :is(th,td):last-child{width:18%}}.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/dedicated-ips/update-a-dedicated-ip","slug":"/api-reference/dedicated-ips/update-a-dedicated-ip","pageMetadata":{"title":"Update a dedicated IP","description":"Move the IP to another pool, or pause/resume its warm-up ramp. One change applies per request. `pool_id` takes precedence over warm-up changes. Otherwise, use `warmup_paused` or `warmup.paused`; a Boolean `warmup_paused` takes precedence. Moving the last IP out of a pool requires `force: true` and `drain: true`. The PTR hostname is managed by Telnyx: a request that includes `ptr_hostname` returns `422` unless `pool_id` or a warm-up field is present, in which case `ptr_hostname` is ignored.","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json patch /email/dedicated_ips/{id}","href":"/api-reference/dedicated-ips/update-a-dedicated-ip","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: [\"Move the IP to another pool, or pause/resume its warm-up ramp. One change applies per request. \", _jsx(_components.code, {\n children: \"pool_id\"\n }), \" takes precedence over warm-up changes. Otherwise, use \", _jsx(_components.code, {\n children: \"warmup_paused\"\n }), \" or \", _jsx(_components.code, {\n children: \"warmup.paused\"\n }), \"; a Boolean \", _jsx(_components.code, {\n children: \"warmup_paused\"\n }), \" takes precedence. Moving the last IP out of a pool requires \", _jsx(_components.code, {\n children: \"force: true\"\n }), \" and \", _jsx(_components.code, {\n children: \"drain: true\"\n }), \". The PTR hostname is managed by Telnyx: a request that includes \", _jsx(_components.code, {\n children: \"ptr_hostname\"\n }), \" returns \", _jsx(_components.code, {\n children: \"422\"\n }), \" unless \", _jsx(_components.code, {\n children: \"pool_id\"\n }), \" or a warm-up field is present, in which case \", _jsx(_components.code, {\n children: \"ptr_hostname\"\n }), \" is ignored.\"]\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 dedicated IP","description":"Move the IP to another pool, or pause/resume its warm-up ramp. One change applies per request. `pool_id` takes precedence over warm-up changes. Otherwise, use `warmup_paused` or `warmup.paused`; a Boolean `warmup_paused` takes precedence. Moving the last IP out of a pool requires `force: true` and `drain: true`. The PTR hostname is managed by Telnyx: a request that includes `ptr_hostname` returns `422` unless `pool_id` or a warm-up field is present, in which case `ptr_hostname` is ignored.","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json patch /email/dedicated_ips/{id}","href":"/api-reference/dedicated-ips/update-a-dedicated-ip","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/41d9633b1a2dd405/scripts/tests/generate-llms-txt.test.js","/_mintlify/custom/telnyx/8851ad5fd6e9b5c7/scripts/tests/direct-source-workflows.test.js","/_mintlify/custom/telnyx/1cd11353bb65f5a7/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/9ffa8f6166445a46/scripts/docs/generate-llms-txt.js","/_mintlify/custom/telnyx/f1f111fe784c3ede/scripts/docs/update-tts-voices.js","/_mintlify/custom/telnyx/c48ad0189f7f1c57/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/660ec334a362cf1c/home-directory.js","/_mintlify/custom/telnyx/33d3f1dbdec08735/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/abc2169efcd5115c/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":{"operationId":"updateDedicatedIp","summary":"Update a dedicated IP","description":"Move the IP to another pool, or pause/resume its warm-up ramp. One change applies per request. `pool_id` takes precedence over warm-up changes. Otherwise, use `warmup_paused` or `warmup.paused`; a Boolean `warmup_paused` takes precedence. Moving the last IP out of a pool requires `force: true` and `drain: true`. The PTR hostname is managed by Telnyx: a request that includes `ptr_hostname` returns `422` unless `pool_id` or a warm-up field is present, in which case `ptr_hostname` is ignored.","tags":["Dedicated IPs"],"parameters":["c5ede72f-7027-47e3-a95c-e8745eb53843"],"requestBody":"0628450d-19a8-49ef-97fa-7d75b21b1868","responses":{"200":"1ec8bfc4-fa54-486a-97ef-9cdf8ac8ab12","400":"b844f9c8-8458-47dc-a2bf-1cf2572851f7","401":"5d9c9942-fc46-4d9c-8f90-373ff9b7befc","404":"cbda030c-42a1-4ed5-b458-f847f77e1f17","409":"edb72b2b-2253-4fc6-97ac-18e1e4729913","422":"5e5ab02d-f171-421f-8b7a-98fc9da09d74"},"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 DedicatedIpShow = await client.email.dedicatedIps.update('id', {\n pool_id: 'pool_id',\n});\n\nconsole.log(DedicatedIpShow.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)\ndedicated_ip_show = client.email.dedicated_ips.update(\n id=\"id\",\n pool_id=\"pool_id\",\n)\nprint(dedicated_ip_show.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\tdedicatedIP, err := client.Email.DedicatedIps.Update(\n\t\tcontext.TODO(),\n\t\t\"id\",\n\t\ttelnyx.EmailDedicatedIPUpdateParams{\n\t\t\tPoolID: telnyx.String(\"pool_id\"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", dedicatedIP.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.email.dedicatedIps.DedicatedIpUpdateParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n TelnyxClient client = TelnyxOkHttpClient.fromEnv();\n\n DedicatedIpUpdateParams params = DedicatedIpUpdateParams.builder()\n .poolId(\"pool_id\")\n .build();\n var response = client.email().dedicatedIps().update(\"id\", params);\n }\n}"},{"lang":"Ruby","source":"require \"telnyx\"\n\ntelnyx = Telnyx::Client.new(api_key: \"My API Key\")\n\ndedicated_ip_show = telnyx.email.dedicated_ips.update(\"id\", pool_id: \"pool_id\")\n\nputs(dedicated_ip_show)"},{"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 $dedicated_ip_show = $client->email->dedicatedIps->update(\n 'id',\n pool_id: 'pool_id',\n );\n\n var_dump($dedicated_ip_show);\n} catch (APIException $e) {\n echo $e->getMessage();\n}"},{"lang":"CLI","source":"telnyx email:dedicated-ips update \\\n --api-key 'My API Key' \\\n --id id \\\n --pool-id pool_id"}],"method":"patch","type":"path","servers":["ba228b30-2f2a-4f83-8934-4e3ba1c84f11"],"security":["7b51e92f-3d92-487d-a058-03c4cd5c2c42"],"path":"/email/dedicated_ips/{id}","baseUrlOptions":["https://api.telnyx.com/v2"],"title":"Update a dedicated IP","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 DedicatedIpShow = await client.email.dedicatedIps.update('id', {\n pool_id: 'pool_id',\n});\n\nconsole.log(DedicatedIpShow.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)\ndedicated_ip_show = client.email.dedicated_ips.update(\n id=\"id\",\n pool_id=\"pool_id\",\n)\nprint(dedicated_ip_show.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\tdedicatedIP, err := client.Email.DedicatedIps.Update(\n\t\tcontext.TODO(),\n\t\t\"id\",\n\t\ttelnyx.EmailDedicatedIPUpdateParams{\n\t\t\tPoolID: telnyx.String(\"pool_id\"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", dedicatedIP.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.email.dedicatedIps.DedicatedIpUpdateParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n TelnyxClient client = TelnyxOkHttpClient.fromEnv();\n\n DedicatedIpUpdateParams params = DedicatedIpUpdateParams.builder()\n .poolId(\"pool_id\")\n .build();\n var response = client.email().dedicatedIps().update(\"id\", params);\n }\n}"},{"lang":"Ruby","source":"require \"telnyx\"\n\ntelnyx = Telnyx::Client.new(api_key: \"My API Key\")\n\ndedicated_ip_show = telnyx.email.dedicated_ips.update(\"id\", pool_id: \"pool_id\")\n\nputs(dedicated_ip_show)"},{"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 $dedicated_ip_show = $client->email->dedicatedIps->update(\n 'id',\n pool_id: 'pool_id',\n );\n\n var_dump($dedicated_ip_show);\n} catch (APIException $e) {\n echo $e->getMessage();\n}"},{"lang":"CLI","source":"telnyx email:dedicated-ips update \\\n --api-key 'My API Key' \\\n --id id \\\n --pool-id pool_id"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{"c5ede72f-7027-47e3-a95c-e8745eb53843":{"name":"id","in":"path","required":true,"description":"The dedicated IP identifier (UUID).","schema":{"type":"string","format":"uuid","isRequired":true,"description":"The dedicated IP identifier (UUID).","uniqueKey":"","typeLabel":"string\u003cuuid>"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Applies one change per request. `pool_id` takes precedence over warm-up changes: when it is present, the IP moves to that pool (with `weight`, `force`, and `drain`) and other fields are ignored. Otherwise, use `warmup_paused` or `warmup.paused`; a Boolean `warmup_paused` takes precedence. The PTR hostname is managed by Telnyx and cannot be changed: when neither `pool_id` nor a warm-up field is present, a body that includes `ptr_hostname` (including `null`) returns `422` and the IP is unchanged. A body with none of these fields returns the IP unchanged.","properties":{"pool_id":{"type":"string","format":"uuid","description":"Move the IP to this pool, replacing its current membership. Use the IP's current pool to change only its weight. To take an IP out of a pool, use `DELETE /email/ip_pools/{id}/ips/{ip_id}`.","uniqueKey":"pool_id","typeLabel":"string\u003cuuid>"},"weight":{"type":"integer","minimum":1,"default":100,"description":"Routing weight in the target pool. Used only with `pool_id`.","uniqueKey":"weight","typeLabel":"integer"},"force":{"type":"boolean","default":false,"description":"Set together with `drain: true` to move the last IP out of its current pool. Used only with `pool_id`.","uniqueKey":"force","typeLabel":"boolean"},"drain":{"type":"boolean","default":false,"description":"Set together with `force: true` to move the last IP out of its current pool. Acknowledges that mail routed to the emptied pool is held. Used only with `pool_id`.","uniqueKey":"drain","typeLabel":"boolean"},"warmup_paused":{"type":"boolean","description":"Pause (`true`) or resume (`false`) the warm-up ramp; equivalent to the `pause_warmup` and `resume_warmup` actions. A Boolean value takes precedence over `warmup.paused`. When a pause field is present and `pool_id` is absent, supplying neither pause field as a Boolean invokes resume.","uniqueKey":"warmup_paused","typeLabel":"boolean"},"warmup":{"type":"object","description":"Alias for `warmup_paused`.","properties":{"paused":{"type":"boolean","description":"Pause (`true`) or resume (`false`) the warm-up ramp. Used only when `warmup_paused` is not a Boolean.","uniqueKey":"warmup.paused","typeLabel":"boolean"}},"uniqueKey":"warmup","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"pool_id":"9b1c4d70-abcd-4e5f-8a9b-0c1d2e3f4a5b","weight":100},"examples":{"Example":{"title":"Example","value":{"pool_id":"9b1c4d70-abcd-4e5f-8a9b-0c1d2e3f4a5b","weight":100}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"1ec8bfc4-fa54-486a-97ef-9cdf8ac8ab12":{"description":"Updated dedicated IP","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","description":"A dedicated sending IP address owned by the account.","properties":{"id":{"type":"string","format":"uuid","uniqueKey":"data.id","typeLabel":"string\u003cuuid>"},"record_type":{"type":"string","enum":["dedicated_ip"],"uniqueKey":"data.record_type","typeLabel":"enum\u003cstring>"},"ip_address":{"type":"string","description":"The allocated IPv4/IPv6 address.","uniqueKey":"data.ip_address","typeLabel":"string"},"ip_version":{"type":"string","enum":["ipv4","ipv6"],"uniqueKey":"data.ip_version","typeLabel":"enum\u003cstring>"},"pool_id":{"oneOf":[{"type":"string","format":"uuid","uniqueKey":"data.pool_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","uniqueKey":"data.pool_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.pool_id","typeLabel":"string\u003cuuid> | null"},"region":{"type":"string","description":"Region label of the allocated IP (for example, `ewr-nj1`).","uniqueKey":"data.region","typeLabel":"string"},"status":{"type":"string","enum":["provisioning","warming_up","active","suspended","released"],"description":"Lifecycle status. `provisioning`: purchased and billed, carries no mail until `start_warmup`. `warming_up`: warm-up ramp in progress. `active`: ramp complete. `suspended`: suspended by Telnyx; carries no mail and is still billed. `released`: returned to Telnyx; carries no mail.","uniqueKey":"data.status","typeLabel":"enum\u003cstring>"},"warmup":{"type":"object","description":"Warmup ramp state for a dedicated IP.","properties":{"started_at":{"oneOf":[{"type":"string","format":"date-time","description":"When `start_warmup` was called. Null before warm-up starts and after release.","uniqueKey":"data.warmup.started_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When `start_warmup` was called. Null before warm-up starts and after release.","uniqueKey":"data.warmup.started_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.warmup.started_at","typeLabel":"string\u003cdate-time> | null"},"progress":{"type":"integer","description":"Ramp progress (0-100): the share of the 28 send-day schedule completed. Only UTC days on which the IP sent mail count. Set to 100 when the ramp completes, automatically or through `complete_warmup`. On an `active` IP this value is informational and can keep an earlier value after a suspension is lifted.","minimum":0,"maximum":100,"uniqueKey":"data.warmup.progress","typeLabel":"integer"},"daily_cap":{"oneOf":[{"type":"integer","minimum":1,"description":"Daily cap of the current ramp stage. Null until the scheduler arms the first stage, and cleared when the ramp completes, automatically or through `complete_warmup`. On an `active` IP this value is informational and can keep an earlier stage cap after a suspension is lifted; it does not limit sending.","uniqueKey":"data.warmup.daily_cap.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"description":"Daily cap of the current ramp stage. Null until the scheduler arms the first stage, and cleared when the ramp completes, automatically or through `complete_warmup`. On an `active` IP this value is informational and can keep an earlier stage cap after a suspension is lifted; it does not limit sending.","uniqueKey":"data.warmup.daily_cap.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.warmup.daily_cap","typeLabel":"integer | null"},"paused":{"type":"boolean","description":"True while the ramp is paused.","uniqueKey":"data.warmup.paused","typeLabel":"boolean"},"paused_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the ramp was paused. Null when not paused.","uniqueKey":"data.warmup.paused_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the ramp was paused. Null when not paused.","uniqueKey":"data.warmup.paused_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.warmup.paused_at","typeLabel":"string\u003cdate-time> | null"},"today":{"oneOf":[{"type":"object","description":"Today's warmup allowance report card (current UTC day). Null outside the warmup window (before start_warmup, after release/suspension). `active` IPs report the ramp-complete allowance, except as described for `cap`.","properties":{"day":{"type":"string","format":"date","description":"The UTC day this snapshot describes (warmup caps reset at UTC midnight).","uniqueKey":"data.warmup.today.oneOf.0.day","typeLabel":"string\u003cdate>"},"cap":{"oneOf":[{"type":"integer","description":"The day's allowance cap. Null when the ramp has not opened yet (day 0: the scheduler has not armed a stage cap) — distinct from a spent day, which reports the cap with remaining 0. `active` IPs report `100000000`, the ramp-complete cap; `complete_warmup` applies it to the current day immediately. A day's allowance created before the IP became `active` can keep its stored `cap` and `remaining` until the next first-attempt send refreshes them.","uniqueKey":"data.warmup.today.oneOf.0.cap.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The day's allowance cap. Null when the ramp has not opened yet (day 0: the scheduler has not armed a stage cap) — distinct from a spent day, which reports the cap with remaining 0. `active` IPs report `100000000`, the ramp-complete cap; `complete_warmup` applies it to the current day immediately. A day's allowance created before the IP became `active` can keep its stored `cap` and `remaining` until the next first-attempt send refreshes them.","uniqueKey":"data.warmup.today.oneOf.0.cap.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.warmup.today.oneOf.0.cap","typeLabel":"integer | null"},"granted":{"type":"integer","description":"First-attempt sends released from warmup hold so far today. Delivery retries never lease allowance and are not counted.","uniqueKey":"data.warmup.today.oneOf.0.granted","typeLabel":"integer"},"remaining":{"oneOf":[{"type":"integer","description":"Headroom left today. A queued send held by the daily cap is explained by remaining == 0; null mirrors cap (ramp not open yet). On an `active` IP whose `cap` is below `100000000`, remaining == 0 is a stored allowance and does not block the next eligible first-attempt send.","uniqueKey":"data.warmup.today.oneOf.0.remaining.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Headroom left today. A queued send held by the daily cap is explained by remaining == 0; null mirrors cap (ramp not open yet). On an `active` IP whose `cap` is below `100000000`, remaining == 0 is a stored allowance and does not block the next eligible first-attempt send.","uniqueKey":"data.warmup.today.oneOf.0.remaining.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.warmup.today.oneOf.0.remaining","typeLabel":"integer | null"}},"uniqueKey":"data.warmup.today.oneOf.0","typeLabel":"object"},{"type":"null","description":"Today's warmup allowance report card (current UTC day). Null outside the warmup window (before start_warmup, after release/suspension). `active` IPs report the ramp-complete allowance, except as described for `cap`.","properties":{"day":{"type":"string","format":"date","description":"The UTC day this snapshot describes (warmup caps reset at UTC midnight)."},"cap":{"oneOf":[{"type":"integer","description":"The day's allowance cap. Null when the ramp has not opened yet (day 0: the scheduler has not armed a stage cap) — distinct from a spent day, which reports the cap with remaining 0. `active` IPs report `100000000`, the ramp-complete cap; `complete_warmup` applies it to the current day immediately. A day's allowance created before the IP became `active` can keep its stored `cap` and `remaining` until the next first-attempt send refreshes them."},{"type":"null","description":"The day's allowance cap. Null when the ramp has not opened yet (day 0: the scheduler has not armed a stage cap) — distinct from a spent day, which reports the cap with remaining 0. `active` IPs report `100000000`, the ramp-complete cap; `complete_warmup` applies it to the current day immediately. A day's allowance created before the IP became `active` can keep its stored `cap` and `remaining` until the next first-attempt send refreshes them."}]},"granted":{"type":"integer","description":"First-attempt sends released from warmup hold so far today. Delivery retries never lease allowance and are not counted."},"remaining":{"oneOf":[{"type":"integer","description":"Headroom left today. A queued send held by the daily cap is explained by remaining == 0; null mirrors cap (ramp not open yet). On an `active` IP whose `cap` is below `100000000`, remaining == 0 is a stored allowance and does not block the next eligible first-attempt send."},{"type":"null","description":"Headroom left today. A queued send held by the daily cap is explained by remaining == 0; null mirrors cap (ramp not open yet). On an `active` IP whose `cap` is below `100000000`, remaining == 0 is a stored allowance and does not block the next eligible first-attempt send."}]}},"uniqueKey":"data.warmup.today.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.warmup.today","typeLabel":"object | null"}},"uniqueKey":"data.warmup","typeLabel":"object"},"billing":{"type":"object","description":"Monthly recurring charge (MRC) state for the IP's current allocation.","properties":{"status":{"type":"string","enum":["not_started","pending","in_progress","active","stopping","stopped","stop_failed","failed"],"description":"`not_started`: no charge recorded for the current allocation. `pending`: the charge is queued. `in_progress`: the charge is being created. `active`: the MRC is active. `stopping`: release requested; the MRC stop is being processed. `stopped`: the MRC has stopped. `stop_failed`: the MRC stop failed and the charge remains. `failed`: the charge could not be created.","uniqueKey":"data.billing.status","typeLabel":"enum\u003cstring>"},"charged":{"type":"boolean","description":"True when `status` is `active`, `stopping`, or `stop_failed`. An IP carries mail only after its charge has been created.","uniqueKey":"data.billing.charged","typeLabel":"boolean"}},"uniqueKey":"data.billing","typeLabel":"object"},"provisioning_status":{"type":"string","enum":["not_applicable","pending_ptr","pending_dns","dns_confirmed","dns_lost"],"description":"Same value as `provisioning.dns_status`.","uniqueKey":"data.provisioning_status","typeLabel":"enum\u003cstring>"},"provisioning":{"type":"object","description":"Read-only status of the Telnyx-managed PTR record. No customer action is required to complete it.","properties":{"dns_status":{"type":"string","enum":["not_applicable","pending_ptr","pending_dns","dns_confirmed","dns_lost"],"description":"`dns_confirmed`: the PTR is forward-confirmed and `dns_confirmed_at` is set. `pending_ptr`: the PTR record is not yet in place. `pending_dns`: the PTR record is waiting for forward confirmation. `dns_lost`: a previously confirmed PTR no longer confirms, or the PTR request was abandoned before it ever confirmed (`ptr_request_state` is `abandoned`); the IP carries no mail until DNS is confirmed. `not_applicable`: the IP is released or has no PTR record on file.","uniqueKey":"data.provisioning.dns_status","typeLabel":"enum\u003cstring>"},"ptr_request_state":{"oneOf":[{"type":"string","enum":["pending","pr_open","merged","confirmed","failed","abandoned",null],"description":"State of the Telnyx PTR change: `pending`, `pr_open`, `merged`, `confirmed`, `failed`, or `abandoned`. Informational.","uniqueKey":"data.provisioning.ptr_request_state.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["pending","pr_open","merged","confirmed","failed","abandoned",null],"description":"State of the Telnyx PTR change: `pending`, `pr_open`, `merged`, `confirmed`, `failed`, or `abandoned`. Informational.","uniqueKey":"data.provisioning.ptr_request_state.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.provisioning.ptr_request_state","typeLabel":"enum\u003cstring> | null"},"ptr_request_pr_url":{"oneOf":[{"type":"string","description":"Reference to the Telnyx PTR change request, when one exists. Informational.","uniqueKey":"data.provisioning.ptr_request_pr_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"Reference to the Telnyx PTR change request, when one exists. Informational.","uniqueKey":"data.provisioning.ptr_request_pr_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.provisioning.ptr_request_pr_url","typeLabel":"string | null"},"checklist":{"type":"object","properties":{"ptr_requested":{"type":"boolean","uniqueKey":"data.provisioning.checklist.ptr_requested","typeLabel":"boolean"},"ptr_authored":{"type":"boolean","uniqueKey":"data.provisioning.checklist.ptr_authored","typeLabel":"boolean"},"ptr_merged":{"type":"boolean","uniqueKey":"data.provisioning.checklist.ptr_merged","typeLabel":"boolean"},"forward_confirmed":{"type":"boolean","uniqueKey":"data.provisioning.checklist.forward_confirmed","typeLabel":"boolean"}},"description":"Informational progress flags for the Telnyx-managed PTR. They do not gate `start_warmup`; use `dns_status` to check whether the IP can carry mail.","uniqueKey":"data.provisioning.checklist","typeLabel":"object"}},"uniqueKey":"data.provisioning","typeLabel":"object"},"ptr_hostname":{"oneOf":[{"type":"string","description":"Telnyx-managed reverse DNS (PTR) hostname of the IP, in the form `mta-\u003ca-b-c-d>.msgtelnyx.com`. Also used as the EHLO hostname when sending from the IP. Managed by Telnyx and cannot be changed through the API.","uniqueKey":"data.ptr_hostname.oneOf.0","typeLabel":"string"},{"type":"null","description":"Telnyx-managed reverse DNS (PTR) hostname of the IP, in the form `mta-\u003ca-b-c-d>.msgtelnyx.com`. Also used as the EHLO hostname when sending from the IP. Managed by Telnyx and cannot be changed through the API.","uniqueKey":"data.ptr_hostname.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.ptr_hostname","typeLabel":"string | null"},"dns_confirmed_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the PTR hostname was forward-confirmed (PTR → hostname → A record → this IP). The IP carries mail only while this is set.","uniqueKey":"data.dns_confirmed_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the PTR hostname was forward-confirmed (PTR → hostname → A record → this IP). The IP carries mail only while this is set.","uniqueKey":"data.dns_confirmed_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.dns_confirmed_at","typeLabel":"string\u003cdate-time> | null"},"quarantine_until":{"oneOf":[{"type":"string","format":"date-time","description":"Set on release to 30 days after `released_at`. The address is not returned to stock before this time.","uniqueKey":"data.quarantine_until.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Set on release to 30 days after `released_at`. The address is not returned to stock before this time.","uniqueKey":"data.quarantine_until.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.quarantine_until","typeLabel":"string\u003cdate-time> | null"},"released_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the IP was released. Null until release.","uniqueKey":"data.released_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the IP was released. Null until release.","uniqueKey":"data.released_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.released_at","typeLabel":"string\u003cdate-time> | null"},"suspension_reason":{"oneOf":[{"type":"string","description":"Reason Telnyx recorded when suspending the IP. Null unless `status` is `suspended`.","uniqueKey":"data.suspension_reason.oneOf.0","typeLabel":"string"},{"type":"null","description":"Reason Telnyx recorded when suspending the IP. Null unless `status` is `suspended`.","uniqueKey":"data.suspension_reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.suspension_reason","typeLabel":"string | null"},"created_at":{"type":"string","format":"date-time","uniqueKey":"data.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","uniqueKey":"data.updated_at","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"required":["data"],"uniqueKey":"","typeLabel":"object"},"example":{"data":{"id":"6a7f9a30-1234-4b5c-8d9e-0f1a2b3c4d5e","record_type":"dedicated_ip","ip_address":"64.16.239.170","ip_version":"ipv4","pool_id":"9b1c4d70-abcd-4e5f-8a9b-0c1d2e3f4a5b","region":"ewr-nj1","status":"warming_up","warmup":{"started_at":"2026-10-14T20:36:50.000000Z","progress":25,"daily_cap":32000,"paused":false,"paused_at":null,"today":{"day":"2026-10-24","cap":32000,"granted":1250,"remaining":30750}},"billing":{"status":"active","charged":true},"provisioning_status":"dns_confirmed","provisioning":{"dns_status":"dns_confirmed","ptr_request_state":"confirmed","ptr_request_pr_url":null,"checklist":{"ptr_requested":true,"ptr_authored":false,"ptr_merged":true,"forward_confirmed":true}},"ptr_hostname":"mta-64-16-239-170.msgtelnyx.com","dns_confirmed_at":"2026-10-14T20:12:41.552310Z","quarantine_until":null,"released_at":null,"suspension_reason":null,"created_at":"2026-09-30T02:03:09.474123Z","updated_at":"2026-10-24T00:00:12.118402Z"}},"examples":{"Example":{"title":"Example","value":{"data":{"id":"6a7f9a30-1234-4b5c-8d9e-0f1a2b3c4d5e","record_type":"dedicated_ip","ip_address":"64.16.239.170","ip_version":"ipv4","pool_id":"9b1c4d70-abcd-4e5f-8a9b-0c1d2e3f4a5b","region":"ewr-nj1","status":"warming_up","warmup":{"started_at":"2026-10-14T20:36:50.000000Z","progress":25,"daily_cap":32000,"paused":false,"paused_at":null,"today":{"day":"2026-10-24","cap":32000,"granted":1250,"remaining":30750}},"billing":{"status":"active","charged":true},"provisioning_status":"dns_confirmed","provisioning":{"dns_status":"dns_confirmed","ptr_request_state":"confirmed","ptr_request_pr_url":null,"checklist":{"ptr_requested":true,"ptr_authored":false,"ptr_merged":true,"forward_confirmed":true}},"ptr_hostname":"mta-64-16-239-170.msgtelnyx.com","dns_confirmed_at":"2026-10-14T20:12:41.552310Z","quarantine_until":null,"released_at":null,"suspension_reason":null,"created_at":"2026-09-30T02:03:09.474123Z","updated_at":"2026-10-24T00:00:12.118402Z"}}}},"exampleType":"examples"}},"exampleType":"examples"},"b844f9c8-8458-47dc-a2bf-1cf2572851f7":{"description":"Malformed request","content":{"application/json":{"schema":{"type":"object","description":"Telnyx v2 error envelope.","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"title":{"type":"string","uniqueKey":"errors.items.[INDEX].title","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"source":{"type":"object","properties":{"pointer":{"type":"string","uniqueKey":"errors.items.[INDEX].source.pointer","typeLabel":"string"},"parameter":{"type":"string","uniqueKey":"errors.items.[INDEX].source.parameter","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].source","typeLabel":"object"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"}},"required":["errors"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"errors":[{"code":"\u003cstring>","title":"\u003cstring>","detail":"\u003cstring>","source":{"pointer":"\u003cstring>","parameter":"\u003cstring>"}}]}}},"exampleType":"generated"}},"exampleType":"generated"},"5d9c9942-fc46-4d9c-8f90-373ff9b7befc":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","description":"Telnyx v2 error envelope.","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"title":{"type":"string","uniqueKey":"errors.items.[INDEX].title","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"source":{"type":"object","properties":{"pointer":{"type":"string","uniqueKey":"errors.items.[INDEX].source.pointer","typeLabel":"string"},"parameter":{"type":"string","uniqueKey":"errors.items.[INDEX].source.parameter","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].source","typeLabel":"object"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"}},"required":["errors"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"errors":[{"code":"\u003cstring>","title":"\u003cstring>","detail":"\u003cstring>","source":{"pointer":"\u003cstring>","parameter":"\u003cstring>"}}]}}},"exampleType":"generated"}},"exampleType":"generated"},"cbda030c-42a1-4ed5-b458-f847f77e1f17":{"description":"The dedicated IP or the target pool was not found.","content":{"application/json":{"schema":{"type":"object","description":"Telnyx v2 error envelope.","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"title":{"type":"string","uniqueKey":"errors.items.[INDEX].title","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"source":{"type":"object","properties":{"pointer":{"type":"string","uniqueKey":"errors.items.[INDEX].source.pointer","typeLabel":"string"},"parameter":{"type":"string","uniqueKey":"errors.items.[INDEX].source.parameter","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].source","typeLabel":"object"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"}},"required":["errors"],"uniqueKey":"","typeLabel":"object"},"example":{"errors":[{"code":"10001","title":"Not Found","detail":"The requested ip pool was not found"}]},"examples":{"Example":{"title":"Example","value":{"errors":[{"code":"10001","title":"Not Found","detail":"The requested ip pool was not found"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"edb72b2b-2253-4fc6-97ac-18e1e4729913":{"description":"The IP is the last member of its current pool and `force`/`drain` were not both set, or `warmup_paused` or `warmup.paused` was sent for an IP that is not `warming_up`.","content":{"application/json":{"schema":{"type":"object","description":"Telnyx v2 error envelope.","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"title":{"type":"string","uniqueKey":"errors.items.[INDEX].title","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"source":{"type":"object","properties":{"pointer":{"type":"string","uniqueKey":"errors.items.[INDEX].source.pointer","typeLabel":"string"},"parameter":{"type":"string","uniqueKey":"errors.items.[INDEX].source.parameter","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].source","typeLabel":"object"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"}},"required":["errors"],"uniqueKey":"","typeLabel":"object"},"example":{"errors":[{"code":"40901","title":"Conflict","detail":"cannot remove the last IP from a pool without force: true and drain: true (in-flight messages need a routable source)"}]},"examples":{"Example":{"title":"Example","value":{"errors":[{"code":"40901","title":"Conflict","detail":"cannot remove the last IP from a pool without force: true and drain: true (in-flight messages need a routable source)"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"5e5ab02d-f171-421f-8b7a-98fc9da09d74":{"description":"Validation failed. Pool reassignment rejects invalid weights and released IPs. A request that includes `ptr_hostname` (any value, including `null`) and neither `pool_id` nor a warm-up field is rejected because the PTR hostname is managed by Telnyx; the IP is unchanged.","content":{"application/json":{"schema":{"type":"object","description":"Telnyx v2 error envelope.","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"title":{"type":"string","uniqueKey":"errors.items.[INDEX].title","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"source":{"type":"object","properties":{"pointer":{"type":"string","uniqueKey":"errors.items.[INDEX].source.pointer","typeLabel":"string"},"parameter":{"type":"string","uniqueKey":"errors.items.[INDEX].source.parameter","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].source","typeLabel":"object"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"}},"required":["errors"],"uniqueKey":"","typeLabel":"object"},"examples":{"invalidWeight":{"title":"invalidWeight","value":{"errors":[{"code":"10015","title":"Validation Failed","detail":"weight must be a positive integer (got 0)","source":{"pointer":"/data/attributes/weight"}}]}},"ptrHostnameManaged":{"title":"ptrHostnameManaged","value":{"errors":[{"code":"10015","title":"Validation Failed","detail":"ptr_hostname is managed by Telnyx and cannot be changed","source":{"pointer":"/data/attributes/ptr_hostname"}}]}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"7b51e92f-3d92-487d-a058-03c4cd5c2c42":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API key","description":"Telnyx API key supplied as `Authorization: Bearer \u003ctoken>`. In production, auth may be validated by the API gateway and forwarded via Telnyx auth headers.","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"ba228b30-2f2a-4f83-8934-4e3ba1c84f11":{"url":"https://api.telnyx.com/v2"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"API key","description":"Telnyx API key supplied as `Authorization: Bearer \u003ctoken>`. In production, auth may be validated by the API gateway and forwarded via Telnyx auth headers.","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Telnyx API key supplied as `Authorization: Bearer \u003ctoken>`. In production, auth may be validated by the API gateway and forwarded via Telnyx auth headers.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"openapi/source/external/email/email.json"},"subdomain":"telnyx","siteName":"Telnyx","title":"Update a dedicated IP - Telnyx","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-29T13:57:23.436Z","originalFileLocation":"api-reference/dedicated-ips/update-a-dedicated-ip.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=\"Move the IP to another pool, or pause/resume its warm-up ramp. One change applies per request. pool_id takes precedence over warm-up changes. Otherwise, use warmup_paused or warmup.paused; a Boolean warmup_paused takes precedence. Moving the last IP out of a pool requires force: true and drain: true. The PTR hostname is managed by Telnyx: a request that includes ptr_hostname returns 422 unless pool_id or a warm-up field is present, in which case ptr_hostname is ignored.\">\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 dedicated IP - 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/dedicated-ips/update-a-dedicated-ip\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://telnyx.mintlify.site/_mintlify/api/og/v2?division=Dedicated+IPs+API\u0026amp;title=Update+a+dedicated+IP\u0026amp;description=Move+the+IP+to+another+pool%2C+or+pause%2Fresume+its+warm-up+ramp.+One+change+applies+per+request.+%60pool_id%60+takes+precedence+over+warm-up+changes.+Otherwise%2C+use+%60\u0026amp;theme=203f74ffadd35d8bb68c8ebf\u0026amp;signature=b41e6fa2f128cfced660c04f05c1e68807523b681b7d0cc68be5e5be4e4a3232\">\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 dedicated IP - 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.site/_mintlify/api/og/v2?division=Dedicated+IPs+API\u0026amp;title=Update+a+dedicated+IP\u0026amp;description=Move+the+IP+to+another+pool%2C+or+pause%2Fresume+its+warm-up+ramp.+One+change+applies+per+request.+%60pool_id%60+takes+precedence+over+warm-up+changes.+Otherwise%2C+use+%60\u0026amp;theme=203f74ffadd35d8bb68c8ebf\u0026amp;signature=b41e6fa2f128cfced660c04f05c1e68807523b681b7d0cc68be5e5be4e4a3232\">\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/dedicated-ips/update-a-dedicated-ip\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/dedicated-ips/update-a-dedicated-ip.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/dedicated-ips/update-a-dedicated-ip#webpage\",\"url\":\"https://developers.telnyx.com/api-reference/dedicated-ips/update-a-dedicated-ip\",\"name\":\"Update a dedicated IP\",\"description\":\"Move the IP to another pool, or pause/resume its warm-up ramp. One change applies per request. pool_id takes precedence over warm-up changes. Otherwise, use warmup_paused or warmup.paused; a Boolean warmup_paused takes precedence. Moving the last IP out of a pool requires force: true and drain: true. The PTR hostname is managed by Telnyx: a request that includes ptr_hostname returns 422 unless pool_id or a warm-up field is present, in which case ptr_hostname is ignored.\",\"dateModified\":\"2026-10-29T13:57:23.436Z\",\"isPartOf\":{\"@id\":\"https://developers.telnyx.com#website\"},\"breadcrumb\":{\"@id\":\"https://developers.telnyx.com/api-reference/dedicated-ips/update-a-dedicated-ip#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.telnyx.com/api-reference/dedicated-ips/update-a-dedicated-ip#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Deliverability\",\"item\":\"https://developers.telnyx.com/docs/messaging/email/deliverability\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dedicated IPs API\",\"item\":\"https://developers.telnyx.com/api-reference/dedicated-ips/purchase-a-dedicated-ip\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Update a dedicated IP\",\"item\":\"https://developers.telnyx.com/api-reference/dedicated-ips/update-a-dedicated-ip\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developers.telnyx.com/api-reference/dedicated-ips/update-a-dedicated-ip#apireference\",\"headline\":\"Update a dedicated IP\",\"name\":\"Update a dedicated IP\",\"description\":\"Move the IP to another pool, or pause/resume its warm-up ramp. One change applies per request. pool_id takes precedence over warm-up changes. Otherwise, use warmup_paused or warmup.paused; a Boolean warmup_paused takes precedence. Moving the last IP out of a pool requires force: true and drain: true. The PTR hostname is managed by Telnyx: a request that includes ptr_hostname returns 422 unless pool_id or a warm-up field is present, in which case ptr_hostname is ignored.\",\"url\":\"https://developers.telnyx.com/api-reference/dedicated-ips/update-a-dedicated-ip\",\"mainEntityOfPage\":{\"@id\":\"https://developers.telnyx.com/api-reference/dedicated-ips/update-a-dedicated-ip#webpage\"},\"dateModified\":\"2026-10-29T13:57:23.436Z\",\"publisher\":{\"@id\":\"https://telnyx.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.telnyx.com#website\"}}]}\u003c/script>","agentPointerHref":"/api-reference/dedicated-ips/update-a-dedicated-ip.md","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/agent-platform"}]},{"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/virtual-private-cloud"}]},{"product":"Calling","icon":"phone","pages":[{"title":"Calling","href":"/docs/voice/programmable-voice/voice-api-fundamentals"}]},{"product":"Messaging","icon":"message","tabs":[{"tab":"SMS \u0026 MMS","icon":"comment-sms","pages":[{"title":"SMS \u0026 MMS","href":"/docs/messaging/messages/send-message"}]},{"tab":"Email","icon":"envelope","groups":[{"group":"Getting Started","pages":[{"title":"Email API Overview","sidebarTitle":"Overview","href":"/docs/messaging/email/overview"},{"title":"Send Your First Email","sidebarTitle":"Send Your First Email","href":"/docs/messaging/email/quickstart/index"}]},{"group":"Sending Email","pages":[{"title":"Sending Email with the Telnyx API","sidebarTitle":"Email API Guide","href":"/docs/messaging/email/send-email/index"},{"title":"SMTP Protocol Contract","sidebarTitle":"SMTP Protocol Contract","href":"/docs/messaging/email/smtp-protocol-contract/index"},{"title":"Batch Sending","sidebarTitle":"Batch Sending","href":"/docs/messaging/email/batch-sending/index"},{"title":"Migrate to Telnyx Email","sidebarTitle":"Migrate to Telnyx","href":"/docs/messaging/email/migrate-to-telnyx/index"},{"title":"SMTP Migration Guides","sidebarTitle":"SMTP Migration","href":"/docs/messaging/email/smtp-migration-guides/index"},{"title":"Rate Limits \u0026 Quotas","sidebarTitle":"Rate Limits","href":"/docs/messaging/email/rate-limits/index"},{"title":"Error Codes","sidebarTitle":"Error Codes","href":"/docs/messaging/email/error-codes/index"},{"group":"Email API","pages":[{"title":"Delete email messages by address","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json delete /email_messages","href":"/api-reference/email-messages/delete-email-messages-by-address"},{"title":"List email messages","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_messages","href":"/api-reference/email-messages/list-email-messages"},{"title":"Create or send an email message","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_messages","href":"/api-reference/email-messages/create-or-send-an-email-message"},{"title":"Create a batch of email messages","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_messages/batch","href":"/api-reference/email-messages/create-a-batch-of-email-messages"},{"title":"List events for an email message","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_messages/{email_id}/events","href":"/api-reference/email-messages/list-events-for-an-email-message"},{"title":"Cancel a scheduled email message","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json delete /email_messages/{email_id}/schedule","href":"/api-reference/email-messages/cancel-a-scheduled-email-message"},{"title":"Reschedule a scheduled email message","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json patch /email_messages/{email_id}/schedule","href":"/api-reference/email-messages/reschedule-a-scheduled-email-message"},{"title":"Delete an email message","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json delete /email_messages/{id}","href":"/api-reference/email-messages/delete-an-email-message"},{"title":"Get an email message","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_messages/{id}","href":"/api-reference/email-messages/get-an-email-message"},{"title":"List recipients for an email message","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_messages/{email_id}/recipients","href":"/api-reference/email-messages/list-recipients-for-an-email-message"},{"title":"Get a single recipient's delivery state","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_messages/{email_id}/recipients/{recipient_id}","href":"/api-reference/email-messages/get-a-single-recipients-delivery-state"}]}]},{"group":"Inboxes","pages":[{"title":"Manage Inboxes","sidebarTitle":"Manage Inboxes","href":"/docs/messaging/email/inboxes/index"},{"group":"Email Inboxes API","pages":[{"group":"Email Inboxes API","pages":[{"title":"List email inboxes","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_inboxes","href":"/api-reference/email-inboxes/list-email-inboxes"},{"title":"Create an email inbox","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_inboxes","href":"/api-reference/email-inboxes/create-an-email-inbox"},{"title":"Delete an email inbox","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json delete /email_inboxes/{id}","href":"/api-reference/email-inboxes/delete-an-email-inbox"},{"title":"Get an email inbox","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_inboxes/{id}","href":"/api-reference/email-inboxes/get-an-email-inbox"},{"title":"Remove sender filter entries from an inbox","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json delete /email_inboxes/{inbox_id}/filters","href":"/api-reference/email-inboxes/remove-sender-filter-entries-from-an-inbox"},{"title":"List sender filters for an inbox","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_inboxes/{inbox_id}/filters","href":"/api-reference/email-inboxes/list-sender-filters-for-an-inbox"},{"title":"Add sender filter entries to an inbox","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_inboxes/{inbox_id}/filters","href":"/api-reference/email-inboxes/add-sender-filter-entries-to-an-inbox"},{"title":"Replace sender filters for an inbox","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json put /email_inboxes/{inbox_id}/filters","href":"/api-reference/email-inboxes/replace-sender-filters-for-an-inbox"},{"title":"List and search messages in an inbox","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_inboxes/{inbox_id}/messages","href":"/api-reference/email-inboxes/list-and-search-messages-in-an-inbox"},{"title":"Update an inbox message","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json patch /email_inboxes/{inbox_id}/messages/{message_id}","href":"/api-reference/email-inboxes/update-an-inbox-message"},{"title":"Forward an inbox message","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_inboxes/{inbox_id}/messages/{message_id}/actions/forward","href":"/api-reference/email-inboxes/forward-an-inbox-message"},{"title":"Reply to an inbox message","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_inboxes/{inbox_id}/messages/{message_id}/actions/reply","href":"/api-reference/email-inboxes/reply-to-an-inbox-message"},{"title":"Reply all to an inbox message","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_inboxes/{inbox_id}/messages/{message_id}/actions/reply_all","href":"/api-reference/email-inboxes/reply-all-to-an-inbox-message"},{"title":"Remove labels from an inbox message","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json delete /email_inboxes/{inbox_id}/messages/{message_id}/labels","href":"/api-reference/email-inboxes/remove-labels-from-an-inbox-message"},{"title":"Add labels to an inbox message","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_inboxes/{inbox_id}/messages/{message_id}/labels","href":"/api-reference/email-inboxes/add-labels-to-an-inbox-message"},{"title":"List threads in an inbox","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_inboxes/{inbox_id}/threads","href":"/api-reference/email-inboxes/list-threads-in-an-inbox"},{"title":"Get a thread and a page of its messages","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_inboxes/{inbox_id}/threads/{thread_id}","href":"/api-reference/email-inboxes/get-a-thread-and-a-page-of-its-messages"},{"title":"Remove labels from an inbox thread","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json delete /email_inboxes/{inbox_id}/threads/{thread_id}/labels","href":"/api-reference/email-inboxes/remove-labels-from-an-inbox-thread"},{"title":"Add labels to an inbox thread","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_inboxes/{inbox_id}/threads/{thread_id}/labels","href":"/api-reference/email-inboxes/add-labels-to-an-inbox-thread"}]},{"group":"Email Drafts API","pages":[{"title":"List drafts in an inbox","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_inboxes/{inbox_id}/drafts","href":"/api-reference/email-drafts/list-drafts-in-an-inbox"},{"title":"Create a draft","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_inboxes/{inbox_id}/drafts","href":"/api-reference/email-drafts/create-a-draft"},{"title":"Delete a draft","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json delete /email_inboxes/{inbox_id}/drafts/{draft_id}","href":"/api-reference/email-drafts/delete-a-draft"},{"title":"Retrieve a draft","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_inboxes/{inbox_id}/drafts/{draft_id}","href":"/api-reference/email-drafts/retrieve-a-draft"},{"title":"Update a draft (alias)","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json patch /email_inboxes/{inbox_id}/drafts/{draft_id}","href":"/api-reference/email-drafts/update-a-draft-alias"},{"title":"Update a draft","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json put /email_inboxes/{inbox_id}/drafts/{draft_id}","href":"/api-reference/email-drafts/update-a-draft"},{"title":"Send a draft","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_inboxes/{inbox_id}/drafts/{draft_id}/send","href":"/api-reference/email-drafts/send-a-draft"},{"title":"Create a reply draft","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_inboxes/{inbox_id}/messages/{message_id}/drafts","href":"/api-reference/email-drafts/create-a-reply-draft"}]},{"group":"Email Threads API","pages":[{"title":"List threads across every inbox in the account","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_threads","href":"/api-reference/email-threads/list-threads-across-every-inbox-in-the-account"},{"title":"Get an account-wide thread and a page of its messages","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_threads/{thread_id}","href":"/api-reference/email-threads/get-an-account-wide-thread-and-a-page-of-its-messages"}]}]}]},{"group":"Domains \u0026 Validation","pages":[{"title":"Email Domains \u0026 DKIM","sidebarTitle":"Email Domains \u0026 DKIM","href":"/docs/messaging/email/domains/index"},{"group":"Email Domains API","pages":[{"group":"Email Domains API","pages":[{"title":"List email domains","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_domains","href":"/api-reference/email-domains/list-email-domains"},{"title":"Create an email domain","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_domains","href":"/api-reference/email-domains/create-an-email-domain"},{"title":"Delete an email domain","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json delete /email_domains/{id}","href":"/api-reference/email-domains/delete-an-email-domain"},{"title":"Retrieve an email domain","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_domains/{id}","href":"/api-reference/email-domains/retrieve-an-email-domain"},{"title":"Update an email domain","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json patch /email_domains/{id}","href":"/api-reference/email-domains/update-an-email-domain"},{"title":"Get domain health summary","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_domains/{id}/health","href":"/api-reference/email-domains/get-domain-health-summary"},{"title":"Rotate the DKIM key for an email domain","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_domains/{domain_id}/rotate_dkim","href":"/api-reference/email-domains/rotate-the-dkim-key-for-an-email-domain"}]},{"group":"Email Domain DNS Records API","pages":[{"title":"List DNS records for an email domain","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_domains/{domain_id}/dns_records","href":"/api-reference/email-domain-dns-records/list-dns-records-for-an-email-domain"},{"title":"Verify DNS records for an email domain","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_domains/{domain_id}/verify","href":"/api-reference/email-domain-dns-records/verify-dns-records-for-an-email-domain"}]},{"group":"Email Webhooks API","pages":[{"title":"List webhooks for an email domain","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_domains/{domain_id}/webhooks","href":"/api-reference/email-webhooks/list-webhooks-for-an-email-domain"},{"title":"Create a webhook for an email domain","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_domains/{domain_id}/webhooks","href":"/api-reference/email-webhooks/create-a-webhook-for-an-email-domain"},{"title":"Delete a webhook","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json delete /email_domains/{domain_id}/webhooks/{id}","href":"/api-reference/email-webhooks/delete-a-webhook"},{"title":"Retrieve a webhook","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_domains/{domain_id}/webhooks/{id}","href":"/api-reference/email-webhooks/retrieve-a-webhook"},{"title":"Update a webhook","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json patch /email_domains/{domain_id}/webhooks/{id}","href":"/api-reference/email-webhooks/update-a-webhook"}]}]},{"title":"Email Validation","sidebarTitle":"Email Validation","href":"/docs/messaging/email/validation/index"},{"group":"Email Validations API","pages":[{"title":"Validate a single email address","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_validations","href":"/api-reference/email-validations/validate-a-single-email-address"},{"title":"Create a batch email validation job","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_validations/batch","href":"/api-reference/email-validations/create-a-batch-email-validation-job"},{"title":"Get a batch email validation job","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_validations/batch/{id}","href":"/api-reference/email-validations/get-a-batch-email-validation-job"}]}]},{"group":"Deliverability","pages":[{"title":"Deliverability and Domain Warm-up","sidebarTitle":"Deliverability \u0026 Warm-up","href":"/docs/messaging/email/deliverability/index"},{"title":"Email Deliverability Best Practices","sidebarTitle":"Deliverability Best Practices","href":"/docs/messaging/email/deliverability-best-practices/index"},{"title":"Dedicated IPs","href":"/docs/messaging/email/dedicated-ips/index"},{"group":"Dedicated IPs API","pages":[{"title":"Purchase a dedicated IP","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email/dedicated_ips","href":"/api-reference/dedicated-ips/purchase-a-dedicated-ip"},{"title":"List dedicated IPs","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email/dedicated_ips","href":"/api-reference/dedicated-ips/list-dedicated-ips"},{"title":"Retrieve a dedicated IP","description":"Retrieve a single dedicated IP by its identifier, including warm-up state, billing state, and the DNS/PTR provisioning checklist.","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email/dedicated_ips/{id}","href":"/api-reference/dedicated-ips/retrieve-a-dedicated-ip"},{"title":"Update a dedicated IP","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json patch /email/dedicated_ips/{id}","href":"/api-reference/dedicated-ips/update-a-dedicated-ip"},{"title":"Release a dedicated IP","description":"Release the dedicated IP to Telnyx. The IP stops carrying mail immediately, leaves its pool, and moves to `released`. Telnyx sets `quarantine_until` to 30 days after release. Release requests that the MRC stop asynchronously. Check `billing`: `stopping` means the stop is pending, `stopped` means it completed, and `stop_failed` means the charge remains. If the charge was never created or its creation has not completed, `billing` keeps showing the creation status (`not_started`, `pending`, `in_progress`, or `failed`). Any status except `released` can be released. Releasing the last IP in a pool requires `force=true` and `drain=true`.","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json delete /email/dedicated_ips/{id}","href":"/api-reference/dedicated-ips/release-a-dedicated-ip"},{"title":"Start warmup for a dedicated IP","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email/dedicated_ips/{id}/actions/start_warmup","href":"/api-reference/dedicated-ips/start-warmup-for-a-dedicated-ip"},{"title":"Manually complete warmup","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email/dedicated_ips/{id}/actions/complete_warmup","href":"/api-reference/dedicated-ips/manually-complete-warmup"},{"title":"Pause warmup","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email/dedicated_ips/{id}/actions/pause_warmup","href":"/api-reference/dedicated-ips/pause-warmup"},{"title":"Resume warmup","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email/dedicated_ips/{id}/actions/resume_warmup","href":"/api-reference/dedicated-ips/resume-warmup"}]},{"group":"IP Pools API","pages":[{"title":"List IP pools","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email/ip_pools","href":"/api-reference/ip-pools/list-ip-pools"},{"title":"Create an IP pool","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email/ip_pools","href":"/api-reference/ip-pools/create-an-ip-pool"},{"title":"Retrieve an IP pool","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email/ip_pools/{id}","href":"/api-reference/ip-pools/retrieve-an-ip-pool"},{"title":"Update an IP pool","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json patch /email/ip_pools/{id}","href":"/api-reference/ip-pools/update-an-ip-pool"},{"title":"Delete an IP pool","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json delete /email/ip_pools/{id}","href":"/api-reference/ip-pools/delete-an-ip-pool"},{"title":"Add a dedicated IP to a pool","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email/ip_pools/{id}/ips","href":"/api-reference/ip-pools/add-a-dedicated-ip-to-a-pool"},{"title":"Remove a dedicated IP from a pool","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json delete /email/ip_pools/{id}/ips/{ip_id}","href":"/api-reference/ip-pools/remove-a-dedicated-ip-from-a-pool"}]}]},{"group":"Templates \u0026 Suppression","pages":[{"title":"Email Templates","sidebarTitle":"Templates","href":"/docs/messaging/email/templates/index"},{"group":"Email Templates API","pages":[{"title":"List email templates","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_templates","href":"/api-reference/email-templates/list-email-templates"},{"title":"Create an email template","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_templates","href":"/api-reference/email-templates/create-an-email-template"},{"title":"Delete an email template","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json delete /email_templates/{id}","href":"/api-reference/email-templates/delete-an-email-template"},{"title":"Get an email template","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_templates/{id}","href":"/api-reference/email-templates/get-an-email-template"},{"title":"Update an email template","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json patch /email_templates/{id}","href":"/api-reference/email-templates/update-an-email-template"},{"title":"Replace an email template","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json put /email_templates/{id}","href":"/api-reference/email-templates/replace-an-email-template"},{"title":"Render an email template","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_templates/{id}/render","href":"/api-reference/email-templates/render-an-email-template"}]},{"title":"Suppressions \u0026 Unsubscribes","sidebarTitle":"Suppressions \u0026 Unsubscribes","href":"/docs/messaging/email/suppressions/index"},{"title":"Unsubscribe Groups","sidebarTitle":"Unsubscribe Groups","href":"/docs/messaging/email/unsubscribe-groups/index"},{"group":"Email Suppressions API","pages":[{"group":"Email Suppressions API","pages":[{"title":"List suppressions","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_blocks","href":"/api-reference/email-suppressions/list-suppressions"},{"title":"Create a manual suppression","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_blocks","href":"/api-reference/email-suppressions/create-a-manual-suppression"},{"title":"Export suppressions as CSV","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_blocks/export","href":"/api-reference/email-suppressions/export-suppressions-as-csv"},{"title":"Soft-delete a suppression","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json delete /email_blocks/{id}","href":"/api-reference/email-suppressions/soft-delete-a-suppression"},{"title":"Retrieve a suppression","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_blocks/{id}","href":"/api-reference/email-suppressions/retrieve-a-suppression"},{"title":"List audit events for a suppression","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_blocks/{id}/events","href":"/api-reference/email-suppressions/list-audit-events-for-a-suppression"}]},{"group":"Email Suppression Imports API","pages":[{"title":"Create an async CSV import job","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_blocks/import","href":"/api-reference/email-suppression-imports/create-an-async-csv-import-job"},{"title":"Poll an import job","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_blocks/import/{id}","href":"/api-reference/email-suppression-imports/poll-an-import-job"}]}]},{"group":"Unsubscribe Groups API","pages":[{"title":"List unsubscribe groups","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_unsubscribe_groups","href":"/api-reference/email-unsubscribe-groups/list-unsubscribe-groups"},{"title":"Create an unsubscribe group","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_unsubscribe_groups","href":"/api-reference/email-unsubscribe-groups/create-an-unsubscribe-group"},{"title":"Delete an unsubscribe group","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json delete /email_unsubscribe_groups/{id}","href":"/api-reference/email-unsubscribe-groups/delete-an-unsubscribe-group"},{"title":"Retrieve an unsubscribe group","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_unsubscribe_groups/{id}","href":"/api-reference/email-unsubscribe-groups/retrieve-an-unsubscribe-group"},{"title":"Update an unsubscribe group","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json patch /email_unsubscribe_groups/{id}","href":"/api-reference/email-unsubscribe-groups/update-an-unsubscribe-group"},{"title":"List suppressions in a group","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_unsubscribe_groups/{id}/suppressions","href":"/api-reference/email-unsubscribe-groups/list-suppressions-in-a-group"},{"title":"Add a group suppression","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json post /email_unsubscribe_groups/{id}/suppressions","href":"/api-reference/email-unsubscribe-groups/add-a-group-suppression"},{"title":"Remove a group suppression","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json delete /email_unsubscribe_groups/{id}/suppressions/{email}","href":"/api-reference/email-unsubscribe-groups/remove-a-group-suppression"}]}]},{"group":"Events \u0026 Webhooks","pages":[{"title":"Email Webhooks \u0026 Events","sidebarTitle":"Webhooks \u0026 Events","href":"/docs/messaging/email/webhooks-events/index"},{"title":"Email Event Lifecycle","sidebarTitle":"Event Lifecycle","href":"/docs/messaging/email/event-lifecycle/index"},{"group":"Email Events API","pages":[{"title":"List account email events","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_events","href":"/api-reference/email-events/list-account-email-events"},{"title":"Get email event statistics","deprecated":null,"version":null,"openapi":"/openapi/source/external/email/email.json get /email_events/stats","href":"/api-reference/email-events/get-email-event-statistics"}]}]},{"group":"For AI Agents","pages":[{"title":"Email llms.txt","sidebarTitle":"Email llms txt","href":"/docs/development/llms/messaging-email-llms-txt/index"},{"title":"Email llms-full.txt","sidebarTitle":"Email llms full txt","href":"/docs/development/llms/messaging-email-llms-full-txt/index"}]}]},{"tab":"RCS","icon":"message-dots","pages":[{"title":"RCS","href":"/docs/messaging/rcs/agent-registration"}]},{"tab":"WhatsApp","icon":"whatsapp","pages":[{"title":"WhatsApp","href":"/docs/messaging/whatsapp/quickstart"}]}]},{"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"}]}]},"basePath":"","title":"Update a dedicated IP - Telnyx","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["10e4515597","c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["BannerMarkdown-DV3Oq1fY.js","dist-C-XZBk9h.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-D3Isdib3.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","OpenApiReferenceProvider-CybtLBIt.js","utils-BMLj2fvV.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B6In562Y.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dr8Mfhp9.js","snippetPresets-2rmQvMVl.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","Page-C4GwDT3_.js","ApiExamples-WMqJYdZj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CJ-MlPHu.js","shallow-dY3TMRCk.js","getApiPlaygroundDisplay-v-1B2bKm.js","CodeSnippet-BDhiTB7U.js","CodeSnippets-D9hnzQcS.js","getPastedJson-Th2V45jI.js","icon-BQXch1W9.js","MethodPill-BCqUneP3.js","DuplicateIcon-Q_-bhurZ.js","createIcon-DUjLHRqp.js","DynamicMarkdown-B-f2cqXQ.js","SectionHeading-Da5NsV4v.js","axios-vUo_bRtp.js","Markdown-D13FWkIM.js","AssistantPageLink--qIqmmVG.js"]}