Submit a server-side conversion to Plainrouter with a Signals workspace secret. A new event returns 202; a retry of the same event ID returns 200 with duplicate: true. Neither receipt alone confirms Meta delivery.
Read the actual paid order and its recorded advertising consent. The example assumes all three grants; setting these fields does not obtain consent.
Choose one purchase sender. Do not also send the same checkout through a browser purchase or Stripe settlement flow.
This endpoint uses Plainrouter’s request shape, not Meta’s Graph API data envelope. For synthetic payload checks without production writes, use the sandbox.
Replace the order ID, source URL, amount and currency with the actual purchase. This immediate-event example omits event_time, so Plainrouter uses receipt time. For queued events, supply the original Unix timestamp or ISO-8601 payment time from your order record and preserve it on retries. Do not replace an old payment time with the current time.
Use a stable, non-personal event_id for the logical purchase. You can use Idempotency-Key instead; if you supply both, they must match. Reuse the original payload after an uncertain timeout, subject to continued consent eligibility. A duplicate receipt does not update the accepted event or replay a failed Meta delivery.
New-event acknowledgements include warnings. If you supply identity data without a valid consent capture time, read the consent warning guidance before treating the event as linked. Duplicate acknowledgements retain the response shape shown above.
Follow the returned Location header or retrieve the event and delivery trace. A delivery with status: "accepted" confirms Meta acceptance. Queued or retrying delivery remains pending, and an empty delivery list is not acceptance. See delivery statuses for failed and skipped outcomes. Acceptance does not establish ad attribution or better performance.
Failure
Next step
401
Stop retries and check the Signals secret and workspace.
422
Read field errors; check consent, decimal-string values, original event time and matching idempotency keys.
Timeout without a receipt
The write may have succeeded. Retry the original ID and payload rather than creating a new ID.
Optional idempotency key. When event_id is omitted, Plainrouter uses this value as event_id. If both are supplied, they must match.
Body
application/json
Authenticated callers using the Server secret may supply client_ip_address and client_user_agent in user_data; browser traffic using the Publishable key takes those fields only from the configured edge.
Legal basis for processing. Legitimate-interest server revenue retains identity only with admitted global visitor or buyer-country evidence and no opt-out.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Plainrouter","description":"Configure privacy-safe first-party Signals, connect account-bound AI agents, and govern Meta advertising changes with explicit policy, approval, and verification.","colors":{"primary":"#171717","light":"#FAFAFA","dark":"#171717"},"logo":{"light":"https://mintcdn.com/plainrouter/V-rFDtirUQ2cprs_/logo/light.svg?fit=max\u0026auto=format\u0026n=V-rFDtirUQ2cprs_\u0026q=85\u0026s=e8fa6e1fee32b786a25737d09f9c5af1","dark":"https://mintcdn.com/plainrouter/V-rFDtirUQ2cprs_/logo/dark.svg?fit=max\u0026auto=format\u0026n=V-rFDtirUQ2cprs_\u0026q=85\u0026s=6223206736377fb44e922a1b959ed7f7","href":"https://plainrouter.com"},"favicon":"https://mintcdn.com/plainrouter/V-rFDtirUQ2cprs_/favicon.svg?fit=max\u0026auto=format\u0026n=V-rFDtirUQ2cprs_\u0026q=85\u0026s=dd3e59609a4f40d182538a4b5eb794f7","api":{"openapi":"https://plainrouter.com/openapi.json"},"appearance":{"default":"system"},"background":{"color":{"light":"#FFFFFF","dark":"#000000"}},"navbar":{"links":[{"href":"https://plainrouter.com","label":"Homepage"}],"primary":{"type":"button","label":"Dashboard","href":"https://plainrouter.com/login"}},"footer":{"socials":{"website":"https://plainrouter.com","github":"https://github.com/plainrouter","linkedin":"https://www.linkedin.com/company/plainrouter"}},"seo":{"metatags":{"canonical":"https://plainrouter.com/docs"}},"fonts":{"family":"Geist"},"icons":{"library":"lucide"},"contextual":{"options":["copy","view","chatgpt","claude","perplexity"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"plainrouter","hasAudioNarration":false,"actualSubdomain":"plainrouter","customDomains":["plainrouter.com"],"gitSource":{"type":"github","owner":"bursteri","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ae5a7d4671d00a2b2edba18","collectionId":"7c84d1ab-6714-4298-81c2-d2d9faf45a4f","liveDeploymentHistoryId":"6ae5a7d4671d00a2b2edba18","schemaVersion":"v3"},"feedback":{"edits":false,"issues":false},"entitlements":{},"buildId":"6ae729d4420faf70548d6c56","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"API","count":35},{"language":"default","tag":"Documentation","count":28},{"language":"default","tag":"Endpoints","count":23},{"language":"default","tag":"Actions","count":19},{"language":"default","tag":"MCP","count":13},{"language":"default","tag":"SDKs","count":12},{"language":"default","tag":"Signals","count":12},{"language":"default","tag":"Clients","count":9},{"language":"default","tag":"Overview","count":7},{"language":"default","tag":"Sandbox retirement","count":6}],"searchSettings":{"showContentSnippets":true}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","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":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"html.dark,html.light{--gray-50:250 250 250;--gray-100:244 244 245;--gray-200:228 228 231;--gray-300:212 212 216;--gray-400:161 161 170;--gray-500:113 113 122;--gray-600:82 82 91;--gray-700:63 63 70;--gray-800:39 39 42;--gray-900:24 24 27;--gray-950:9 9 11}html.dark #topbar-cta-button>a>span.absolute{background-color:#fafafa}html.dark #topbar-cta-button>a:hover>span.absolute{background-color:#e4e4e7}html.dark #topbar-cta-button>a>div *{color:#171717}"}],"page":{"pagePath":"api/events/create","slug":"/api/events/create","pageMetadata":{"title":"Submit a conversion event","description":"Send a consented purchase through Plainrouter's Conversion API, preserve its event ID on retries, and inspect the event trace for Meta acceptance.","openapi":"POST /events","href":"/api/events/create"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Send a consented purchase through Plainrouter’s Conversion API, preserve its event ID on retries, and inspect the event trace for Meta acceptance.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Table}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Submit a server-side conversion to Plainrouter with a Signals workspace secret. A new event returns `,_jsx(_components.code,{children:`202`}),`; a retry of the same event ID returns `,_jsx(_components.code,{children:`200`}),` with `,_jsx(_components.code,{children:`duplicate: true`}),`. Neither receipt alone confirms Meta delivery.`]}),`\n`,_jsx(Heading,{level:`2`,id:`before-sending-a-purchase`,children:`Before sending a purchase`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Use the `,_jsx(_components.a,{href:`/api/authentication#how-do-i-authenticate-the-rest-api`,children:`Signals workspace secret`}),` on your server. MCP execution tokens and OAuth management credentials cannot authenticate this endpoint.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/signals/connect-meta`,children:`Connect the intended Meta dataset`}),` for eligible destination delivery.`]}),`\n`,_jsx(_components.li,{children:`Read the actual paid order and its recorded advertising consent. The example assumes all three grants; setting these fields does not obtain consent.`}),`\n`,_jsx(_components.li,{children:`Choose one purchase sender. Do not also send the same checkout through a browser purchase or Stripe settlement flow.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`This endpoint uses Plainrouter’s request shape, not Meta’s Graph API `,_jsx(_components.code,{children:`data`}),` envelope. For synthetic payload checks without production writes, use the `,_jsx(_components.a,{href:`/api/sandbox`,children:`sandbox`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`example-an-immediate-consented-purchase`,children:`Example: an immediate, consented purchase`}),`\n`,_jsxs(_components.p,{children:[`Replace the order ID, source URL, amount and currency with the actual purchase. This immediate-event example omits `,_jsx(_components.code,{children:`event_time`}),`, so Plainrouter uses receipt time. For queued events, supply the original Unix timestamp or ISO-8601 payment time from your order record and preserve it on retries. Do not replace an old payment time with the current time.`]}),`\n`,`\n`,_jsxs(_components.p,{children:[`Use a stable, non-personal `,_jsx(_components.code,{children:`event_id`}),` for the logical purchase. You can use `,_jsx(_components.code,{children:`Idempotency-Key`}),` instead; if you supply both, they must match. Reuse the original payload after an uncertain timeout, subject to continued consent eligibility. A duplicate receipt does not update the accepted event or replay a failed Meta delivery.`]}),`\n`,`\n`,_jsxs(_components.p,{children:[`New-event acknowledgements include `,_jsx(_components.code,{children:`warnings`}),`. If you supply identity data without a valid consent capture time, read the `,_jsx(_components.a,{href:`/api/conversions#why-is-the-consent-capture-time-invalid`,children:`consent warning guidance`}),` before treating the event as linked. Duplicate acknowledgements retain the response shape shown above.`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-do-i-verify-the-result`,children:`How do I verify the result?`}),`\n`,_jsxs(_components.p,{children:[`Follow the returned `,_jsx(_components.code,{children:`Location`}),` header or `,_jsx(_components.a,{href:`https://plainrouter.com/docs/api/events/get`,children:`retrieve the event and delivery trace`}),`. A delivery with `,_jsx(_components.code,{children:`status: \"accepted\"`}),` confirms Meta acceptance. Queued or retrying delivery remains pending, and an empty delivery list is not acceptance. See `,_jsx(_components.a,{href:`/reference/statuses-and-terms#destination-delivery`,children:`delivery statuses`}),` for failed and skipped outcomes. Acceptance does not establish ad attribution or better performance.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Failure`}),_jsx(_components.th,{children:`Next step`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`401`})}),_jsx(_components.td,{children:`Stop retries and check the Signals secret and workspace.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`422`})}),_jsx(_components.td,{children:`Read field errors; check consent, decimal-string values, original event time and matching idempotency keys.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Timeout without a receipt`}),_jsx(_components.td,{children:`The write may have succeeded. Retry the original ID and payload rather than creating a new ID.`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`For a complete backend integration, use the `,_jsx(_components.a,{href:`/sdk/recipes/meta-conversions`,children:`Node.js and TypeScript recipe`}),`, `,_jsx(_components.a,{href:`/sdk/python#send-a-meta-conversion`,children:`Python recipe`}),`, or `,_jsx(_components.a,{href:`/sdk/ruby#send-a-meta-conversion`,children:`Ruby recipe`}),`. The parameter and response schemas below come from the `,_jsx(_components.a,{href:`https://plainrouter.com/openapi.json`,children:`signed OpenAPI contract`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Submit a conversion event","description":"Send a consented purchase through Plainrouter's Conversion API, preserve its event ID on retries, and inspect the event trace for Meta acceptance.","openapi":"POST /events","href":"/api/events/create"}}},"mdxSourceWithNoJs":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,RequestExample,ResponseExample,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!RequestExample)_missingMdxReference(`RequestExample`,true);if(!ResponseExample)_missingMdxReference(`ResponseExample`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Submit a server-side conversion to Plainrouter with a Signals workspace secret. A new event returns `,_jsx(_components.code,{children:`202`}),`; a retry of the same event ID returns `,_jsx(_components.code,{children:`200`}),` with `,_jsx(_components.code,{children:`duplicate: true`}),`. Neither receipt alone confirms Meta delivery.`]}),`\n`,_jsx(Heading,{level:`2`,id:`before-sending-a-purchase`,children:`Before sending a purchase`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Use the `,_jsx(_components.a,{href:`/api/authentication#how-do-i-authenticate-the-rest-api`,children:`Signals workspace secret`}),` on your server. MCP execution tokens and OAuth management credentials cannot authenticate this endpoint.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/signals/connect-meta`,children:`Connect the intended Meta dataset`}),` for eligible destination delivery.`]}),`\n`,_jsx(_components.li,{children:`Read the actual paid order and its recorded advertising consent. The example assumes all three grants; setting these fields does not obtain consent.`}),`\n`,_jsx(_components.li,{children:`Choose one purchase sender. Do not also send the same checkout through a browser purchase or Stripe settlement flow.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`This endpoint uses Plainrouter’s request shape, not Meta’s Graph API `,_jsx(_components.code,{children:`data`}),` envelope. For synthetic payload checks without production writes, use the `,_jsx(_components.a,{href:`/api/sandbox`,children:`sandbox`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`example-an-immediate-consented-purchase`,children:`Example: an immediate, consented purchase`}),`\n`,_jsxs(_components.p,{children:[`Replace the order ID, source URL, amount and currency with the actual purchase. This immediate-event example omits `,_jsx(_components.code,{children:`event_time`}),`, so Plainrouter uses receipt time. For queued events, supply the original Unix timestamp or ISO-8601 payment time from your order record and preserve it on retries. Do not replace an old payment time with the current time.`]}),`\n`,_jsx(RequestExample,{children:_jsx(CodeBlock,{filename:`Consented purchase`,numberOfLines:`24`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`24`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:' \"${'}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`PLAINROUTER_SIGNAL_SECRET`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:?`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Set`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` your`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Signals`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` workspace`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` secret`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` in`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` the`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` server`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` environment`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`}\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --include`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://plainrouter.com/api/v1/events`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$PLAINROUTER_SIGNAL_SECRET`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"event_id\": \"order-123\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"event_name\": \"Purchase\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"event_source\": \"https://shop.example/thank-you\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"action_source\": \"website\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"consent_basis\": \"consent\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"consent\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"ad_storage\": \"granted\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"ad_user_data\": \"granted\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"ad_personalization\": \"granted\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"source\": \"checkout-consent\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"value_data\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"value\": \"49.90\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"currency\": \"EUR\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"order_id\": \"order-123\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})})}),`\n`,_jsxs(_components.p,{children:[`Use a stable, non-personal `,_jsx(_components.code,{children:`event_id`}),` for the logical purchase. You can use `,_jsx(_components.code,{children:`Idempotency-Key`}),` instead; if you supply both, they must match. Reuse the original payload after an uncertain timeout, subject to continued consent eligibility. A duplicate receipt does not update the accepted event or replay a failed Meta delivery.`]}),`\n`,_jsxs(ResponseExample,{children:[_jsx(CodeBlock,{filename:`202 — New event`,numberOfLines:`5`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"event_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"order-123\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"duplicate\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"warnings\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: []`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`200 — Duplicate event`,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"event_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"order-123\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"duplicate\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]}),`\n`,_jsxs(_components.p,{children:[`New-event acknowledgements include `,_jsx(_components.code,{children:`warnings`}),`. If you supply identity data without a valid consent capture time, read the `,_jsx(_components.a,{href:`/api/conversions#why-is-the-consent-capture-time-invalid`,children:`consent warning guidance`}),` before treating the event as linked. Duplicate acknowledgements retain the response shape shown above.`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-do-i-verify-the-result`,children:`How do I verify the result?`}),`\n`,_jsxs(_components.p,{children:[`Follow the returned `,_jsx(_components.code,{children:`Location`}),` header or `,_jsx(_components.a,{href:`https://plainrouter.com/docs/api/events/get`,children:`retrieve the event and delivery trace`}),`. A delivery with `,_jsx(_components.code,{children:`status: \"accepted\"`}),` confirms Meta acceptance. Queued or retrying delivery remains pending, and an empty delivery list is not acceptance. See `,_jsx(_components.a,{href:`/reference/statuses-and-terms#destination-delivery`,children:`delivery statuses`}),` for failed and skipped outcomes. Acceptance does not establish ad attribution or better performance.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Failure`}),_jsx(_components.th,{children:`Next step`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`401`})}),_jsx(_components.td,{children:`Stop retries and check the Signals secret and workspace.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`422`})}),_jsx(_components.td,{children:`Read field errors; check consent, decimal-string values, original event time and matching idempotency keys.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Timeout without a receipt`}),_jsx(_components.td,{children:`The write may have succeeded. Retry the original ID and payload rather than creating a new ID.`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`For a complete backend integration, use the `,_jsx(_components.a,{href:`/sdk/recipes/meta-conversions`,children:`Node.js and TypeScript recipe`}),`, `,_jsx(_components.a,{href:`/sdk/python#send-a-meta-conversion`,children:`Python recipe`}),`, or `,_jsx(_components.a,{href:`/sdk/ruby#send-a-meta-conversion`,children:`Ruby recipe`}),`. The parameter and response schemas below come from the `,_jsx(_components.a,{href:`https://plainrouter.com/openapi.json`,children:`signed OpenAPI contract`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Submit a conversion event","description":"Send a consented purchase through Plainrouter's Conversion API, preserve its event ID on retries, and inspect the event trace for Meta acceptance.","openapi":"POST /events","href":"/api/events/create"}}}},"mdxExtracts":{"tableOfContents":[{"title":"Before sending a purchase","slug":"before-sending-a-purchase","depth":2,"children":[]},{"title":"Example: an immediate, consented purchase","slug":"example-an-immediate-consented-purchase","depth":2,"children":[]},{"title":"How do I verify the result?","slug":"how-do-i-verify-the-result","depth":2,"children":[]}],"codeExamples":{"request":{"type":"RequestExample","children":[{"filename":"Consented purchase","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"shellscript\">\u003ccode language=\"shellscript\" numberOfLines=\"24\">\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#DCDCAA\">:\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"${\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\">PLAINROUTER_SIGNAL_SECRET\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D4D4D4\">:?\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\">Set\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\"> your\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\"> Signals\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\"> workspace\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\"> secret\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\"> in\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\"> the\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\"> server\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\"> environment\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">}\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#953800;--shiki-dark:#DCDCAA\">curl\u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> --include\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> https://plainrouter.com/api/v1/events\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> --request\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> POST\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> --header\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"Authorization: Bearer \u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\">$PLAINROUTER_SIGNAL_SECRET\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> --header\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"Content-Type: application/json\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> --data\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> '{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"event_id\": \"order-123\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"event_name\": \"Purchase\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"event_source\": \"https://shop.example/thank-you\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"action_source\": \"website\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"consent_basis\": \"consent\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"consent\": {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"ad_storage\": \"granted\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"ad_user_data\": \"granted\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"ad_personalization\": \"granted\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"source\": \"checkout-consent\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"value_data\": {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"value\": \"49.90\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"currency\": \"EUR\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"order_id\": \"order-123\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> }'\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]},"response":{"type":"ResponseExample","children":[{"filename":"202 — New event","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"5\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"event_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"order-123\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"duplicate\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">false\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"warnings\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: []\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"},{"filename":"200 — Duplicate event","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"4\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"event_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"order-123\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"duplicate\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]}}},"jsLinks":["/docs/_mintlify/custom/plainrouter/06c02c047da0ad61/link-targets.js"],"openApiReferenceData":{"operation":{"operationId":"createEvent","description":"Send a consented purchase through Plainrouter's Conversion API, preserve its event ID on retries, and inspect the event trace for Meta acceptance.","summary":"Submit a conversion event","tags":["Event"],"parameters":["2739e4ee-9eca-4881-bf6b-b13422604f9c"],"requestBody":"f0043097-fc1a-4061-b9a3-ead635462170","responses":{"200":"f7696e5b-3234-4e74-bd53-3d63e23a73a8","202":"e3f1b3f0-fde0-43a9-a6a1-ce6b2fcea317","401":"3a5314e5-e57c-4dfb-8d56-940771657db5","422":"ff7bbbe8-62c5-4973-96c4-ebcd4f69f883"},"method":"post","type":"path","servers":["676e2731-13c0-45f7-9b70-bd4389dae7d0"],"security":["fb042a78-9fb6-4964-aafc-9639cc088f38"],"path":"/events","baseUrlOptions":["https://plainrouter.com/api/v1"],"title":"Submit a conversion event","codeSamples":[],"requiredOnlyExamples":false,"requestExamples":[{"dropdown":false,"language":"shellscript","code":{"type":"pre","key":null,"ref":null,"props":{"className":"shiki shiki-themes github-light-default dark-plus","style":{"backgroundColor":"#ffffff","--shiki-dark-bg":"#0B0C0E","color":"#1f2328","--shiki-dark":"#D4D4D4"},"language":"shellscript","children":{"type":"code","key":null,"ref":null,"props":{"language":"shellscript","numberOfLines":"24","children":[{"type":"span","key":"0","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#DCDCAA"},"children":":"}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" \"${"}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#9CDCFE"},"children":"PLAINROUTER_SIGNAL_SECRET"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#CF222E","--shiki-dark":"#D4D4D4"},"children":":?"}},{"type":"span","key":"4","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#9CDCFE"},"children":"Set"}},{"type":"span","key":"5","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#9CDCFE"},"children":" your"}},{"type":"span","key":"6","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#9CDCFE"},"children":" Signals"}},{"type":"span","key":"7","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#9CDCFE"},"children":" workspace"}},{"type":"span","key":"8","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#9CDCFE"},"children":" secret"}},{"type":"span","key":"9","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#9CDCFE"},"children":" in"}},{"type":"span","key":"10","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#9CDCFE"},"children":" the"}},{"type":"span","key":"11","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#9CDCFE"},"children":" server"}},{"type":"span","key":"12","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#9CDCFE"},"children":" environment"}},{"type":"span","key":"13","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"}\""}}]}},"\n",{"type":"span","key":"2","ref":null,"props":{"className":"line","children":null}},"\n",{"type":"span","key":"4","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#953800","--shiki-dark":"#DCDCAA"},"children":"curl"}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":" --include"}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" https://plainrouter.com/api/v1/events"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#CF222E","--shiki-dark":"#D7BA7D"},"children":" \\"}}]}},"\n",{"type":"span","key":"6","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":" --request"}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" POST"}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#CF222E","--shiki-dark":"#D7BA7D"},"children":" \\"}}]}},"\n",{"type":"span","key":"8","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":" --header"}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" \"Authorization: Bearer "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#9CDCFE"},"children":"$PLAINROUTER_SIGNAL_SECRET"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\""}},{"type":"span","key":"4","ref":null,"props":{"style":{"color":"#CF222E","--shiki-dark":"#D7BA7D"},"children":" \\"}}]}},"\n",{"type":"span","key":"10","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":" --header"}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" \"Content-Type: application/json\""}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#CF222E","--shiki-dark":"#D7BA7D"},"children":" \\"}}]}},"\n",{"type":"span","key":"12","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":" --data"}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" '{"}}]}},"\n",{"type":"span","key":"14","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" \"event_id\": \"order-123\","}}}},"\n",{"type":"span","key":"16","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" \"event_name\": \"Purchase\","}}}},"\n",{"type":"span","key":"18","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" \"event_source\": \"https://shop.example/thank-you\","}}}},"\n",{"type":"span","key":"20","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" \"action_source\": \"website\","}}}},"\n",{"type":"span","key":"22","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" \"consent_basis\": \"consent\","}}}},"\n",{"type":"span","key":"24","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" \"consent\": {"}}}},"\n",{"type":"span","key":"26","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" \"ad_storage\": \"granted\","}}}},"\n",{"type":"span","key":"28","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" \"ad_user_data\": \"granted\","}}}},"\n",{"type":"span","key":"30","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" \"ad_personalization\": \"granted\","}}}},"\n",{"type":"span","key":"32","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" \"source\": \"checkout-consent\""}}}},"\n",{"type":"span","key":"34","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" },"}}}},"\n",{"type":"span","key":"36","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" \"value_data\": {"}}}},"\n",{"type":"span","key":"38","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" \"value\": \"49.90\","}}}},"\n",{"type":"span","key":"40","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" \"currency\": \"EUR\","}}}},"\n",{"type":"span","key":"42","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" \"order_id\": \"order-123\""}}}},"\n",{"type":"span","key":"44","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" }"}}}},"\n",{"type":"span","key":"46","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" }'"}}}},"\n"]}}}},"filename":"Consented purchase"}],"requestExampleType":"mdx","responseExamples":[{"dropdown":false,"language":"json","code":{"type":"pre","key":null,"ref":null,"props":{"className":"shiki shiki-themes github-light-default dark-plus","style":{"backgroundColor":"#ffffff","--shiki-dark-bg":"#0B0C0E","color":"#1f2328","--shiki-dark":"#D4D4D4"},"language":"json","children":{"type":"code","key":null,"ref":null,"props":{"language":"json","numberOfLines":"5","children":[{"type":"span","key":"0","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":"{"}}}},"\n",{"type":"span","key":"2","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"event_id\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"order-123\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"4","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"duplicate\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"false"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"6","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"warnings\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": []"}}]}},"\n",{"type":"span","key":"8","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":"}"}}}},"\n"]}}}},"filename":"202 — New event"},{"dropdown":false,"language":"json","code":{"type":"pre","key":null,"ref":null,"props":{"className":"shiki shiki-themes github-light-default dark-plus","style":{"backgroundColor":"#ffffff","--shiki-dark-bg":"#0B0C0E","color":"#1f2328","--shiki-dark":"#D4D4D4"},"language":"json","children":{"type":"code","key":null,"ref":null,"props":{"language":"json","numberOfLines":"4","children":[{"type":"span","key":"0","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":"{"}}}},"\n",{"type":"span","key":"2","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"event_id\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"order-123\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"4","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"duplicate\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"true"}}]}},"\n",{"type":"span","key":"6","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":"}"}}}},"\n"]}}}},"filename":"200 — Duplicate event"}],"responseExampleType":"mdx"},"dependencies":{"parameters":{"2739e4ee-9eca-4881-bf6b-b13422604f9c":{"name":"Idempotency-Key","in":"header","description":"Optional idempotency key. When event_id is omitted, Plainrouter uses this value as event_id. If both are supplied, they must match.","schema":{"type":"string","description":"Optional idempotency key. When event_id is omitted, Plainrouter uses this value as event_id. If both are supplied, they must match.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"description":"Authenticated callers using the Server secret may supply client_ip_address and client_user_agent in user_data; browser traffic using the Publishable key takes those fields only from the configured edge.","required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["event_name","consent_basis"],"properties":{"event_name":{"type":"string","description":"Signal event name; maximum 100 characters.","isRequired":true,"uniqueKey":"oneOf.0.event_name","typeLabel":"string"},"consent_basis":{"type":"string","description":"Legal basis for processing. Legitimate-interest server revenue retains identity only with admitted global visitor or buyer-country evidence and no opt-out.","const":"consent","isRequired":true,"uniqueKey":"oneOf.0.consent_basis","typeLabel":"string"},"event_id":{"type":"string","description":"Caller-supplied idempotency key; maximum 128 characters.","uniqueKey":"oneOf.0.event_id","typeLabel":"string"},"parent_event_id":{"type":"string","description":"Optional parent event id; maximum 128 characters.","uniqueKey":"oneOf.0.parent_event_id","typeLabel":"string"},"event_time":{"oneOf":[{"type":"integer","description":"Unix timestamp or ISO-8601 date-time. Defaults to receipt time.","uniqueKey":"oneOf.0.event_time.oneOf.0","typeLabel":"integer"},{"type":"string","description":"Unix timestamp or ISO-8601 date-time. Defaults to receipt time.","uniqueKey":"oneOf.0.event_time.oneOf.1","typeLabel":"string"}],"uniqueKey":"oneOf.0.event_time","typeLabel":"integer | string"},"event_source":{"type":"string","format":"uri","description":"Optional absolute source URL.","uniqueKey":"oneOf.0.event_source","typeLabel":"string\u003curi>"},"action_source":{"type":"string","description":"Optional action source; defaults to website and is limited to 50 characters.","uniqueKey":"oneOf.0.action_source","typeLabel":"string"},"visitor_id":{"type":"string","description":"Optional visitor identifier; maximum 255 characters.","uniqueKey":"oneOf.0.visitor_id","typeLabel":"string"},"consent":{"type":"object","description":"Consent state supplied with the event.","additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.consent.additionalProperties","typeLabel":"any"},"uniqueKey":"oneOf.0.consent","typeLabel":"object"},"consent_mode":{"type":"object","description":"Consent Mode v2 signal values supplied with the event.","additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.consent_mode.additionalProperties","typeLabel":"any"},"uniqueKey":"oneOf.0.consent_mode","typeLabel":"object"},"tcf":{"type":"object","description":"TCF v2 data containing string and optional captured_at.","additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.tcf.additionalProperties","typeLabel":"any"},"uniqueKey":"oneOf.0.tcf","typeLabel":"object"},"user_data":{"type":"object","description":"Identity fields accepted by the tracker.","additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.user_data.additionalProperties","typeLabel":"any"},"uniqueKey":"oneOf.0.user_data","typeLabel":"object"},"click_ids":{"type":"object","description":"Advertising click identifiers.","additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.click_ids.additionalProperties","typeLabel":"any"},"uniqueKey":"oneOf.0.click_ids","typeLabel":"object"},"value_data":{"type":"object","description":"Optional commerce data. Contents accepts at most 50 items and 16 KB serialized.","properties":{"value":{"type":"string","uniqueKey":"oneOf.0.value_data.value","typeLabel":"string"},"currency":{"type":"string","uniqueKey":"oneOf.0.value_data.currency","typeLabel":"string"},"order_id":{"type":"string","uniqueKey":"oneOf.0.value_data.order_id","typeLabel":"string"},"contents":{"type":"array","items":{"oneOf":[{}],"uniqueKey":"oneOf.0.value_data.contents.items.[INDEX]","typeLabel":"any"},"uniqueKey":"oneOf.0.value_data.contents","typeLabel":"any[]"},"num_items":{"type":"integer","uniqueKey":"oneOf.0.value_data.num_items","typeLabel":"integer"}},"uniqueKey":"oneOf.0.value_data","typeLabel":"object"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","required":["event_name","consent_basis"],"properties":{"event_name":{"type":"string","description":"Signal event name; maximum 100 characters.","enum":["signal_verification","consent_withdrawal"],"isRequired":true,"uniqueKey":"oneOf.1.event_name","typeLabel":"enum\u003cstring>"},"consent_basis":{"type":"string","description":"Legal basis for processing. Legitimate-interest server revenue retains identity only with admitted global visitor or buyer-country evidence and no opt-out.","const":"legitimate_interest","isRequired":true,"uniqueKey":"oneOf.1.consent_basis","typeLabel":"string"},"event_id":{"type":"string","description":"Caller-supplied idempotency key; maximum 128 characters.","uniqueKey":"oneOf.1.event_id","typeLabel":"string"},"parent_event_id":{"type":"string","description":"Optional parent event id; maximum 128 characters.","uniqueKey":"oneOf.1.parent_event_id","typeLabel":"string"},"event_time":{"oneOf":[{"type":"integer","description":"Unix timestamp or ISO-8601 date-time. Defaults to receipt time.","uniqueKey":"oneOf.1.event_time.oneOf.0","typeLabel":"integer"},{"type":"string","description":"Unix timestamp or ISO-8601 date-time. Defaults to receipt time.","uniqueKey":"oneOf.1.event_time.oneOf.1","typeLabel":"string"}],"uniqueKey":"oneOf.1.event_time","typeLabel":"integer | string"},"event_source":{"type":"string","format":"uri","description":"Optional absolute source URL.","uniqueKey":"oneOf.1.event_source","typeLabel":"string\u003curi>"},"action_source":{"type":"string","description":"Optional action source; defaults to website and is limited to 50 characters.","uniqueKey":"oneOf.1.action_source","typeLabel":"string"},"visitor_id":{"type":"string","description":"Optional visitor identifier; maximum 255 characters.","uniqueKey":"oneOf.1.visitor_id","typeLabel":"string"},"consent":{"type":"object","description":"Consent state supplied with the event.","additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.1.consent.additionalProperties","typeLabel":"any"},"uniqueKey":"oneOf.1.consent","typeLabel":"object"},"consent_mode":{"type":"object","description":"Consent Mode v2 signal values supplied with the event.","additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.1.consent_mode.additionalProperties","typeLabel":"any"},"uniqueKey":"oneOf.1.consent_mode","typeLabel":"object"},"tcf":{"type":"object","description":"TCF v2 data containing string and optional captured_at.","additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.1.tcf.additionalProperties","typeLabel":"any"},"uniqueKey":"oneOf.1.tcf","typeLabel":"object"},"user_data":{"type":"object","description":"Identity fields accepted by the tracker.","additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.1.user_data.additionalProperties","typeLabel":"any"},"uniqueKey":"oneOf.1.user_data","typeLabel":"object"},"click_ids":{"type":"object","description":"Advertising click identifiers.","additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.1.click_ids.additionalProperties","typeLabel":"any"},"uniqueKey":"oneOf.1.click_ids","typeLabel":"object"},"value_data":{"type":"object","description":"Optional commerce data. Contents accepts at most 50 items and 16 KB serialized.","properties":{"value":{"type":"string","uniqueKey":"oneOf.1.value_data.value","typeLabel":"string"},"currency":{"type":"string","uniqueKey":"oneOf.1.value_data.currency","typeLabel":"string"},"order_id":{"type":"string","uniqueKey":"oneOf.1.value_data.order_id","typeLabel":"string"},"contents":{"type":"array","items":{"oneOf":[{}],"uniqueKey":"oneOf.1.value_data.contents.items.[INDEX]","typeLabel":"any"},"uniqueKey":"oneOf.1.value_data.contents","typeLabel":"any[]"},"num_items":{"type":"integer","uniqueKey":"oneOf.1.value_data.num_items","typeLabel":"integer"}},"uniqueKey":"oneOf.1.value_data","typeLabel":"object"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"event_name":"\u003cstring>","consent_basis":"consent","event_id":"\u003cstring>","parent_event_id":"\u003cstring>","event_time":123,"event_source":"\u003cstring>","action_source":"\u003cstring>","visitor_id":"\u003cstring>","consent":{},"consent_mode":{},"tcf":{},"user_data":{},"click_ids":{},"value_data":{"value":"\u003cstring>","currency":"\u003cstring>","order_id":"\u003cstring>","contents":["\u003cunknown>"],"num_items":123}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"f7696e5b-3234-4e74-bd53-3d63e23a73a8":{"description":"Duplicate event accepted idempotently.","content":{"application/json":{"schema":{"type":"object","properties":{"event_id":{"type":"string","isRequired":true,"uniqueKey":"event_id","typeLabel":"string"},"duplicate":{"type":"boolean","isRequired":true,"uniqueKey":"duplicate","typeLabel":"boolean"}},"required":["event_id","duplicate"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"event_id":"\u003cstring>","duplicate":true}}},"exampleType":"generated"}},"headers":{"Location":{"description":"Canonical event resource to poll for delivery state.","schema":{"type":"string","format":"uri"}},"Idempotency-Key":{"description":"Echoes the Idempotency-Key supplied by the caller.","schema":{"type":"string"}}},"exampleType":"generated"},"e3f1b3f0-fde0-43a9-a6a1-ce6b2fcea317":{"description":"New event accepted for processing.","content":{"application/json":{"schema":{"type":"object","properties":{"event_id":{"type":"string","isRequired":true,"uniqueKey":"event_id","typeLabel":"string"},"duplicate":{"type":"boolean","isRequired":true,"uniqueKey":"duplicate","typeLabel":"boolean"},"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"The closed set of non-rejection warnings returned by POST /events.\n","enum":["consent_captured_at_invalid","event_source_invalid"],"title":"IngestionWarningCode","isRequired":true,"uniqueKey":"warnings.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"field":{"type":"string","enum":["consent.captured_at","event_source"],"isRequired":true,"uniqueKey":"warnings.items.[INDEX].field","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"warnings.items.[INDEX].message","typeLabel":"string"}},"required":["code","field","message"],"uniqueKey":"warnings.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"warnings","typeLabel":"object[]"}},"required":["event_id","duplicate","warnings"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"event_id":"\u003cstring>","duplicate":true,"warnings":[{"code":"consent_captured_at_invalid","field":"consent.captured_at","message":"\u003cstring>"}]}}},"exampleType":"generated"}},"headers":{"Location":{"description":"Canonical event resource to poll for delivery state.","schema":{"type":"string","format":"uri"}},"Idempotency-Key":{"description":"Echoes the Idempotency-Key supplied by the caller.","schema":{"type":"string"}}},"exampleType":"generated"},"3a5314e5-e57c-4dfb-8d56-940771657db5":{"description":"Invalid or missing Server secret.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["message"],"title":"ErrorMessage","uniqueKey":"","typeLabel":"ErrorMessage · object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"ff7bbbe8-62c5-4973-96c4-ebcd4f69f883":{"description":"Request validation failed.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string","uniqueKey":"errors.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.additionalProperties","typeLabel":"string[]"},"isRequired":true,"uniqueKey":"errors","typeLabel":"object"}},"required":["message","errors"],"title":"ValidationError","uniqueKey":"","typeLabel":"ValidationError · object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>","errors":{}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"fb042a78-9fb6-4964-aafc-9639cc088f38":{"workspaceSecret":{"type":"http","description":"Per-workspace Server secret. It authenticates only the Signals workspace represented by the credential.","scheme":"bearer","scopes":[],"schemeName":"workspaceSecret"}}},"servers":{"676e2731-13c0-45f7-9b70-bd4389dae7d0":{"url":"https://plainrouter.com/api/v1","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","description":"Per-workspace Server secret. It authenticates only the Signals workspace represented by the credential.","scheme":"bearer","scopes":[],"schemeName":"workspaceSecret"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Per-workspace Server secret. It authenticates only the Signals workspace represented by the credential.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"workspaceSecret","name":"Authorization"}],"title":"workspaceSecret"}]},"originalFileLocation":"https://plainrouter.com/openapi.json"},"subdomain":"plainrouter","siteName":"Plainrouter","title":"Submit a conversion event - Plainrouter","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-15T05:10:31.159Z","originalFileLocation":"api/events/create.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=\"Send a consented purchase through Plainrouter\u0026#x27;s Conversion API, preserve its event ID on retries, and inspect the event trace for Meta acceptance.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Plainrouter\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/plainrouter/9PXRCOzX2TWNgL3_/_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=\"/docs/mintlify-assets/_mintlify/favicons/plainrouter/9PXRCOzX2TWNgL3_/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/plainrouter/9PXRCOzX2TWNgL3_/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/plainrouter/9PXRCOzX2TWNgL3_/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/plainrouter/9PXRCOzX2TWNgL3_/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/plainrouter/9PXRCOzX2TWNgL3_/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/plainrouter/9PXRCOzX2TWNgL3_/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/plainrouter/9PXRCOzX2TWNgL3_/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/plainrouter/9PXRCOzX2TWNgL3_/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Submit a conversion event - Plainrouter\">\u003cmeta data-mint-head property=\"og:description\" content=\"Send a consented purchase through Plainrouter\u0026#x27;s Conversion API, preserve its event ID on retries, and inspect the event trace for Meta acceptance.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Plainrouter\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://plainrouter.com/docs/api/events/create\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://plainrouter.mintlify.app/_mintlify/api/og/v2?division=Events\u0026amp;title=Submit+a+conversion+event\u0026amp;description=Send+a+consented+purchase+through+Plainrouter%27s+Conversion+API%2C+preserve+its+event+ID+on+retries%2C+and+inspect+the+event+trace+for+Meta+acceptance.\u0026amp;theme=07d19c057d21e0256163a1b3\u0026amp;signature=2f1d1c7a2cfcab63e9e453425abfdd07deb9229630b1a6829a1b48dd853c50de\">\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=\"Submit a conversion event - Plainrouter\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Send a consented purchase through Plainrouter\u0026#x27;s Conversion API, preserve its event ID on retries, and inspect the event trace for Meta acceptance.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://plainrouter.mintlify.app/_mintlify/api/og/v2?division=Events\u0026amp;title=Submit+a+conversion+event\u0026amp;description=Send+a+consented+purchase+through+Plainrouter%27s+Conversion+API%2C+preserve+its+event+ID+on+retries%2C+and+inspect+the+event+trace+for+Meta+acceptance.\u0026amp;theme=07d19c057d21e0256163a1b3\u0026amp;signature=2f1d1c7a2cfcab63e9e453425abfdd07deb9229630b1a6829a1b48dd853c50de\">\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=\"/docs/mintlify-assets/_mintlify/favicons/plainrouter/9PXRCOzX2TWNgL3_/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Plainrouter\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#171717\">\u003clink data-mint-head rel=\"canonical\" href=\"https://plainrouter.com/docs/api/events/create\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api/events/create.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://plainrouter.com/#organization\",\"name\":\"Plainrouter\",\"url\":\"https://plainrouter.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/plainrouter/V-rFDtirUQ2cprs_/logo/light.svg?fit=max\u0026auto=format\u0026n=V-rFDtirUQ2cprs_\u0026q=85\u0026s=e8fa6e1fee32b786a25737d09f9c5af1\"}},{\"@type\":\"WebSite\",\"@id\":\"https://plainrouter.com/docs#website\",\"name\":\"Plainrouter\",\"url\":\"https://plainrouter.com/docs\",\"publisher\":{\"@id\":\"https://plainrouter.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://plainrouter.com/docs/api/events/create#webpage\",\"url\":\"https://plainrouter.com/docs/api/events/create\",\"name\":\"Submit a conversion event\",\"description\":\"Send a consented purchase through Plainrouter's Conversion API, preserve its event ID on retries, and inspect the event trace for Meta acceptance.\",\"dateModified\":\"2026-09-15T05:10:31.159Z\",\"isPartOf\":{\"@id\":\"https://plainrouter.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://plainrouter.com/docs/api/events/create#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://plainrouter.com/docs/api/events/create#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://plainrouter.com/docs/api/actions\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Submit a conversion event\",\"item\":\"https://plainrouter.com/docs/api/events/create\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://plainrouter.com/docs/api/events/create#apireference\",\"headline\":\"Submit a conversion event\",\"name\":\"Submit a conversion event\",\"description\":\"Send a consented purchase through Plainrouter's Conversion API, preserve its event ID on retries, and inspect the event trace for Meta acceptance.\",\"url\":\"https://plainrouter.com/docs/api/events/create\",\"mainEntityOfPage\":{\"@id\":\"https://plainrouter.com/docs/api/events/create#webpage\"},\"dateModified\":\"2026-09-15T05:10:31.159Z\",\"publisher\":{\"@id\":\"https://plainrouter.com/#organization\"},\"isPartOf\":{\"@id\":\"https://plainrouter.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Plainrouter\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Plainrouter","nav":{"global":null,"tabs":[{"tab":"Documentation","icon":"book-open","pages":[{"title":"Documentation","href":""}]},{"tab":"MCP","icon":"plug","pages":[{"title":"MCP","href":"/mcp/overview"}]},{"tab":"SDKs","icon":"package","pages":[{"title":"SDKs","href":"/sdk/overview"}]},{"tab":"CLI","icon":"square-terminal","pages":[{"title":"CLI","href":"/cli/get-started"}]},{"tab":"API","icon":"code-xml","groups":[{"group":"Overview","icon":"book-open","pages":[{"title":"Plainrouter API","sidebarTitle":"Introduction","href":"/api/introduction"},{"title":"Plainrouter authentication: server secrets and workspace keys","sidebarTitle":"Authentication","href":"/api/authentication"},{"title":"Get agent context","deprecated":null,"version":null,"openapi":"https://plainrouter.com/openapi.json get /agent/context","href":"/api/overview/agentcontext/get-agent-context"},{"title":"Conversion API: send and verify server events","sidebarTitle":"Conversion API overview","href":"/api/conversions"}]},{"group":"Endpoints","icon":"braces","pages":[{"group":"Actions","icon":"workflow","pages":[{"title":"Actions API: preview proposals and track outcomes","sidebarTitle":"Actions","href":"/api/actions"},{"title":"Propose actions","deprecated":null,"version":null,"openapi":"https://plainrouter.com/openapi.json post /agent/workspaces/{workspace}/actions","href":"/api/actions/actionproposalapi/propose-actions"},{"title":"Preview actions","deprecated":null,"version":null,"openapi":"https://plainrouter.com/openapi.json post /agent/workspaces/{workspace}/actions/dry-run","href":"/api/actions/actiondryrunapi/preview-actions"},{"title":"List actions","deprecated":null,"version":null,"openapi":"https://plainrouter.com/openapi.json get /agent/workspaces/{workspace}/actions","href":"/api/actions/actionreadapi/list-actions"},{"title":"Get action batch","deprecated":null,"version":null,"openapi":"https://plainrouter.com/openapi.json get /agent/workspaces/{workspace}/action-batches/{actionBatch}","href":"/api/actions/actionreadapi/get-action-batch"},{"title":"Get action","deprecated":null,"version":null,"openapi":"https://plainrouter.com/openapi.json get /agent/workspaces/{workspace}/actions/{action}","href":"/api/actions/actionreadapi/get-action"},{"title":"Get decision receipt","deprecated":null,"version":null,"openapi":"https://plainrouter.com/openapi.json get /agent/workspaces/{workspace}/actions/{action}/decision-receipt","href":"/api/actions/actionreadapi/get-decision-receipt"},{"title":"Get action policy","deprecated":null,"version":null,"openapi":"https://plainrouter.com/openapi.json get /agent/workspaces/{workspace}/actions/policy","href":"/api/actions/actionreadapi/get-action-policy"},{"title":"List rule summaries","deprecated":null,"version":null,"openapi":"https://plainrouter.com/openapi.json get /agent/workspaces/{workspace}/action-rules","href":"/api/actions/actionruleapi/list-rule-summaries"},{"title":"Create an action rule","deprecated":null,"version":null,"openapi":"https://plainrouter.com/openapi.json post /agent/workspaces/{workspace}/action-rules","href":"/api/actions/actionruleapi/create-an-action-rule"},{"title":"Get an action rule","deprecated":null,"version":null,"openapi":"https://plainrouter.com/openapi.json get /agent/workspaces/{workspace}/action-rules/{action_rule}","href":"/api/actions/actionruleapi/get-an-action-rule"},{"title":"Update an action rule","description":"Write an account-scoped rule using its validated definition. Send Accept: application/json for JSON errors. New rules start disabled.","deprecated":null,"version":null,"openapi":"https://plainrouter.com/openapi.json patch /agent/workspaces/{workspace}/action-rules/{action_rule}","href":"/api/actions/actionruleapi/update-an-action-rule"}]},{"group":"Events","icon":"send","pages":[{"title":"Submit a conversion event","openapi":"POST /events","href":"/api/events/create"},{"title":"Verify server-side Signal ingestion","description":"Records one idempotent, identity-free modeled event to confirm workspace-scoped ingestion. It does not count as real arrival evidence or complete onboarding.","openapi":"POST /verification-events","href":"/api/events/verify-ingestion"},{"title":"Get an event and delivery trace","openapi":"GET /events/{event}","href":"/api/events/get"},{"title":"List recent events","openapi":"GET /dashboard/events","href":"/api/events/list"},{"title":"List recent events by cursor","openapi":"GET /dashboard/events/cursor","href":"/api/events/list-by-cursor"}]},{"group":"Destination testing","icon":"test-tube-diagonal","pages":[{"title":"Configure destination test mode","openapi":"PATCH /destinations/{destination}/test-mode","href":"/api/destinations/test-mode"},{"title":"Send a controlled test purchase","openapi":"POST /destinations/{destination}/test-purchase","href":"/api/destinations/test-purchase"}]},{"group":"Delivery replay","icon":"rotate-cw","pages":[{"title":"Replay eligible deliveries","openapi":"POST /deliveries/replay","href":"/api/deliveries/replay"}]},{"group":"Reports","icon":"chart-no-axes-combined","pages":[{"title":"Get a reconciliation report","openapi":"GET /reports/reconciliation","href":"/api/reports/reconciliation"},{"title":"Get Event Match Quality history","openapi":"GET /reports/emq","href":"/api/reports/emq"}]},{"group":"Privacy","icon":"shield","pages":[{"title":"Delete user data by verified identifier","openapi":"DELETE /user-data","href":"/api/privacy/delete-user-data"}]}]},{"group":"Resources","icon":"library","pages":[{"title":"API resource index","href":"/api/resources"},{"title":"RFC 9727 API catalog","href":"/api/catalog"}]},{"group":"Sandbox retirement","icon":"history","pages":[{"title":"Move from the retired sandbox","sidebarTitle":"Sandbox retirement","href":"/api/sandbox"},{"title":"Sandbox discovery retired","href":"/api/sandbox/discover"},{"title":"Sandbox key retrieval retired","href":"/api/sandbox/get-key"},{"title":"Sandbox key creation retired","href":"/api/sandbox/create-key"},{"title":"Sandbox event validation retired","href":"/api/sandbox/validate-event"},{"title":"Keyed sandbox validation retired","href":"/api/sandbox/validate-keyed-event"}]}]},{"tab":"Changelog","icon":"list","pages":[{"title":"Changelog","href":"/changelog/2026-10"}]}]},"basePath":"","title":"Submit a conversion event - Plainrouter","buildId":"dpl_6cCEiK8XNNvaLBBkWzcBhdE9QfLC","deploymentId":"dpl_6cCEiK8XNNvaLBBkWzcBhdE9QfLC","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CLz2_Z5D.js","utils-7A5jZhOT.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BVWmkKuv.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-4SOfrh0F.js","snippetPresets-CMc8KicP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Ba9tX7z3.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Be8krXvv.js","shallow-CBC3K1uB.js","getApiPlaygroundDisplay-4tKcUAYo.js","CodeSnippet-C1Xa06ft.js","CodeSnippets-vqiz27A_.js","Page-DeQN5MDd.js","getPastedJson-NUwRfM32.js","icon-DkIVqWh9.js","MethodPill-qmhT7_wz.js","DuplicateIcon-_gWp1vhn.js","createIcon-NA1p_TVA.js","DynamicMarkdown-Bas9A7wq.js","SectionHeading-a1cS-24U.js","axios-vUo_bRtp.js","Markdown-D3ZTwq_a.js","clsx-BcghKhHb.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-B66mVNPp.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DmooSyTN.js"]}