Generate an API key in the Iterable dashboard under Settings > API Keys; choose the appropriate key type (Server-side keys for backend use).
Upsert a user by POSTing to https://api.iterable.com/api/users/update with Api-Key: {key} header and a JSON body containing email and optional dataFields for profile attributes.
Track a custom event by POSTing to https://api.iterable.com/api/events/track with email (or userId), eventName, and optional dataFields for event properties.
Send a transactional email by POSTing to https://api.iterable.com/api/email/target with campaignId (the transactional campaign ID from the dashboard), recipientEmail, and optional dataFields to populate template variables.
Check the message status or delivery history via GET https://api.iterable.com/api/events/{email} to retrieve the event stream for a user.
Known gotchas
Iterable is email-address-centric by default; if your system uses userId rather than email as the primary identifier, every API call must consistently pass userId, or you will create duplicate user profiles.
Transactional email sends require a pre-created campaign in the Iterable dashboard with the correct template; the campaignId in the API call must refer to a campaign explicitly set to transactional type.
Iterable enforces rate limits that vary by plan; high-volume event tracking bursts (e.g., backfilling historical events) will be throttled, and the API returns 429 errors that require exponential backoff.
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