See when an email was last active online. Send one email address per request, or an array of up to 1,000 addresses in a single request.
Batch endpoint: provide emails (an array of up to 1,000 plaintext addresses) or a single email. Duplicate addresses count once (matching is case-insensitive and ignores surrounding whitespace). The response lists only the addresses with known activity, each with its last_active date; addresses with no match are omitted from results.
Billing: 1 credit per matched email. Misses are free. Matches are billed in input order until the account’s credit balance runs out; any further matches are dropped from the response and credits_exhausted is returned as true. match_count and credits_charged both reflect the number of matches actually returned and billed.
Email addresses to check, up to 1,000 per request. Blank entries are ignored; duplicates count once (matching is case-insensitive and ignores surrounding whitespace).
true when the account ran out of credits before all matches could be billed; the unbilled matches are not returned.
Example:
false
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Retention.com Enrichment","description":"Enrichment APIs — turn an email, HEM, IP, or LinkedIn profile into emails, profiles, and other attributes.","colors":{"primary":"#111827","light":"#FBBF24","dark":"#0F172A"},"logo":{"light":"https://mintcdn.com/retention/egMTYLJ50XLFHYE0/logo/logo.png?fit=max\u0026auto=format\u0026n=egMTYLJ50XLFHYE0\u0026q=85\u0026s=a4ab393f132873bd76647aa98d1e3239","dark":"https://mintcdn.com/retention/egMTYLJ50XLFHYE0/logo/logo-white.png?fit=max\u0026auto=format\u0026n=egMTYLJ50XLFHYE0\u0026q=85\u0026s=9d30e3a9a3312ad94d0787b98d6b1cd6"},"favicon":"https://mintcdn.com/retention/egMTYLJ50XLFHYE0/favicon.svg?fit=max\u0026auto=format\u0026n=egMTYLJ50XLFHYE0\u0026q=85\u0026s=fbf80f51ecaf717e755de8ff08d94b9d","api":{"openapi":"openapi.json","playground":{"display":"interactive"},"examples":{"languages":["bash","python","javascript"]}},"navbar":{"links":[{"href":"mailto:support@retention.com","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.retention.com"}},"footer":{"socials":{"x":"https://x.com/retention","linkedin":"https://linkedin.com/company/retention-com"}},"contextual":{"options":["copy","view"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Dashboard","icon":"gauge","href":"https://ui.api.rb2b.com/dashboard"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"retention","hasAudioNarration":false,"actualSubdomain":"retention","customDomains":[],"gitSource":{"type":"github","owner":"getemailsllc","repo":"api_docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"collectionId":"2952dbaf-8b1e-49e3-a270-1e80b80644c5","liveDeploymentHistoryId":"6ae4ce9af2f7375d4fd9a712","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4ce9af2f7375d4fd9a712"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae4ce9af2f7375d4fd9a712","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"All APIs","count":20},{"language":"default","tag":"Email lookups","count":4},{"language":"default","tag":"Identity Enrichment","count":4},{"language":"default","tag":"Identity Resolution","count":4},{"language":"default","tag":"LinkedIn lookups","count":4},{"language":"default","tag":"Search, activity \u0026 account","count":4},{"language":"default","tag":"Guides","count":1},{"language":"default","tag":"Get started","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/other/email-to-activity","slug":"/api-reference/other/email-to-activity","pageMetadata":{"title":"Email Activity Check","openapi":"POST /api/v1/email_to_activity","description":"See when an email was last active online. Send one email address per request, or an array of up to 1,000 addresses in a single request.\n\nBatch endpoint: provide `emails` (an array of up to 1,000 plaintext addresses) or a single `email`. Duplicate addresses count once (matching is case-insensitive and ignores surrounding whitespace). The response lists only the addresses with known activity, each with its `last_active` date; addresses with no match are omitted from `results`.\n\n**Billing:** 1 credit per matched email. Misses are free. Matches are billed in input order until the account's credit balance runs out; any further matches are dropped from the response and `credits_exhausted` is returned as `true`. `match_count` and `credits_charged` both reflect the number of matches actually returned and billed.","href":"/api-reference/other/email-to-activity"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"See when an email was last active online. Send one email address per request, or an array of up to 1,000 addresses in a single request.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Batch endpoint: provide \", _jsx(_components.code, {\n children: \"emails\"\n }), \" (an array of up to 1,000 plaintext addresses) or a single \", _jsx(_components.code, {\n children: \"email\"\n }), \". Duplicate addresses count once (matching is case-insensitive and ignores surrounding whitespace). The response lists only the addresses with known activity, each with its \", _jsx(_components.code, {\n children: \"last_active\"\n }), \" date; addresses with no match are omitted from \", _jsx(_components.code, {\n children: \"results\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Billing:\"\n }), \" 1 credit per matched email. Misses are free. Matches are billed in input order until the account’s credit balance runs out; any further matches are dropped from the response and \", _jsx(_components.code, {\n children: \"credits_exhausted\"\n }), \" is returned as \", _jsx(_components.code, {\n children: \"true\"\n }), \". \", _jsx(_components.code, {\n children: \"match_count\"\n }), \" and \", _jsx(_components.code, {\n children: \"credits_charged\"\n }), \" both reflect the number of matches actually returned and billed.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Email Activity Check","openapi":"POST /api/v1/email_to_activity","description":"See when an email was last active online. Send one email address per request, or an array of up to 1,000 addresses in a single request.\n\nBatch endpoint: provide `emails` (an array of up to 1,000 plaintext addresses) or a single `email`. Duplicate addresses count once (matching is case-insensitive and ignores surrounding whitespace). The response lists only the addresses with known activity, each with its `last_active` date; addresses with no match are omitted from `results`.\n\n**Billing:** 1 credit per matched email. Misses are free. Matches are billed in input order until the account's credit balance runs out; any further matches are dropped from the response and `credits_exhausted` is returned as `true`. `match_count` and `credits_charged` both reflect the number of matches actually returned and billed.","href":"/api-reference/other/email-to-activity"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Email Activity Check","tags":["Email"],"operationId":"emailToActivity","description":"See when an email was last active online. Send one email address per request, or an array of up to 1,000 addresses in a single request.\n\nBatch endpoint: provide `emails` (an array of up to 1,000 plaintext addresses) or a single `email`. Duplicate addresses count once (matching is case-insensitive and ignores surrounding whitespace). The response lists only the addresses with known activity, each with its `last_active` date; addresses with no match are omitted from `results`.\n\n**Billing:** 1 credit per matched email. Misses are free. Matches are billed in input order until the account's credit balance runs out; any further matches are dropped from the response and `credits_exhausted` is returned as `true`. `match_count` and `credits_charged` both reflect the number of matches actually returned and billed.","security":["9f6975c2-1e4f-409c-81f2-4c0a13a943a8"],"parameters":[],"responses":{"200":"0764c264-708c-4d84-8b74-a9126ce00ab5","400":"3cb34c6e-e215-4fde-bdb1-3668f06fbb26","401":"4a6563e7-227e-4730-9f1a-daec0bd3433f","402":"9dcca6c9-bdea-4872-846e-864556f46014","403":"cac8aca2-8b80-487b-b0d4-a896ee05186f"},"requestBody":"839df37b-9769-4aaf-91cb-002045858b68","method":"post","type":"path","servers":["aa17081d-9c74-404e-b17f-a02fb504f21f"],"path":"/api/v1/email_to_activity","baseUrlOptions":["https://api.rb2b.com"],"title":"Email Activity Check","codeSamples":[],"requestExampleLanguages":["bash","python","javascript"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"type":"object","description":"Provide `emails` (preferred, up to 1,000 addresses) or a single `email`. When both are present, `emails` wins.","properties":{"emails":{"type":"array","maxItems":1000,"items":{"type":"string","format":"email","uniqueKey":"emails.items.[INDEX]","typeLabel":"string\u003cemail>"},"description":"Email addresses to check, up to 1,000 per request. Blank entries are ignored; duplicates count once (matching is case-insensitive and ignores surrounding whitespace).","example":["alice@example.com","bob@example.com"],"uniqueKey":"emails","typeLabel":"string\u003cemail>[]"},"email":{"type":"string","format":"email","description":"Single email address (alternative to the `emails` array).","example":"alice@example.com","uniqueKey":"email","typeLabel":"string\u003cemail>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"emails":["alice@example.com","bob@example.com"],"email":"alice@example.com"}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"0764c264-708c-4d84-8b74-a9126ce00ab5":{"description":"Activity results for matched emails (1 credit per match)","content":{"application/json":{"schema":{"type":"object","required":["results","match_count","credits_charged","credits_exhausted"],"properties":{"results":{"type":"array","description":"One entry per matched (and billed) email, in input order. Emails with no known activity are omitted.","items":{"type":"object","required":["email","last_active"],"properties":{"email":{"type":"string","format":"email","description":"The input email address, echoed back as supplied.","example":"alice@example.com","isRequired":true,"uniqueKey":"results.items.[INDEX].email","typeLabel":"string\u003cemail>"},"last_active":{"type":"string","format":"date","description":"Date the email was last seen active online (ISO 8601).","example":"2026-05-01","isRequired":true,"uniqueKey":"results.items.[INDEX].last_active","typeLabel":"string\u003cdate>"}},"uniqueKey":"results.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"results","typeLabel":"object[]"},"match_count":{"type":"integer","description":"Number of matched emails returned in `results`.","example":1,"isRequired":true,"uniqueKey":"match_count","typeLabel":"integer"},"credits_charged":{"type":"integer","description":"Credits charged for this request; equal to the number of matches returned (1 credit per match).","example":1,"isRequired":true,"uniqueKey":"credits_charged","typeLabel":"integer"},"credits_exhausted":{"type":"boolean","description":"`true` when the account ran out of credits before all matches could be billed; the unbilled matches are not returned.","example":false,"isRequired":true,"uniqueKey":"credits_exhausted","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"results":[{"email":"alice@example.com","last_active":"2026-05-01"}],"match_count":1,"credits_charged":1,"credits_exhausted":false}}},"exampleType":"generated"}},"exampleType":"generated"},"3cb34c6e-e215-4fde-bdb1-3668f06fbb26":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","enum":["missing emails","too_many_emails","invalid email","unexpected error"],"description":"`missing emails`: neither `emails` nor `email` was provided (or all entries were blank). `too_many_emails`: more than 1,000 addresses were submitted; see `max`. `invalid email`: at least one entry is not a valid email address. `unexpected error`: temporary error; safe to retry.","isRequired":true,"uniqueKey":"error","typeLabel":"enum\u003cstring>"},"max":{"type":"integer","description":"Maximum batch size. Present only with `too_many_emails`.","example":1000,"uniqueKey":"max","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"missing emails","max":1000}}},"exampleType":"generated"}},"exampleType":"generated"},"4a6563e7-227e-4730-9f1a-daec0bd3433f":{"description":"Missing, malformed, or unknown API key","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","enum":["missing_api_key","invalid_api_key_format","invalid_api_key"],"description":"`missing_api_key`: no key supplied. `invalid_api_key_format`: key does not match the expected format. `invalid_api_key`: key does not belong to any account.","isRequired":true,"uniqueKey":"error","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"missing_api_key"}}},"exampleType":"generated"}},"exampleType":"generated"},"9dcca6c9-bdea-4872-846e-864556f46014":{"description":"Insufficient credits","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","enum":["insufficient_api_credits"],"isRequired":true,"uniqueKey":"error","typeLabel":"enum\u003cstring>"},"required":{"type":"string","description":"Credits needed for this request.","example":"1.0","uniqueKey":"required","typeLabel":"string"},"remaining":{"type":"string","description":"Credits currently remaining on the account.","example":"0.0","uniqueKey":"remaining","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"insufficient_api_credits","required":"1.0","remaining":"0.0"}}},"exampleType":"generated"}},"exampleType":"generated"},"cac8aca2-8b80-487b-b0d4-a896ee05186f":{"description":"Service not enabled for this API key","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","enum":["service_unavailable_for_key"],"isRequired":true,"uniqueKey":"error","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"service_unavailable_for_key"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"9f6975c2-1e4f-409c-81f2-4c0a13a943a8":{"api_key":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"Per-account API key. Also accepted as `Api-Key` or `Authorization: Bearer \u003ckey>`.","scopes":[]}}},"servers":{"aa17081d-9c74-404e-b17f-a02fb504f21f":{"url":"https://api.rb2b.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"Per-account API key. Also accepted as `Api-Key` or `Authorization: Bearer \u003ckey>`.","scopes":[]},"schema":{"title":"X-Api-Key","type":"string","description":"Per-account API key. Also accepted as `Api-Key` or `Authorization: Bearer \u003ckey>`.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"api_key","name":"X-Api-Key"}],"title":"api_key"}]},"originalFileLocation":"openapi.json"},"subdomain":"retention","siteName":"Retention.com Enrichment","title":"Email Activity Check - Retention.com Enrichment","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T17:06:46.501Z","originalFileLocation":"api-reference/other/email-to-activity.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"See when an email was last active online. Send one email address per request, or an array of up to 1,000 addresses in a single request. Batch endpoint: provide emails (an array of up to 1,000 plaintext addresses) or a single email. Duplicate addresses count once (matching is case-insensitive and ignores surrounding whitespace). The response lists only the addresses with known activity, each with its last_active date; addresses with no match are omitted from results. Billing: 1 credit per matched email. Misses are free. Matches are billed in input order until the account\u0026#x27;s credit balance runs out; any further matches are dropped from the response and credits_exhausted is returned as true. match_count and credits_charged both reflect the number of matches actually returned and billed.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Retention.com Enrichment\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/retention/npq8Vd2x9SJbcBOC/_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/retention/npq8Vd2x9SJbcBOC/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/retention/npq8Vd2x9SJbcBOC/_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/retention/npq8Vd2x9SJbcBOC/_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/retention/npq8Vd2x9SJbcBOC/_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/retention/npq8Vd2x9SJbcBOC/_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/retention/npq8Vd2x9SJbcBOC/_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/retention/npq8Vd2x9SJbcBOC/_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/retention/npq8Vd2x9SJbcBOC/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Email Activity Check - Retention.com Enrichment\">\u003cmeta data-mint-head property=\"og:description\" content=\"See when an email was last active online. Send one email address per request, or an array of up to 1,000 addresses in a single request. Batch endpoint: provide emails (an array of up to 1,000 plaintext addresses) or a single email. Duplicate addresses count once (matching is case-insensitive and ignores surrounding whitespace). The response lists only the addresses with known activity, each with its last_active date; addresses with no match are omitted from results. Billing: 1 credit per matched email. Misses are free. Matches are billed in input order until the account\u0026#x27;s credit balance runs out; any further matches are dropped from the response and credits_exhausted is returned as true. match_count and credits_charged both reflect the number of matches actually returned and billed.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Retention.com Enrichment\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://retention.mintlify.app/api-reference/other/email-to-activity\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://retention.mintlify.app/_mintlify/api/og/v2?division=Search%2C+activity+%26+account\u0026amp;title=Email+Activity+Check\u0026amp;description=See+when+an+email+was+last+active+online.+Send+one+email+address+per+request%2C+or+an+array+of+up+to+1%2C000+addresses+in+a+single+request.%0A%0ABatch+endpoint%3A+provide\u0026amp;theme=143fee85a851ed0c66a883de\u0026amp;signature=393cfa3fffd4801c3f4080c92cb047a217523bab743d8f49d13ac82183b564fa\">\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 Activity Check - Retention.com Enrichment\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"See when an email was last active online. Send one email address per request, or an array of up to 1,000 addresses in a single request. Batch endpoint: provide emails (an array of up to 1,000 plaintext addresses) or a single email. Duplicate addresses count once (matching is case-insensitive and ignores surrounding whitespace). The response lists only the addresses with known activity, each with its last_active date; addresses with no match are omitted from results. Billing: 1 credit per matched email. Misses are free. Matches are billed in input order until the account\u0026#x27;s credit balance runs out; any further matches are dropped from the response and credits_exhausted is returned as true. match_count and credits_charged both reflect the number of matches actually returned and billed.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://retention.mintlify.app/_mintlify/api/og/v2?division=Search%2C+activity+%26+account\u0026amp;title=Email+Activity+Check\u0026amp;description=See+when+an+email+was+last+active+online.+Send+one+email+address+per+request%2C+or+an+array+of+up+to+1%2C000+addresses+in+a+single+request.%0A%0ABatch+endpoint%3A+provide\u0026amp;theme=143fee85a851ed0c66a883de\u0026amp;signature=393cfa3fffd4801c3f4080c92cb047a217523bab743d8f49d13ac82183b564fa\">\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/retention/npq8Vd2x9SJbcBOC/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Retention.com Enrichment\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#111827\">\u003clink data-mint-head rel=\"canonical\" href=\"https://retention.mintlify.app/api-reference/other/email-to-activity\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/other/email-to-activity.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://retention.mintlify.app/#organization\",\"name\":\"Retention.com Enrichment\",\"url\":\"https://retention.mintlify.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/retention/egMTYLJ50XLFHYE0/logo/logo.png?fit=max\u0026auto=format\u0026n=egMTYLJ50XLFHYE0\u0026q=85\u0026s=a4ab393f132873bd76647aa98d1e3239\"}},{\"@type\":\"WebSite\",\"@id\":\"https://retention.mintlify.app#website\",\"name\":\"Retention.com Enrichment\",\"url\":\"https://retention.mintlify.app\",\"publisher\":{\"@id\":\"https://retention.mintlify.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://retention.mintlify.app/api-reference/other/email-to-activity#webpage\",\"url\":\"https://retention.mintlify.app/api-reference/other/email-to-activity\",\"name\":\"Email Activity Check\",\"description\":\"See when an email was last active online. Send one email address per request, or an array of up to 1,000 addresses in a single request. Batch endpoint: provide emails (an array of up to 1,000 plaintext addresses) or a single email. Duplicate addresses count once (matching is case-insensitive and ignores surrounding whitespace). The response lists only the addresses with known activity, each with its last_active date; addresses with no match are omitted from results. Billing: 1 credit per matched email. Misses are free. Matches are billed in input order until the account's credit balance runs out; any further matches are dropped from the response and credits_exhausted is returned as true. match_count and credits_charged both reflect the number of matches actually returned and billed.\",\"dateModified\":\"2026-10-30T17:06:46.501Z\",\"isPartOf\":{\"@id\":\"https://retention.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://retention.mintlify.app/api-reference/other/email-to-activity#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://retention.mintlify.app/api-reference/other/email-to-activity#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Search, activity \u0026 account\",\"item\":\"https://retention.mintlify.app/api-reference/other/linkedin-slug-search\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Email Activity Check\",\"item\":\"https://retention.mintlify.app/api-reference/other/email-to-activity\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://retention.mintlify.app/api-reference/other/email-to-activity#apireference\",\"headline\":\"Email Activity Check\",\"name\":\"Email Activity Check\",\"description\":\"See when an email was last active online. Send one email address per request, or an array of up to 1,000 addresses in a single request. Batch endpoint: provide emails (an array of up to 1,000 plaintext addresses) or a single email. Duplicate addresses count once (matching is case-insensitive and ignores surrounding whitespace). The response lists only the addresses with known activity, each with its last_active date; addresses with no match are omitted from results. Billing: 1 credit per matched email. Misses are free. Matches are billed in input order until the account's credit balance runs out; any further matches are dropped from the response and credits_exhausted is returned as true. match_count and credits_charged both reflect the number of matches actually returned and billed.\",\"url\":\"https://retention.mintlify.app/api-reference/other/email-to-activity\",\"mainEntityOfPage\":{\"@id\":\"https://retention.mintlify.app/api-reference/other/email-to-activity#webpage\"},\"dateModified\":\"2026-10-30T17:06:46.501Z\",\"publisher\":{\"@id\":\"https://retention.mintlify.app/#organization\"},\"isPartOf\":{\"@id\":\"https://retention.mintlify.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Retention.com Enrichment\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Retention.com Enrichment","nav":{"global":{"anchors":[{"anchor":"Dashboard","icon":"gauge","href":"https://ui.api.rb2b.com/dashboard"}]},"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"All APIs","icon":"rectangle-api","groups":[{"group":"Identity Enrichment","pages":[{"title":"Enrichment APIs","href":"/reference/introduction"},{"title":"Universal Identity","openapi":"POST /api/v1/identity/person","href":"/api-reference/identity/universal"},{"title":"Personal Identity","openapi":"POST /api/v1/identity/consumer","href":"/api-reference/identity/personal-identity-b2c"},{"title":"Full Business Enrichment","openapi":"POST /api/v1/identity/business","href":"/api-reference/identity/professional-identity-b2b"}]},{"group":"Email lookups","pages":[{"title":"Email → Mobile Device IDs","openapi":"POST /api/v1/hem_to_maid","href":"/api-reference/hem/hem-to-maid"},{"title":"Email → LinkedIn","openapi":"POST /api/v1/hem_to_linkedin","href":"/api-reference/hem/hem-to-linkedin"},{"title":"Email → Best LinkedIn","openapi":"POST /api/v1/hem_to_best_linkedin","href":"/api-reference/hem/hem-to-best-linkedin"},{"title":"Email → Business Profile","openapi":"POST /api/v1/hem_to_business_profile","href":"/api-reference/hem/hem-to-business-profile"}]},{"group":"Identity Resolution","pages":[{"title":"IP → Hashed Email","openapi":"POST /api/v1/ip_to_hem","href":"/api-reference/ip/ip-to-hem"},{"title":"IP → Mobile Device IDs","openapi":"POST /api/v1/ip_to_maid","href":"/api-reference/ip/ip-to-maid"},{"title":"IP → Company","openapi":"POST /api/v1/ip_to_company","href":"/api-reference/ip/ip-to-company"},{"title":"IP → Business Profile","openapi":"POST /api/v1/ip_to_business_profile","href":"/api-reference/ip/ip-to-business-profile"}]},{"group":"LinkedIn lookups","pages":[{"title":"LinkedIn → Hashed Emails","openapi":"POST /api/v1/linkedin_to_hashed_emails","href":"/api-reference/linkedin/linkedin-to-hashed-emails"},{"title":"LinkedIn → Mobile Phone","openapi":"POST /api/v1/linkedin_to_mobile_phone","href":"/api-reference/linkedin/linkedin-to-mobile-phone"},{"title":"LinkedIn → Business Profile","openapi":"POST /api/v1/linkedin_to_business_profile","href":"/api-reference/linkedin/linkedin-to-business-profile"},{"title":"LinkedIn → Business Email","openapi":"POST /api/v1/linkedin_to_business_email","href":"/api-reference/linkedin/linkedin-to-business-email"}]},{"group":"Search, activity \u0026 account","pages":[{"title":"Find LinkedIn Profile","openapi":"POST /api/v1/linkedin_slug_search","href":"/api-reference/other/linkedin-slug-search"},{"title":"Work Email → Personal Email","openapi":"POST /api/v1/business_email_to_personal_hem","description":"Match a work email to a hashed personal email.\n\nProvide a valid plaintext work `email`. On a match, the response contains the person's personal email addresses as SHA-256 hashes; on a miss the `personal_email_sha256s` array is empty.\n\n**Billing:** 1 credit per successful match (HTTP 200). Misses (404) and request errors (4xx) are not billed.","href":"/api-reference/other/business-email-to-personal-hem"},{"title":"Email Activity Check","openapi":"POST /api/v1/email_to_activity","href":"/api-reference/other/email-to-activity"},{"title":"Credits","openapi":"GET /api/v1/credits","description":"Returns the account's remaining API credit balance.\n\nAuthenticates with the API key only; no per-service enablement or minimum credit balance is required. When the optional `Api-Origin-Key` header identifies a partner account, the endpoint instead returns a partner usage report aggregating API call counts across every account that shares the partner's custom origin, over the `start_date`/`end_date` range (defaults: beginning of the current month through today). An unknown origin key returns 401 `invalid_origin_key`; a partner account without a configured custom origin returns 400 `no_custom_origin_configured`.\n\n**Billing:** never billed; this endpoint does not consume credits.","href":"/api-reference/other/credits"}]}]}]},"basePath":"","title":"Email Activity Check - Retention.com Enrichment","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DCDCdBVX.js","utils-ME8dDnLe.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-0e84ACsd.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-wgRBj-ia.js","snippetPresets-C11Sgb-o.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-C0lapOpP.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-ZeRQV8fF.js","shallow-BupWh095.js","getApiPlaygroundDisplay-BnYQO2Ss.js","CodeSnippet-RKKOc8c_.js","CodeSnippets-Drf_m8wS.js","Page-Bevw23-4.js","getPastedJson-u6QiPzNZ.js","icon-Bb-CBSxO.js","MethodPill-F7l5AI7V.js","DuplicateIcon-IiAXkdSg.js","createIcon-FliI8EBc.js","DynamicMarkdown-B62XqCSI.js","SectionHeading-Dj31pT03.js","axios-vUo_bRtp.js","Markdown-BOgQCTwD.js","clsx-BIWXJmsZ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DKZWslLH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-UDqbR6xh.js"]}