Public CORS-enabled receptor for browser engagement events. Authenticates with a publishable ek_live_… tracking key sent as ?key= or the body key field - partner bearer keys are not accepted here. Accepts a batch (events: [...], max 20) or a single event spread at the top level. Events are accepted per-item: the 202 envelope reports accepted/duplicate/rejected per event.
Publishable engagement tracking key (ek_live_…), sent as ?key= or the body key field. Safe to embed in client code - abuse is bounded by the per-key origin allowlist and rate limit.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"4D OS Developer Docs","description":"Public developer documentation for the 4D OS partner platform","colors":{"primary":"#1865D1","light":"#80AAE6","dark":"#1353AE"},"logo":{"light":"https://mintcdn.com/4dos/zox555bidSKp__2J/logo/light.svg?fit=max\u0026auto=format\u0026n=zox555bidSKp__2J\u0026q=85\u0026s=f664509c181b052b368f5e6d97c443cb","dark":"https://mintcdn.com/4dos/zox555bidSKp__2J/logo/dark.svg?fit=max\u0026auto=format\u0026n=zox555bidSKp__2J\u0026q=85\u0026s=ae86b94c4df9a59c79ef008d269dd134"},"favicon":"https://mintcdn.com/4dos/zox555bidSKp__2J/favicon.svg?fit=max\u0026auto=format\u0026n=zox555bidSKp__2J\u0026q=85\u0026s=5e2a089a22e686c5e5c26a6abd8717e4","background":{"color":{"light":"#FFFFFF","dark":"#15161E"}},"footer":{"socials":{}},"fonts":{"heading":{"family":"Plus Jakarta Sans"},"body":{"family":"Inter"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"4dos","hasAudioNarration":false,"actualSubdomain":"4dos","customDomains":["docs.fourdos.dev"],"gitSource":{"type":"github","owner":"pellartech","repo":"fourdos-monorepo","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6af526ed66e069ab19a6e112","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"API Reference","count":53},{"language":"default","tag":"Endpoints","count":52},{"language":"default","tag":"Documentation","count":28},{"language":"default","tag":"Modules","count":17},{"language":"default","tag":"Concepts","count":10},{"language":"default","tag":"Walkthroughs","count":9},{"language":"default","tag":"Users","count":9},{"language":"default","tag":"External integrations","count":7},{"language":"default","tag":"Imports","count":7},{"language":"default","tag":"Content API","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"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":true},"customCss":[{"filePath":"style.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwhsk.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwhsk.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwhsk.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwhsk.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwhsk.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwhsk.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwhsk.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwhsk.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwhsk.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwhsk.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwhsk.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwhsk.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwhsk.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwhsk.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwhsk.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\nimg.nav-logo{height:2.5rem}code,pre,kbd,samp{font-family:\"JetBrains Mono\", ui-monospace, \"SF Mono\", Menlo, Consolas, monospace}"}],"page":{"pagePath":"api-reference/engagement/track-engagement-events-public-publishable-tracking-key","slug":"/api-reference/engagement/track-engagement-events-public-publishable-tracking-key","pageMetadata":{"title":"Track engagement events (public, publishable tracking key)","description":"Public CORS-enabled receptor for browser engagement events. Authenticates with a publishable `ek_live_…` tracking key sent as `?key=` or the body `key` field - partner bearer keys are not accepted here. Accepts a batch (`events: [...]`, max 20) or a single event spread at the top level. Events are accepted per-item: the 202 envelope reports `accepted`/`duplicate`/`rejected` per event.","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/track","href":"/api-reference/engagement/track-engagement-events-public-publishable-tracking-key","autogeneratedByOpenApi":true},"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: [\"Public CORS-enabled receptor for browser engagement events. Authenticates with a publishable \", _jsx(_components.code, {\n children: \"ek_live_…\"\n }), \" tracking key sent as \", _jsx(_components.code, {\n children: \"?key=\"\n }), \" or the body \", _jsx(_components.code, {\n children: \"key\"\n }), \" field - partner bearer keys are not accepted here. Accepts a batch (\", _jsx(_components.code, {\n children: \"events: [...]\"\n }), \", max 20) or a single event spread at the top level. Events are accepted per-item: the 202 envelope reports \", _jsx(_components.code, {\n children: \"accepted\"\n }), \"/\", _jsx(_components.code, {\n children: \"duplicate\"\n }), \"/\", _jsx(_components.code, {\n children: \"rejected\"\n }), \" per event.\"]\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":"Track engagement events (public, publishable tracking key)","description":"Public CORS-enabled receptor for browser engagement events. Authenticates with a publishable `ek_live_…` tracking key sent as `?key=` or the body `key` field - partner bearer keys are not accepted here. Accepts a batch (`events: [...]`, max 20) or a single event spread at the top level. Events are accepted per-item: the 202 envelope reports `accepted`/`duplicate`/`rejected` per event.","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/track","href":"/api-reference/engagement/track-engagement-events-public-publishable-tracking-key","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"trackEngagementEvents","tags":["Engagement"],"summary":"Track engagement events (public, publishable tracking key)","description":"Public CORS-enabled receptor for browser engagement events. Authenticates with a publishable `ek_live_…` tracking key sent as `?key=` or the body `key` field - partner bearer keys are not accepted here. Accepts a batch (`events: [...]`, max 20) or a single event spread at the top level. Events are accepted per-item: the 202 envelope reports `accepted`/`duplicate`/`rejected` per event.","security":["de82c268-aa85-4b72-9d63-1872d1834068"],"parameters":["4019a18b-ac3d-451c-bada-cd87965d6cc5"],"requestBody":"8cb872a5-f138-4d78-95d5-acc851098c8b","responses":{"202":"734d15c1-10ec-4f2c-9eb1-a019c21d1559","401":"49cec688-b1af-4916-8312-e9f3ea9e45ea","403":"6e1280fb-c922-4e42-870c-5c0c196d584c","422":"e92b7f48-d992-4c48-b047-48f8aa44aaa6","429":"c11ad015-8f2d-49b3-9aa7-973ecfcc8042"},"method":"post","type":"path","servers":["c176665f-fc8c-479a-b327-7b293c67589c"],"path":"/v1/track","baseUrlOptions":["https://api.develop.fourdos.dev"],"title":"Track engagement events (public, publishable tracking key)","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"4019a18b-ac3d-451c-bada-cd87965d6cc5":{"name":"key","in":"query","required":false,"description":"Publishable tracking key (alternative to the body `key` field)","schema":{"type":"string","isRequired":false,"description":"Publishable tracking key (alternative to the body `key` field)","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["events"],"properties":{"events":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"tags":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.events.items.[INDEX].tags.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.0.events.items.[INDEX].tags","typeLabel":"string[]"},"member_external_id":{"type":"string","minLength":1,"uniqueKey":"oneOf.0.events.items.[INDEX].member_external_id","typeLabel":"string"},"user_id":{"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":"oneOf.0.events.items.[INDEX].user_id","typeLabel":"string\u003cuuid>"},"action":{"type":"string","minLength":1,"maxLength":64,"uniqueKey":"oneOf.0.events.items.[INDEX].action","typeLabel":"string"},"event_id":{"type":"string","minLength":1,"maxLength":128,"uniqueKey":"oneOf.0.events.items.[INDEX].event_id","typeLabel":"string"},"occurred_at":{"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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","uniqueKey":"oneOf.0.events.items.[INDEX].occurred_at","typeLabel":"string\u003cdate-time>"},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.events.items.[INDEX].metadata.additionalProperties","typeLabel":"any"},"uniqueKey":"oneOf.0.events.items.[INDEX].metadata","typeLabel":"object"}},"required":["tags"],"uniqueKey":"oneOf.0.events.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.0.events","typeLabel":"object[]"},"key":{"type":"string","uniqueKey":"oneOf.0.key","typeLabel":"string"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","required":["tags"],"properties":{"tags":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","uniqueKey":"oneOf.1.tags.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.1.tags","typeLabel":"string[]"},"member_external_id":{"type":"string","minLength":1,"uniqueKey":"oneOf.1.member_external_id","typeLabel":"string"},"user_id":{"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":"oneOf.1.user_id","typeLabel":"string\u003cuuid>"},"action":{"type":"string","minLength":1,"maxLength":64,"uniqueKey":"oneOf.1.action","typeLabel":"string"},"event_id":{"type":"string","minLength":1,"maxLength":128,"uniqueKey":"oneOf.1.event_id","typeLabel":"string"},"occurred_at":{"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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","uniqueKey":"oneOf.1.occurred_at","typeLabel":"string\u003cdate-time>"},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.1.metadata.additionalProperties","typeLabel":"any"},"uniqueKey":"oneOf.1.metadata","typeLabel":"object"},"key":{"type":"string","uniqueKey":"oneOf.1.key","typeLabel":"string"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"events":[{"tags":["\u003cstring>"],"member_external_id":"\u003cstring>","user_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","action":"\u003cstring>","event_id":"\u003cstring>","occurred_at":"2023-11-07T05:31:56Z","metadata":{}}],"key":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"734d15c1-10ec-4f2c-9eb1-a019c21d1559":{"description":"Per-event outcomes","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"status":{"type":"string","enum":["accepted","duplicate","rejected"],"isRequired":true,"uniqueKey":"results.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"Stored engagement event id (status `accepted`)","uniqueKey":"results.items.[INDEX].id","typeLabel":"string"},"event_id":{"type":"string","description":"Client-supplied dedupe id, echoed back","uniqueKey":"results.items.[INDEX].event_id","typeLabel":"string"},"reason":{"type":"string","description":"Why the event was rejected (status `rejected`)","uniqueKey":"results.items.[INDEX].reason","typeLabel":"string"}},"required":["status"],"uniqueKey":"results.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"results","typeLabel":"object[]"}},"required":["results"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"results":[{"status":"accepted","id":"\u003cstring>","event_id":"\u003cstring>","reason":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"49cec688-b1af-4916-8312-e9f3ea9e45ea":{"description":"Missing, unknown, or revoked tracking key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"error.status","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","status","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","status":123,"message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"6e1280fb-c922-4e42-870c-5c0c196d584c":{"description":"The request Origin is not on the key's allowlist","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"error.status","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","status","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","status":123,"message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"e92b7f48-d992-4c48-b047-48f8aa44aaa6":{"description":"Validation error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"error.status","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","status","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","status":123,"message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"c11ad015-8f2d-49b3-9aa7-973ecfcc8042":{"description":"Track rate limit exceeded for this key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"error.status","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","status","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","status":123,"message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"de82c268-aa85-4b72-9d63-1872d1834068":{"trackingKey":{"type":"apiKey","in":"query","name":"key","description":"Publishable engagement tracking key (`ek_live_…`), sent as `?key=` or the body `key` field. Safe to embed in client code - abuse is bounded by the per-key origin allowlist and rate limit.","scopes":[],"schemeName":"trackingKey"}}},"servers":{"c176665f-fc8c-479a-b327-7b293c67589c":{"url":"https://api.develop.fourdos.dev"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"query","name":"key","description":"Publishable engagement tracking key (`ek_live_…`), sent as `?key=` or the body `key` field. Safe to embed in client code - abuse is bounded by the per-key origin allowlist and rate limit.","scopes":[],"schemeName":"trackingKey"},"schema":{"title":"key","type":"string","description":"Publishable engagement tracking key (`ek_live_…`), sent as `?key=` or the body `key` field. Safe to embed in client code - abuse is bounded by the per-key origin allowlist and rate limit.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"trackingKey","name":"key"}],"title":"trackingKey"}]},"originalFileLocation":"https://api.develop.fourdos.dev/openapi/partner.json"},"subdomain":"4dos","siteName":"4D OS Developer Docs","title":"Track engagement events (public, publishable tracking key) - 4D OS Developer Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T02:39:47.501Z","originalFileLocation":"api-reference/engagement/track-engagement-events-public-publishable-tracking-key.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=\"Public CORS-enabled receptor for browser engagement events. Authenticates with a publishable ek_live_… tracking key sent as ?key= or the body key field - partner bearer keys are not accepted here. Accepts a batch (events: [...], max 20) or a single event spread at the top level. Events are accepted per-item: the 202 envelope reports accepted/duplicate/rejected per event.\">\u003cmeta data-mint-head name=\"application-name\" content=\"4D OS Developer Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/4dos/ncF7JlfIXB4OFvnM/_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/4dos/ncF7JlfIXB4OFvnM/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/4dos/ncF7JlfIXB4OFvnM/_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/4dos/ncF7JlfIXB4OFvnM/_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/4dos/ncF7JlfIXB4OFvnM/_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/4dos/ncF7JlfIXB4OFvnM/_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/4dos/ncF7JlfIXB4OFvnM/_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/4dos/ncF7JlfIXB4OFvnM/_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/4dos/ncF7JlfIXB4OFvnM/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Track engagement events (public, publishable tracking key) - 4D OS Developer Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Public CORS-enabled receptor for browser engagement events. Authenticates with a publishable ek_live_… tracking key sent as ?key= or the body key field - partner bearer keys are not accepted here. Accepts a batch (events: [...], max 20) or a single event spread at the top level. Events are accepted per-item: the 202 envelope reports accepted/duplicate/rejected per event.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"4D OS Developer Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.fourdos.dev/api-reference/engagement/track-engagement-events-public-publishable-tracking-key\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://4dos.mintlify.site/_mintlify/api/og/v2?division=Engagement\u0026amp;title=Track+engagement+events+%28public%2C+publishable+tracking+key%29\u0026amp;description=Public+CORS-enabled+receptor+for+browser+engagement+events.+Authenticates+with+a+publishable+%60ek_live_%E2%80%A6%60+tracking+key+sent+as+%60%3Fkey%3D%60+or+the+body+%60key%60+field+-+\u0026amp;theme=b85e85529419e0832c327540\u0026amp;signature=f0bafdd26f65db0b24360ea54317ced0fe5380cba96a6139122ac83ec863d05c\">\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=\"Track engagement events (public, publishable tracking key) - 4D OS Developer Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Public CORS-enabled receptor for browser engagement events. Authenticates with a publishable ek_live_… tracking key sent as ?key= or the body key field - partner bearer keys are not accepted here. Accepts a batch (events: [...], max 20) or a single event spread at the top level. Events are accepted per-item: the 202 envelope reports accepted/duplicate/rejected per event.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://4dos.mintlify.site/_mintlify/api/og/v2?division=Engagement\u0026amp;title=Track+engagement+events+%28public%2C+publishable+tracking+key%29\u0026amp;description=Public+CORS-enabled+receptor+for+browser+engagement+events.+Authenticates+with+a+publishable+%60ek_live_%E2%80%A6%60+tracking+key+sent+as+%60%3Fkey%3D%60+or+the+body+%60key%60+field+-+\u0026amp;theme=b85e85529419e0832c327540\u0026amp;signature=f0bafdd26f65db0b24360ea54317ced0fe5380cba96a6139122ac83ec863d05c\">\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/4dos/ncF7JlfIXB4OFvnM/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"4D OS Developer Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1865D1\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.fourdos.dev/api-reference/engagement/track-engagement-events-public-publishable-tracking-key\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/engagement/track-engagement-events-public-publishable-tracking-key.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.fourdos.dev/#organization\",\"name\":\"4D OS Developer Docs\",\"url\":\"https://docs.fourdos.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/4dos/zox555bidSKp__2J/logo/light.svg?fit=max\u0026auto=format\u0026n=zox555bidSKp__2J\u0026q=85\u0026s=f664509c181b052b368f5e6d97c443cb\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.fourdos.dev#website\",\"name\":\"4D OS Developer Docs\",\"url\":\"https://docs.fourdos.dev\",\"publisher\":{\"@id\":\"https://docs.fourdos.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.fourdos.dev/api-reference/engagement/track-engagement-events-public-publishable-tracking-key#webpage\",\"url\":\"https://docs.fourdos.dev/api-reference/engagement/track-engagement-events-public-publishable-tracking-key\",\"name\":\"Track engagement events (public, publishable tracking key)\",\"description\":\"Public CORS-enabled receptor for browser engagement events. Authenticates with a publishable ek_live_… tracking key sent as ?key= or the body key field - partner bearer keys are not accepted here. Accepts a batch (events: [...], max 20) or a single event spread at the top level. Events are accepted per-item: the 202 envelope reports accepted/duplicate/rejected per event.\",\"dateModified\":\"2026-11-12T02:39:47.501Z\",\"isPartOf\":{\"@id\":\"https://docs.fourdos.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.fourdos.dev/api-reference/engagement/track-engagement-events-public-publishable-tracking-key#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.fourdos.dev/api-reference/engagement/track-engagement-events-public-publishable-tracking-key#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.fourdos.dev/api-reference/users/find-members-of-your-organization-by-name-or-email\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Track engagement events (public, publishable tracking key)\",\"item\":\"https://docs.fourdos.dev/api-reference/engagement/track-engagement-events-public-publishable-tracking-key\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.fourdos.dev/api-reference/engagement/track-engagement-events-public-publishable-tracking-key#apireference\",\"headline\":\"Track engagement events (public, publishable tracking key)\",\"name\":\"Track engagement events (public, publishable tracking key)\",\"description\":\"Public CORS-enabled receptor for browser engagement events. Authenticates with a publishable ek_live_… tracking key sent as ?key= or the body key field - partner bearer keys are not accepted here. Accepts a batch (events: [...], max 20) or a single event spread at the top level. Events are accepted per-item: the 202 envelope reports accepted/duplicate/rejected per event.\",\"url\":\"https://docs.fourdos.dev/api-reference/engagement/track-engagement-events-public-publishable-tracking-key\",\"mainEntityOfPage\":{\"@id\":\"https://docs.fourdos.dev/api-reference/engagement/track-engagement-events-public-publishable-tracking-key#webpage\"},\"dateModified\":\"2026-11-12T02:39:47.501Z\",\"publisher\":{\"@id\":\"https://docs.fourdos.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.fourdos.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"4D OS Developer Docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"4D OS Developer Docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/engagement/track-engagement-events-public-publishable-tracking-key.md","siteName":"4D OS Developer Docs","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API reference overview","href":"/api-reference/overview"}]},{"group":"Endpoints","pages":[{"group":"Users","pages":[{"title":"Find members of your organization by name or email","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/users","href":"/api-reference/users/find-members-of-your-organization-by-name-or-email"},{"title":"Create or attach a user (idempotent via Idempotency-Key)","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/users","href":"/api-reference/users/create-or-attach-a-user-idempotent-via-idempotency-key"},{"title":"Fetch a user within the caller's organization","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/users/{userId}","href":"/api-reference/users/fetch-a-user-within-the-callers-organization"},{"title":"Update a user's profile fields","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json patch /v1/users/{userId}","href":"/api-reference/users/update-a-users-profile-fields"},{"title":"Lock the caller-org membership for a user","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/users/{userId}/lock","href":"/api-reference/users/lock-the-caller-org-membership-for-a-user"},{"title":"Unlock the caller-org membership for a user","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/users/{userId}/unlock","href":"/api-reference/users/unlock-the-caller-org-membership-for-a-user"},{"title":"List one member's engagement events, newest first","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/users/{userId}/engagement/events","href":"/api-reference/users/list-one-members-engagement-events-newest-first"},{"title":"List one member's XP history, newest first","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/users/{userId}/xp-history","href":"/api-reference/users/list-one-members-xp-history-newest-first"},{"title":"Remove (soft-delete) the caller-org membership for a user","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json delete /v1/users/{userId}/membership","href":"/api-reference/users/remove-soft-delete-the-caller-org-membership-for-a-user"}]},{"group":"Imports","pages":[{"title":"Create a bulk import job (starts in `staging`)","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/imports","href":"/api-reference/imports/create-a-bulk-import-job-starts-in-`staging`"},{"title":"Page a job's per-row outcomes, optionally filtered by state","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/imports/{id}/rows","href":"/api-reference/imports/page-a-jobs-per-row-outcomes-optionally-filtered-by-state"},{"title":"Stage a chunk of rows onto a job (≤5k rows/request, job must be `staging`)","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/imports/{id}/rows","href":"/api-reference/imports/stage-a-chunk-of-rows-onto-a-job-≤5k-rowsrequest-job-must-be-`staging`"},{"title":"Seal staging and start async dry-run validation","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/imports/{id}/validate","href":"/api-reference/imports/seal-staging-and-start-async-dry-run-validation"},{"title":"Commit a validated job, or start validation with `dry_run: false` on a `staging` job","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/imports/{id}/commit","href":"/api-reference/imports/commit-a-validated-job-or-start-validation-with-`dry_run:-false`-on-a-`staging`-job"},{"title":"Fetch an import job's status and counts","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/imports/{id}","href":"/api-reference/imports/fetch-an-import-jobs-status-and-counts"},{"title":"Download the invalid+failed rows as CSV (also the console's download URL, cookie auth)","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/imports/{id}/error-report","href":"/api-reference/imports/download-the-invalid+failed-rows-as-csv-also-the-consoles-download-url-cookie-auth"}]},{"group":"API keys","pages":[{"title":"List organization API keys","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/api-keys","href":"/api-reference/api-keys/list-organization-api-keys"},{"title":"Issue an organization API key","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/api-keys","href":"/api-reference/api-keys/issue-an-organization-api-key"},{"title":"Revoke an organization API key","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json delete /v1/api-keys/{keyId}","href":"/api-reference/api-keys/revoke-an-organization-api-key"}]},{"group":"Modules","pages":[{"title":"List modules visible to the caller","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/modules","href":"/api-reference/modules/list-modules-visible-to-the-caller"},{"title":"Create a private module draft","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/modules","href":"/api-reference/modules/create-a-private-module-draft"},{"title":"Get a visible module","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/modules/{moduleId}","href":"/api-reference/modules/get-a-visible-module"},{"title":"List versions for a visible module","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/modules/{moduleId}/versions","href":"/api-reference/modules/list-versions-for-a-visible-module"},{"title":"Create a private module version draft","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/modules/{moduleId}/versions","href":"/api-reference/modules/create-a-private-module-version-draft"},{"title":"Publish a private module version","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/modules/{moduleId}/versions/{versionId}/publish","href":"/api-reference/modules/publish-a-private-module-version"},{"title":"Install a published module","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/modules/{moduleId}/install","href":"/api-reference/modules/install-a-published-module"},{"title":"List the organization's module installations","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/installations","href":"/api-reference/modules/list-the-organizations-module-installations"},{"title":"Get an organization module installation","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/installations/{installationId}","href":"/api-reference/modules/get-an-organization-module-installation"},{"title":"Disable a module installation","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json delete /v1/installations/{installationId}","href":"/api-reference/modules/disable-a-module-installation"},{"title":"Update an installation","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json patch /v1/installations/{installationId}","href":"/api-reference/modules/update-an-installation"},{"title":"List module credentials","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/installations/{installationId}/credentials","href":"/api-reference/modules/list-module-credentials"},{"title":"Issue a module ingest credential","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/installations/{installationId}/credentials","href":"/api-reference/modules/issue-a-module-ingest-credential"},{"title":"Rotate module ingest credentials","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/installations/{installationId}/credentials/rotate","href":"/api-reference/modules/rotate-module-ingest-credentials"},{"title":"Revoke a module ingest credential","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json delete /v1/installations/{installationId}/credentials/{credentialId}","href":"/api-reference/modules/revoke-a-module-ingest-credential"},{"title":"Create a module webhook endpoint","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/installations/{installationId}/webhook-endpoints","href":"/api-reference/modules/create-a-module-webhook-endpoint"},{"title":"Update a module webhook endpoint","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json patch /v1/installations/{installationId}/webhook-endpoints/{endpointId}","href":"/api-reference/modules/update-a-module-webhook-endpoint"}]},{"group":"External integrations","pages":[{"title":"Get integration availability","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/external-data/status","href":"/api-reference/external-integrations/get-integration-availability"},{"title":"List available integrations","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/external-data/catalog","href":"/api-reference/external-integrations/list-available-integrations"},{"title":"List tenant integration connections","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/external-data/connections","href":"/api-reference/external-integrations/list-tenant-integration-connections"},{"title":"Create a hosted Composio connection link","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/external-data/connect","href":"/api-reference/external-integrations/create-a-hosted-composio-connection-link"},{"title":"Reconcile accounts using saved server ownership","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/external-data/refresh","href":"/api-reference/external-integrations/reconcile-accounts-using-saved-server-ownership"},{"title":"Snapshot the connected YouTube channel's figures now","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/external-data/youtube/sync","href":"/api-reference/external-integrations/snapshot-the-connected-youtube-channels-figures-now"},{"title":"Disconnect a tenant integration","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json delete /v1/external-data/connections/{id}","href":"/api-reference/external-integrations/disconnect-a-tenant-integration"}]},{"group":"Ingest","pages":[{"title":"Send a signed module event","description":"Accepts a native event from an installed module. Authenticate with the installation's `mk_live_` module credential, sign the exact raw JSON body with HMAC-SHA256 over `${timestamp}.${raw_body}`, and send the matching event id as `Idempotency-Key`. The installed manifest declares the native type and maps it to a platform canonical type. Organization `org_` keys are not accepted.","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/ingest","href":"/api-reference/ingest/send-a-signed-module-event"}]},{"group":"Engagement","pages":[{"title":"Track engagement events (public, publishable tracking key)","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/track","href":"/api-reference/engagement/track-engagement-events-public-publishable-tracking-key"},{"title":"List the organization's tracking keys","description":null,"deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/engagement/keys","href":"/api-reference/engagement/list-the-organizations-tracking-keys"},{"title":"Issue a publishable tracking key","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/engagement/keys","href":"/api-reference/engagement/issue-a-publishable-tracking-key"},{"title":"Revoke a tracking key (idempotent)","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json delete /v1/engagement/keys/{id}","href":"/api-reference/engagement/revoke-a-tracking-key-idempotent"}]},{"group":"Revenue","pages":[{"title":"Record sales and refunds","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/revenue","href":"/api-reference/revenue/record-sales-and-refunds"}]},{"group":"Ad entries","pages":[{"title":"Enter a fan in a sponsor's draw on an ad campaign","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/ads/campaigns/{campaign_id}/entries","href":"/api-reference/ad-entries/enter-a-fan-in-a-sponsors-draw-on-an-ad-campaign"}]},{"group":"Ad delivery","pages":[{"title":"Mint a signed ad identity for a signed-in fan","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/ads/identity-tokens","href":"/api-reference/ad-delivery/mint-a-signed-ad-identity-for-a-signed-in-fan"},{"title":"Fill one ad slot","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/ads/serve","href":"/api-reference/ad-delivery/fill-one-ad-slot"}]}]}]}]},"basePath":"","title":"Track engagement events (public, publishable tracking key) - 4D OS Developer Docs","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CybtLBIt.js","utils-BMLj2fvV.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B6In562Y.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dr8Mfhp9.js","snippetPresets-2rmQvMVl.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-WMqJYdZj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CJ-MlPHu.js","shallow-dY3TMRCk.js","getApiPlaygroundDisplay-v-1B2bKm.js","CodeSnippet-BDhiTB7U.js","CodeSnippets-D9hnzQcS.js","Page-C4GwDT3_.js","getPastedJson-Th2V45jI.js","icon-BQXch1W9.js","MethodPill-BCqUneP3.js","DuplicateIcon-Q_-bhurZ.js","createIcon-DUjLHRqp.js","DynamicMarkdown-B-f2cqXQ.js","SectionHeading-Da5NsV4v.js","axios-vUo_bRtp.js","Markdown-D13FWkIM.js","clsx-D3Isdib3.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-C-XZBk9h.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink--qIqmmVG.js"]}