Remove every combination of contact_ids × topic_ids. Pairs that did not exist are ignored. Requires the audience:write scope and is blocked for sandbox API keys.
Remove every combination of contact_ids × topic_ids. Pairs that did not exist are ignored, so unsubscribed can be lower than total_pairs. Requires the audience:write scope and is blocked for sandbox API keys.
This DELETE carries a request body. Most HTTP clients support that, but some need it enabled explicitly — the same applies to bulk detach contacts from lists.
Authorizations
Authorization
string
header
required
API key for authentication
Body
application/json
Bulk subscribe/unsubscribe contacts to/from topics. All combinations of contact_ids × topic_ids are processed.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/schema.json","name":"Lettr","colors":{"primary":"#EC104B","light":"#F04070","dark":"#D00E43"},"logo":{"light":"https://mintcdn.com/lettr/w6cQMnBCGTvjJ4__/logo/light.svg?fit=max\u0026auto=format\u0026n=w6cQMnBCGTvjJ4__\u0026q=85\u0026s=2cad5a94a80e61999cf9feaeac06e9c6","dark":"https://mintcdn.com/lettr/w6cQMnBCGTvjJ4__/logo/dark.svg?fit=max\u0026auto=format\u0026n=w6cQMnBCGTvjJ4__\u0026q=85\u0026s=2d94948c6f2c26d1375758ec890ccd4b","href":"/introduction"},"favicon":"https://mintcdn.com/lettr/MeT4pWpyRN-RhvgL/favicon.svg?fit=max\u0026auto=format\u0026n=MeT4pWpyRN-RhvgL\u0026q=85\u0026s=800c7fba1be1e2324447ed3b67ef0a48","api":{},"appearance":{"default":"dark"},"navbar":{"links":[{"href":"https://status.lettr.com/","label":"Status"},{"href":"https://lettr.com/support","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.lettr.com"}},"footer":{"socials":{"x":"https://x.com/lettr_com","linkedin":"https://www.linkedin.com/company/lettr-com","github":"https://github.com/lettr-com"}},"fonts":{"heading":{"family":"Manrope","weight":400},"body":{"family":"Manrope"}},"integrations":{"ga4":{"measurementId":"G-GMH8JTRY9Q"},"posthog":{"apiKey":"phc_67BYz5Uv0uoiydQyaN3OyeK9OPx6LjmFDFvF0mNaTy9","apiHost":"https://eu.i.posthog.com","sessionRecording":true}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"lettr","hasAudioNarration":false,"actualSubdomain":"lettr","customDomains":["docs.lettr.com"],"gitSource":{"type":"github","owner":"lettr-com","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"edits":true,"thumbs":true,"issues":true},"entitlements":{},"buildId":"6ae891273630049289fee76e","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"Documentation","count":186},{"language":"default","tag":"Learn","count":110},{"language":"default","tag":"Knowledge Base","count":87},{"language":"default","tag":"API Reference","count":72},{"language":"default","tag":"Quickstart","count":68},{"language":"default","tag":"DNS Guides","count":19},{"language":"default","tag":"Templates","count":18},{"language":"default","tag":"Domains","count":16},{"language":"default","tag":"Email Fundamentals","count":15},{"language":"default","tag":"Troubleshooting","count":15}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":":root{--rounded: 0px;--rounded-sm: 0px;--rounded-md: 0px;--rounded-lg: 0px;--rounded-xl: 0px;--rounded-2xl: 0px;--rounded-3xl: 0px;--rounded-search: 0px;--c15t-radius-sm: 0px;--c15t-radius-md: 0px;--c15t-radius-lg: 0px;--cdt-radius: 0px;--accordion-radius: 0px;--button-border-radius: 0px;--consent-banner-border-radius: 0px;--consent-dialog-card-radius: 0px;--consent-widget-radius: 0px;--consent-widget-accordion-radius: 0px;--frame-placeholder-border-radius: 0px;--scrollbar-track-radius: 0px;--scrollbar-thumb-radius: 0px;--scrollbar-corner-radius: 0px}*,*::before,*::after,::backdrop,::file-selector-button{border-radius:0!important}[class~=\"rounded-full\"],[class~=\"rounded-full!\"]{border-radius:9999px!important}.prose :where(ul>li)::before,.prose-sm :where(ul>li)::before,.latex-style ul>li::before{border-radius:50%!important}.sdk-list{--sdk-fg: rgb(24 14 19);--sdk-muted: rgb(24 14 19 / 0.55);--sdk-line: rgb(60 20 35 / 0.1);--sdk-hover: rgb(236 16 75 / 0.035);--sdk-code-bg: rgb(60 20 35 / 0.035);--sdk-code-line: rgb(60 20 35 / 0.12);--sdk-accent: #d00e43;--sdk-ease: cubic-bezier(0.22, 1, 0.36, 1);margin:1.25rem 0 2.5rem;border-top:1px solid var(--sdk-line)}.dark .sdk-list{--sdk-fg: rgb(250 242 245);--sdk-muted: rgb(250 242 245 / 0.5);--sdk-line: rgb(255 225 235 / 0.09);--sdk-hover: rgb(240 64 112 / 0.05);--sdk-code-bg: rgb(255 225 235 / 0.035);--sdk-code-line: rgb(255 225 235 / 0.1);--sdk-accent: #f04070}.sdk-row{position:relative;display:grid;grid-template-columns:1.25rem 8.75rem minmax(0, 1fr) 1rem;align-items:center;column-gap:1rem;padding:0.875rem 0.75rem;border-bottom:1px solid var(--sdk-line);transition:background-color 180ms var(--sdk-ease)}.sdk-row:hover{background-color:var(--sdk-hover)}.sdk-row:has(.sdk-row__name:focus-visible){outline:2px solid var(--sdk-accent);outline-offset:-2px}.sdk-row__logo{display:flex;align-items:center;justify-content:center;color:var(--sdk-muted);transition:color 180ms var(--sdk-ease)}.sdk-row__logo svg,.sdk-row__logo span{background-color:currentColor!important}.sdk-row:hover .sdk-row__logo{color:var(--sdk-fg)}.sdk-row__name{position:static!important;z-index:auto!important;font-size:0.9375rem;font-weight:600;letter-spacing:-0.005em;color:var(--sdk-fg);text-decoration:none;white-space:nowrap}.sdk-row__name:focus-visible{outline:none}.sdk-row__name::after{content:\"\";position:absolute;inset:0}.sdk-row__install{position:relative;z-index:1;justify-self:start;display:inline-flex;align-items:center;gap:0.625rem;max-width:100%;min-width:0;padding:0.3125rem 0.5rem 0.3125rem 0.625rem;border:1px solid var(--sdk-code-line);background:var(--sdk-code-bg);color:var(--sdk-fg);cursor:pointer;transition:border-color 180ms var(--sdk-ease)}.sdk-row__install:hover{border-color:var(--sdk-accent)}.sdk-row__install:focus-visible{outline:2px solid var(--sdk-accent);outline-offset:2px}.sdk-row__install code{padding:0!important;border:0!important;background:none!important;color:inherit!important;overflow:hidden;font-size:0.8125rem;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.sdk-row__copy{display:flex;flex-shrink:0;color:var(--sdk-muted);transition:color 180ms var(--sdk-ease)}.sdk-row__install:hover .sdk-row__copy,.sdk-row__copy[data-copied=\"true\"]{color:var(--sdk-accent)}.sdk-row__arrow{color:var(--sdk-muted);transition:transform 220ms var(--sdk-ease),\n color 180ms var(--sdk-ease)}.sdk-row:hover .sdk-row__arrow{color:var(--sdk-accent);transform:translate(2px, -2px)}.sdk-row__sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.sdk-list--inline{margin:0 0 1.25rem}:has(+.sdk-list--inline){margin-bottom:0.625rem!important}@media (max-width: 640px){.sdk-row{grid-template-columns:1.25rem minmax(0, 1fr) 1rem;row-gap:0.625rem;padding:0.875rem 0.5rem}.sdk-row__install{grid-row:2;grid-column:2 / 4;justify-self:stretch;justify-content:space-between;min-height:2.75rem;padding-block:0.5rem;text-align:left}.sdk-row__install code{white-space:normal;overflow-wrap:anywhere}}@media (prefers-reduced-motion: reduce){.sdk-row,.sdk-row__logo,.sdk-row__install,.sdk-row__copy,.sdk-row__arrow{transition:none}.sdk-row:hover .sdk-row__arrow{transform:none}}.whitespace-pre-wrap>pre.shiki,.whitespace-pre-wrap>pre.shiki code{white-space:pre-wrap!important;overflow-wrap:anywhere}"}],"page":{"pagePath":"api-reference/audience/bulk-unsubscribe-contacts-from-topics","slug":"/api-reference/audience/bulk-unsubscribe-contacts-from-topics","pageMetadata":{"title":"Bulk unsubscribe contacts from topics","openapi":"DELETE /audience/contacts/topics/bulk","description":"Remove every combination of `contact_ids × topic_ids`. Pairs that did not exist are ignored. Requires the `audience:write` scope and is blocked for sandbox API keys.","href":"/api-reference/audience/bulk-unsubscribe-contacts-from-topics"},"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: [\"Remove every combination of \", _jsx(_components.code, {\n children: \"contact_ids × topic_ids\"\n }), \". Pairs that did not exist are ignored. Requires the \", _jsx(_components.code, {\n children: \"audience:write\"\n }), \" scope and is blocked for sandbox API keys.\"]\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,..._provideComponents(),...props.components},{Note}=_components;if(!Note)_missingMdxReference(`Note`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Remove every combination of `,_jsx(_components.code,{children:`contact_ids × topic_ids`}),`. Pairs that did not exist are ignored, so `,_jsx(_components.code,{children:`unsubscribed`}),` can be lower than `,_jsx(_components.code,{children:`total_pairs`}),`. Requires the `,_jsx(_components.code,{children:`audience:write`}),` scope and is blocked for sandbox API keys.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`This `,_jsx(_components.code,{children:`DELETE`}),` carries a request body. Most HTTP clients support that, but some need it enabled explicitly — the same applies to `,_jsx(_components.a,{href:`/api-reference/audience/bulk-detach-contacts-from-lists`,children:`bulk detach contacts from lists`}),`.`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Bulk unsubscribe contacts from topics","openapi":"DELETE /audience/contacts/topics/bulk","description":"Remove every combination of `contact_ids × topic_ids`. Pairs that did not exist are ignored. Requires the `audience:write` scope and is blocked for sandbox API keys.","href":"/api-reference/audience/bulk-unsubscribe-contacts-from-topics"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"bulkUnsubscribeContactsFromTopics","summary":"Bulk unsubscribe contacts from topics","description":"Remove every combination of `contact_ids × topic_ids`. Pairs that did not exist are ignored. Requires the `audience:write` scope and is blocked for sandbox API keys.","tags":["Audience"],"security":["6d9e3bd5-56f0-49e6-b94d-e89edcd3bffb"],"requestBody":"7640f978-2866-4471-8481-2d676b187ff0","responses":{"200":"1cbf3170-fb93-4cde-a468-ef17f79359de","401":"a0b14370-4df0-44cc-959f-2a165ecbc321","403":"8f1173f5-0bc6-4204-9f50-c5d9ba2fbecc","422":"8d27e0b6-85bc-4173-8f0e-848b0f9217ce","500":"dc7d4fc4-0676-40f7-903c-e2293ecc77ed","503":"815fcd5d-4e6e-47cf-a003-fe68e247430d"},"method":"delete","type":"path","servers":["3a9a6297-5f46-49ab-955a-fb22c45ca41c"],"path":"/audience/contacts/topics/bulk","baseUrlOptions":["https://app.lettr.com/api"],"title":"Bulk unsubscribe contacts from topics","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Bulk subscribe/unsubscribe contacts to/from topics. All combinations of contact_ids × topic_ids are processed.","required":["contact_ids","topic_ids"],"properties":{"contact_ids":{"type":"array","minItems":1,"maxItems":1000,"items":{"type":"string","format":"uuid","uniqueKey":"contact_ids.items.[INDEX]","typeLabel":"string\u003cuuid>"},"isRequired":true,"uniqueKey":"contact_ids","typeLabel":"string\u003cuuid>[]"},"topic_ids":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string","format":"uuid","uniqueKey":"topic_ids.items.[INDEX]","typeLabel":"string\u003cuuid>"},"isRequired":true,"uniqueKey":"topic_ids","typeLabel":"string\u003cuuid>[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"contact_ids":["3c90c3cc-0d44-4b50-8888-8dd25736052a"],"topic_ids":["3c90c3cc-0d44-4b50-8888-8dd25736052a"]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"1cbf3170-fb93-4cde-a468-ef17f79359de":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["message","data"],"properties":{"message":{"type":"string","example":"Contacts unsubscribed from topics.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"data":{"type":"object","required":["unsubscribed","total_pairs"],"properties":{"unsubscribed":{"type":"integer","minimum":0,"description":"Pairs that were removed","isRequired":true,"uniqueKey":"data.unsubscribed","typeLabel":"integer"},"total_pairs":{"type":"integer","minimum":0,"description":"Total contact × topic pairs processed","isRequired":true,"uniqueKey":"data.total_pairs","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"Contacts unsubscribed from topics.","data":{"unsubscribed":1,"total_pairs":1}}}},"exampleType":"generated"}},"exampleType":"generated"},"a0b14370-4df0-44cc-959f-2a165ecbc321":{"description":"Unauthorized - Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","required":["message"],"description":"Error response for authentication failures (401).","properties":{"message":{"type":"string","description":"Human-readable error message","example":"API key is required.","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"missing_key":{"title":"missing_key","summary":"Missing API key","value":{"message":"API key is required."}},"invalid_key":{"title":"invalid_key","summary":"Invalid API key","value":{"message":"Invalid API key."}}},"exampleType":"examples"}},"exampleType":"examples"},"8f1173f5-0bc6-4204-9f50-c5d9ba2fbecc":{"description":"Forbidden - API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","required":["message","error_code"],"description":"Error response for non-validation errors (400, 409, 500, 502).","properties":{"message":{"type":"string","description":"Human-readable error message","example":"The sender domain could not be determined from the email address.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error_code":{"type":"string","description":"Error codes returned by the API.\n\n| Code | HTTP Status | Description |\n|------|-------------|-------------|\n| `validation_error` | 422 | Request validation failed. Check the `errors` object for field-specific messages. |\n| `invalid_domain` | 400 | The sender domain could not be determined from the email address. |\n| `unconfigured_domain` | 400 | The sender domain is not configured or approved for sending. |\n| `send_error` | 400, 500 | General error during email send preparation or domain registration. |\n| `retrieval_error` | 400, 500 | Failed to retrieve resources (e.g., sandbox key without associated user, upstream error). |\n| `internal_error` | 500 | An unexpected error on our side. The `message` names what failed; retry later. |\n| `transmission_failed` | 502 | Email transmission to the upstream provider failed. |\n| `resource_already_exists` | 409 | The resource (e.g., domain) already exists. |\n| `not_found` | 404 | The specified resource was not found. |\n| `template_not_found` | 404 | The specified template, project, or template version was not found. |\n| `insufficient_scope` | 403 | The API key does not have the required scope for this endpoint. |\n| `domain_not_allowed` | 403 | The sender domain is not in the API key's allowed sender domains. |\n| `schedule_cancellation_failed` | 409, 500 | The scheduled email can no longer be cancelled (already sent, already cancelled, or being injected right now), or the cancellation itself failed. |\n| `quota_exceeded` | 429 | Monthly sending quota exceeded. Upgrade your plan to continue sending. |\n| `daily_quota_exceeded` | 429 | Daily sending quota exceeded. Try again tomorrow. |\n| `campaign_not_sendable` | 422 | The campaign cannot be sent in its current state (not a draft, or missing subject/sender/content). |\n| `campaign_not_scheduled` | 422 | The campaign is not scheduled, so it cannot be unscheduled. |","enum":["validation_error","idempotency_key_conflict","idempotency_in_progress","invalid_domain","unconfigured_domain","send_error","retrieval_error","internal_error","transmission_failed","resource_already_exists","not_found","template_not_found","insufficient_scope","domain_not_allowed","schedule_cancellation_failed","quota_exceeded","daily_quota_exceeded","campaign_not_sendable","campaign_not_scheduled"],"example":"invalid_domain","isRequired":true,"uniqueKey":"error_code","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"example":{"message":"Your API key does not have the required permissions for this action.","error_code":"insufficient_scope"},"examples":{"Example":{"title":"Example","value":{"message":"Your API key does not have the required permissions for this action.","error_code":"insufficient_scope"}}},"exampleType":"examples"}},"exampleType":"examples"},"8d27e0b6-85bc-4173-8f0e-848b0f9217ce":{"description":"Validation error","content":{"application/json":{"schema":{"type":"object","required":["message","error_code","errors"],"properties":{"message":{"type":"string","description":"Human-readable error message","example":"Validation failed.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error_code":{"type":"string","description":"Error code (always `validation_error` for 422 responses)","const":"validation_error","example":"validation_error","isRequired":true,"uniqueKey":"error_code","typeLabel":"string"},"errors":{"type":"object","description":"Field-specific validation errors","additionalProperties":{"type":"array","items":{"type":"string","uniqueKey":"errors.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.additionalProperties","typeLabel":"string[]"},"example":{"from":["The sender email address is required."],"to":["At least one recipient email address is required."]},"isRequired":true,"uniqueKey":"errors","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"Validation failed.","error_code":"validation_error","errors":{"from":["The sender email address is required."],"to":["At least one recipient email address is required."]}}}},"exampleType":"generated"}},"exampleType":"generated"},"dc7d4fc4-0676-40f7-903c-e2293ecc77ed":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","required":["message","error_code"],"description":"Error response for non-validation errors (400, 409, 500, 502).","properties":{"message":{"type":"string","description":"Human-readable error message","example":"The sender domain could not be determined from the email address.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error_code":{"type":"string","description":"Error codes returned by the API.\n\n| Code | HTTP Status | Description |\n|------|-------------|-------------|\n| `validation_error` | 422 | Request validation failed. Check the `errors` object for field-specific messages. |\n| `invalid_domain` | 400 | The sender domain could not be determined from the email address. |\n| `unconfigured_domain` | 400 | The sender domain is not configured or approved for sending. |\n| `send_error` | 400, 500 | General error during email send preparation or domain registration. |\n| `retrieval_error` | 400, 500 | Failed to retrieve resources (e.g., sandbox key without associated user, upstream error). |\n| `internal_error` | 500 | An unexpected error on our side. The `message` names what failed; retry later. |\n| `transmission_failed` | 502 | Email transmission to the upstream provider failed. |\n| `resource_already_exists` | 409 | The resource (e.g., domain) already exists. |\n| `not_found` | 404 | The specified resource was not found. |\n| `template_not_found` | 404 | The specified template, project, or template version was not found. |\n| `insufficient_scope` | 403 | The API key does not have the required scope for this endpoint. |\n| `domain_not_allowed` | 403 | The sender domain is not in the API key's allowed sender domains. |\n| `schedule_cancellation_failed` | 409, 500 | The scheduled email can no longer be cancelled (already sent, already cancelled, or being injected right now), or the cancellation itself failed. |\n| `quota_exceeded` | 429 | Monthly sending quota exceeded. Upgrade your plan to continue sending. |\n| `daily_quota_exceeded` | 429 | Daily sending quota exceeded. Try again tomorrow. |\n| `campaign_not_sendable` | 422 | The campaign cannot be sent in its current state (not a draft, or missing subject/sender/content). |\n| `campaign_not_scheduled` | 422 | The campaign is not scheduled, so it cannot be unscheduled. |","enum":["validation_error","idempotency_key_conflict","idempotency_in_progress","invalid_domain","unconfigured_domain","send_error","retrieval_error","internal_error","transmission_failed","resource_already_exists","not_found","template_not_found","insufficient_scope","domain_not_allowed","schedule_cancellation_failed","quota_exceeded","daily_quota_exceeded","campaign_not_sendable","campaign_not_scheduled"],"example":"invalid_domain","isRequired":true,"uniqueKey":"error_code","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"example":{"message":"An unexpected error occurred. Please try again later.","error_code":"send_error"},"examples":{"Example":{"title":"Example","value":{"message":"An unexpected error occurred. Please try again later.","error_code":"send_error"}}},"exampleType":"examples"}},"exampleType":"examples"},"815fcd5d-4e6e-47cf-a003-fe68e247430d":{"description":"Service unavailable - the API key could not be verified, so the request was not processed. This does not mean the key is invalid; retry after the delay given in the Retry-After header.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","example":5}}},"content":{"application/json":{"schema":{"type":"object","required":["message","error_code"],"description":"Error response for non-validation errors (400, 409, 500, 502).","properties":{"message":{"type":"string","description":"Human-readable error message","example":"The sender domain could not be determined from the email address.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error_code":{"type":"string","description":"Error codes returned by the API.\n\n| Code | HTTP Status | Description |\n|------|-------------|-------------|\n| `validation_error` | 422 | Request validation failed. Check the `errors` object for field-specific messages. |\n| `invalid_domain` | 400 | The sender domain could not be determined from the email address. |\n| `unconfigured_domain` | 400 | The sender domain is not configured or approved for sending. |\n| `send_error` | 400, 500 | General error during email send preparation or domain registration. |\n| `retrieval_error` | 400, 500 | Failed to retrieve resources (e.g., sandbox key without associated user, upstream error). |\n| `internal_error` | 500 | An unexpected error on our side. The `message` names what failed; retry later. |\n| `transmission_failed` | 502 | Email transmission to the upstream provider failed. |\n| `resource_already_exists` | 409 | The resource (e.g., domain) already exists. |\n| `not_found` | 404 | The specified resource was not found. |\n| `template_not_found` | 404 | The specified template, project, or template version was not found. |\n| `insufficient_scope` | 403 | The API key does not have the required scope for this endpoint. |\n| `domain_not_allowed` | 403 | The sender domain is not in the API key's allowed sender domains. |\n| `schedule_cancellation_failed` | 409, 500 | The scheduled email can no longer be cancelled (already sent, already cancelled, or being injected right now), or the cancellation itself failed. |\n| `quota_exceeded` | 429 | Monthly sending quota exceeded. Upgrade your plan to continue sending. |\n| `daily_quota_exceeded` | 429 | Daily sending quota exceeded. Try again tomorrow. |\n| `campaign_not_sendable` | 422 | The campaign cannot be sent in its current state (not a draft, or missing subject/sender/content). |\n| `campaign_not_scheduled` | 422 | The campaign is not scheduled, so it cannot be unscheduled. |","enum":["validation_error","idempotency_key_conflict","idempotency_in_progress","invalid_domain","unconfigured_domain","send_error","retrieval_error","internal_error","transmission_failed","resource_already_exists","not_found","template_not_found","insufficient_scope","domain_not_allowed","schedule_cancellation_failed","quota_exceeded","daily_quota_exceeded","campaign_not_sendable","campaign_not_scheduled"],"example":"invalid_domain","isRequired":true,"uniqueKey":"error_code","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"example":{"message":"Unable to verify your API key right now. Please retry shortly.","error_code":"auth_unavailable"},"examples":{"Example":{"title":"Example","value":{"message":"Unable to verify your API key right now. Please retry shortly.","error_code":"auth_unavailable"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"6d9e3bd5-56f0-49e6-b94d-e89edcd3bffb":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key for authentication","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"3a9a6297-5f46-49ab-955a-fb22c45ca41c":{"url":"https://app.lettr.com/api","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"API key for authentication","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key for authentication","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"lettr","siteName":"Lettr","title":"Bulk unsubscribe contacts from topics - Lettr","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-14T17:46:44.609Z","originalFileLocation":"api-reference/audience/bulk-unsubscribe-contacts-from-topics.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=\"dark\"}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=\"Remove every combination of contact_ids × topic_ids. Pairs that did not exist are ignored. Requires the audience:write scope and is blocked for sandbox API keys.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Lettr\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lettr/dSsCtMUFma4ICJBo/_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/lettr/dSsCtMUFma4ICJBo/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lettr/dSsCtMUFma4ICJBo/_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/lettr/dSsCtMUFma4ICJBo/_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/lettr/dSsCtMUFma4ICJBo/_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/lettr/dSsCtMUFma4ICJBo/_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/lettr/dSsCtMUFma4ICJBo/_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/lettr/dSsCtMUFma4ICJBo/_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/lettr/dSsCtMUFma4ICJBo/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Bulk unsubscribe contacts from topics - Lettr\">\u003cmeta data-mint-head property=\"og:description\" content=\"Remove every combination of contact_ids × topic_ids. Pairs that did not exist are ignored. Requires the audience:write scope and is blocked for sandbox API keys.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Lettr\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.lettr.com/api-reference/audience/bulk-unsubscribe-contacts-from-topics\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://lettr.mintlify.site/_mintlify/api/og/v2?division=Audience+Contacts\u0026amp;title=Bulk+unsubscribe+contacts+from+topics\u0026amp;description=Remove+every+combination+of+%60contact_ids+%C3%97+topic_ids%60.+Pairs+that+did+not+exist+are+ignored.+Requires+the+%60audience%3Awrite%60+scope+and+is+blocked+for+sandbox+API+\u0026amp;theme=6d36e4ae9c92b67d8136c8c1\u0026amp;signature=6768c505af15dd61b617544e060da5d3b94697cc3cf5229116bbfd6c6861bbd1\">\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=\"Bulk unsubscribe contacts from topics - Lettr\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Remove every combination of contact_ids × topic_ids. Pairs that did not exist are ignored. Requires the audience:write scope and is blocked for sandbox API keys.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://lettr.mintlify.site/_mintlify/api/og/v2?division=Audience+Contacts\u0026amp;title=Bulk+unsubscribe+contacts+from+topics\u0026amp;description=Remove+every+combination+of+%60contact_ids+%C3%97+topic_ids%60.+Pairs+that+did+not+exist+are+ignored.+Requires+the+%60audience%3Awrite%60+scope+and+is+blocked+for+sandbox+API+\u0026amp;theme=6d36e4ae9c92b67d8136c8c1\u0026amp;signature=6768c505af15dd61b617544e060da5d3b94697cc3cf5229116bbfd6c6861bbd1\">\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/lettr/dSsCtMUFma4ICJBo/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Lettr\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#EC104B\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.lettr.com/api-reference/audience/bulk-unsubscribe-contacts-from-topics\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/audience/bulk-unsubscribe-contacts-from-topics.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.lettr.com/#organization\",\"name\":\"Lettr\",\"url\":\"https://docs.lettr.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/lettr/w6cQMnBCGTvjJ4__/logo/light.svg?fit=max\u0026auto=format\u0026n=w6cQMnBCGTvjJ4__\u0026q=85\u0026s=2cad5a94a80e61999cf9feaeac06e9c6\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.lettr.com#website\",\"name\":\"Lettr\",\"url\":\"https://docs.lettr.com\",\"publisher\":{\"@id\":\"https://docs.lettr.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.lettr.com/api-reference/audience/bulk-unsubscribe-contacts-from-topics#webpage\",\"url\":\"https://docs.lettr.com/api-reference/audience/bulk-unsubscribe-contacts-from-topics\",\"name\":\"Bulk unsubscribe contacts from topics\",\"description\":\"Remove every combination of contact_ids × topic_ids. Pairs that did not exist are ignored. Requires the audience:write scope and is blocked for sandbox API keys.\",\"dateModified\":\"2026-08-14T17:46:44.609Z\",\"isPartOf\":{\"@id\":\"https://docs.lettr.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.lettr.com/api-reference/audience/bulk-unsubscribe-contacts-from-topics#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.lettr.com/api-reference/audience/bulk-unsubscribe-contacts-from-topics#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Audience Contacts\",\"item\":\"https://docs.lettr.com/api-reference/audience/list-audience-contacts\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bulk unsubscribe contacts from topics\",\"item\":\"https://docs.lettr.com/api-reference/audience/bulk-unsubscribe-contacts-from-topics\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.lettr.com/api-reference/audience/bulk-unsubscribe-contacts-from-topics#apireference\",\"headline\":\"Bulk unsubscribe contacts from topics\",\"name\":\"Bulk unsubscribe contacts from topics\",\"description\":\"Remove every combination of contact_ids × topic_ids. Pairs that did not exist are ignored. Requires the audience:write scope and is blocked for sandbox API keys.\",\"url\":\"https://docs.lettr.com/api-reference/audience/bulk-unsubscribe-contacts-from-topics\",\"mainEntityOfPage\":{\"@id\":\"https://docs.lettr.com/api-reference/audience/bulk-unsubscribe-contacts-from-topics#webpage\"},\"dateModified\":\"2026-08-14T17:46:44.609Z\",\"publisher\":{\"@id\":\"https://docs.lettr.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.lettr.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Lettr\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lettr\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/audience/bulk-unsubscribe-contacts-from-topics.md","siteName":"Lettr","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"API Reference","groups":[{"group":"API Reference","pages":[{"title":"Introduction","href":"/api-reference/introduction"},{"title":"Rate Limit","href":"/api-reference/rate-limit"}]},{"group":"Emails","pages":[{"title":"Send Email","openapi":"POST /emails","href":"/api-reference/emails/send-email"},{"title":"Get Email Detail","openapi":"GET /emails/{requestId}","href":"/api-reference/emails/get-email-detail"},{"title":"List Email Events","openapi":"GET /emails/events","href":"/api-reference/emails/list-email-events"}]},{"group":"Scheduled Emails","pages":[{"title":"Schedule Email","openapi":"POST /emails/scheduled","href":"/api-reference/emails/schedule-email"},{"title":"List Scheduled Emails","openapi":"GET /emails/scheduled","href":"/api-reference/emails/list-scheduled-emails"},{"title":"Get Scheduled Email","openapi":"GET /emails/scheduled/{transmissionId}","href":"/api-reference/emails/get-scheduled-email"},{"title":"Cancel Scheduled Email","openapi":"DELETE /emails/scheduled/{transmissionId}","href":"/api-reference/emails/cancel-scheduled-email"}]},{"group":"Domains","pages":[{"title":"List Domains","openapi":"GET /domains","href":"/api-reference/domains/list-domains"},{"title":"Create Domain","openapi":"POST /domains","href":"/api-reference/domains/create-domain"},{"title":"Get Domain","openapi":"GET /domains/{domain}","href":"/api-reference/domains/get-domain"},{"title":"Delete Domain","openapi":"DELETE /domains/{domain}","href":"/api-reference/domains/delete-domain"},{"title":"Verify Domain","openapi":"POST /domains/{domain}/verify","href":"/api-reference/domains/verify-domain"}]},{"group":"Templates","pages":[{"title":"List Templates","openapi":"GET /templates","href":"/api-reference/templates/list-templates"},{"title":"Create Template","openapi":"POST /templates","href":"/api-reference/templates/create-template"},{"title":"Get Template","openapi":"GET /templates/{slug}","href":"/api-reference/templates/get-template"},{"title":"Update Template","openapi":"PUT /templates/{slug}","href":"/api-reference/templates/update-template"},{"title":"Delete Template","openapi":"DELETE /templates/{slug}","href":"/api-reference/templates/delete-template"},{"title":"Get Merge Tags","openapi":"GET /templates/{slug}/merge-tags","href":"/api-reference/templates/get-merge-tags"},{"title":"List Folders","openapi":"GET /folders","href":"/api-reference/templates/list-folders"}]},{"group":"Webhooks","pages":[{"title":"List Webhooks","openapi":"GET /webhooks","href":"/api-reference/webhooks/list-webhooks"},{"title":"Create Webhook","openapi":"POST /webhooks","href":"/api-reference/webhooks/create-webhook"},{"title":"Get Webhook","openapi":"GET /webhooks/{webhookId}","href":"/api-reference/webhooks/get-webhook"},{"title":"Update Webhook","openapi":"PUT /webhooks/{webhookId}","href":"/api-reference/webhooks/update-webhook"},{"title":"Delete Webhook","openapi":"DELETE /webhooks/{webhookId}","href":"/api-reference/webhooks/delete-webhook"}]},{"group":"System","pages":[{"title":"Health Check","openapi":"GET /health","href":"/api-reference/system/health-check"},{"title":"Auth Check","openapi":"GET /auth/check","href":"/api-reference/system/auth-check"}]},{"group":"Campaigns","pages":[{"title":"Create a campaign","openapi":"POST /campaigns","href":"/api-reference/campaigns/create-a-campaign"},{"title":"List campaigns","openapi":"GET /campaigns","href":"/api-reference/campaigns/list-campaigns"},{"title":"Show a campaign","openapi":"GET /campaigns/{campaignId}","href":"/api-reference/campaigns/show-a-campaign"},{"title":"List campaign engagement events","openapi":"GET /campaigns/{campaignId}/events","href":"/api-reference/campaigns/list-campaign-engagement-events"},{"title":"Send a campaign now","openapi":"POST /campaigns/{campaignId}/send","href":"/api-reference/campaigns/send-a-campaign-now"},{"title":"Schedule a campaign","openapi":"POST /campaigns/{campaignId}/schedule","href":"/api-reference/campaigns/schedule-a-campaign"},{"title":"Unschedule a campaign","openapi":"POST /campaigns/{campaignId}/unschedule","href":"/api-reference/campaigns/unschedule-a-campaign"}]},{"group":"Audience Lists","pages":[{"title":"List audience lists","openapi":"GET /audience/lists","href":"/api-reference/audience/list-audience-lists"},{"title":"Create an audience list","openapi":"POST /audience/lists","href":"/api-reference/audience/create-an-audience-list"},{"title":"Bulk delete audience lists","openapi":"DELETE /audience/lists/bulk","href":"/api-reference/audience/bulk-delete-audience-lists"},{"title":"Show an audience list","openapi":"GET /audience/lists/{listId}","href":"/api-reference/audience/show-an-audience-list"},{"title":"Update an audience list","openapi":"PATCH /audience/lists/{listId}","href":"/api-reference/audience/update-an-audience-list"},{"title":"Delete an audience list","openapi":"DELETE /audience/lists/{listId}","href":"/api-reference/audience/delete-an-audience-list"}]},{"group":"Audience Contacts","pages":[{"title":"List audience contacts","openapi":"GET /audience/contacts","href":"/api-reference/audience/list-audience-contacts"},{"title":"Create a contact","openapi":"POST /audience/contacts","href":"/api-reference/audience/create-a-contact"},{"title":"Bulk create contacts","openapi":"POST /audience/contacts/bulk","href":"/api-reference/audience/bulk-create-contacts"},{"title":"Bulk attach contacts to lists","openapi":"POST /audience/contacts/lists/bulk","href":"/api-reference/audience/bulk-attach-contacts-to-lists"},{"title":"Bulk detach contacts from lists","openapi":"DELETE /audience/contacts/lists/bulk","href":"/api-reference/audience/bulk-detach-contacts-from-lists"},{"title":"Bulk subscribe contacts to topics","openapi":"POST /audience/contacts/topics/bulk","description":"Subscribe every combination of `contact_ids × topic_ids` (up to 1000 contacts × 50 topics). Pairs that already exist are reported in `already_subscribed`. Requires the `audience:write` scope and is blocked for sandbox API keys.","href":"/api-reference/audience/bulk-subscribe-contacts-to-topics"},{"title":"Bulk unsubscribe contacts from topics","openapi":"DELETE /audience/contacts/topics/bulk","href":"/api-reference/audience/bulk-unsubscribe-contacts-from-topics"},{"title":"Show a contact","openapi":"GET /audience/contacts/{contactId}","description":"Retrieve a single contact. Requires the `audience:read` scope.","href":"/api-reference/audience/show-a-contact"},{"title":"Update a contact","openapi":"PATCH /audience/contacts/{contactId}","href":"/api-reference/audience/update-a-contact"},{"title":"Delete a contact","openapi":"DELETE /audience/contacts/{contactId}","href":"/api-reference/audience/delete-a-contact"},{"title":"Attach contact to list","openapi":"POST /audience/contacts/{contactId}/lists/{listId}","href":"/api-reference/audience/attach-contact-to-list"},{"title":"Detach contact from list","openapi":"DELETE /audience/contacts/{contactId}/lists/{listId}","href":"/api-reference/audience/detach-contact-from-list"},{"title":"Subscribe contact to topic","openapi":"POST /audience/contacts/{contactId}/topics/{topicId}","href":"/api-reference/audience/subscribe-contact-to-topic"},{"title":"Unsubscribe contact from topic","openapi":"DELETE /audience/contacts/{contactId}/topics/{topicId}","href":"/api-reference/audience/unsubscribe-contact-from-topic"}]},{"group":"Audience Topics","pages":[{"title":"List audience topics","openapi":"GET /audience/topics","href":"/api-reference/audience/list-audience-topics"},{"title":"Create a topic","openapi":"POST /audience/topics","href":"/api-reference/audience/create-a-topic"},{"title":"Show a topic","openapi":"GET /audience/topics/{topicId}","href":"/api-reference/audience/show-a-topic"},{"title":"Update a topic","openapi":"PATCH /audience/topics/{topicId}","href":"/api-reference/audience/update-a-topic"},{"title":"Delete a topic","openapi":"DELETE /audience/topics/{topicId}","href":"/api-reference/audience/delete-a-topic"}]},{"group":"Audience Properties","pages":[{"title":"List audience properties","openapi":"GET /audience/properties","href":"/api-reference/audience/list-audience-properties"},{"title":"Create a property","openapi":"POST /audience/properties","href":"/api-reference/audience/create-a-property"},{"title":"Show a property","openapi":"GET /audience/properties/{propertyId}","href":"/api-reference/audience/show-a-property"},{"title":"Update a property","openapi":"PATCH /audience/properties/{propertyId}","href":"/api-reference/audience/update-a-property"},{"title":"Delete a property","openapi":"DELETE /audience/properties/{propertyId}","href":"/api-reference/audience/delete-a-property"}]},{"group":"Audience Segments","pages":[{"title":"List audience segments","openapi":"GET /audience/segments","href":"/api-reference/audience/list-audience-segments"},{"title":"Create a segment","openapi":"POST /audience/segments","href":"/api-reference/audience/create-a-segment"},{"title":"Show a segment","openapi":"GET /audience/segments/{segmentId}","href":"/api-reference/audience/show-a-segment"},{"title":"Update a segment","openapi":"PATCH /audience/segments/{segmentId}","href":"/api-reference/audience/update-a-segment"},{"title":"Delete a segment","openapi":"DELETE /audience/segments/{segmentId}","href":"/api-reference/audience/delete-a-segment"}]}]},{"tab":"Knowledge Base","pages":[{"title":"Knowledge Base","href":"/knowledge-base/introduction"}]}]},"basePath":"","title":"Bulk unsubscribe contacts from topics - Lettr","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DdEMm2kG.js","utils-BMo572L7.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C-4m9KAx.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DPLK2Oq9.js","snippetPresets-BKjfJMC9.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-DTsgtCEj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C8vmhyQM.js","shallow-r9w8LQGS.js","getApiPlaygroundDisplay-DjPI64HQ.js","CodeSnippet-C8Bvhl16.js","CodeSnippets-BtWUwcMy.js","Page-BIYvYBgk.js","getPastedJson-Dcm_3Pgl.js","icon-BXwrTpjc.js","MethodPill-CcjfVmmy.js","DuplicateIcon-BuKIbXAQ.js","createIcon-DaL9yXsO.js","DynamicMarkdown-Co5nikxh.js","SectionHeading-P4UNTsMZ.js","axios-vUo_bRtp.js","Markdown-CEfymfIH.js","clsx-Dq9TQuNi.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-D2J8knkn.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BgZ2ThuU.js"]}