Accepts a customer event (e.g. βpurchaseβ, βnew_account_createdβ) and stores it for downstream processing. The event is associated with a contact (resolved via aiContactId or phone) on a specific channel (resolved via channelId or channelPhone); a contact is created when none matches. The event is persisted synchronously and the response carries its id; enrichment and automations run in the background. Rate limited to 1000 requests per hour per client.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Welcome π","colors":{"primary":"#2563EB","light":"#93C5FD","dark":"#1E3A8A"},"logo":"https://mintcdn.com/vambe-f69d5806/_YFOlf0qgMJ8Che1/images/fb1a23e-small-Vambe_Logo_Panda-White4x.png?fit=max\u0026auto=format\u0026n=_YFOlf0qgMJ8Che1\u0026q=85\u0026s=c84b8be7abfa14dd8e1674a247b9cc0b","favicon":"https://mintcdn.com/vambe-f69d5806/_YFOlf0qgMJ8Che1/df9628f-small-2NorthAm_Ops.png?fit=max\u0026auto=format\u0026n=_YFOlf0qgMJ8Che1\u0026q=85\u0026s=5d02cd83d033a951fa6d8bce17f58e33","api":{"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["curl","javascript","python"]}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"vambe-f69d5806","hasAudioNarration":false,"actualSubdomain":"vambe-f69d5806","customDomains":["docs.vambe.me"],"gitSource":{"type":"github","owner":"vambeai","repo":"vambeai-backend","deployBranch":"main","contentDirectory":"public/documentation","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af32ff90d36c20f767ffb9c","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"Messaging API","count":44},{"language":"default","tag":"CRM \u0026 Contacts","count":24},{"language":"default","tag":"Custom Ecommerce Apps","count":22},{"language":"default","tag":"Contact Management","count":16},{"language":"default","tag":"Webhooks","count":16},{"language":"default","tag":"Guides","count":12},{"language":"default","tag":"App management API","count":11},{"language":"default","tag":"Instagram Comment Automations","count":9},{"language":"default","tag":"Appointments","count":8},{"language":"default","tag":"Booking API","count":8}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":"editor-metadata","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":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"img.sidebar-group-icon[src$=\"/icons/notepad-text-dashed.svg\"]{background-color:currentColor!important;object-position:-9999px 0;-webkit-mask:url(\"/images/icons/notepad-text-dashed.svg\") center / contain no-repeat;mask:url(\"/images/icons/notepad-text-dashed.svg\") center / contain no-repeat}"}],"page":{"pagePath":"reference/events-api/ingest-a-customer-event","slug":"/reference/events-api/ingest-a-customer-event","pageMetadata":{"openapi":"post /api/v1/events","title":"Ingest a custom event","description":"Accepts a customer event (e.g. \"purchase\", \"new_account_created\") and stores it for downstream processing. The event is associated with a contact (resolved via `aiContactId` or `phone`) on a specific channel (resolved via `channelId` or `channelPhone`); a contact is created when none matches. The event is persisted synchronously and the response carries its id; enrichment and automations run in the background. Rate limited to 1000 requests per hour per client.","href":"/reference/events-api/ingest-a-customer-event"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Accepts a customer event (e.g. βpurchaseβ, βnew_account_createdβ) and stores it for downstream processing. The event is associated with a contact (resolved via \", _jsx(_components.code, {\n children: \"aiContactId\"\n }), \" or \", _jsx(_components.code, {\n children: \"phone\"\n }), \") on a specific channel (resolved via \", _jsx(_components.code, {\n children: \"channelId\"\n }), \" or \", _jsx(_components.code, {\n children: \"channelPhone\"\n }), \"); a contact is created when none matches. The event is persisted synchronously and the response carries its id; enrichment and automations run in the background. Rate limited to 1000 requests per hour per client.\"]\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":{"openapi":"post /api/v1/events","title":"Ingest a custom event","description":"Accepts a customer event (e.g. \"purchase\", \"new_account_created\") and stores it for downstream processing. The event is associated with a contact (resolved via `aiContactId` or `phone`) on a specific channel (resolved via `channelId` or `channelPhone`); a contact is created when none matches. The event is persisted synchronously and the response carries its id; enrichment and automations run in the background. Rate limited to 1000 requests per hour per client.","href":"/reference/events-api/ingest-a-customer-event"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"EventsApiController_ingest","summary":"Ingest a custom event","description":"Accepts a customer event (e.g. \"purchase\", \"new_account_created\") and stores it for downstream processing. The event is associated with a contact (resolved via `aiContactId` or `phone`) on a specific channel (resolved via `channelId` or `channelPhone`); a contact is created when none matches. The event is persisted synchronously and the response carries its id; enrichment and automations run in the background. Rate limited to 1000 requests per hour per client.","parameters":["04165b63-cbb1-429b-931c-2635dbc42deb"],"requestBody":"33d1f246-8867-41af-8593-598758d2e3b8","responses":{"202":"0c5479be-8fd3-4d67-af85-cfca509c9d0a","400":"605e0f97-df4d-482d-84c7-0b1d7d47b059","401":"630eae63-22ed-4a31-a840-581addeb0268","429":"13d9ccf6-3b7c-4aca-b412-673cc6a9b1f8"},"tags":["Events API"],"method":"post","type":"path","servers":["2de397b9-b13b-4675-a9c4-da7acb7990b4"],"security":[],"path":"/api/v1/events","baseUrlOptions":["https://api.vambe.me"],"title":"Ingest a custom event","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"04165b63-cbb1-429b-931c-2635dbc42deb":{"name":"x-api-key","in":"header","description":"API key used to authorize the request","required":true,"schema":{"type":"string","isRequired":true,"description":"API key used to authorize the request","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"description":"Event payload. `contact` requires at least one of `aiContactId` or `phone`; `channel` requires at least one of `channelId` or `channelPhone`.","content":{"application/json":{"schema":{"type":"object","properties":{"event":{"type":"string","minLength":1,"maxLength":100,"isRequired":true,"uniqueKey":"event","typeLabel":"string"},"contact":{"type":"object","properties":{"aiContactId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","uniqueKey":"contact.aiContactId","typeLabel":"string\u003cuuid>"},"phone":{"type":"string","minLength":5,"maxLength":32,"uniqueKey":"contact.phone","typeLabel":"string"},"name":{"type":"string","minLength":1,"maxLength":200,"uniqueKey":"contact.name","typeLabel":"string"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","uniqueKey":"contact.email","typeLabel":"string\u003cemail>"}},"isRequired":true,"uniqueKey":"contact","typeLabel":"object"},"channel":{"type":"object","properties":{"channelId":{"type":"string","minLength":1,"maxLength":64,"uniqueKey":"channel.channelId","typeLabel":"string"},"channelPhone":{"type":"string","minLength":5,"maxLength":32,"uniqueKey":"channel.channelPhone","typeLabel":"string"}},"isRequired":true,"uniqueKey":"channel","typeLabel":"object"},"occurredAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","uniqueKey":"occurredAt","typeLabel":"string\u003cdate-time>"},"properties":{"default":{},"type":"object","additionalProperties":{"oneOf":[{"type":"string","maxLength":1024,"uniqueKey":"properties.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"properties.additionalProperties.oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"properties.additionalProperties.oneOf.2","typeLabel":"boolean"},{"type":"null","uniqueKey":"properties.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"properties.additionalProperties","typeLabel":"string | number | boolean | null"},"uniqueKey":"properties","typeLabel":"object"}},"required":["event","contact","channel"],"uniqueKey":"","typeLabel":"object"},"examples":{"purchase":{"title":"purchase","value":{"event":"purchase","occurredAt":"2026-04-21T14:30:00.000Z","properties":{"orderId":"ORD-123","total":49990,"currency":"CLP"},"contact":{"phone":"+56911112222","name":"Jane Doe","email":"jane@example.com"},"channel":{"channelPhone":"+56999999999"}}},"byIds":{"title":"byIds","value":{"event":"cart_abandoned","properties":{"cartId":"CART-42"},"contact":{"aiContactId":"9d1c0a7e-3e9f-4a2c-8f1b-1f2b1a3c4d5e"},"channel":{"channelId":"42"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"0c5479be-8fd3-4d67-af85-cfca509c9d0a":{"description":"Event stored. Returns the persisted event id.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"df980fc8-b6db-4820-bf22-2969482d106d","uniqueKey":"id","typeLabel":"string\u003cuuid>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"df980fc8-b6db-4820-bf22-2969482d106d"}}},"exampleType":"generated"}},"exampleType":"generated"},"605e0f97-df4d-482d-84c7-0b1d7d47b059":{"description":"Bad request β payload failed validation, `occurredAt` is in the future, properties exceed limits, the event key is reserved for internal use, the provided `channelId` / `channelPhone` did not match any channel for this client, or the contact could not be resolved.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"630eae63-22ed-4a31-a840-581addeb0268":{"description":"Unauthorized β invalid or missing API key.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"13d9ccf6-3b7c-4aca-b412-673cc6a9b1f8":{"description":"Too many requests β client rate limit exceeded.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{},"servers":{"2de397b9-b13b-4675-a9c4-da7acb7990b4":{"url":"https://api.vambe.me","description":"Production Server"}}},"originalFileLocation":"openapi.json"},"subdomain":"vambe-f69d5806","siteName":"Welcome π","title":"Ingest a custom event - Welcome π","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-16T13:54:00.568Z","originalFileLocation":"reference/events-api/ingest-a-customer-event.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=\"Accepts a customer event (e.g. \u0026quot;purchase\u0026quot;, \u0026quot;new_account_created\u0026quot;) and stores it for downstream processing. The event is associated with a contact (resolved via aiContactId or phone) on a specific channel (resolved via channelId or channelPhone); a contact is created when none matches. The event is persisted synchronously and the response carries its id; enrichment and automations run in the background. Rate limited to 1000 requests per hour per client.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Welcome π\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/vambe-f69d5806/FNR-14vKPkm5-pk-/_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/vambe-f69d5806/FNR-14vKPkm5-pk-/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/vambe-f69d5806/FNR-14vKPkm5-pk-/_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/vambe-f69d5806/FNR-14vKPkm5-pk-/_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/vambe-f69d5806/FNR-14vKPkm5-pk-/_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/vambe-f69d5806/FNR-14vKPkm5-pk-/_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/vambe-f69d5806/FNR-14vKPkm5-pk-/_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/vambe-f69d5806/FNR-14vKPkm5-pk-/_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/vambe-f69d5806/FNR-14vKPkm5-pk-/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Ingest a custom event - Welcome π\">\u003cmeta data-mint-head property=\"og:description\" content=\"Accepts a customer event (e.g. \u0026quot;purchase\u0026quot;, \u0026quot;new_account_created\u0026quot;) and stores it for downstream processing. The event is associated with a contact (resolved via aiContactId or phone) on a specific channel (resolved via channelId or channelPhone); a contact is created when none matches. The event is persisted synchronously and the response carries its id; enrichment and automations run in the background. Rate limited to 1000 requests per hour per client.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Welcome π\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.vambe.me/reference/events-api/ingest-a-customer-event\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://vambe-f69d5806.mintlify.site/_mintlify/api/og/v2?division=Events\u0026amp;title=Ingest+a+custom+event\u0026amp;description=Accepts+a+customer+event+%28e.g.+%22purchase%22%2C+%22new_account_created%22%29+and+stores+it+for+downstream+processing.+The+event+is+associated+with+a+contact+%28resolved+via+\u0026amp;theme=9b7d6b35278e9470f56611a6\u0026amp;signature=4eae26358659d0bdeeb1c149ea4a66d086b7a91853b27412c3af5ddd3c2d2748\">\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=\"Ingest a custom event - Welcome π\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Accepts a customer event (e.g. \u0026quot;purchase\u0026quot;, \u0026quot;new_account_created\u0026quot;) and stores it for downstream processing. The event is associated with a contact (resolved via aiContactId or phone) on a specific channel (resolved via channelId or channelPhone); a contact is created when none matches. The event is persisted synchronously and the response carries its id; enrichment and automations run in the background. Rate limited to 1000 requests per hour per client.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://vambe-f69d5806.mintlify.site/_mintlify/api/og/v2?division=Events\u0026amp;title=Ingest+a+custom+event\u0026amp;description=Accepts+a+customer+event+%28e.g.+%22purchase%22%2C+%22new_account_created%22%29+and+stores+it+for+downstream+processing.+The+event+is+associated+with+a+contact+%28resolved+via+\u0026amp;theme=9b7d6b35278e9470f56611a6\u0026amp;signature=4eae26358659d0bdeeb1c149ea4a66d086b7a91853b27412c3af5ddd3c2d2748\">\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/vambe-f69d5806/FNR-14vKPkm5-pk-/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Welcome π\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2563EB\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.vambe.me/reference/events-api/ingest-a-customer-event\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/reference/events-api/ingest-a-customer-event.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.vambe.me/#organization\",\"name\":\"Welcome π\",\"url\":\"https://docs.vambe.me\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/vambe-f69d5806/_YFOlf0qgMJ8Che1/images/fb1a23e-small-Vambe_Logo_Panda-White4x.png?fit=max\u0026auto=format\u0026n=_YFOlf0qgMJ8Che1\u0026q=85\u0026s=c84b8be7abfa14dd8e1674a247b9cc0b\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.vambe.me#website\",\"name\":\"Welcome π\",\"url\":\"https://docs.vambe.me\",\"publisher\":{\"@id\":\"https://docs.vambe.me/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.vambe.me/reference/events-api/ingest-a-customer-event#webpage\",\"url\":\"https://docs.vambe.me/reference/events-api/ingest-a-customer-event\",\"name\":\"Ingest a custom event\",\"description\":\"Accepts a customer event (e.g. \\\"purchase\\\", \\\"new_account_created\\\") and stores it for downstream processing. The event is associated with a contact (resolved via aiContactId or phone) on a specific channel (resolved via channelId or channelPhone); a contact is created when none matches. The event is persisted synchronously and the response carries its id; enrichment and automations run in the background. Rate limited to 1000 requests per hour per client.\",\"dateModified\":\"2026-07-16T13:54:00.568Z\",\"isPartOf\":{\"@id\":\"https://docs.vambe.me#website\"},\"breadcrumb\":{\"@id\":\"https://docs.vambe.me/reference/events-api/ingest-a-customer-event#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.vambe.me/reference/events-api/ingest-a-customer-event#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Welcome π\",\"item\":\"https://docs.vambe.me\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ingest a custom event\",\"item\":\"https://docs.vambe.me/reference/events-api/ingest-a-customer-event\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.vambe.me/reference/events-api/ingest-a-customer-event#apireference\",\"headline\":\"Ingest a custom event\",\"name\":\"Ingest a custom event\",\"description\":\"Accepts a customer event (e.g. \\\"purchase\\\", \\\"new_account_created\\\") and stores it for downstream processing. The event is associated with a contact (resolved via aiContactId or phone) on a specific channel (resolved via channelId or channelPhone); a contact is created when none matches. The event is persisted synchronously and the response carries its id; enrichment and automations run in the background. Rate limited to 1000 requests per hour per client.\",\"url\":\"https://docs.vambe.me/reference/events-api/ingest-a-customer-event\",\"mainEntityOfPage\":{\"@id\":\"https://docs.vambe.me/reference/events-api/ingest-a-customer-event#webpage\"},\"dateModified\":\"2026-07-16T13:54:00.568Z\",\"publisher\":{\"@id\":\"https://docs.vambe.me/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.vambe.me#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Welcome π\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Welcome π","nav":{"global":null,"tabs":[{"tab":"Guides","icon":"book-open","pages":[{"title":"Guides","href":"/docs/quickstart"}]},{"tab":"Messaging API","icon":"messages","pages":[{"title":"Messaging API","href":"/reference/campaigns/create-campaign"}]},{"tab":"CRM \u0026 Contacts","icon":"users","pages":[{"title":"CRM \u0026 Contacts","href":"/reference/contact/get-contacts-by-days"}]},{"tab":"Analytics \u0026 Reports","icon":"chart-line","pages":[{"title":"Analytics \u0026 Reports","href":"/reference/utm-events/create-custom-utm-event"}]},{"tab":"Knowledge Base","icon":"book-open","pages":[{"title":"Knowledge Base","href":"/reference/knowledge-base/get-folders"}]},{"tab":"Ecommerce","icon":"box","pages":[{"title":"Ecommerce","href":"/reference/product/get-product-blocks"}]},{"tab":"Appointments","icon":"calendar","pages":[{"title":"Appointments","href":"/reference/booking-url/get-api-public-booking-url-urlname"}]},{"tab":"Events","icon":"bolt","groups":[{"group":"Events","icon":"bolt","expanded":false,"pages":[{"openapi":"post /api/v1/events","title":"Ingest a custom event","href":"/reference/events-api/ingest-a-customer-event"}]}]},{"tab":"Webhooks","icon":"webhook","pages":[{"title":"Webhooks","href":"/reference/webhooks/get-all-webhooks-for-the-authenticated-user"}]},{"tab":"Tasks","icon":"list-check","pages":[{"title":"Tasks","href":"/reference/tasks/get-tasks"}]},{"tab":"Custom Ecommerce Apps","icon":"puzzle-piece","pages":[{"title":"Custom Ecommerce Apps","href":"/docs/app-platform/introduction"}]}]},"basePath":"","title":"Ingest a custom event - Welcome π","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C-hEh3I2.js","utils-CnF4QiUD.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C7PVNbel.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-8ytevL2A.js","snippetPresets-BT1alx3v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BLXC0i_W.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CyLIGI9_.js","shallow-DC0lGVIW.js","getApiPlaygroundDisplay-CgDQ85tN.js","CodeSnippet-6-I-Gpv9.js","CodeSnippets-BAk1kDdu.js","Page-C945cI-W.js","getPastedJson-B276RuWN.js","icon-BqP8etTm.js","MethodPill-DM6sbxG1.js","DuplicateIcon-PyJglOaE.js","createIcon-CMeOMAc_.js","DynamicMarkdown-BoyYAA8K.js","SectionHeading-DAYv3gvZ.js","axios-vUo_bRtp.js","Markdown-BhTTmazV.js","clsx-CR-RHrVC.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CBUH0-zX.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BmARFYNC.js"]}