Developer & API
Public Tag API (window.axo)
All methods are available once the tag script has loaded. Safe to call from any page-level JS – the tag queues calls made before initialization.
axo.identify(traits)Attach a known identity (email, external_id) to the current anonymous session. AXO merges cross-device sessions automatically.
axo.getSegment()Returns the current visitor's primary segment ID (e.g. "deliberator").
axo.getSessionId()Returns the active session ID (UUID).
axo.getVisitorId()Returns the persistent visitor ID (survives sessions, stored in a first-party cookie).
axo.convert(value?)Manually fire a conversion for your primary goal. The escape hatch for SPAs and custom flows where no goal URL is navigated to. Optionally pass the revenue value; if omitted it is read from the page.
axo.setCart(items)Pass the current cart state (array of { sku, qty, price }) for abandoned cart trigger accuracy and product recommendation context.
axo.getResumedContext()Returns the resumed session context when a visitor lands via a ?vt_token= triggered email link. Use this to personalize the landing experience for the returning visitor.
Identity Merge Example
// Call after login / checkout / form submit
axo.identify({
email: "customer@example.com",
external_id: "usr_12345",
// Optional CRM attributes:
plan: "pro",
lifetime_value: 1420
});Webhook Payload Example
// POST to your endpoint
// Header: X-AXO-Signature: sha256=<hmac>
{
"event": "profile.identified",
"site_id": "site_abc123",
"visitor_id": "vis_789xyz",
"session_id": "sess_456uvw",
"profile": {
"email": "customer@example.com",
"external_id": "usr_12345"
},
"segment": "deliberator",
"timestamp": "2026-05-19T14:32:01Z"
}Integrations & Webhooks
Connect destinations from Admin → Integrations.
- Server-side Destinations: Meta Conversions API, Google Enhanced Conversions, Klaviyo, Braze.
- CRM: Salesforce bidirectional sync with
crm_attributesegment predicates. - Webhooks: Real-time HMAC-SHA256 signed payloads for
profile.identified,segment.changed, andconversionevents.
Pulse REST API
Pulse is AXO's public, key-authenticated REST API for reading audience data from your own systems. Endpoints under /api/pulse/v1/ cover profile lookup and query, segment membership, and outbound webhook management; a machine-readable OpenAPI spec is served at /api/pulse/v1/openapi.json. Keys are scoped (e.g. profile:read, segment:read – PII fields require the explicit profile:read:pii scope) and managed from Admin → Pulse, which also shows per-key 24-hour usage. The key plaintext is shown once at creation – if it's lost, revoke and recreate.
MCP Server (Model Context Protocol)
The @vibetag/mcp-server package exposes AXO to external AI agents via 100+ tools. Connect it to Claude or any MCP client to drive AXO using natural language – or point a remote MCP client at the hosted HTTP endpoint at /api/mcp, no local install required. The server exposes tools for reading Analytics, executing Campaign Briefs, querying Segments, modifying Placements, firing Triggers, and managing Profiles programmatically. Generate an MCP token from Settings → MCP Tokens.