Generates a new DKIM key for the domain, activates it, and retires the previous key. The response includes the updated DKIM DNS records the customer must publish. Selectors are fixed, so rotation replaces the TXT value at the existing <selector>._domainkey.<domain> host rather than adding a second record — old_selector_retained is false and the new TXT value must be published promptly, since signing switches to the new key immediately and the old TXT value will no longer match. The previous key is retired to a retiring state (retained, not revoked) so it can be revoked after the DNS propagation grace period.
POST
/
email_domains
/
{domain_id}
/
rotate_dkim
JavaScript
import Telnyx from 'telnyx';const client = new Telnyx({ apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted});const response = await client.emailDomains.rotateDkim('domain_id');console.log(response.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
)
response = client.email_domains.rotate_dkim(
"domain_id",
)
print(response.data)
package com.telnyx.sdk.example;
import com.telnyx.sdk.client.TelnyxClient;
import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;
public final class Main {
private Main() {}
public static void main(String[] args) {
TelnyxClient client = TelnyxOkHttpClient.fromEnv();
var response = client.emailDomains().rotateDkim("domain_id");
}
}
require "telnyx"
telnyx = Telnyx::Client.new(api_key: "My API Key")
response = telnyx.email_domains.rotate_dkim("domain_id")
puts(response)
<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Telnyx\Client;
use Telnyx\Core\Exceptions\APIException;
$client = new Client(apiKey: getenv('TELNYX_API_KEY') ?: 'My API Key');
try {
$response = $client->emailDomains->rotateDkim(
'domain_id',
);
var_dump($response);
} catch (APIException $e) {
echo $e->getMessage();
}
{
"errors": [
{
"code": "10008",
"title": "Forbidden",
"detail": "Shared email domains are managed by Telnyx and cannot have their DKIM keys rotated by this account"
}
]
}
{
"errors": [
{
"code": "10001",
"title": "Not Found",
"detail": "The requested email domain was not found"
}
]
}
{
"errors": [
{
"code": "40901",
"title": "Conflict",
"detail": "DKIM rotation conflicted with a concurrent operation on this domain. Safe to retry."
}
]
}
Telnyx API key supplied as Authorization: Bearer <token>. In production, auth may be validated by the API gateway and forwarded via Telnyx auth headers.
Result of rotating a domain's DKIM key. The new key is active and signing switches to it immediately; the previous key is retired to a retiring state (retained, not revoked) so it can be revoked after the DNS propagation grace period. Selectors are fixed, so the DKIM DNS record's TXT value is replaced in place at the shared <selector>._domainkey.<domain> host — old_selector_retained is false and the returned dns_records carry the new value the customer must publish promptly.
import Telnyx from 'telnyx';const client = new Telnyx({ apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted});const response = await client.emailDomains.rotateDkim('domain_id');console.log(response.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
)
response = client.email_domains.rotate_dkim(
"domain_id",
)
print(response.data)
package com.telnyx.sdk.example;
import com.telnyx.sdk.client.TelnyxClient;
import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;
public final class Main {
private Main() {}
public static void main(String[] args) {
TelnyxClient client = TelnyxOkHttpClient.fromEnv();
var response = client.emailDomains().rotateDkim("domain_id");
}
}
require "telnyx"
telnyx = Telnyx::Client.new(api_key: "My API Key")
response = telnyx.email_domains.rotate_dkim("domain_id")
puts(response)
<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Telnyx\Client;
use Telnyx\Core\Exceptions\APIException;
$client = new Client(apiKey: getenv('TELNYX_API_KEY') ?: 'My API Key');
try {
$response = $client->emailDomains->rotateDkim(
'domain_id',
);
var_dump($response);
} catch (APIException $e) {
echo $e->getMessage();
}
{
"errors": [
{
"code": "10008",
"title": "Forbidden",
"detail": "Shared email domains are managed by Telnyx and cannot have their DKIM keys rotated by this account"
}
]
}
{
"errors": [
{
"code": "10001",
"title": "Not Found",
"detail": "The requested email domain was not found"
}
]
}
{
"errors": [
{
"code": "40901",
"title": "Conflict",
"detail": "DKIM rotation conflicted with a concurrent operation on this domain. Safe to retry."
}
]
}
{"docsConfig":{"theme":"sequoia","$schema":"https://mintlify.com/docs.json","name":"Telnyx","description":"Infrastructure for real-time agents. Voice, AI, Edge Compute","colors":{"primary":"#00B688","light":"#00B688","dark":"#00B688"},"logo":{"light":"https://mintcdn.com/telnyx/v2FpkbJg6PQ53qHU/assets/images/site/logo.svg?fit=max\u0026auto=format\u0026n=v2FpkbJg6PQ53qHU\u0026q=85\u0026s=5ee3f61d11ba90a197dd9a1e3499fab6","dark":"https://mintcdn.com/telnyx/v2FpkbJg6PQ53qHU/assets/images/site/logo-dark.svg?fit=max\u0026auto=format\u0026n=v2FpkbJg6PQ53qHU\u0026q=85\u0026s=d65aaa12ec708c79e5833cbdea958055"},"favicon":"https://mintcdn.com/telnyx/t-qaBUa_gCxdRz_m/favicon.ico?fit=max\u0026auto=format\u0026n=t-qaBUa_gCxdRz_m\u0026q=85\u0026s=8291283238ab8c0e2a7a985e69f38c2f","background":{"decoration":"gradient"},"navbar":{"links":[{"icon":"triangle-exclamation","href":"/docs/development/api-fundamentals/api-errors","label":"Error codes"},{"icon":"headset","href":"https://telnyx.com/contact-us","label":"Contact us"},{"icon":"user","href":"https://portal.telnyx.com/#/login/sign-in","label":"Login"}],"primary":{"type":"button","label":"Sign Up","href":"https://telnyx.com/sign-up"}},"footer":{"socials":{"github":"https://github.com/team-telnyx","linkedin":"https://www.linkedin.com/company/telnyx","slack":"https://joinslack.telnyx.com","x":"https://x.com/telnyx"},"links":[{"header":"Resources","items":[{"label":"Pricing","href":"https://developers.telnyx.com/internal/pages/pricing"},{"label":"Compare Telnyx","href":"https://developers.telnyx.com/internal/pages/compare"},{"label":"Support center","href":"https://support.telnyx.com/en"},{"label":"SETI","href":"https://seti.telnyx.com"},{"label":"Agent platform configs","href":"https://github.com/team-telnyx/ai"},{"label":"About Telnyx","href":"https://developers.telnyx.com/internal/pages/about"},{"label":"Service status","href":"https://status.telnyx.com"}]},{"header":"Updates","items":[{"label":"Release notes","href":"https://telnyx.com/release-notes"}]},{"header":"Community","items":[{"label":"Low Latency Club","href":"https://lowlatencyclub.ai/"}]},{"header":"Legal","items":[{"label":"Privacy policy","href":"https://telnyx.com/privacy-policy"},{"label":"Terms and conditions","href":"https://telnyx.com/terms-and-conditions"}]}]},"seo":{"metatags":{"og:description":"Infrastructure for real-time agents. Voice, AI, Edge Compute","description":"Infrastructure for real-time agents. Voice, AI, Edge Compute"},"organization":{"name":"Telnyx","url":"https://telnyx.com","logo":"https://telnyx.com/favicon.ico","sameAs":["https://x.com/telnyx","https://www.linkedin.com/company/telnyx/","https://github.com/team-telnyx"]}},"fonts":{"heading":{"family":"PP Formula","weight":800,"source":"assets/fonts/PPFormula-Extrabold.woff2","format":"woff2"},"body":{"family":"Inter","weight":400,"source":"assets/fonts/Inter-Regular.woff2","format":"woff2"}},"styling":{"eyebrows":"breadcrumbs","latex":true},"integrations":{"gtm":{"tagId":"GTM-NRRX236"}},"banner":{"content":"Check out our upcoming events and meetups! [View events →](https://lowlatencyclub.ai/)","dismissible":true},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"navigation":{"global":{"anchors":[{"anchor":"Home","icon":"house","href":"/docs/overview"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"telnyx","hasAudioNarration":false,"actualSubdomain":"telnyx","customDomains":["developers.telnyx.com"],"gitSource":{"type":"github","owner":"team-telnyx","repo":"developer-docs-mintlify","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aebabfd86d25a6b47f9c6ea","collectionId":"0b2268af-5cd8-4fcf-92c4-81025c3f8156","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aebabfd86d25a6b47f9c6ea"},"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":"6aebad9280499ac464b83c4e","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"Calling","count":592},{"language":"default","tag":"API Reference","count":552},{"language":"default","tag":"Other APIs","count":406},{"language":"default","tag":"AI","count":382},{"language":"default","tag":"Messaging","count":353},{"language":"default","tag":"Numbers","count":287},{"language":"default","tag":"Agent Platform","count":220},{"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":"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":"vite-origin","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":"sso-setup-deadline-banner","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%}}.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/email-domains/rotate-the-dkim-key-for-an-email-domain","slug":"/api-reference/email-domains/rotate-the-dkim-key-for-an-email-domain","pageMetadata":{"title":"Rotate the DKIM key for an email domain","description":"Generates a new DKIM key for the domain, activates it, and retires the previous key. The response includes the updated DKIM DNS records the customer must publish. Selectors are fixed, so rotation replaces the TXT value at the existing `\u003cselector>._domainkey.\u003cdomain>` host rather than adding a second record — `old_selector_retained` is false and the new TXT value must be published promptly, since signing switches to the new key immediately and the old TXT value will no longer match. The previous key is retired to a `retiring` state (retained, not revoked) so it can be revoked after the DNS propagation grace period.\n","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","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: [\"Generates a new DKIM key for the domain, activates it, and retires the previous key. The response includes the updated DKIM DNS records the customer must publish. Selectors are fixed, so rotation replaces the TXT value at the existing \", _jsx(_components.code, {\n children: \"\u003cselector>._domainkey.\u003cdomain>\"\n }), \" host rather than adding a second record — \", _jsx(_components.code, {\n children: \"old_selector_retained\"\n }), \" is false and the new TXT value must be published promptly, since signing switches to the new key immediately and the old TXT value will no longer match. The previous key is retired to a \", _jsx(_components.code, {\n children: \"retiring\"\n }), \" state (retained, not revoked) so it can be revoked after the DNS propagation grace period.\"]\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":"Rotate the DKIM key for an email domain","description":"Generates a new DKIM key for the domain, activates it, and retires the previous key. The response includes the updated DKIM DNS records the customer must publish. Selectors are fixed, so rotation replaces the TXT value at the existing `\u003cselector>._domainkey.\u003cdomain>` host rather than adding a second record — `old_selector_retained` is false and the new TXT value must be published promptly, since signing switches to the new key immediately and the old TXT value will no longer match. The previous key is retired to a `retiring` state (retained, not revoked) so it can be revoked after the DNS propagation grace period.\n","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","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/7ad13bb6588be22f/scripts/tests/redirects.test.js","/_mintlify/custom/telnyx/f981035eb45fcbdb/scripts/tests/generate-error-catalog.test.js","/_mintlify/custom/telnyx/132bc205f55282a5/scripts/tests/sync-llms-automerge.test.js","/_mintlify/custom/telnyx/05e787f15f45952b/scripts/tests/webhook-catalog-lifecycle.test.js","/_mintlify/custom/telnyx/01b840b27496e6c8/scripts/tests/repository-structure.test.js","/_mintlify/custom/telnyx/5ebc7d6e18012563/scripts/tests/legacy-content-usage.test.js","/_mintlify/custom/telnyx/ac1f21e68bf4050a/scripts/docs/check-llms-links.js","/_mintlify/custom/telnyx/5f7d2f1ae375b9ad/scripts/docs/check-llms-native-routes.js","/_mintlify/custom/telnyx/b8d13287c2dcc5b9/scripts/docs/fetch-coverage.js","/_mintlify/custom/telnyx/e0a29f76f2645359/scripts/docs/generate-error-catalog.js","/_mintlify/custom/telnyx/3d8fe29c5f30f1bc/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/d505a6f1f98f194b/home-directory.js","/_mintlify/custom/telnyx/da7a630a1adf8a7a/scripts/generate-home-directory.js","/_mintlify/custom/telnyx/137e3eb8e1d1d85a/scripts/tests/api-fundamentals.test.js","/_mintlify/custom/telnyx/24a8eed3a5010d4c/scripts/tests/agent-sdk-workflow.test.js","/_mintlify/custom/telnyx/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":{"tags":["Email Domains"],"summary":"Rotate the DKIM key for an email domain","description":"Generates a new DKIM key for the domain, activates it, and retires the previous key. The response includes the updated DKIM DNS records the customer must publish. Selectors are fixed, so rotation replaces the TXT value at the existing `\u003cselector>._domainkey.\u003cdomain>` host rather than adding a second record — `old_selector_retained` is false and the new TXT value must be published promptly, since signing switches to the new key immediately and the old TXT value will no longer match. The previous key is retired to a `retiring` state (retained, not revoked) so it can be revoked after the DNS propagation grace period.\n","operationId":"rotateEmailDomainDKIMKey","parameters":["84015171-d163-43fc-8f75-dffaab26e83b"],"responses":{"201":"b25642fc-028c-4eb2-beab-bd35ea5507b5","403":"81969366-24ec-4c79-a112-9e6128dcd5ac","404":"bd3d1e48-4686-40cb-9d1e-dbf19696688b","409":"fbc62426-383c-471f-a24c-31463f16a4f5","422":"0e81b95e-6d98-4cc5-a027-b85556f183d2","500":"fb63b7e2-6331-471e-92d7-43b2cfd93d2f"},"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 response = await client.emailDomains.rotateDkim('domain_id');\n\nconsole.log(response.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)\nresponse = client.email_domains.rotate_dkim(\n \"domain_id\",\n)\nprint(response.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\tresponse, err := client.EmailDomains.RotateDkim(\n\t\tcontext.TODO(),\n\t\t\"domain_id\",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", response.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;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n TelnyxClient client = TelnyxOkHttpClient.fromEnv();\n\n var response = client.emailDomains().rotateDkim(\"domain_id\");\n }\n}"},{"lang":"Ruby","source":"require \"telnyx\"\n\ntelnyx = Telnyx::Client.new(api_key: \"My API Key\")\n\nresponse = telnyx.email_domains.rotate_dkim(\"domain_id\")\n\nputs(response)"},{"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 $response = $client->emailDomains->rotateDkim(\n 'domain_id',\n );\n\n var_dump($response);\n} catch (APIException $e) {\n echo $e->getMessage();\n}"},{"lang":"CLI","source":"telnyx email-domains rotate-dkim \\\n --api-key 'My API Key' \\\n --domain-id domain_id"}],"method":"post","type":"path","servers":["ba228b30-2f2a-4f83-8934-4e3ba1c84f11"],"security":["7b51e92f-3d92-487d-a058-03c4cd5c2c42"],"path":"/email_domains/{domain_id}/rotate_dkim","baseUrlOptions":["https://api.telnyx.com/v2"],"title":"Rotate the DKIM key for an email domain","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 response = await client.emailDomains.rotateDkim('domain_id');\n\nconsole.log(response.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)\nresponse = client.email_domains.rotate_dkim(\n \"domain_id\",\n)\nprint(response.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\tresponse, err := client.EmailDomains.RotateDkim(\n\t\tcontext.TODO(),\n\t\t\"domain_id\",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", response.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;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n TelnyxClient client = TelnyxOkHttpClient.fromEnv();\n\n var response = client.emailDomains().rotateDkim(\"domain_id\");\n }\n}"},{"lang":"Ruby","source":"require \"telnyx\"\n\ntelnyx = Telnyx::Client.new(api_key: \"My API Key\")\n\nresponse = telnyx.email_domains.rotate_dkim(\"domain_id\")\n\nputs(response)"},{"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 $response = $client->emailDomains->rotateDkim(\n 'domain_id',\n );\n\n var_dump($response);\n} catch (APIException $e) {\n echo $e->getMessage();\n}"},{"lang":"CLI","source":"telnyx email-domains rotate-dkim \\\n --api-key 'My API Key' \\\n --domain-id domain_id"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{"84015171-d163-43fc-8f75-dffaab26e83b":{"name":"domain_id","in":"path","required":true,"description":"Email domain UUID","schema":{"type":"string","format":"uuid","isRequired":true,"description":"Email domain UUID","uniqueKey":"","typeLabel":"string\u003cuuid>"}}},"responses":{"b25642fc-028c-4eb2-beab-bd35ea5507b5":{"description":"DKIM key rotated","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","description":"Result of rotating a domain's DKIM key. The new key is active and signing switches to it immediately; the previous key is retired to a `retiring` state (retained, not revoked) so it can be revoked after the DNS propagation grace period. Selectors are fixed, so the DKIM DNS record's TXT value is replaced in place at the shared `\u003cselector>._domainkey.\u003cdomain>` host — `old_selector_retained` is false and the returned dns_records carry the new value the customer must publish promptly.\n","required":["record_type","domain_id","domain","dkim","previous_dkim_key","old_selector_retained","dns_records"],"properties":{"record_type":{"type":"string","enum":["email_domain_dkim_rotation"],"isRequired":true,"uniqueKey":"data.record_type","typeLabel":"enum\u003cstring>"},"domain_id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.domain_id","typeLabel":"string\u003cuuid>"},"domain":{"type":"string","isRequired":true,"uniqueKey":"data.domain","typeLabel":"string"},"dkim":{"type":"object","description":"The new active DKIM key.","required":["id","selector","algorithm","key_length","version","status"],"properties":{"id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.dkim.id","typeLabel":"string\u003cuuid>"},"selector":{"type":"string","isRequired":true,"uniqueKey":"data.dkim.selector","typeLabel":"string"},"algorithm":{"type":"string","enum":["rsa-sha256"],"isRequired":true,"uniqueKey":"data.dkim.algorithm","typeLabel":"enum\u003cstring>"},"key_length":{"type":"integer","enum":[2048],"isRequired":true,"uniqueKey":"data.dkim.key_length","typeLabel":"enum\u003cinteger>"},"version":{"type":"integer","description":"Monotonically increasing per-domain key version.","minimum":1,"isRequired":true,"uniqueKey":"data.dkim.version","typeLabel":"integer"},"status":{"type":"string","enum":["active"],"isRequired":true,"uniqueKey":"data.dkim.status","typeLabel":"enum\u003cstring>"},"activated_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"data.dkim.activated_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"data.dkim.activated_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.dkim.activated_at","typeLabel":"string\u003cdate-time> | null"}},"isRequired":true,"uniqueKey":"data.dkim","typeLabel":"object"},"previous_dkim_key":{"oneOf":[{"type":"object","description":"The retired previous key, or null when the domain had no active key before rotation. Retained in a `retiring` state so it can be revoked after the DNS propagation grace period.\n","required":["id","selector","version","status"],"properties":{"id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.previous_dkim_key.oneOf.0.id","typeLabel":"string\u003cuuid>"},"selector":{"type":"string","isRequired":true,"uniqueKey":"data.previous_dkim_key.oneOf.0.selector","typeLabel":"string"},"version":{"type":"integer","isRequired":true,"uniqueKey":"data.previous_dkim_key.oneOf.0.version","typeLabel":"integer"},"status":{"type":"string","enum":["retiring","revoked"],"isRequired":true,"uniqueKey":"data.previous_dkim_key.oneOf.0.status","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.previous_dkim_key.oneOf.0","typeLabel":"object"},{"type":"null","description":"The retired previous key, or null when the domain had no active key before rotation. Retained in a `retiring` state so it can be revoked after the DNS propagation grace period.\n","required":["id","selector","version","status"],"properties":{"id":{"type":"string","format":"uuid"},"selector":{"type":"string"},"version":{"type":"integer"},"status":{"type":"string","enum":["retiring","revoked"]}},"isRequired":true,"uniqueKey":"data.previous_dkim_key.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.previous_dkim_key","typeLabel":"object | null"},"old_selector_retained":{"type":"boolean","description":"False for this service: one selector is fixed per domain, so rotation replaces the TXT value at the existing _domainkey host. There is no dual-selector overlap; publish the replacement TXT promptly because signing switches immediately.","isRequired":true,"uniqueKey":"data.old_selector_retained","typeLabel":"boolean"},"dns_records":{"type":"array","description":"The DKIM DNS records the customer must publish, carrying the new key's TXT value with verification reset to pending.\n","items":{"type":"object","required":["id","purpose","record_type","host","value","required","status"],"properties":{"id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.dns_records.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"purpose":{"type":"string","enum":["ownership","spf","dkim","dmarc","mx"],"isRequired":true,"uniqueKey":"data.dns_records.items.[INDEX].purpose","typeLabel":"enum\u003cstring>"},"record_type":{"type":"string","enum":["TXT","MX"],"isRequired":true,"uniqueKey":"data.dns_records.items.[INDEX].record_type","typeLabel":"enum\u003cstring>"},"host":{"type":"string","isRequired":true,"uniqueKey":"data.dns_records.items.[INDEX].host","typeLabel":"string"},"value":{"type":"string","isRequired":true,"uniqueKey":"data.dns_records.items.[INDEX].value","typeLabel":"string"},"required":{"type":"boolean","isRequired":true,"uniqueKey":"data.dns_records.items.[INDEX].required","typeLabel":"boolean"},"status":{"type":"string","enum":["pending","verified","failed","not_required"],"isRequired":true,"uniqueKey":"data.dns_records.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"actual_value":{"oneOf":[{"type":"string","uniqueKey":"data.dns_records.items.[INDEX].actual_value.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.dns_records.items.[INDEX].actual_value.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.dns_records.items.[INDEX].actual_value","typeLabel":"string | null"},"priority":{"oneOf":[{"type":"integer","uniqueKey":"data.dns_records.items.[INDEX].priority.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"data.dns_records.items.[INDEX].priority.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.dns_records.items.[INDEX].priority","typeLabel":"integer | null"}},"example":{"id":"123e4567-e89b-12d3-a456-426614174001","purpose":"ownership","record_type":"TXT","host":"_telnyx-email.example.com","value":"telnyx-domain-verification=abc123","actual_value":null,"priority":null,"required":true,"status":"pending"},"uniqueKey":"data.dns_records.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.dns_records","typeLabel":"object[]"}},"example":{"record_type":"email_domain_dkim_rotation","domain_id":"123e4567-e89b-12d3-a456-426614174002","domain":"example.com","dkim":{"id":"123e4567-e89b-12d3-a456-42661417400a","selector":"telnyx1","algorithm":"rsa-sha256","key_length":2048,"version":2,"status":"active","activated_at":"2026-09-11T12:00:00Z"},"previous_dkim_key":{"id":"123e4567-e89b-12d3-a456-426614174009","selector":"telnyx1","version":1,"status":"retiring"},"old_selector_retained":false,"dns_records":[{"id":"123e4567-e89b-12d3-a456-42661417400b","purpose":"dkim","record_type":"TXT","host":"telnyx1._domainkey.example.com","value":"v=DKIM1; k=rsa; p=MIIBIjANBgkqh...","actual_value":null,"priority":null,"required":true,"status":"pending"}]},"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":{"record_type":"email_domain_dkim_rotation","domain_id":"123e4567-e89b-12d3-a456-426614174002","domain":"example.com","dkim":{"id":"123e4567-e89b-12d3-a456-42661417400a","selector":"telnyx1","algorithm":"rsa-sha256","key_length":2048,"version":2,"status":"active","activated_at":"2026-09-11T12:00:00Z"},"previous_dkim_key":{"id":"123e4567-e89b-12d3-a456-426614174009","selector":"telnyx1","version":1,"status":"retiring"},"old_selector_retained":false,"dns_records":[{"id":"123e4567-e89b-12d3-a456-42661417400b","purpose":"dkim","record_type":"TXT","host":"telnyx1._domainkey.example.com","value":"v=DKIM1; k=rsa; p=MIIBIjANBgkqh...","actual_value":null,"priority":null,"required":true,"status":"pending"}]}},"examples":{"Example":{"title":"Example","value":{"data":{"record_type":"email_domain_dkim_rotation","domain_id":"123e4567-e89b-12d3-a456-426614174002","domain":"example.com","dkim":{"id":"123e4567-e89b-12d3-a456-42661417400a","selector":"telnyx1","algorithm":"rsa-sha256","key_length":2048,"version":2,"status":"active","activated_at":"2026-09-11T12:00:00Z"},"previous_dkim_key":{"id":"123e4567-e89b-12d3-a456-426614174009","selector":"telnyx1","version":1,"status":"retiring"},"old_selector_retained":false,"dns_records":[{"id":"123e4567-e89b-12d3-a456-42661417400b","purpose":"dkim","record_type":"TXT","host":"telnyx1._domainkey.example.com","value":"v=DKIM1; k=rsa; p=MIIBIjANBgkqh...","actual_value":null,"priority":null,"required":true,"status":"pending"}]}}}},"exampleType":"examples"}},"exampleType":"examples"},"81969366-24ec-4c79-a112-9e6128dcd5ac":{"description":"Forbidden — shared email domains are managed by Telnyx and cannot have their DKIM keys rotated by this account.\n","content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","title","detail"],"properties":{"code":{"type":"string","enum":["10001","10015","500","10007","10008","10020","40901"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].title","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"source":{"type":"object","properties":{"pointer":{"type":"string","uniqueKey":"errors.items.[INDEX].source.pointer","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].source","typeLabel":"object"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"errors":[{"code":"10008","title":"Forbidden","detail":"Shared email domains are managed by Telnyx and cannot have their DKIM keys rotated by this account"}]},"examples":{"Example":{"title":"Example","value":{"errors":[{"code":"10008","title":"Forbidden","detail":"Shared email domains are managed by Telnyx and cannot have their DKIM keys rotated by this account"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"bd3d1e48-4686-40cb-9d1e-dbf19696688b":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","title","detail"],"properties":{"code":{"type":"string","enum":["10001","10015","500","10007","10008","10020","40901"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].title","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"source":{"type":"object","properties":{"pointer":{"type":"string","uniqueKey":"errors.items.[INDEX].source.pointer","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].source","typeLabel":"object"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"errors":[{"code":"10001","title":"Not Found","detail":"The requested email domain was not found"}]},"examples":{"Example":{"title":"Example","value":{"errors":[{"code":"10001","title":"Not Found","detail":"The requested email domain was not found"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"fbc62426-383c-471f-a24c-31463f16a4f5":{"description":"DKIM rotation conflicted with a concurrent operation on this domain. Safe to retry.","content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","title","detail"],"properties":{"code":{"type":"string","enum":["10001","10015","500","10007","10008","10020","40901"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].title","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"source":{"type":"object","properties":{"pointer":{"type":"string","uniqueKey":"errors.items.[INDEX].source.pointer","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].source","typeLabel":"object"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"errors":[{"code":"40901","title":"Conflict","detail":"DKIM rotation conflicted with a concurrent operation on this domain. Safe to retry."}]},"examples":{"Example":{"title":"Example","value":{"errors":[{"code":"40901","title":"Conflict","detail":"DKIM rotation conflicted with a concurrent operation on this domain. Safe to retry."}]}}},"exampleType":"examples"}},"exampleType":"examples"},"0e81b95e-6d98-4cc5-a027-b85556f183d2":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","title","detail"],"properties":{"code":{"type":"string","enum":["10001","10015","500","10007","10008","10020","40901"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].title","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"source":{"type":"object","properties":{"pointer":{"type":"string","uniqueKey":"errors.items.[INDEX].source.pointer","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].source","typeLabel":"object"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"errors":[{"code":"10015","title":"Validation Failed","detail":"domain is invalid","source":{"pointer":"/data/attributes/domain"}}]},"examples":{"Example":{"title":"Example","value":{"errors":[{"code":"10015","title":"Validation Failed","detail":"domain is invalid","source":{"pointer":"/data/attributes/domain"}}]}}},"exampleType":"examples"}},"exampleType":"examples"},"fb63b7e2-6331-471e-92d7-43b2cfd93d2f":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","title","detail"],"properties":{"code":{"type":"string","enum":["10001","10015","500","10007","10008","10020","40901"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].title","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"source":{"type":"object","properties":{"pointer":{"type":"string","uniqueKey":"errors.items.[INDEX].source.pointer","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].source","typeLabel":"object"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"errors":[{"code":"500","title":"Internal Server Error","detail":"An unexpected error occurred"}]},"examples":{"Example":{"title":"Example","value":{"errors":[{"code":"500","title":"Internal Server Error","detail":"An unexpected error occurred"}]}}},"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":"Rotate the DKIM key for an email domain - Telnyx","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-29T13:57:23.290Z","originalFileLocation":"api-reference/email-domains/rotate-the-dkim-key-for-an-email-domain.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=\"Generates a new DKIM key for the domain, activates it, and retires the previous key. The response includes the updated DKIM DNS records the customer must publish. Selectors are fixed, so rotation replaces the TXT value at the existing ._domainkey. host rather than adding a second record — old_selector_retained is false and the new TXT value must be published promptly, since signing switches to the new key immediately and the old TXT value will no longer match. The previous key is retired to a retiring state (retained, not revoked) so it can be revoked after the DNS propagation grace period.\">\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=\"Rotate the DKIM key for an email domain - 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/email-domains/rotate-the-dkim-key-for-an-email-domain\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://telnyx.mintlify.app/_mintlify/api/og/v2?division=Email+Domains+API\u0026amp;title=Rotate+the+DKIM+key+for+an+email+domain\u0026amp;description=Generates+a+new+DKIM+key+for+the+domain%2C+activates+it%2C+and+retires+the+previous+key.+The+response+includes+the+updated+DKIM+DNS+records+the+customer+must+publis\u0026amp;theme=0dd46d2166d1a00e34819206\u0026amp;signature=9be7b27c79310515c923d9079b32143436609a9bf5dad98254b2dd5b53981fbf\">\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=\"Rotate the DKIM key for an email domain - Telnyx\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Infrastructure for real-time agents. Voice, AI, Edge Compute\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://telnyx.mintlify.app/_mintlify/api/og/v2?division=Email+Domains+API\u0026amp;title=Rotate+the+DKIM+key+for+an+email+domain\u0026amp;description=Generates+a+new+DKIM+key+for+the+domain%2C+activates+it%2C+and+retires+the+previous+key.+The+response+includes+the+updated+DKIM+DNS+records+the+customer+must+publis\u0026amp;theme=0dd46d2166d1a00e34819206\u0026amp;signature=9be7b27c79310515c923d9079b32143436609a9bf5dad98254b2dd5b53981fbf\">\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/email-domains/rotate-the-dkim-key-for-an-email-domain\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/email-domains/rotate-the-dkim-key-for-an-email-domain.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/email-domains/rotate-the-dkim-key-for-an-email-domain#webpage\",\"url\":\"https://developers.telnyx.com/api-reference/email-domains/rotate-the-dkim-key-for-an-email-domain\",\"name\":\"Rotate the DKIM key for an email domain\",\"description\":\"Generates a new DKIM key for the domain, activates it, and retires the previous key. The response includes the updated DKIM DNS records the customer must publish. Selectors are fixed, so rotation replaces the TXT value at the existing ._domainkey. host rather than adding a second record — old_selector_retained is false and the new TXT value must be published promptly, since signing switches to the new key immediately and the old TXT value will no longer match. The previous key is retired to a retiring state (retained, not revoked) so it can be revoked after the DNS propagation grace period.\",\"dateModified\":\"2026-10-29T13:57:23.290Z\",\"isPartOf\":{\"@id\":\"https://developers.telnyx.com#website\"},\"breadcrumb\":{\"@id\":\"https://developers.telnyx.com/api-reference/email-domains/rotate-the-dkim-key-for-an-email-domain#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.telnyx.com/api-reference/email-domains/rotate-the-dkim-key-for-an-email-domain#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Domains \u0026 Validation\",\"item\":\"https://developers.telnyx.com/docs/messaging/email/domains/index\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Email Domains API\",\"item\":\"https://developers.telnyx.com/api-reference/email-domains/list-email-domains\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Email Domains API\",\"item\":\"https://developers.telnyx.com/api-reference/email-domains/list-email-domains\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Rotate the DKIM key for an email domain\",\"item\":\"https://developers.telnyx.com/api-reference/email-domains/rotate-the-dkim-key-for-an-email-domain\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developers.telnyx.com/api-reference/email-domains/rotate-the-dkim-key-for-an-email-domain#apireference\",\"headline\":\"Rotate the DKIM key for an email domain\",\"name\":\"Rotate the DKIM key for an email domain\",\"description\":\"Generates a new DKIM key for the domain, activates it, and retires the previous key. The response includes the updated DKIM DNS records the customer must publish. Selectors are fixed, so rotation replaces the TXT value at the existing ._domainkey. host rather than adding a second record — old_selector_retained is false and the new TXT value must be published promptly, since signing switches to the new key immediately and the old TXT value will no longer match. The previous key is retired to a retiring state (retained, not revoked) so it can be revoked after the DNS propagation grace period.\",\"url\":\"https://developers.telnyx.com/api-reference/email-domains/rotate-the-dkim-key-for-an-email-domain\",\"mainEntityOfPage\":{\"@id\":\"https://developers.telnyx.com/api-reference/email-domains/rotate-the-dkim-key-for-an-email-domain#webpage\"},\"dateModified\":\"2026-10-29T13:57:23.290Z\",\"publisher\":{\"@id\":\"https://telnyx.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.telnyx.com#website\"}}]}\u003c/script>","siteName":"Telnyx","nav":{"global":{"anchors":[{"anchor":"Home","icon":"house","href":"/docs/overview"}]},"products":[{"product":"Home","icon":"house","pages":[{"title":"Home","href":"/docs/overview"}]},{"product":"Other APIs","icon":"ellipsis","pages":[{"title":"Other APIs","href":"/docs/other-apis"}]},{"product":"Agent Platform","icon":"circle-nodes","pages":[{"title":"Agent Platform","href":"/docs/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","description":"Returns a summary of domain health including verification status and usability.","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","description":"Returns the DNS records Telnyx generated for domain ownership and DKIM verification, plus MX records when inbound delivery is enabled.","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","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","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":"Rotate the DKIM key for an email domain - Telnyx","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":["10e4515597","c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["BannerMarkdown-DicSZcaX.js","dist-CIQkMg3R.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-ClVdStUn.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","OpenApiReferenceProvider-DX1Meug0.js","utils-B_OMIQVC.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-ChxhRPMa.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CuKvD8Iv.js","snippetPresets-C5d7p2hp.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-BAvA99GL.js","ApiExamples-CfHcE8m4.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C1zZV314.js","shallow-CmQhqCJn.js","getApiPlaygroundDisplay-YRo9s1O7.js","CodeSnippet-RN1MTdfk.js","CodeSnippets-DKLPHxJA.js","getPastedJson-bz0M41mU.js","icon-CsmhpPrv.js","MethodPill-CNGsVE77.js","DuplicateIcon-DilfU_Z2.js","createIcon-BdsYzQck.js","DynamicMarkdown-CbqEDjbV.js","SectionHeading-O6hXpFCN.js","axios-vUo_bRtp.js","Markdown-nKm-uidQ.js","AssistantPageLink-ImrFS4Fy.js"]}