API to manage your contacts, allowing you to either create new contacts or update existing ones based on your needs.
When you send a request, the API first checks if the contact already exists in your database.
If the contact is found, the API will automatically update the existing contact with the new information provided. This ensures that your contact list remains up-to-date without creating duplicates.
Custom Property Data:
The API allows you to add custom properties to each contact. You can do this in two ways:
By Property ID: Map the property ID to its corresponding value.
By Personalization Tag: Alternatively, you can use personalization tag for that property to specify values.
Contact Quota Limit:
Please note that you can continue adding or updating contacts until you reach your designated contact quota limit.
If you reach your quota limit, further attempts to add new contacts will be rejected until you either remove some existing contacts or increase your quota.
Accepted values are case-insensitive and whitespace-trimmed:
granted: granted, yes, true, 1, subscribed
denied: denied, revoked, no, false, 0, unsubscribed
unknown: unknown, never subscribed
The subscribed / unsubscribed / never subscribed aliases let Klaviyo exports be imported unchanged.
An unrecognised or empty value is ignored and leaves any existing consent untouched - it is not a validation error, so a blank field in a re-upload never erases a previously recorded answer.
Setting a value also stamps tracking_consent_date and sets tracking_consent_source to 5 (API). Those two fields cannot be set directly.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Mailercloud API","description":"Send campaigns, manage contacts, and automate email with the Mailercloud API.","colors":{"primary":"#1B7CFF","light":"#4D9AFF","dark":"#0F62D8"},"logo":{"light":"https://mintcdn.com/mailercloud/i1yaE0mG2KZobCyB/logo/light.svg?fit=max\u0026auto=format\u0026n=i1yaE0mG2KZobCyB\u0026q=85\u0026s=ee63a470243c3c865ec9248b577f2a20","dark":"https://mintcdn.com/mailercloud/141gVSRGKgQdCHEd/logo/dark.svg?fit=max\u0026auto=format\u0026n=141gVSRGKgQdCHEd\u0026q=85\u0026s=cc781b737536e3755238b1d9eaf979c3","href":"https://www.mailercloud.com"},"favicon":"https://mintcdn.com/mailercloud/i1yaE0mG2KZobCyB/favicon.png?fit=max\u0026auto=format\u0026n=i1yaE0mG2KZobCyB\u0026q=85\u0026s=00200874c6abcc324677e5a8fb5505c0","api":{"playground":{"display":"interactive"},"examples":{"defaults":"all","languages":["curl","python","javascript","php","go"]}},"background":{"color":{"dark":"#0A1220"}},"navbar":{"links":[{"href":"https://app.mailercloud.com/login","label":"Sign In"}],"primary":{"type":"button","label":"Get Started","href":"https://app.mailercloud.com/register?source=apidoc"}},"footer":{"socials":{"website":"https://www.mailercloud.com","x":"https://twitter.com/mailercloud","linkedin":"https://www.linkedin.com/company/mailercloud","facebook":"https://www.facebook.com/mailercloud","youtube":"https://www.youtube.com/channel/UCslSwv-TECN8rLvFM8wRlog"}},"fonts":{"heading":{"family":"Hanken Grotesk","weight":600},"body":{"family":"Inter","weight":400}},"styling":{"eyebrows":"breadcrumbs","latex":false},"contextual":{"options":["copy","view","chatgpt","claude","mcp","cursor"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"mailercloud","hasAudioNarration":false,"actualSubdomain":"mailercloud","customDomains":["apidoc.mailercloud.com"],"gitSource":{"type":"github","owner":"mailercloud-com","repo":"mailercloud-api-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ae1cccc201cdb70a521d146","collectionId":"631a1394-a3ec-4363-965d-624bbb36882a","liveDeploymentHistoryId":"6ae1cccc201cdb70a521d146","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae1cccc201cdb70a521d146","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"Marketing API","count":71},{"language":"default","tag":"Documentation","count":13},{"language":"default","tag":"Campaigns","count":12},{"language":"default","tag":"Guides","count":8},{"language":"default","tag":"Contacts","count":8},{"language":"default","tag":"Domains","count":7},{"language":"default","tag":"Inbox Tracker","count":7},{"language":"default","tag":"Webhooks","count":7},{"language":"default","tag":"Email API","count":6},{"language":"default","tag":"Email","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@mailercloud.com"}},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"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":"editor-v7-file-tree","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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"editor-agent-model-picker","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"#content-area .prose.text-lg{font-size:1rem;line-height:1.7}#pagination .pagination-title{font-size:.875rem;line-height:1.45}#navbar,#navbar-transition{background:linear-gradient(90deg,#0f62d8 0,#1b7cff 65%,#3d8bff 100%)!important;border-bottom:none!important;backdrop-filter:none!important}#navbar a,#navbar button,#navbar p,#navbar span,#navbar svg{color:#fff}#navbar a:hover{opacity:.85}#navbar img[src*=\"logo/light\"]{display:none!important}#navbar img[src*=\"logo/dark\"]{display:block!important}#topbar-cta-button a>span.absolute{background:#fff!important}#assistant-entry,#assistant-entry *,#topbar-cta-button,#topbar-cta-button *{color:#0f62d8!important}#search-bar-entry{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.3)}.dark #navbar,.dark #navbar-transition{background:linear-gradient(90deg,#0b2a55 0,#10408a 65%,#164fa5 100%)!important}.dark #assistant-entry,.dark #assistant-entry *{color:#7eb3ff!important}.dark #topbar-cta-button,.dark #topbar-cta-button *{color:#0f62d8!important}.tryit-button{background:#1b7cff!important;color:#fff!important}.tryit-button:hover{background:#0f62d8!important;opacity:1!important}#content-area h1{font-size:1.9375rem}#content-area h2{font-size:1.5625rem}#content-area h3{font-size:1.25rem}"}],"page":{"pagePath":"api-reference/contacts/create-or-update-contact","slug":"/api-reference/contacts/create-or-update-contact","pageMetadata":{"title":"Create or Update Contact","description":"API to manage your contacts, allowing you to either create new contacts or update existing ones based on your needs.\n\nWhen you send a request, the API first checks if the contact already exists in your database.\nIf the contact is found, the API will automatically update the existing contact with the new information provided. This ensures that your contact list remains up-to-date without creating duplicates.\n\n**Custom Property Data:**\nThe API allows you to add custom properties to each contact. You can do this in two ways:\n- By Property ID: Map the property ID to its corresponding value. \n- By Personalization Tag: Alternatively, you can use personalization tag for that property to specify values.\n\n**Contact Quota Limit:**\nPlease note that you can continue adding or updating contacts until you reach your designated contact quota limit. \nIf you reach your quota limit, further attempts to add new contacts will be rejected until you either remove some existing contacts or increase your quota.","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /contacts/upsert","href":"/api-reference/contacts/create-or-update-contact","autogeneratedByOpenApi":true},"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 li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"API to manage your contacts, allowing you to either create new contacts or update existing ones based on your needs.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"When you send a request, the API first checks if the contact already exists in your database.\\nIf the contact is found, the API will automatically update the existing contact with the new information provided. This ensures that your contact list remains up-to-date without creating duplicates.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Custom Property Data:\"\n }), \"\\nThe API allows you to add custom properties to each contact. You can do this in two ways:\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"By Property ID: Map the property ID to its corresponding value.\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"By Personalization Tag: Alternatively, you can use personalization tag for that property to specify values.\"\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Contact Quota Limit:\"\n }), \"\\nPlease note that you can continue adding or updating contacts until you reach your designated contact quota limit.\\nIf you reach your quota limit, further attempts to add new contacts will be rejected until you either remove some existing contacts or increase your quota.\"]\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":"Create or Update Contact","description":"API to manage your contacts, allowing you to either create new contacts or update existing ones based on your needs.\n\nWhen you send a request, the API first checks if the contact already exists in your database.\nIf the contact is found, the API will automatically update the existing contact with the new information provided. This ensures that your contact list remains up-to-date without creating duplicates.\n\n**Custom Property Data:**\nThe API allows you to add custom properties to each contact. You can do this in two ways:\n- By Property ID: Map the property ID to its corresponding value. \n- By Personalization Tag: Alternatively, you can use personalization tag for that property to specify values.\n\n**Contact Quota Limit:**\nPlease note that you can continue adding or updating contacts until you reach your designated contact quota limit. \nIf you reach your quota limit, further attempts to add new contacts will be rejected until you either remove some existing contacts or increase your quota.","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /contacts/upsert","href":"/api-reference/contacts/create-or-update-contact","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Create or Update Contact","operationId":"create-or-update-contact","description":"API to manage your contacts, allowing you to either create new contacts or update existing ones based on your needs.\n\nWhen you send a request, the API first checks if the contact already exists in your database.\nIf the contact is found, the API will automatically update the existing contact with the new information provided. This ensures that your contact list remains up-to-date without creating duplicates.\n\n**Custom Property Data:**\nThe API allows you to add custom properties to each contact. You can do this in two ways:\n- By Property ID: Map the property ID to its corresponding value. \n- By Personalization Tag: Alternatively, you can use personalization tag for that property to specify values.\n\n**Contact Quota Limit:**\nPlease note that you can continue adding or updating contacts until you reach your designated contact quota limit. \nIf you reach your quota limit, further attempts to add new contacts will be rejected until you either remove some existing contacts or increase your quota.","tags":["Contacts"],"parameters":["153d2dcd-415b-45fb-9050-2a2dea66c2c3"],"requestBody":"10573a7f-e959-41be-bfbd-e1f00ec24064","responses":{"200":"dae869ad-c09b-4db7-8b24-fcc5307060b5","400":"bfba9165-f378-4bb4-b175-60204ef0847c","401":"a90fd8bc-fbab-48ae-993c-915b266bb6ae"},"method":"post","type":"path","servers":["525ccd40-acd0-4c1f-b45f-645a2ccc048d"],"security":["797e1cf7-8b79-49d7-8256-e509d254deea"],"path":"/contacts/upsert","baseUrlOptions":["https://cloudapi.mailercloud.com/v1"],"title":"Create or Update Contact","codeSamples":[],"requestExampleLanguages":["bash","python","javascript","php","go"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"153d2dcd-415b-45fb-9050-2a2dea66c2c3":{"name":"Content-Type","in":"header","required":true,"description":"Request body type","schema":{"type":"string","isRequired":true,"description":"Request body type","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"city":{"type":"string","uniqueKey":"city","typeLabel":"string"},"country":{"type":"string","uniqueKey":"country","typeLabel":"string"},"custom_fields":{"type":"object","properties":{"enc_id1":{"type":"string","uniqueKey":"custom_fields.enc_id1","typeLabel":"string"},"personalisation_tag_4":{"type":"integer","uniqueKey":"custom_fields.personalisation_tag_4","typeLabel":"integer"}},"uniqueKey":"custom_fields","typeLabel":"object"},"department":{"type":"string","uniqueKey":"department","typeLabel":"string"},"email":{"type":"string","uniqueKey":"email","typeLabel":"string"},"industry":{"type":"string","uniqueKey":"industry","typeLabel":"string"},"job_title":{"type":"string","uniqueKey":"job_title","typeLabel":"string"},"last_name":{"type":"string","uniqueKey":"last_name","typeLabel":"string"},"lead_source":{"type":"string","uniqueKey":"lead_source","typeLabel":"string"},"list_id":{"type":"string","uniqueKey":"list_id","typeLabel":"string"},"middle_name":{"type":"string","uniqueKey":"middle_name","typeLabel":"string"},"first_name":{"type":"string","uniqueKey":"first_name","typeLabel":"string"},"company_name":{"type":"string","uniqueKey":"company_name","typeLabel":"string"},"phone":{"type":"string","uniqueKey":"phone","typeLabel":"string"},"salary":{"type":"integer","uniqueKey":"salary","typeLabel":"integer"},"state":{"type":"string","uniqueKey":"state","typeLabel":"string"},"postal_code":{"type":"string","uniqueKey":"postal_code","typeLabel":"string"},"contact_type":{"type":"string","uniqueKey":"contact_type","typeLabel":"string"},"tags":{"type":"array","items":{"type":"string","uniqueKey":"tags.items.[INDEX]","typeLabel":"string"},"uniqueKey":"tags","typeLabel":"string[]"},"tracking_consent":{"type":"string","maxLength":20,"description":"Open-tracking consent for this contact.\n\nAccepted values are case-insensitive and whitespace-trimmed:\n- granted: `granted`, `yes`, `true`, `1`, `subscribed`\n- denied: `denied`, `revoked`, `no`, `false`, `0`, `unsubscribed`\n- unknown: `unknown`, `never subscribed`\n\nThe `subscribed` / `unsubscribed` / `never subscribed` aliases let Klaviyo exports be imported unchanged.\n\nAn unrecognised or empty value is **ignored** and leaves any existing consent untouched - it is not a validation error, so a blank field in a re-upload never erases a previously recorded answer.\n\nSetting a value also stamps `tracking_consent_date` and sets `tracking_consent_source` to `5` (API). Those two fields cannot be set directly.\n\nMaximum: 20 ","uniqueKey":"tracking_consent","typeLabel":"string"}},"x-examples":{"Example 1":{"city":"San Francisco","country":"USA","custom_fields":{"enc_id1":"ABC123","personalisation_tag_4":456},"department":"Engineering","email":"john.doe@example.com","industry":"Software Development","job_title":"Software Engineer","last_name":"Doe","lead_source":"Website","list_id":"KYHH","middle_name":"A.","first_name":"John A. Doe","company_name":"Tech Innovations Inc.","phone":"+1-234-567-8901","salary":95000,"state":"California","postal_code":"94105","contact_type":"active","tags":["prospect","customer","lead"]}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example-1":{"title":"Example-1","value":{"city":"San Francisco","country":"USA","custom_fields":{"enc_id1":"ABC123","personalisation_tag_4":456},"department":"Engineering","email":"john.doe@example.com","industry":"Software Development","job_title":"Software Engineer","last_name":"Doe","lead_source":"Website","list_id":"KYHH","middle_name":"A.","first_name":"John A. Doe","company_name":"Tech Innovations Inc.","phone":"+1-234-567-8901","salary":95000,"state":"California","postal_code":"94105","contact_type":"active","tags":["prospect","customer","lead"]}},"Example-2":{"title":"Example-2","value":{"city":"San Francisco","country":"USA","custom_fields":{"enc_id1":"ABC123","personalisation_tag_4":456},"department":"Engineering","email":"john.doe@example.com","industry":"Software Development","job_title":"Software Engineer","last_name":"Doe","lead_source":"Website","list_id":"KYHH","middle_name":"A.","first_name":"John A. Doe","company_name":"Tech Innovations Inc.","phone":"+1-234-567-8901","salary":95000,"state":"California","postal_code":"94105","contact_type":"active","tags":["prospect","customer","lead"]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"dae869ad-c09b-4db7-8b24-fcc5307060b5":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"contact_id":{"type":"string","uniqueKey":"contact_id","typeLabel":"string"},"status":{"type":"string","uniqueKey":"status","typeLabel":"string"}},"x-examples":{"Example 1":{"contact_id":"fZuKHSuwK","status":"updated"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example-1":{"title":"Example-1","value":{"contact_id":"fZuKHSuwK","status":"updated"}},"Example-2":{"title":"Example-2","value":{"contact_id":"fZuKHSuwK","status":"created"}}},"exampleType":"examples"}},"exampleType":"examples"},"bfba9165-f378-4bb4-b175-60204ef0847c":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"field":{"type":"string","uniqueKey":"error.field","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"x-examples":{"Example 1":{"error":{"field":"email","message":"Invalid email"}}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example-1":{"title":"Example-1","value":{"error":{"field":"email","message":"Invalid email"}}}},"exampleType":"examples"}},"exampleType":"examples"},"a90fd8bc-fbab-48ae-993c-915b266bb6ae":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"x-examples":{"Example 1":{"errors":[{"field":"","message":"Authorization failed"}]}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example-1":{"title":"Example-1","value":{"errors":[{"field":"","message":"Authorization failed"}]}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"797e1cf7-8b79-49d7-8256-e509d254deea":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"Your Mailercloud API key (plain text, no Bearer prefix). Create keys in Settings → API.","scopes":[],"schemeName":"apiKey"}}},"servers":{"525ccd40-acd0-4c1f-b45f-645a2ccc048d":{"url":"https://cloudapi.mailercloud.com/v1"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"Authorization","description":"Your Mailercloud API key (plain text, no Bearer prefix). Create keys in Settings → API.","scopes":[],"schemeName":"apiKey"},"schema":{"title":"Authorization","type":"string","description":"Your Mailercloud API key (plain text, no Bearer prefix). Create keys in Settings → API.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKey","name":"Authorization"}],"title":"apiKey"}]},"originalFileLocation":"openapi-v1.json"},"subdomain":"mailercloud","siteName":"Mailercloud API","title":"Create or Update Contact - Mailercloud API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-27T11:58:41.174Z","originalFileLocation":"api-reference/contacts/create-or-update-contact.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=\"API to manage your contacts, allowing you to either create new contacts or update existing ones based on your needs. When you send a request, the API first checks if the contact already exists in your database. If the contact is found, the API will automatically update the existing contact with the new information provided. This ensures that your contact list remains up-to-date without creating duplicates. Custom Property Data: The API allows you to add custom properties to each contact. You can do this in two ways: - By Property ID: Map the property ID to its corresponding value. - By Personalization Tag: Alternatively, you can use personalization tag for that property to specify values. Contact Quota Limit: Please note that you can continue adding or updating contacts until you reach your designated contact quota limit. If you reach your quota limit, further attempts to add new contacts will be rejected until you either remove some existing contacts or increase your quota.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Mailercloud API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/mailercloud/xGtgtsD6i5MXTEn-/_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/mailercloud/xGtgtsD6i5MXTEn-/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/mailercloud/xGtgtsD6i5MXTEn-/_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/mailercloud/xGtgtsD6i5MXTEn-/_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/mailercloud/xGtgtsD6i5MXTEn-/_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/mailercloud/xGtgtsD6i5MXTEn-/_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/mailercloud/xGtgtsD6i5MXTEn-/_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/mailercloud/xGtgtsD6i5MXTEn-/_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/mailercloud/xGtgtsD6i5MXTEn-/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create or Update Contact - Mailercloud API\">\u003cmeta data-mint-head property=\"og:description\" content=\"API to manage your contacts, allowing you to either create new contacts or update existing ones based on your needs. When you send a request, the API first checks if the contact already exists in your database. If the contact is found, the API will automatically update the existing contact with the new information provided. This ensures that your contact list remains up-to-date without creating duplicates. Custom Property Data: The API allows you to add custom properties to each contact. You can do this in two ways: - By Property ID: Map the property ID to its corresponding value. - By Personalization Tag: Alternatively, you can use personalization tag for that property to specify values. Contact Quota Limit: Please note that you can continue adding or updating contacts until you reach your designated contact quota limit. If you reach your quota limit, further attempts to add new contacts will be rejected until you either remove some existing contacts or increase your quota.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Mailercloud API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://apidoc.mailercloud.com/api-reference/contacts/create-or-update-contact\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://mailercloud.mintlify.app/_mintlify/api/og/v2?division=Contacts\u0026amp;title=Create+or+Update+Contact\u0026amp;description=API+to+manage+your+contacts%2C+allowing+you+to+either+create+new+contacts+or+update+existing+ones+based+on+your+needs.%0A%0AWhen+you+send+a+request%2C+the+API+first+che\u0026amp;theme=936b6c78a22bbcb175702a1d\u0026amp;signature=c834038ec701451b7ef2d1ff4d4681a3353d1cedaf4d6637c061c6e975b0d495\">\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=\"Create or Update Contact - Mailercloud API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"API to manage your contacts, allowing you to either create new contacts or update existing ones based on your needs. When you send a request, the API first checks if the contact already exists in your database. If the contact is found, the API will automatically update the existing contact with the new information provided. This ensures that your contact list remains up-to-date without creating duplicates. Custom Property Data: The API allows you to add custom properties to each contact. You can do this in two ways: - By Property ID: Map the property ID to its corresponding value. - By Personalization Tag: Alternatively, you can use personalization tag for that property to specify values. Contact Quota Limit: Please note that you can continue adding or updating contacts until you reach your designated contact quota limit. If you reach your quota limit, further attempts to add new contacts will be rejected until you either remove some existing contacts or increase your quota.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://mailercloud.mintlify.app/_mintlify/api/og/v2?division=Contacts\u0026amp;title=Create+or+Update+Contact\u0026amp;description=API+to+manage+your+contacts%2C+allowing+you+to+either+create+new+contacts+or+update+existing+ones+based+on+your+needs.%0A%0AWhen+you+send+a+request%2C+the+API+first+che\u0026amp;theme=936b6c78a22bbcb175702a1d\u0026amp;signature=c834038ec701451b7ef2d1ff4d4681a3353d1cedaf4d6637c061c6e975b0d495\">\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/mailercloud/xGtgtsD6i5MXTEn-/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Mailercloud API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1B7CFF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://apidoc.mailercloud.com/api-reference/contacts/create-or-update-contact\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/contacts/create-or-update-contact.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://apidoc.mailercloud.com/#organization\",\"name\":\"Mailercloud API\",\"url\":\"https://apidoc.mailercloud.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/mailercloud/i1yaE0mG2KZobCyB/logo/light.svg?fit=max\u0026auto=format\u0026n=i1yaE0mG2KZobCyB\u0026q=85\u0026s=ee63a470243c3c865ec9248b577f2a20\"}},{\"@type\":\"WebSite\",\"@id\":\"https://apidoc.mailercloud.com#website\",\"name\":\"Mailercloud API\",\"url\":\"https://apidoc.mailercloud.com\",\"publisher\":{\"@id\":\"https://apidoc.mailercloud.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://apidoc.mailercloud.com/api-reference/contacts/create-or-update-contact#webpage\",\"url\":\"https://apidoc.mailercloud.com/api-reference/contacts/create-or-update-contact\",\"name\":\"Create or Update Contact\",\"description\":\"API to manage your contacts, allowing you to either create new contacts or update existing ones based on your needs. When you send a request, the API first checks if the contact already exists in your database. If the contact is found, the API will automatically update the existing contact with the new information provided. This ensures that your contact list remains up-to-date without creating duplicates. Custom Property Data: The API allows you to add custom properties to each contact. You can do this in two ways: - By Property ID: Map the property ID to its corresponding value. - By Personalization Tag: Alternatively, you can use personalization tag for that property to specify values. Contact Quota Limit: Please note that you can continue adding or updating contacts until you reach your designated contact quota limit. If you reach your quota limit, further attempts to add new contacts will be rejected until you either remove some existing contacts or increase your quota.\",\"dateModified\":\"2026-10-27T11:58:41.174Z\",\"isPartOf\":{\"@id\":\"https://apidoc.mailercloud.com#website\"},\"breadcrumb\":{\"@id\":\"https://apidoc.mailercloud.com/api-reference/contacts/create-or-update-contact#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://apidoc.mailercloud.com/api-reference/contacts/create-or-update-contact#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Contacts\",\"item\":\"https://apidoc.mailercloud.com/api-reference/contacts/create-contact\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create or Update Contact\",\"item\":\"https://apidoc.mailercloud.com/api-reference/contacts/create-or-update-contact\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://apidoc.mailercloud.com/api-reference/contacts/create-or-update-contact#apireference\",\"headline\":\"Create or Update Contact\",\"name\":\"Create or Update Contact\",\"description\":\"API to manage your contacts, allowing you to either create new contacts or update existing ones based on your needs. When you send a request, the API first checks if the contact already exists in your database. If the contact is found, the API will automatically update the existing contact with the new information provided. This ensures that your contact list remains up-to-date without creating duplicates. Custom Property Data: The API allows you to add custom properties to each contact. You can do this in two ways: - By Property ID: Map the property ID to its corresponding value. - By Personalization Tag: Alternatively, you can use personalization tag for that property to specify values. Contact Quota Limit: Please note that you can continue adding or updating contacts until you reach your designated contact quota limit. If you reach your quota limit, further attempts to add new contacts will be rejected until you either remove some existing contacts or increase your quota.\",\"url\":\"https://apidoc.mailercloud.com/api-reference/contacts/create-or-update-contact\",\"mainEntityOfPage\":{\"@id\":\"https://apidoc.mailercloud.com/api-reference/contacts/create-or-update-contact#webpage\"},\"dateModified\":\"2026-10-27T11:58:41.174Z\",\"publisher\":{\"@id\":\"https://apidoc.mailercloud.com/#organization\"},\"isPartOf\":{\"@id\":\"https://apidoc.mailercloud.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Mailercloud API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Mailercloud API","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"Marketing API","icon":"envelopes-bulk","groups":[{"group":"Campaigns","pages":[{"title":"Create Campaign","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /campaign","href":"/api-reference/campaigns/create-campaign"},{"title":"Create Campaign (v2)","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /campaign/save","href":"/api-reference/campaigns/create-campaign-v2"},{"title":"Campaign Domain Report","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /campaign/domain/report/{id}","href":"/api-reference/campaigns/campaign-domain-report"},{"title":"Campaign List","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /campaign/list","href":"/api-reference/campaigns/campaign-list"},{"title":"Testmail Group List","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /campaign/testmail-groups/list","href":"/api-reference/campaigns/testmail-group-list"},{"title":"Schedule Campaign","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /campaign/schedule/{id}","href":"/api-reference/campaigns/schedule-campaign"},{"title":"Send a Test Email","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /campaign/testmail/{id}","href":"/api-reference/campaigns/send-a-test-email"},{"title":"Get Single Campaign Details","deprecated":null,"version":null,"openapi":"/openapi-v1.json get /campaign/{id}","href":"/api-reference/campaigns/get-single-campaign-details"},{"title":"Update Campaign","deprecated":null,"version":null,"openapi":"/openapi-v1.json put /campaign/{id}","href":"/api-reference/campaigns/update-campaign"},{"title":"List Campaign Opens","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /campaign/{id}/opens","href":"/api-reference/campaigns/list-campaign-opens"},{"title":"List Campaign Clicks","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /campaign/{id}/clicks","href":"/api-reference/campaigns/list-campaign-clicks"},{"title":"List Campaign Unsubscribes","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /campaign/{id}/unsubs","href":"/api-reference/campaigns/list-campaign-unsubscribes"}]},{"group":"Custom Properties","pages":[{"title":"Create Property","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /contact/property","href":"/api-reference/custom-properties/create-property"},{"title":"Delete Property","deprecated":null,"version":null,"openapi":"/openapi-v1.json delete /contact/property/{id}","href":"/api-reference/custom-properties/delete-property"},{"title":"Update Property","deprecated":null,"version":null,"openapi":"/openapi-v1.json patch /contact/property/{id}","href":"/api-reference/custom-properties/update-property"},{"title":"List Property","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /contact/property/search","href":"/api-reference/custom-properties/list-property"}]},{"group":"Contacts","pages":[{"title":"Create Contact","description":"API for creating contact. For creating a contact, email and list id is required. If you try to create a contact that already exists, it gives an \"already exists\" message . You can add custom property data by mapping the property id : value. You can add contacts until your contact quota limit is reached. If you create a contact in a suppressed list and if this contact is also present in the active list, the contact will be removed from the active list to the suppressed list.","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /contacts","href":"/api-reference/contacts/create-contact"},{"title":"Create or Update Contact","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /contacts/upsert","href":"/api-reference/contacts/create-or-update-contact"},{"title":"Get Contact Details","description":"Get contact details based on their Contact ID or Email","deprecated":null,"version":null,"openapi":"/openapi-v1.json get /contacts/{id}","href":"/api-reference/contacts/get-contact-details"},{"title":"Update Contact","deprecated":null,"version":null,"openapi":"/openapi-v1.json put /contacts/{id}","href":"/api-reference/contacts/update-contact"},{"title":"Delete Contact","deprecated":null,"version":null,"openapi":"/openapi-v1.json delete /contacts/{id}","href":"/api-reference/contacts/delete-contact"},{"title":"Remove Contact Tag","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /contact/tag/remove","href":"/api-reference/contacts/remove-contact-tag"},{"title":"Get Contacts in a List","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /contact/search/{id}","href":"/api-reference/contacts/get-contacts-in-a-list"},{"title":"Create Batch Contact","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /contacts/batch","href":"/api-reference/contacts/create-batch-contact"}]},{"group":"Lists","pages":[{"title":"Create a New List","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /list","href":"/api-reference/lists/create-a-new-list"},{"title":"Get Single List Details","deprecated":null,"version":null,"openapi":"/openapi-v1.json get /list/{id}","href":"/api-reference/lists/get-single-list-details"},{"title":"Delete a List","deprecated":null,"version":null,"openapi":"/openapi-v1.json delete /list/{id}","href":"/api-reference/lists/delete-a-list"},{"title":"Update a List","deprecated":null,"version":null,"openapi":"/openapi-v1.json patch /list/{id}","href":"/api-reference/lists/update-a-list"},{"title":"List Lists","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /lists/search","href":"/api-reference/lists/list-lists"}]},{"group":"Segments","pages":[{"title":"List Segment","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /segment/search","href":"/api-reference/segments/list-segment"},{"title":"Create Segment","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /segments","href":"/api-reference/segments/create-segment"},{"title":"Update a Segment","deprecated":null,"version":null,"openapi":"/openapi-v1.json put /segments/{id}","href":"/api-reference/segments/update-a-segment"}]},{"group":"Senders","pages":[{"title":"List Senders","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /senders/search","href":"/api-reference/senders/list-senders"},{"title":"List Reply Emails","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /reply-emails/search","href":"/api-reference/senders/list-reply-emails"},{"title":"Add a Sender","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /senders","href":"/api-reference/senders/add-a-sender"},{"title":"Delete a Sender","deprecated":null,"version":null,"openapi":"/openapi-v1.json delete /senders/{id}","href":"/api-reference/senders/delete-a-sender"}]},{"group":"Account","pages":[{"title":"Client Details","deprecated":null,"version":null,"openapi":"/openapi-v1.json get /client/plan","href":"/api-reference/account/client-details"}]},{"group":"Webforms","pages":[{"title":"Webform List","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /webform/search","href":"/api-reference/webforms/webform-list"}]},{"group":"Tags","pages":[{"title":"Create Tag","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /tags","href":"/api-reference/tags/create-tag"},{"title":"List Tags","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /tags/search","href":"/api-reference/tags/list-tags"},{"title":"Update Tag","deprecated":null,"version":null,"openapi":"/openapi-v1.json put /tags/{id}","href":"/api-reference/tags/update-tag"},{"title":"Delete Tag","deprecated":null,"version":null,"openapi":"/openapi-v1.json delete /tags/{id}","href":"/api-reference/tags/delete-tag"}]},{"group":"Webhooks","pages":[{"title":"Create a New Webhook","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /webhooks","href":"/api-reference/webhooks/create-a-new-webhook"},{"title":"Update a Webhook","deprecated":null,"version":null,"openapi":"/openapi-v1.json put /webhooks/{id}","href":"/api-reference/webhooks/update-a-webhook"},{"title":"Delete a Webhook","deprecated":null,"version":null,"openapi":"/openapi-v1.json delete /webhooks/{id}","href":"/api-reference/webhooks/delete-a-webhook"},{"title":"Get Webhook Details","deprecated":null,"version":null,"openapi":"/openapi-v1.json get /webhooks/detail/{id}","href":"/api-reference/webhooks/get-webhook-details"},{"title":"Search and List Webhooks","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /webhooks/search","href":"/api-reference/webhooks/search-and-list-webhooks"},{"title":"Test Webhook","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /webhooks/test","href":"/api-reference/webhooks/test-webhook"},{"title":"Toggle Webhook Status","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /webhooks/toggle/{id}","href":"/api-reference/webhooks/toggle-webhook-status"}]},{"group":"Templates","pages":[{"title":"Create Template","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /templates/create","href":"/api-reference/templates/create-template"},{"title":"Update Template","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /templates/update","href":"/api-reference/templates/update-template"},{"title":"Get Template Details","deprecated":null,"version":null,"openapi":"/openapi-v1.json get /templates/details/{id}","href":"/api-reference/templates/get-template-details"},{"title":"List Templates","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /templates/list","href":"/api-reference/templates/list-templates"},{"title":"Get Template Categories","deprecated":null,"version":null,"openapi":"/openapi-v1.json get /templates/categories/list","href":"/api-reference/templates/get-template-categories"},{"title":"Get Template by Name or ID","deprecated":null,"version":null,"openapi":"/openapi-v1.json get /templates/details","href":"/api-reference/templates/get-template-by-name-or-id"}]},{"group":"Automations","pages":[{"title":"Get Automation Details","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /automations/{id}","href":"/api-reference/automations/get-automation-details"},{"title":"Create Automation","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /automations","href":"/api-reference/automations/create-automation"}]},{"group":"Domains","pages":[{"title":"Add a Domain","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /domains","href":"/api-reference/domains/add-a-domain"},{"title":"List Domains","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /domains/search","href":"/api-reference/domains/list-domains"},{"title":"Get a Domain","deprecated":null,"version":null,"openapi":"/openapi-v1.json get /domains/{id}","href":"/api-reference/domains/get-a-domain"},{"title":"Update a Domain","deprecated":null,"version":null,"openapi":"/openapi-v1.json put /domains/{id}","href":"/api-reference/domains/update-a-domain"},{"title":"Delete a Domain","deprecated":null,"version":null,"openapi":"/openapi-v1.json delete /domains/{id}","href":"/api-reference/domains/delete-a-domain"},{"title":"Verify a Domain","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /domains/{id}/verify","href":"/api-reference/domains/verify-a-domain"},{"title":"Share DNS Records","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /domains/{id}/share","href":"/api-reference/domains/share-dns-records"}]},{"group":"Inbox Tracker","pages":[{"title":"Inbox-tracking","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /inbox-tracking","href":"/api-reference/inbox-tracker/inbox-tracking"},{"title":"List placement providers","deprecated":null,"version":null,"openapi":"/openapi-v1.json get /v2/placement/providers","href":"/api-reference/inbox-tracker/list-placement-providers"},{"title":"Start a placement test","deprecated":null,"version":null,"openapi":"/openapi-v1.json post /v2/placement/tests","href":"/api-reference/inbox-tracker/start-a-placement-test"},{"title":"Get a placement test","deprecated":null,"version":null,"openapi":"/openapi-v1.json get /v2/placement/tests/{test_id}","href":"/api-reference/inbox-tracker/get-a-placement-test"},{"title":"Get a campaign's latest placement test","deprecated":null,"version":null,"openapi":"/openapi-v1.json get /v2/placement/campaigns/{campaign_id}/latest","href":"/api-reference/inbox-tracker/get-a-campaigns-latest-placement-test"},{"title":"List a campaign's placement tests","deprecated":null,"version":null,"openapi":"/openapi-v1.json get /v2/placement/campaigns/{campaign_id}/tests","href":"/api-reference/inbox-tracker/list-a-campaigns-placement-tests"},{"title":"Get placement test quota","deprecated":null,"version":null,"openapi":"/openapi-v1.json get /v2/placement/quota","href":"/api-reference/inbox-tracker/get-placement-test-quota"}]}]},{"tab":"Email API","icon":"paper-plane","pages":[{"title":"Email API","href":"/api-reference/email/send-email"}]},{"tab":"Email Verifier","icon":"circle-check","pages":[{"title":"Email Verifier","href":"/api-reference/verification/verify-emails"}]}]},"title":"Create or Update Contact - Mailercloud API","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DmVyH30O.js","utils-BHQqGGOd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CD-E4BIt.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp5Lq9Ds.js","snippetPresets-C4xAVCFP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CgXVLxUC.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BF8I5oUf.js","shallow-Byd0lWnC.js","getApiPlaygroundDisplay-BGOZG1OK.js","CodeSnippet-CpvQL0CY.js","CodeSnippets-B8wkBKXa.js","Page-CBCH2P7b.js","getPastedJson-Ry3scI3Y.js","icon-D7a9HcdD.js","MethodPill-CJ8pmHhz.js","DuplicateIcon-rh1HJF0t.js","createIcon-DvGznqYs.js","DynamicMarkdown-Cc6AuSHS.js","SectionHeading-B4A0S-ep.js","axios-vUo_bRtp.js","Markdown-Cc16CX65.js","clsx-Cs6nMGht.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-zbf22OZA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-C_fs-y5n.js"]}