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_attribute segment predicates.
  • Webhooks: Real-time HMAC-SHA256 signed payloads for profile.identified, segment.changed, and conversion events.

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.