---
title: "Record an allowlisted first-party aggregate event"
method: POST
path: "/v1/events"
tags: ["Status"]
---

# Record an allowlisted first-party aggregate event

`POST /v1/events`

## Request

- Base URL: `https://api.m2msentinel.com`
- URL: `https://api.m2msentinel.com/v1/events`
- Auth: none required

Accepts only pageViewed and ctaClicked plus fixed enum dimensions. Commercial outcomes are recorded authoritatively by server routes. Unknown fields, free text and identifiers are refused.

## Request body

- union
  - object
    - `event` 'pageViewed', required
    - `page` 'home' | 'pricing' | 'docs' | 'checkout' | 'demo' | 'status' | 'apiKeys' | 'enterprise' | 'integrationSprint', required
    - `campaign` 'direct' | 'organic' | 'github' | 'npm' | 'pypi' | 'mcp' | 'x402' | 'partner', required
  - object
    - `event` 'ctaClicked', required
    - `cta` 'subscribe', required
    - `page` 'home' | 'pricing' | 'docs' | 'checkout' | 'demo' | 'status' | 'apiKeys' | 'enterprise' | 'integrationSprint'
    - `tier` 'FREE' | 'STARTER' | 'GROWTH' | 'PRO' | 'ENTERPRISE'
    - `campaign` 'direct' | 'organic' | 'github' | 'npm' | 'pypi' | 'mcp' | 'x402' | 'partner', required
  - object
    - `event` 'ctaClicked', required
    - `cta` 'demo' | 'freeKey' | 'subscribe' | 'docs' | 'sdk' | 'renew' | 'recover' | 'payUsdc' | 'payEth' | 'claim' | 'restart' | 'contact' | 'unlockFullAudit' | 'rapidApi' | 'scopeStart' | 'scopeSubmit' | 'checkoutHandoff', required
    - `page` 'home' | 'pricing' | 'docs' | 'checkout' | 'demo' | 'status' | 'apiKeys' | 'enterprise' | 'integrationSprint'
    - `campaign` 'direct' | 'organic' | 'github' | 'npm' | 'pypi' | 'mcp' | 'x402' | 'partner', required

## Response `202`

Valid aggregate event accepted

## Other responses

- `400`: Malformed input
- `429`: A plan burst limit or bounded public/intent retry limit was exceeded

---

[API](https://skmtc.dev/m2msentinel/apis/m2m-sentinel-base-contract-capability-checks-before-you-sign.md) · [All operations](https://skmtc.dev/m2msentinel/apis/m2m-sentinel-base-contract-capability-checks-before-you-sign/llms.txt) · [OpenAPI document](https://skmtc.dev/m2msentinel/apis/m2m-sentinel-base-contract-capability-checks-before-you-sign/revisions/2dadd4e704fd?raw)
