Create a REST API key in the Braze dashboard with the users.track permission and store it securely.
Build a POST request to your Braze instance's /users/track endpoint with Content-Type: application/json and the header Authorization: Bearer YOUR_TOKEN.
Construct the request body with up to 75 total objects combined across attributes, events, and purchases arrays — each object targets one user identified by external_id or braze_id.
Send the request and check the response for a message field; a value of success indicates all objects were accepted, while errors_log will list any per-object failures.
For large backfills where real-time delivery is not required, use the /users/track/bulk endpoint instead, which accepts higher batch sizes.
Known gotchas
Each /users/track request is capped at 75 combined attribute, event, and purchase objects; exceeding this limit results in a 400 error.
Custom event names and attribute keys are case-sensitive and must be pre-defined or will be auto-created — validate against your Braze schema to avoid unintended property proliferation.
Rate limits on /users/track vary by contract tier; the base rate is 3,000 requests per 3 seconds but may differ for customers on MAU-based plans.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp