Validate email addresses during CSV import and in bulk to reduce bounces and protect your sender reputation.
Email address validation detects common problems in email addresses before they reach your audience. It flags typos, invalid domains, role-based addresses, and disposable email services that could increase your bounce rate or hurt your sender reputation.It runs automatically during CSV import and is also available as a bulk validation tool for your existing audience.
Email address validation checks addresses against OneSignal’s validation criteria. It is not a live bounce verification check and does not guarantee deliverability.
Common domain misspellings like gnail.com or gmail.con
MX record check
Domains with no valid mail exchange record; email sent here cannot be delivered
Role-based address
Addresses like sales@, info@, admin@ that are unlikely to belong to an individual
Disposable email
Domains associated with temporary or throwaway email services
Free plans include syntax validation and typo detection. Paid plans include all of the above plus MX record checks, role-based address detection, and disposable email filtering.
If an address fails a check, email address validation returns a human-readable error explaining the specific problem. If an address fails multiple checks, all failure reasons are returned together so you can address everything at once.
When importing a CSV, you can configure email address validation settings on the Review step before confirming the import.
1
Start a CSV import
Go to Audience > Users & subscriptions > Update/Import Users > Import users and upload your file. Complete the Upload and Map Fields steps. If any invalid email addresses are detected, a warning will appear on the Map Fields step.
Invalid emails detected warning on the Map Fields step
2
Configure validation settings on the Review step
On the Review step, expand Email address validation settings. The following options are available:
Email address validation settings on the Review step
Validate email domains (MX records): confirm the domain can receive email
Exclude disposable email addresses: prevent temporary or one-time addresses that may reduce engagement
Exclude role-based email addresses: prevent shared addresses like info@ or support@ that often have lower engagement
All three are enabled by default. Uncheck any you don’t want applied to this import.
If you need to import invalid email addresses (for example, to update suppression or subscription status), check Allow invalid email addresses. This bypasses validation and accepts any string as an email address.
3
Confirm and import
Click Confirm and Import. When the import is complete, you’ll receive an email summarizing the results:
Subscriptions added
Subscriptions modified
Rows not imported, with a link to download the rejected rows
Valid addresses are added to your audience. You receive an email when the import is complete. Addresses that failed validation are excluded and available to download from the link in the results email.
Use bulk validation to check email addresses already in your OneSignal audience. You receive results by email as a CSV export.
1
Open the Validate Email Addresses tool
Go to Audience > Users & subscriptions, click Update/Import Users, then select Validate Email Addresses.
Validate Email Addresses option in the Update/Import Users menu
2
Start validation
In the modal, click Start validation. Email address validation runs against all email addresses for your app.
Validate Email Addresses confirmation modal
3
Receive your results by email
When validation is complete, you’ll receive an email from OneSignal with a Download CSV Export link. The link is active for 72 hours. The email summarizes how many addresses failed, broken down by:
OneSignal validation results email with breakdown and Download CSV Export link
Typos
Role-based addresses
Disposable domains
Invalid MX records
4
Review and re-import
Download the CSV and review the flagged addresses. To clean up your audience, create a new CSV with the corrected or actioned addresses and re-import it using one of the following column formats:
Email address validation also applies to addresses submitted through the API. The sections below describe the error responses you may encounter.
API validation only checks that the email address is correctly formatted. It does not check for typos, MX records, role-based addresses, or disposable domains. Those checks are only available during CSV import and bulk validation.
When you send to one or more invalid addresses via the Create Message endpoint, invalid addresses are excluded from delivery and returned under invalid_email_tokens.invalid_email_tokens also lists email addresses that were already unsubscribed from the email message channel before the send, so an address returned here is not necessarily incorrectly formatted.
The Legacy Players API is deprecated. Migrate to the User Model API to receive more descriptive validation errors and access current features.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OneSignal","description":"OneSignal is a platform for sending push notifications, emails, in-app messages, and SMS campaigns via a single API, Journey Builder, and a dashboard.","colors":{"primary":"#3A3DB3","light":"#E54B4D","dark":"#3A3DB3"},"logo":{"light":"https://mintcdn.com/onesignal/yJcueeDCO7UpHnnY/logo/OneSignal-Logo.svg?fit=max\u0026auto=format\u0026n=yJcueeDCO7UpHnnY\u0026q=85\u0026s=1fcfb6fef6d820fd9d99c74850711107","dark":"https://mintcdn.com/onesignal/s4WC_KzLxf8ornqq/logo/OneSignal-Logo-White.svg?fit=max\u0026auto=format\u0026n=s4WC_KzLxf8ornqq\u0026q=85\u0026s=2573a53b5aea961e18c82b3af8f31925"},"favicon":"https://mintcdn.com/onesignal/SGduBFHpiRdg5l6h/favicon.ico?fit=max\u0026auto=format\u0026n=SGduBFHpiRdg5l6h\u0026q=85\u0026s=c0a99fadc0553c658a83741c5611cef4","api":{"examples":{"languages":["curl","typescript","python","php","go","ruby","java","csharp","rust"],"autogenerate":true}},"navbar":{"links":[{"href":"mailto:support@onesignal.com","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://dashboard.onesignal.com"}},"footer":{"socials":{"github":"https://github.com/OneSignal","linkedin":"https://linkedin.com/company/onesignal","youtube":"https://www.youtube.com/@onesignalofficial/playlists"}},"seo":{"metatags":{"apple-mobile-web-app-title":"OneSignal Docs"}},"fonts":{"family":"Nunito Sans"},"styling":{"eyebrows":"breadcrumbs","latex":true},"integrations":{"ga4":{"measurementId":"G-2DGWL0VYP5"},"posthog":{"apiKey":"phc_vZpvE0f5eyzcOt30FHer34yddVmNdo9kmlMVRBzLMtn","apiHost":"https://eu.i.posthog.com","sessionRecording":true}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"navigation":{"languages":[{"language":"en","href":"docs/en/home"},{"language":"cn","href":"docs/cn/home"},{"language":"ko","href":"docs/ko/home"},{"language":"ja","href":"docs/ja/home"},{"language":"tr","href":"docs/tr/home"},{"language":"pt-BR","href":"docs/pt-BR/home"},{"language":"es","href":"docs/es/home"},{"language":"fr","href":"docs/fr/home"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"onesignal","hasAudioNarration":false,"actualSubdomain":"onesignal","customDomains":["documentation.onesignal.com"],"gitSource":{"type":"github","owner":"onesignal","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae941059b464649afded2ae","collectionId":"446e460a-04e7-4e99-b81b-6dcaec71d397","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae941059b464649afded2ae"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae941059b464649afded2ae","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"en","tag":"User Guides","count":201},{"language":"es","tag":"Guías del Usuario","count":178},{"language":"fr","tag":"Guides utilisateur","count":178},{"language":"ja","tag":"ユーザーガイド","count":178},{"language":"ko","tag":"사용자 가이드","count":178},{"language":"pt-BR","tag":"Guia do Usuário","count":178},{"language":"tr","tag":"Kullanıcı Kılavuzları","count":178},{"language":"cn","tag":"用户指南","count":176},{"language":"en","tag":"Message channels","count":90},{"language":"es","tag":"Canales de mensajería","count":84},{"language":"fr","tag":"Canaux de messagerie","count":84},{"language":"ja","tag":"メッセージングチャネル","count":84},{"language":"ko","tag":"메시지 채널","count":84},{"language":"pt-BR","tag":"Canais de mensagem","count":84},{"language":"tr","tag":"Mesaj kanalları","count":84},{"language":"cn","tag":"消息渠道","count":83},{"language":"default","tag":"API Reference","count":68},{"language":"default","tag":"API reference","count":64},{"language":"en","tag":"Analytics \u0026 Integrations","count":53},{"language":"es","tag":"Analítica \u0026 Integraciones","count":52},{"language":"fr","tag":"Analyses et intégrations","count":52},{"language":"ja","tag":"分析 \u0026 統合","count":52},{"language":"ko","tag":"분석 \u0026 통합","count":52},{"language":"pt-BR","tag":"Análises \u0026 Integrações","count":52},{"language":"tr","tag":"Analitik ve Entegrasyonlar","count":52},{"language":"cn","tag":"分析和集成","count":51},{"language":"cn","tag":"开发者指南","count":48},{"language":"es","tag":"Guías del desarrollador","count":48},{"language":"fr","tag":"Guides développeur","count":48},{"language":"ja","tag":"開発者ガイド","count":48},{"language":"ko","tag":"개발자 가이드","count":48},{"language":"tr","tag":"Geliştirici Kılavuzları","count":48},{"language":"en","tag":"Developer Guides","count":47},{"language":"pt-BR","tag":"Guia de desenvolvedor","count":47},{"language":"en","tag":"Integrations","count":37},{"language":"es","tag":"Integraciones","count":37},{"language":"fr","tag":"Intégrations","count":37},{"language":"ja","tag":"統合","count":37},{"language":"ko","tag":"통합","count":37},{"language":"pt-BR","tag":"Integrações","count":37},{"language":"tr","tag":"Entegrasyonlar","count":37},{"language":"cn","tag":"集成","count":36},{"language":"en","tag":"Tutorials","count":35},{"language":"cn","tag":"推送通知","count":31},{"language":"cn","tag":"OneSignal 作为目的地","count":31},{"language":"en","tag":"Push","count":31},{"language":"en","tag":"OneSignal as destination","count":31},{"language":"es","tag":"Push notificaciones","count":31},{"language":"es","tag":"OneSignal como destino","count":31},{"language":"fr","tag":"Push","count":31},{"language":"fr","tag":"OneSignal comme destination","count":31},{"language":"ja","tag":"プッシュ通知","count":31},{"language":"ja","tag":"OneSignal as 宛先","count":31},{"language":"ko","tag":"푸시","count":31},{"language":"ko","tag":"OneSignal을 데이터 목적지로 사용","count":31},{"language":"pt-BR","tag":"Push notificações","count":31},{"language":"pt-BR","tag":"OneSignal como destino","count":31},{"language":"tr","tag":"Anlık bildirimler","count":31},{"language":"tr","tag":"OneSignal hedef","count":31},{"language":"en","tag":"Mobile SDKs","count":26},{"language":"cn","tag":"移动SDK","count":25},{"language":"es","tag":"SDKs móviles","count":25},{"language":"fr","tag":"SDK mobiles","count":25},{"language":"ja","tag":"モバイルSDK","count":25},{"language":"ko","tag":"모바일 SDKs","count":25},{"language":"pt-BR","tag":"SDKs móveis","count":25},{"language":"tr","tag":"Mobil SDK'lar","count":25},{"language":"cn","tag":"教程","count":24},{"language":"es","tag":"Tutoriales","count":24},{"language":"fr","tag":"Tutoriels","count":24},{"language":"ja","tag":"チュートリアル","count":24},{"language":"ko","tag":"튜토리얼","count":24},{"language":"pt-BR","tag":"Tutoriais","count":24},{"language":"tr","tag":"Eğitimler","count":24},{"language":"en","tag":"Mobile SDK setup","count":19},{"language":"cn","tag":"移动SDK设置","count":18},{"language":"es","tag":"Configuración del SDK móvil","count":18},{"language":"fr","tag":"Configuration SDK mobile","count":18},{"language":"ja","tag":"モバイルSDKセットアップ","count":18},{"language":"ko","tag":"모바일 SDK 설정","count":18},{"language":"pt-BR","tag":"Configuração do SDK móvel","count":18},{"language":"tr","tag":"Mobil SDK kurulumu","count":18},{"language":"default","tag":"Messages","count":9},{"language":"default","tag":"Users","count":9},{"language":"default","tag":"Organization","count":9},{"language":"default","tag":"Journeys","count":8},{"language":"default","tag":"Deprecated","count":6},{"language":"default","tag":"Templates","count":6},{"language":"default","tag":"Subscriptions","count":6},{"language":"default","tag":"Segments","count":5}]},"assistantConfig":{"enableStarterQuestions":false,"deflection":{"enabled":true,"email":"support@onesignal.com","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"docs/en/email-address-validation","slug":"/docs/en/email-address-validation","pageMetadata":{"title":"Email address validation","description":"Validate email addresses during CSV import and in bulk to reduce bounces and protect your sender reputation.","keywords":["email","validation","bounce","typo","disposable","role-based","MX record","import","bulk validation"],"href":"/docs/en/email-address-validation"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Validate email addresses during CSV import and in bulk to reduce bounces and protect your sender reputation.\"\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`,hr:`hr`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,Note,OptimizedImage,Step,Steps,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Email address validation detects common problems in email addresses before they reach your audience. It flags typos, invalid domains, role-based addresses, and disposable email services that could increase your bounce rate or hurt your sender reputation.`}),`\n`,_jsx(_components.p,{children:`It runs automatically during CSV import and is also available as a bulk validation tool for your existing audience.`}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Email address validation checks addresses against OneSignal’s validation criteria. It is not a live bounce verification check and does not guarantee deliverability.`})}),`\n`,_jsx(Heading,{level:`2`,id:`validation-checks`,children:`Validation checks`}),`\n`,_jsx(_components.p,{children:`Email address validation evaluates each address against the following checks:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Check`}),_jsx(_components.th,{children:`What it detects`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Syntax validation`})}),_jsxs(_components.td,{children:[`Malformed addresses missing required components (e.g. missing `,_jsx(_components.code,{children:`@`}),`, invalid TLD)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Typo detection`})}),_jsxs(_components.td,{children:[`Common domain misspellings like `,_jsx(_components.code,{children:`gnail.com`}),` or `,_jsx(_components.code,{children:`gmail.con`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`MX record check`})}),_jsx(_components.td,{children:`Domains with no valid mail exchange record; email sent here cannot be delivered`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Role-based address`})}),_jsxs(_components.td,{children:[`Addresses like `,_jsx(_components.code,{children:`sales@`}),`, `,_jsx(_components.code,{children:`info@`}),`, `,_jsx(_components.code,{children:`admin@`}),` that are unlikely to belong to an individual`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Disposable email`})}),_jsx(_components.td,{children:`Domains associated with temporary or throwaway email services`})]})]})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Free plans`}),` include syntax validation and typo detection. `,_jsx(_components.strong,{children:`Paid plans`}),` include all of the above plus MX record checks, role-based address detection, and disposable email filtering.`]})}),`\n`,_jsx(_components.p,{children:`If an address fails a check, email address validation returns a human-readable error explaining the specific problem. If an address fails multiple checks, all failure reasons are returned together so you can address everything at once.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`validate-addresses-during-csv-import`,children:`Validate addresses during CSV import`}),`\n`,_jsxs(_components.p,{children:[`When importing a CSV, you can configure email address validation settings on the `,_jsx(_components.strong,{children:`Review`}),` step before confirming the import.`]}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Start a CSV import`,children:[_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Audience > Users \u0026 subscriptions > Update/Import Users > Import users`}),` and upload your file. Complete the `,_jsx(_components.strong,{children:`Upload`}),` and `,_jsx(_components.strong,{children:`Map Fields`}),` steps. If any invalid email addresses are detected, a warning will appear on the `,_jsx(_components.strong,{children:`Map Fields`}),` step.`]}),_jsx(Frame,{caption:`Invalid emails detected warning on the Map Fields step`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/import_csv_invalid_email_detection.png?fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=148ddc3343cca3ffddc8d6f3458a740a`,alt:`Import CSV Map Fields step showing an invalid emails detected warning`,\"data-og-width\":`1866`,width:`1866`,\"data-og-height\":`914`,height:`914`,\"data-path\":`images/email/import_csv_invalid_email_detection.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/import_csv_invalid_email_detection.png?w=280\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=0034375c9ca7922c18ca22bd468dac1a 280w, https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/import_csv_invalid_email_detection.png?w=560\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=154f5898ab44e7ce454b23634557ec3b 560w, https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/import_csv_invalid_email_detection.png?w=840\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=d6128b64331cb93806d5a7d5f9f9619a 840w, https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/import_csv_invalid_email_detection.png?w=1100\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=3aaddea16d080b4a5ca28bbb335ebf31 1100w, https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/import_csv_invalid_email_detection.png?w=1650\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=8ebb2cae85d4c20cc8062b10194e290c 1650w, https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/import_csv_invalid_email_detection.png?w=2500\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=bddb8e1a730e5aba6f6353c53aa7dccb 2500w`})})]}),_jsxs(Step,{title:`Configure validation settings on the Review step`,children:[_jsxs(_components.p,{children:[`On the `,_jsx(_components.strong,{children:`Review`}),` step, expand `,_jsx(_components.strong,{children:`Email address validation settings`}),`. The following options are available:`]}),_jsx(Frame,{caption:`Email address validation settings on the Review step`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/import_csv_validation_check.png?fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=580a816aea94d087613178d392eee234`,alt:`Import CSV Review step with Email address validation settings expanded`,\"data-og-width\":`1814`,width:`1814`,\"data-og-height\":`1382`,height:`1382`,\"data-path\":`images/email/import_csv_validation_check.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/import_csv_validation_check.png?w=280\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=9e0a22e0151ecbef1792971c42bffb59 280w, https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/import_csv_validation_check.png?w=560\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=de67420f5a06dadaae19af0bba50e85e 560w, https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/import_csv_validation_check.png?w=840\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=5acd31df9a6c05e65494fbf710abbc91 840w, https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/import_csv_validation_check.png?w=1100\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=757aab5b1fc6dc62d7356b249fbc6c33 1100w, https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/import_csv_validation_check.png?w=1650\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=006f018e2d5b36d39c53961602d97468 1650w, https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/import_csv_validation_check.png?w=2500\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=2a38e1894637601d02c99e240e2ffbdd 2500w`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Validate email domains (MX records)`}),`: confirm the domain can receive email`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Exclude disposable email addresses`}),`: prevent temporary or one-time addresses that may reduce engagement`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Exclude role-based email addresses`}),`: prevent shared addresses like `,_jsx(_components.code,{children:`info@`}),` or `,_jsx(_components.code,{children:`support@`}),` that often have lower engagement`]}),`\n`]}),_jsx(_components.p,{children:`All three are enabled by default. Uncheck any you don’t want applied to this import.`}),_jsx(Note,{children:_jsxs(_components.p,{children:[`If you need to import invalid email addresses (for example, to update suppression or subscription status), check `,_jsx(_components.strong,{children:`Allow invalid email addresses`}),`. This bypasses validation and accepts any string as an email address.`]})})]}),_jsxs(Step,{title:`Confirm and import`,children:[_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Confirm and Import`}),`. When the import is complete, you’ll receive an email summarizing the results:`]}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Subscriptions added`}),`\n`,_jsx(_components.li,{children:`Subscriptions modified`}),`\n`,_jsx(_components.li,{children:`Rows not imported, with a link to download the rejected rows`}),`\n`]})]})]}),`\n`,_jsx(Heading,{level:`4`,id:`result`,children:`Result`}),`\n`,_jsx(_components.p,{children:`Valid addresses are added to your audience. You receive an email when the import is complete. Addresses that failed validation are excluded and available to download from the link in the results email.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`validate-your-existing-audience-in-bulk`,children:`Validate your existing audience in bulk`}),`\n`,_jsx(_components.p,{children:`Use bulk validation to check email addresses already in your OneSignal audience. You receive results by email as a CSV export.`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Open the Validate Email Addresses tool`,children:[_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Audience > Users \u0026 subscriptions`}),`, click `,_jsx(_components.strong,{children:`Update/Import Users`}),`, then select `,_jsx(_components.strong,{children:`Validate Email Addresses`}),`.`]}),_jsx(Frame,{caption:`Validate Email Addresses option in the Update/Import Users menu`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/validate_emails_sub_page.png?fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=13700c5faffd0a46acdff1b3d687805f`,alt:`Update/Import Users dropdown with Validate Email Addresses option highlighted`,\"data-og-width\":`560`,width:`560`,\"data-og-height\":`254`,height:`254`,\"data-path\":`images/email/validate_emails_sub_page.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/validate_emails_sub_page.png?w=280\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=6b8eb99d850810cd5ee5ea381458970a 280w, https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/validate_emails_sub_page.png?w=560\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=6d0222da5fb6f86eca51c982d6d0726a 560w, https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/validate_emails_sub_page.png?w=840\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=43db43e127244a6ad159ab4ec6654f09 840w, https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/validate_emails_sub_page.png?w=1100\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=35e96e0c47842b3be9c3e842883fffd9 1100w, https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/validate_emails_sub_page.png?w=1650\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=34baa48d9f573f8706a89bbc817dc222 1650w, https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/validate_emails_sub_page.png?w=2500\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=7801e5d21a24194505865c5ba31c8ec1 2500w`})})]}),_jsxs(Step,{title:`Start validation`,children:[_jsxs(_components.p,{children:[`In the modal, click `,_jsx(_components.strong,{children:`Start validation`}),`. Email address validation runs against all email addresses for your app.`]}),_jsx(Frame,{caption:`Validate Email Addresses confirmation modal`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/YsI3AV6UZEH5Saz0/images/email/bulk_validation_modal.png?fit=max\u0026auto=format\u0026n=YsI3AV6UZEH5Saz0\u0026q=85\u0026s=ac498afd710057320ec00644f4e27d30`,alt:`Validate Email Addresses modal showing Start validation button`,\"data-og-width\":`1144`,width:`1144`,\"data-og-height\":`560`,height:`560`,\"data-path\":`images/email/bulk_validation_modal.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/YsI3AV6UZEH5Saz0/images/email/bulk_validation_modal.png?w=280\u0026fit=max\u0026auto=format\u0026n=YsI3AV6UZEH5Saz0\u0026q=85\u0026s=1ade5a4bd6756723394ab58d030d89c3 280w, https://mintcdn.com/onesignal/YsI3AV6UZEH5Saz0/images/email/bulk_validation_modal.png?w=560\u0026fit=max\u0026auto=format\u0026n=YsI3AV6UZEH5Saz0\u0026q=85\u0026s=11e5ac171db68838e8ce99a0d208685e 560w, https://mintcdn.com/onesignal/YsI3AV6UZEH5Saz0/images/email/bulk_validation_modal.png?w=840\u0026fit=max\u0026auto=format\u0026n=YsI3AV6UZEH5Saz0\u0026q=85\u0026s=893d233da7f071d36df3fa302896c194 840w, https://mintcdn.com/onesignal/YsI3AV6UZEH5Saz0/images/email/bulk_validation_modal.png?w=1100\u0026fit=max\u0026auto=format\u0026n=YsI3AV6UZEH5Saz0\u0026q=85\u0026s=78bdb94962df3a9916ffdf2035d26696 1100w, https://mintcdn.com/onesignal/YsI3AV6UZEH5Saz0/images/email/bulk_validation_modal.png?w=1650\u0026fit=max\u0026auto=format\u0026n=YsI3AV6UZEH5Saz0\u0026q=85\u0026s=fa4fdf6488981517e8b185358ff5f7b4 1650w, https://mintcdn.com/onesignal/YsI3AV6UZEH5Saz0/images/email/bulk_validation_modal.png?w=2500\u0026fit=max\u0026auto=format\u0026n=YsI3AV6UZEH5Saz0\u0026q=85\u0026s=e705d14dc10d03795349f70ecb4bbba9 2500w`})})]}),_jsxs(Step,{title:`Receive your results by email`,children:[_jsxs(_components.p,{children:[`When validation is complete, you’ll receive an email from OneSignal with a `,_jsx(_components.strong,{children:`Download CSV Export`}),` link. The link is active for 72 hours. The email summarizes how many addresses failed, broken down by:`]}),_jsx(Frame,{caption:`OneSignal validation results email with breakdown and Download CSV Export link`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/errors%20email.png?fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=8655e75c51f2d96dbdcb911a528f4e89`,alt:`OneSignal results email showing validation summary and Download CSV Export button`,\"data-og-width\":`1510`,width:`1510`,\"data-og-height\":`1182`,height:`1182`,\"data-path\":`images/email/errors email.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/errors%20email.png?w=280\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=2ec8e3434ac6a84f74f33b317fce8e2f 280w, https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/errors%20email.png?w=560\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=3b8fbe9624d695181e00742d819b9c15 560w, https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/errors%20email.png?w=840\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=ee75cdcb7b14b83b542c7f69cf73bd4d 840w, https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/errors%20email.png?w=1100\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=92d7e35ba7d51f9caa41e4443e44e721 1100w, https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/errors%20email.png?w=1650\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=008e621da2e04947288f50f93fbdd5c7 1650w, https://mintcdn.com/onesignal/BtlAtFOavkYyZTGB/images/email/errors%20email.png?w=2500\u0026fit=max\u0026auto=format\u0026n=BtlAtFOavkYyZTGB\u0026q=85\u0026s=d9f11699d820a3c1fd44344610bf548e 2500w`})}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Typos`}),`\n`,_jsx(_components.li,{children:`Role-based addresses`}),`\n`,_jsx(_components.li,{children:`Disposable domains`}),`\n`,_jsx(_components.li,{children:`Invalid MX records`}),`\n`]})]}),_jsxs(Step,{title:`Review and re-import`,children:[_jsx(_components.p,{children:`Download the CSV and review the flagged addresses. To clean up your audience, create a new CSV with the corrected or actioned addresses and re-import it using one of the following column formats:`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Goal`}),_jsx(_components.th,{children:`Required columns`}),_jsx(_components.th,{children:`Value`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Re-subscribe corrected addresses`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`email`}),`, `,_jsx(_components.code,{children:`subscribed`})]}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`subscribed`}),` = `,_jsx(_components.code,{children:`yes`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Unsubscribe flagged addresses`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`email`}),`, `,_jsx(_components.code,{children:`subscribed`})]}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`subscribed`}),` = `,_jsx(_components.code,{children:`no`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Suppress flagged addresses`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`email`}),`, `,_jsx(_components.code,{children:`suppressed`})]}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`suppressed`}),` = `,_jsx(_components.code,{children:`true`})]})]})]})]})]})]}),`\n`,_jsx(Heading,{level:`4`,id:`result-2`,children:`Result`}),`\n`,_jsx(_components.p,{children:`You receive an email with a CSV export of flagged addresses and a summary of validation results broken down by error type.`}),`\n`,_jsx(Frame,{caption:`CSV export of email validation results`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/q67Fo0fbZTTYBU0c/images/email/csv-export-email-validation.png?fit=max\u0026auto=format\u0026n=q67Fo0fbZTTYBU0c\u0026q=85\u0026s=8db9d159b9da06d7f26f3d4097455f37`,alt:`CSV export showing email, reason, suggested_email, created_at, last_opened, and last_clicked columns`,\"data-og-width\":`868`,width:`868`,\"data-og-height\":`74`,height:`74`,\"data-path\":`images/email/csv-export-email-validation.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/q67Fo0fbZTTYBU0c/images/email/csv-export-email-validation.png?w=280\u0026fit=max\u0026auto=format\u0026n=q67Fo0fbZTTYBU0c\u0026q=85\u0026s=5dd634caff30da65428034d33f19046b 280w, https://mintcdn.com/onesignal/q67Fo0fbZTTYBU0c/images/email/csv-export-email-validation.png?w=560\u0026fit=max\u0026auto=format\u0026n=q67Fo0fbZTTYBU0c\u0026q=85\u0026s=163845bfd181623e0aa8f011f9d33707 560w, https://mintcdn.com/onesignal/q67Fo0fbZTTYBU0c/images/email/csv-export-email-validation.png?w=840\u0026fit=max\u0026auto=format\u0026n=q67Fo0fbZTTYBU0c\u0026q=85\u0026s=2cc6cd424240b0142ae5589a31f2138c 840w, https://mintcdn.com/onesignal/q67Fo0fbZTTYBU0c/images/email/csv-export-email-validation.png?w=1100\u0026fit=max\u0026auto=format\u0026n=q67Fo0fbZTTYBU0c\u0026q=85\u0026s=19c93db80a3c55a0df9549f19f467e69 1100w, https://mintcdn.com/onesignal/q67Fo0fbZTTYBU0c/images/email/csv-export-email-validation.png?w=1650\u0026fit=max\u0026auto=format\u0026n=q67Fo0fbZTTYBU0c\u0026q=85\u0026s=549b25189b86ef6b9c944d045f6d4182 1650w, https://mintcdn.com/onesignal/q67Fo0fbZTTYBU0c/images/email/csv-export-email-validation.png?w=2500\u0026fit=max\u0026auto=format\u0026n=q67Fo0fbZTTYBU0c\u0026q=85\u0026s=ed087ce095071ec311299181fb9c4dcb 2500w`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`validation-error-reference`,children:`Validation error reference`}),`\n`,_jsx(_components.p,{children:`The following errors may appear in validation results:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Error`}),_jsx(_components.th,{children:`What it means`}),_jsx(_components.th,{children:`What to do`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Invalid input`})}),_jsxs(_components.td,{children:[`The address is malformed and does not meet basic syntax requirements (e.g. missing `,_jsx(_components.code,{children:`@`}),`, invalid TLD).`]}),_jsx(_components.td,{children:`Correct or remove the address.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Typo in email address`})}),_jsx(_components.td,{children:`A likely misspelling was detected in the domain. A suggested correction appears in the adjacent column.`}),_jsx(_components.td,{children:`Apply the suggested fix or remove the address.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`MX record not found`})}),_jsx(_components.td,{children:`The domain has no valid mail exchange record. Email cannot be delivered to this address.`}),_jsx(_components.td,{children:`Remove or suppress the address.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Role-based email address`})}),_jsxs(_components.td,{children:[`The local part (before `,_jsx(_components.code,{children:`@`}),`) matches a known role-based pattern like `,_jsx(_components.code,{children:`sales@`}),` or `,_jsx(_components.code,{children:`support@`}),`. These are unlikely to belong to an individual.`]}),_jsx(_components.td,{children:`Review whether the address is appropriate for your use case, then suppress or remove it.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Disposable email address`})}),_jsx(_components.td,{children:`The domain is associated with a temporary or throwaway email service.`}),_jsx(_components.td,{children:`Suppress or remove the address.`})]})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`api-error-responses`,children:`API error responses`}),`\n`,_jsx(_components.p,{children:`Email address validation also applies to addresses submitted through the API. The sections below describe the error responses you may encounter.`}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`API validation only checks that the email address is correctly formatted. It does not check for typos, MX records, role-based addresses, or disposable domains. Those checks are only available during CSV import and bulk validation.`})}),`\n`,_jsx(Heading,{level:`3`,id:`send-email-create-message`,children:`Send email: Create Message`}),`\n`,_jsxs(_components.p,{children:[`When you send to one or more invalid addresses via the `,_jsx(_components.a,{href:`/reference/create-message`,children:`Create Message endpoint`}),`, invalid addresses are excluded from delivery and returned under `,_jsx(_components.code,{children:`invalid_email_tokens`}),`.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`invalid_email_tokens`}),` also lists email addresses that were already unsubscribed from the email message channel before the send, so an address returned here is not necessarily incorrectly formatted.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"errors\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"invalid_email_tokens\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"invalid@email\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`add-a-user-or-subscription-user-model-api`,children:`Add a user or subscription: User Model API`}),`\n`,_jsxs(_components.p,{children:[`When you create a user or subscription with an invalid email via the `,_jsx(_components.a,{href:`/reference/create-user`,children:`Create User`}),` or `,_jsx(_components.a,{href:`/reference/create-subscription`,children:`Create Subscription`}),` endpoint:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"errors\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"title\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:'\"Invalid `token` format for device type email\"'})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`add-a-device-legacy-players-api`,children:`Add a device: Legacy Players API`}),`\n`,_jsxs(_components.p,{children:[`When you add or edit a player record with an invalid email via the `,_jsx(_components.a,{href:`/reference/add-a-device`,children:`legacy Players API`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"success\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"errors\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"[`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\\"`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Identifier invalid format.`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\\"`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`]\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`The Legacy Players API is deprecated. Migrate to the `,_jsx(_components.a,{href:`/reference/create-user`,children:`User Model API`}),` to receive more descriptive validation errors and access current features.`]})})]})}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":"Email address validation","description":"Validate email addresses during CSV import and in bulk to reduce bounces and protect your sender reputation.","keywords":["email","validation","bounce","typo","disposable","role-based","MX record","import","bulk validation"],"href":"/docs/en/email-address-validation"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Validation checks","slug":"validation-checks","depth":2,"children":[]},{"title":"Validate addresses during CSV import","slug":"validate-addresses-during-csv-import","depth":2,"children":[{"title":"Result","slug":"result","depth":4,"children":[]}]},{"title":"Validate your existing audience in bulk","slug":"validate-your-existing-audience-in-bulk","depth":2,"children":[{"title":"Result","slug":"result-2","depth":4,"children":[]}]},{"title":"Validation error reference","slug":"validation-error-reference","depth":2,"children":[]},{"title":"API error responses","slug":"api-error-responses","depth":2,"children":[{"title":"Send email: Create Message","slug":"send-email-create-message","depth":3,"children":[]},{"title":"Add a user or subscription: User Model API","slug":"add-a-user-or-subscription-user-model-api","depth":3,"children":[]},{"title":"Add a device: Legacy Players API","slug":"add-a-device-legacy-players-api","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/onesignal/e069c1b9f3157e14/hotjar-koala.js","/_mintlify/custom/onesignal/3e5d03885ab32f49/intercom.js","/_mintlify/custom/onesignal/dbb7af4794d1b586/munchkin-marketo.js"],"subdomain":"onesignal","siteName":"OneSignal","title":"Email address validation - OneSignal","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/docs/en/email-address-validation","matchLevel":0},"cn":{"href":"/docs/cn/email-address-validation","matchLevel":1},"ko":{"href":"/docs/ko/email-address-validation","matchLevel":1},"ja":{"href":"/docs/ja/email-address-validation","matchLevel":1},"tr":{"href":"/docs/tr/email-address-validation","matchLevel":1},"pt-BR":{"href":"/docs/pt-BR/email-address-validation","matchLevel":1},"es":{"href":"/docs/es/email-address-validation","matchLevel":1},"fr":{"href":"/docs/fr/email-address-validation","matchLevel":1}}},"lastModified":"2026-09-17T22:03:54.653Z","originalFileLocation":"docs/en/email-address-validation.mdx","locale":"en"},"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=\"Validate email addresses during CSV import and in bulk to reduce bounces and protect your sender reputation.\">\u003cmeta data-mint-head name=\"application-name\" content=\"OneSignal\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_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/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_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/onesignal/eCiRydtW5fLfLRWp/_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/onesignal/eCiRydtW5fLfLRWp/_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/onesignal/eCiRydtW5fLfLRWp/_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/onesignal/eCiRydtW5fLfLRWp/_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/onesignal/eCiRydtW5fLfLRWp/_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/onesignal/eCiRydtW5fLfLRWp/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Email address validation - OneSignal\">\u003cmeta data-mint-head property=\"og:description\" content=\"Validate email addresses during CSV import and in bulk to reduce bounces and protect your sender reputation.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OneSignal\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://documentation.onesignal.com/docs/en/email-address-validation\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://onesignal.mintlify.app/_mintlify/api/og/v2?division=Email+deliverability+%26+analytics\u0026amp;title=Email+address+validation\u0026amp;description=Validate+email+addresses+during+CSV+import+and+in+bulk+to+reduce+bounces+and+protect+your+sender+reputation.\u0026amp;theme=8d648f04f85028b307bd669b\u0026amp;signature=a18f7b31283d7b8310626cafc555ef2989f7ee315b0b2fb456d384e162f5abaf\">\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=\"Email address validation - OneSignal\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Validate email addresses during CSV import and in bulk to reduce bounces and protect your sender reputation.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://onesignal.mintlify.app/_mintlify/api/og/v2?division=Email+deliverability+%26+analytics\u0026amp;title=Email+address+validation\u0026amp;description=Validate+email+addresses+during+CSV+import+and+in+bulk+to+reduce+bounces+and+protect+your+sender+reputation.\u0026amp;theme=8d648f04f85028b307bd669b\u0026amp;signature=a18f7b31283d7b8310626cafc555ef2989f7ee315b0b2fb456d384e162f5abaf\">\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/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OneSignal Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3A3DB3\">\u003clink data-mint-head rel=\"canonical\" href=\"https://documentation.onesignal.com/docs/en/email-address-validation\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/en/email-address-validation.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://documentation.onesignal.com/docs/en/email-address-validation\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://documentation.onesignal.com/docs/cn/email-address-validation\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://documentation.onesignal.com/docs/ko/email-address-validation\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://documentation.onesignal.com/docs/ja/email-address-validation\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"tr\" href=\"https://documentation.onesignal.com/docs/tr/email-address-validation\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt-BR\" href=\"https://documentation.onesignal.com/docs/pt-BR/email-address-validation\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://documentation.onesignal.com/docs/es/email-address-validation\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://documentation.onesignal.com/docs/fr/email-address-validation\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://documentation.onesignal.com/docs/en/email-address-validation\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://documentation.onesignal.com/#organization\",\"name\":\"OneSignal\",\"url\":\"https://documentation.onesignal.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/onesignal/yJcueeDCO7UpHnnY/logo/OneSignal-Logo.svg?fit=max\u0026auto=format\u0026n=yJcueeDCO7UpHnnY\u0026q=85\u0026s=1fcfb6fef6d820fd9d99c74850711107\"}},{\"@type\":\"WebSite\",\"@id\":\"https://documentation.onesignal.com#website\",\"name\":\"OneSignal\",\"url\":\"https://documentation.onesignal.com\",\"publisher\":{\"@id\":\"https://documentation.onesignal.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://documentation.onesignal.com/docs/en/email-address-validation#webpage\",\"url\":\"https://documentation.onesignal.com/docs/en/email-address-validation\",\"name\":\"Email address validation\",\"description\":\"Validate email addresses during CSV import and in bulk to reduce bounces and protect your sender reputation.\",\"dateModified\":\"2026-09-17T22:03:54.653Z\",\"isPartOf\":{\"@id\":\"https://documentation.onesignal.com#website\"},\"breadcrumb\":{\"@id\":\"https://documentation.onesignal.com/docs/en/email-address-validation#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://documentation.onesignal.com/docs/en/email-address-validation#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Message channels\",\"item\":\"https://documentation.onesignal.com/docs/en/channel-setup\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Email\",\"item\":\"https://documentation.onesignal.com/docs/en/email-messaging\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Email deliverability \u0026 analytics\",\"item\":\"https://documentation.onesignal.com/docs/en/email-message-reports\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Email address validation\",\"item\":\"https://documentation.onesignal.com/docs/en/email-address-validation\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://documentation.onesignal.com/docs/en/email-address-validation#article\",\"headline\":\"Email address validation\",\"name\":\"Email address validation\",\"description\":\"Validate email addresses during CSV import and in bulk to reduce bounces and protect your sender reputation.\",\"url\":\"https://documentation.onesignal.com/docs/en/email-address-validation\",\"mainEntityOfPage\":{\"@id\":\"https://documentation.onesignal.com/docs/en/email-address-validation#webpage\"},\"dateModified\":\"2026-09-17T22:03:54.653Z\",\"keywords\":\"email, validation, bounce, typo, disposable, role-based, MX record, import, bulk validation\",\"publisher\":{\"@id\":\"https://documentation.onesignal.com/#organization\"},\"isPartOf\":{\"@id\":\"https://documentation.onesignal.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"OneSignal\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"OneSignal","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/docs/en/home"}]},{"tab":"User Guides","groups":[{"group":"First steps \u0026 settings","pages":[{"title":"Getting started with OneSignal","href":"/docs/en/quickstart-guide"},{"group":"OneSignal dashboard","pages":[{"title":"Apps, Organizations, \u0026 Accounts","href":"/docs/en/apps-organizations"},{"title":"Team members","href":"/docs/en/manage-team-members"},{"title":"Keys \u0026 IDs","href":"/docs/en/keys-and-ids"},{"title":"Audit logs","href":"/docs/en/audit-logs"},{"title":"Usage \u0026 billing","href":"/docs/en/billing-faq"},{"title":"Disabled apps \u0026 organizations","href":"/docs/en/disabled-apps"}]},{"title":"Migrating to OneSignal","href":"/docs/en/migrating-to-onesignal"}]},{"group":"Message channels","pages":[{"title":"Channel setup","href":"/docs/en/channel-setup"},{"group":"Push","pages":[{"title":"Push overview","href":"/docs/en/push"},{"group":"Mobile push","pages":[{"title":"Mobile push setup","href":"/docs/en/mobile-push-setup"},{"title":"Prompt for push permissions","href":"/docs/en/prompt-for-push-permissions"},{"title":"iOS provisional push notifications","href":"/docs/en/ios-provisional-push-notifications"},{"title":"Android notification categories","href":"/docs/en/android-notification-categories"},{"title":"Data \u0026 background notifications","href":"/docs/en/data-notifications"},{"title":"VoIP push notifications","href":"/docs/en/voip-notifications"}]},{"group":"Web push","pages":[{"title":"Web push setup","href":"/docs/en/web-push-setup"},{"title":"Web permission prompts","href":"/docs/en/permission-requests"},{"title":"Web push FAQ","href":"/docs/en/web-push-setup-faq"},{"title":"Web push browser behavior","href":"/docs/en/browser-behavior-and-unsubscribes"},{"title":"OneSignal WordPress plugin setup for web push","href":"/docs/en/wordpress"},{"title":"WordPress troubleshooting","href":"/docs/en/troubleshooting-wordpress-web-push"},{"title":"Shopify web push integration","href":"/docs/en/shopify"}]},{"group":"Push features","pages":[{"title":"Notification icons","href":"/docs/en/notification-icons"},{"title":"Notification images \u0026 rich media","href":"/docs/en/rich-media"},{"title":"Notification sounds","href":"/docs/en/notification-sounds"},{"title":"Notification badges","href":"/docs/en/badges"},{"title":"Action buttons for push notifications","href":"/docs/en/action-buttons"},{"title":"Push frequency capping","href":"/docs/en/frequency-capping"},{"title":"Push throttling","href":"/docs/en/throttling"},{"title":"iOS: Focus modes and interruption levels","href":"/docs/en/ios-focus-modes-and-interruption-levels"},{"title":"iOS: Relevance score","href":"/docs/en/ios-relevance-score"}]},{"group":"Push analytics \u0026 troubleshooting","pages":[{"title":"Push message reports","href":"/docs/en/push-notification-message-reports"},{"title":"Confirmed receipt","href":"/docs/en/confirmed-delivery"},{"title":"Notification click-through rate (CTR)","href":"/docs/en/notification-ctr"},{"title":"Mobile push: Notifications not shown or delayed","href":"/docs/en/notifications-show-successful-but-are-not-being-shown"},{"title":"Web push: Notifications not shown","href":"/docs/en/notifications-not-shown-web-push"},{"title":"Notification Images Not Showing","href":"/docs/en/notification-images-not-showing"},{"title":"Duplicated notifications","href":"/docs/en/duplicated-notifications"},{"title":"FCM expired token FAQ","href":"/docs/en/fcm-expired-token-faq"}]}]},{"group":"In-app messages","pages":[{"title":"In-app overview","href":"/docs/en/in-app-messages-setup"},{"title":"In-app triggers","href":"/docs/en/iam-triggers"},{"title":"In-app click actions","href":"/docs/en/iam-click-actions"},{"group":"In-app design","pages":[{"title":"Design in-app messages with drag-and-drop","href":"/docs/en/design-your-in-app-message"},{"title":"Design in-app messages with HTML","href":"/docs/en/design-your-in-app-message-with-html"},{"title":"In-app message templates \u0026 quickstarts","href":"/docs/en/in-app-html-templates"},{"title":"In-app message JavaScript API reference","href":"/docs/en/in-app-message-api"}]},{"title":"In-app message reports","href":"/docs/en/in-app-message-reports"},{"title":"In-app troubleshooting","href":"/docs/en/in-app-message-troubleshooting"}]},{"group":"Email","pages":[{"title":"Email overview","href":"/docs/en/email-messaging"},{"group":"Email setup","pages":[{"title":"Email setup","href":"/docs/en/email-setup"},{"title":"Email DNS configuration","href":"/docs/en/email-dns-configuration"},{"title":"Senders","href":"/docs/en/senders"},{"title":"BCC emails","href":"/docs/en/email-bcc"},{"title":"Transactional emails","href":"/docs/en/setup-transactional-emails"},{"title":"Create a custom email unsubscribe page","href":"/docs/en/create-custom-unsubscribe-page"}]},{"group":"Email deliverability \u0026 analytics","pages":[{"title":"Email message reports","href":"/docs/en/email-message-reports"},{"title":"Email deliverability","href":"/docs/en/email-deliverability"},{"title":"Deliverability insights by inbox provider","href":"/docs/en/email-deliverability-insights"},{"title":"Email reputation best practices","description":"Build and maintain a healthy email sending reputation to improve deliverability and avoid spam complaints.","href":"/docs/en/email-reputation-best-practices"},{"title":"Email address validation","href":"/docs/en/email-address-validation"},{"title":"Email warm-up","description":"Build sender reputation with inbox providers by gradually scaling email volume to your most engaged recipients. Covers warm-up triggers, ramp schedule, Auto Warm Up, and FAQ.","href":"/docs/en/email-warm-up"},{"title":"Google Postmaster Tools","href":"/docs/en/google-postmaster-tools"},{"title":"Suppressions","href":"/docs/en/suppressions"},{"title":"Email troubleshooting","href":"/docs/en/email-troubleshooting"}]},{"group":"Design your emails","pages":[{"title":"Design emails with drag-and-drop","href":"/docs/en/design-emails-with-drag-and-drop"},{"title":"Design emails with HTML","href":"/docs/en/design-emails-with-html"},{"title":"Email unsubscribe links \u0026 headers","href":"/docs/en/unsubscribe-links-email-subscriptions"},{"title":"Email template forwarding","href":"/docs/en/email-template-forwarding"}]}]},{"group":"SMS \u0026 RCS","pages":[{"title":"SMS, MMS, and RCS overview","href":"/docs/en/sms-messaging"},{"title":"Rich Communication Services (RCS)","href":"/docs/en/rcs-messaging"},{"group":"SMS setup","pages":[{"title":"SMS setup","href":"/docs/en/sms-setup"},{"title":"Sender resource applications and country requirements","sidebarTitle":"Sender resource applications","href":"/docs/en/sms-registration-requirements"},{"title":"SMS opt-in and collection","href":"/docs/en/sms-opt-in-and-collection"},{"title":"SMS consent keyword management","href":"/docs/en/sms-consent-keyword-management"},{"title":"SMS keywords","href":"/docs/en/keywords"}]},{"group":"SMS messaging","pages":[{"title":"Promotional messaging","href":"/docs/en/sms-promotional-messaging"},{"title":"Transactional messaging","href":"/docs/en/sms-transactional-messaging"},{"title":"One-time passwords (OTP)","sidebarTitle":"One-time passwords","href":"/docs/en/sms-verify"},{"title":"Composing messages","href":"/docs/en/sms-composing-messages"},{"title":"SMS message reports","href":"/docs/en/sms-message-reports"}]}]},{"group":"Live Activities","pages":[{"title":"Live Activities","href":"/docs/en/live-activities"},{"title":"Live Activities analytics","href":"/docs/en/live-activities-analytics"}]},{"group":"Features","pages":[{"title":"A/B testing","href":"/docs/en/ab-testing"},{"title":"Multi-language messaging","href":"/docs/en/multi-language-messaging"},{"title":"Brand Kit","href":"/docs/en/brand-kit"},{"group":"Personalization","pages":[{"title":"Personalization","href":"/docs/en/message-personalization"},{"title":"Using Liquid syntax","href":"/docs/en/using-liquid-syntax"},{"title":"Data feeds","href":"/docs/en/data-feeds"},{"title":"Personalize with Custom Events","href":"/docs/en/personalization-custom-event"},{"title":"Personalize with properties","href":"/docs/en/personalization-properties-and-tags"},{"title":"Personalize messages with API custom_data","href":"/docs/en/personalization-api-custom-data"},{"title":"Dynamic Content with CSV","href":"/docs/en/dynamic-content"}]},{"group":"URLs, Links, \u0026 Deep Links","pages":[{"title":"URLs, links, \u0026 deep links","href":"/docs/en/links"},{"title":"Deep linking","href":"/docs/en/deep-linking"},{"title":"Email unsubscribe links \u0026 headers","href":"/docs/en/unsubscribe-links-email-subscriptions"}]},{"title":"Retargeting messages","href":"/docs/en/retargeting"},{"title":"Templates","href":"/docs/en/templates"},{"title":"Labels","href":"/docs/en/labels"}]}]},{"group":"Journeys","pages":[{"title":"Journeys overview","href":"/docs/en/journeys-overview"},{"group":"Journey features","pages":[{"title":"Journey settings","href":"/docs/en/journeys-settings"},{"title":"Journey messages","href":"/docs/en/journeys-messages"},{"title":"Journey message A/B testing","sidebarTitle":"A/B testing","tag":"BETA","href":"/docs/en/journeys-ab-testing"},{"title":"Journey actions","href":"/docs/en/journeys-actions"},{"title":"Journey webhooks","href":"/docs/en/journeys-webhook"},{"title":"Send WhatsApp Messages via Journey Webhooks","href":"/docs/en/sending-whatsapp-messages-via-journey-webhooks"},{"title":"Managing journeys","href":"/docs/en/managing-journeys"},{"title":"Journey version history","tag":"NEW","href":"/docs/en/journeys-version-history"},{"title":"Journey analytics","href":"/docs/en/journeys-analytics"}]},{"title":"Journey examples","href":"/docs/en/journeys-examples"},{"title":"Control Journey membership with tags","href":"/docs/en/journeys-membership-tags"}]},{"group":"OneSignal AI","pages":[{"title":"OneSignal AI","tag":"BETA","href":"/docs/en/onesignal-ai"},{"title":"OneSignal AI skills","sidebarTitle":"Skills","tag":"BETA","href":"/docs/en/onesignal-ai-skills"},{"title":"OneSignal Home","href":"/docs/en/onesignal-home"},{"title":"OneSignal MCP Server","href":"/docs/en/model-context-protocol"},{"title":"OneSignal AI data practices","mode":"frame","href":"/docs/en/ai-data-practices"},{"title":"AI message composer","href":"/docs/en/ai-message-composer"},{"title":"OneSignal Slack Agent","hidden":true,"tag":"BETA","href":"/docs/en/slack-agent"}]},{"group":"Audience \u0026 events","pages":[{"title":"Segments","href":"/docs/en/segmentation"},{"title":"User-based segmentation","tag":"BETA","href":"/docs/en/user-based-segmentation"},{"group":"Users \u0026 Subscriptions","pages":[{"title":"Users","href":"/docs/en/users"},{"title":"Subscriptions","href":"/docs/en/subscriptions"},{"title":"Sessions","href":"/docs/en/sessions"},{"title":"User and Subscription Profiles","href":"/docs/en/user-subscription-profiles"},{"title":"Aliases","href":"/docs/en/aliases"},{"title":"Test users","href":"/docs/en/test-users"},{"title":"Delete users","href":"/docs/en/delete-users"}]},{"group":"Events","pages":[{"title":"Message events","href":"/docs/en/message-events"},{"title":"Session events","href":"/docs/en/session-events"},{"group":"Custom events","pages":[{"title":"Custom events","href":"/docs/en/custom-events"},{"title":"Custom event best practices","href":"/docs/en/custom-event-best-practices"},{"title":"Custom event storage and retention","href":"/docs/en/custom-event-storage"}]}]},{"group":"Tags","pages":[{"title":"Tags","href":"/docs/en/add-user-data-tags"},{"title":"Tags: Time Operators","href":"/docs/en/time-operators"}]},{"title":"Import","href":"/docs/en/import"}]},{"group":"Analytics \u0026 Integrations","pages":[{"group":"Analytics","pages":[{"title":"Analytics overview","href":"/docs/en/analytics-overview"},{"title":"Metrics glossary","href":"/docs/en/analytics-metrics-glossary"},{"title":"Goals","sidebarTitle":"Goals","tag":"BETA","href":"/docs/en/goals"},{"title":"Exporting data","href":"/docs/en/exporting-data"},{"title":"Template analytics","href":"/docs/en/template-analytics"},{"title":"Conversion metrics","href":"/docs/en/conversion-metrics"},{"title":"Engagement trends","href":"/docs/en/engagement-analytics"},{"title":"Subscription trends","href":"/docs/en/subscription-trends"},{"title":"Sessions volume","href":"/docs/en/sessions-volume"},{"group":"Retention metrics","pages":[{"title":"Retention metrics","href":"/docs/en/retention-metrics"},{"title":"Interpreting retention curves","href":"/docs/en/interpreting-retention-curves"}]},{"title":"Custom Outcomes","href":"/docs/en/custom-outcomes"}]},{"group":"Event Streams","pages":[{"title":"Event Streams","href":"/docs/en/event-streams"},{"title":"Event Stream data reference","sidebarTitle":"Event Stream data","href":"/docs/en/event-streams-data"},{"title":"In-app message event streams","href":"/docs/en/iam-event-streams"},{"title":"Google Sheets integration with Event Streams","href":"/docs/en/google-sheets-integration-with-event-streams"}]},{"group":"Integrations","pages":[{"title":"Integrations overview","href":"/docs/en/integrations"},{"title":"Data warehouse, DMP, \u0026 CRM integration","href":"/docs/en/database-dmp-crm-integration"},{"group":"OneSignal as data source","pages":[{"title":"Amplitude","href":"/docs/en/amplitude"},{"title":"Databricks","href":"/docs/en/databricks"},{"title":"Google BigQuery","href":"/docs/en/bigquery"},{"title":"Mixpanel","href":"/docs/en/mixpanel"},{"title":"Snowflake","href":"/docs/en/snowflake"},{"title":"Segment (Twilio)","href":"/docs/en/segment-onesignal-integration"}]},{"group":"OneSignal as destination","pages":[{"title":"Adobe Audience Manager","href":"/docs/en/adobe-audience-manager"},{"title":"AlloyDB","href":"/docs/en/alloydb"},{"title":"Amazon Athena","href":"/docs/en/amazon-athena"},{"title":"Amazon S3","href":"/docs/en/s3"},{"title":"Amplitude","href":"/docs/en/amplitude"},{"title":"Apache Kafka","href":"/docs/en/kafka"},{"title":"Amazon Redshift","href":"/docs/en/amazon-redshift"},{"title":"Azure Synapse","href":"/docs/en/azure-synapse"},{"title":"ClickHouse","href":"/docs/en/clickhouse"},{"title":"Confluent Cloud","href":"/docs/en/confluent-cloud"},{"title":"Databricks","href":"/docs/en/databricks"},{"title":"Elasticsearch","href":"/docs/en/elasticsearch"},{"title":"Google BigQuery","href":"/docs/en/bigquery"},{"title":"Google Cloud SQL","href":"/docs/en/google-cloud-sql"},{"title":"Google Sheets","href":"/docs/en/google-sheets"},{"title":"Greenplum","href":"/docs/en/greenplum"},{"title":"HubSpot","href":"/docs/en/hubspot"},{"title":"Materialize","href":"/docs/en/materialize"},{"title":"Microsoft Fabric","href":"/docs/en/microsoft-fabric"},{"title":"Mixpanel","href":"/docs/en/mixpanel"},{"title":"MotherDuck","href":"/docs/en/motherduck"},{"title":"MySQL","href":"/docs/en/mysql"},{"title":"PostgreSQL","href":"/docs/en/postgresql"},{"title":"Pub/Sub","href":"/docs/en/google-pubsub"},{"title":"SingleStore","href":"/docs/en/singlestore"},{"title":"Snowflake","href":"/docs/en/snowflake"},{"title":"SQL Server","href":"/docs/en/sql-server"},{"title":"Starburst Enterprise","href":"/docs/en/starburst-enterprise"},{"title":"Starburst Galaxy","href":"/docs/en/starburst-galaxy"},{"title":"Trino","href":"/docs/en/trino"},{"title":"Segment (Twilio)","href":"/docs/en/segment-onesignal-integration"}]},{"group":"Attribution","pages":[{"title":"RevenueCat","href":"/docs/en/revenuecat"},{"title":"Adjust","href":"/docs/en/adjust"},{"title":"BlueConic","href":"/docs/en/blueconic"}]},{"title":"Building an integration with OneSignal: partner guide","href":"/docs/en/building-an-integration-with-onesignal-partner-guide"}]}]},{"group":"Privacy \u0026 Security","pages":[{"group":"Security credentials","pages":[{"title":"SOC 2 Type II","href":"/docs/en/soc-2-type-ii"},{"title":"ISO 27001","href":"/docs/en/iso27001"},{"title":"HIPAA","href":"/docs/en/hipaa"}]},{"group":"Data privacy \u0026 regulatory compliance","pages":[{"title":"GDPR \u0026 Individual Rights","href":"/docs/en/gdpr-compliance"},{"title":"EU-US Data Privacy Framework","href":"/docs/en/eu-us-data-privacy-framework"},{"title":"Email regulatory compliance","href":"/docs/en/email-compliance"},{"title":"SMS regulatory compliance","href":"/docs/en/sms-regulatory-compliance"},{"title":"Apple App Privacy Requirements","href":"/docs/en/apple-app-privacy-requirements"},{"title":"Google Play Data Safety Requirements","href":"/docs/en/google-play-data-safety-requirements"},{"title":"Data collection \u0026 security FAQs","href":"/docs/en/data-questions"},{"title":"Data collected by the OneSignal SDK","href":"/docs/en/data-collected-by-the-onesignal-sdk"},{"title":"Handling personal data","href":"/docs/en/handling-personal-data"},{"title":"Data taxonomy","href":"/docs/en/data-taxonomy"},{"title":"OneSignal AI data practices","mode":"frame","href":"/docs/en/ai-data-practices"}]},{"group":"Authentication","pages":[{"title":"2-step authentication","href":"/docs/en/2-step-authentication"},{"title":"Single Sign-On (SSO)","href":"/docs/en/sso"}]}]}]},{"tab":"Developer Guides","pages":[{"title":"Developer Guides","href":"/docs/en/developers"}]},{"tab":"Tutorials","pages":[{"title":"Tutorials","href":"/docs/en/tutorials"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/reference/rest-api-overview"}]},{"tab":"Release Notes","pages":[{"title":"Release Notes","href":"/release-notes/changelog"}]},{"tab":"Customer Success Hub","pages":[{"title":"Customer Success Hub","href":"/docs/en/customer-success-hub"}]}],"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://onesignal.com/blog"},{"anchor":"GitHub","icon":"github","href":"https://github.com/OneSignal"},{"anchor":"YouTube","icon":"youtube","href":"https://www.youtube.com/@onesignalofficial/playlists"}]}},{"language":"cn","pages":[{"title":"cn","href":"/docs/cn/email-address-validation"}]},{"language":"ko","pages":[{"title":"ko","href":"/docs/ko/email-address-validation"}]},{"language":"ja","pages":[{"title":"ja","href":"/docs/ja/email-address-validation"}]},{"language":"tr","pages":[{"title":"tr","href":"/docs/tr/email-address-validation"}]},{"language":"pt-BR","pages":[{"title":"pt-BR","href":"/docs/pt-BR/email-address-validation"}]},{"language":"es","pages":[{"title":"es","href":"/docs/es/email-address-validation"}]},{"language":"fr","pages":[{"title":"fr","href":"/docs/fr/email-address-validation"}]}]},"basePath":"","title":"Email address validation - OneSignal","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-PS-3COT9.js","DynamicMarkdown-BcnBltEQ.js","zoom-image-lightbox-B4-wUcHm.js","lightbox-handle-r17bVUz3.js"]}