Auliq API Reference

Auliq API Reference

The precise technical specification of the Auliq HTTP API: endpoints, parameters, schemas, response codes, authentication, and tooling for developers, integration engineers, and technical partners.

Overview

Auliq exposes the DXP HTTP API for behavioral event ingestion and personalized experience delivery. Both endpoints arestateless JSON-over-HTTPS, accept a shared api_key in the request body, and return JSON responses.

EnvironmentBase URLNotes
Livehttps://dx.auliq.netYour published app's function endpoint.
SandboxAPI console belowTest against the live environment with a dedicated test API key from DXP > Delivery.

All requests use the POST method with Content-Type: application/json. CORS preflight (OPTIONS) is supported on every endpoint.

Authentication and authorization

Every request is authorized with an organization-scoped API key passed in the request body.

  • Create and manage keys under DXP > Delivery. Keys are scoped to a single organization and can be revoked at any time.
  • Pass the key in the api_key body field. Only active keys are accepted; anything else returns HTTP 401 with {"error":"Invalid API key"}.
  • Authorization scope: all reads and writes (events, profiles, delivery) are restricted to the key's organization through database-level isolation.
  • Each authorized call updates the key last_used timestamp for usage auditing.

Endpoints

The two public DXP endpoints, fully specified.

POST/functions/dxpTrackTrack event

Records a behavioral event for your organization and creates or updates the visitor customer profile. Event ingestion is fire-and-forget from the client perspective: the response confirms the event id.

Request body parameters

ParameterTypeRequiredDescription
api_keystringrequiredActive DXP API key scoped to your organization.
event_namestringrequiredName of the event, e.g. viewed_pricing.
event_typestringoptionalCategory of the event, e.g. page_view, click, conversion.Defaults to page_view
profile_emailstringoptionalVisitor email address. Creates or updates the customer profile when present.
full_namestringoptionalApplied when the call creates a new profile.
countrystringoptionalApplied when the call creates a new profile.
channelstringoptionalDelivery channel, e.g. website or mobile_app.Defaults to website
page_pathstringoptionalPath of the page where the event occurred.
valuenumberoptionalNumeric value attached to the event, e.g. an order amount.

Example request

curl -X POST https://dx.auliq.net/functions/dxpTrack \
  -H "Content-Type: application/json" \
  -d '{
    "api_key": "<YOUR_DXP_API_KEY>",
    "event_name": "viewed_pricing",
    "event_type": "page_view",
    "profile_email": "visitor@example.com",
    "channel": "website",
    "page_path": "/pricing"
  }'

Example response

{
  "ok": true,
  "event_id": "rec_7f3a92b1",
  "profile_id": "rec_5c81d04e"
}

Response codes

CodeBodyMeaning
200{"ok":true,"event_id":"...","profile_id":"..."}Event recorded; profile created or updated when an email was provided (profile_id is null otherwise).
400{"error":"event_name is required"}The event_name field is missing.
401{"error":"Invalid API key"}The api_key is missing, unknown, or revoked.
500{"error":"<message>"}Unexpected server error; retry the request.
POST/functions/dxpDeliverDeliver experiences

Returns the personalized content a visitor should see right now: the segments resolved from the visitor profile, the active personalization rules that match the channel and segments (ordered by ascending priority), and the deterministic experiment variant assignment.

Request body parameters

ParameterTypeRequiredDescription
api_keystringrequiredActive DXP API key scoped to your organization.
profile_emailstringoptionalVisitor email address. Resolves segments from the stored profile; omit to receive base (unsegmented) delivery.
channelstringoptionalChannel used to match personalization rules, e.g. website, mobile_app, kiosk.Defaults to website

Example request

curl -X POST https://dx.auliq.net/functions/dxpDeliver \
  -H "Content-Type: application/json" \
  -d '{
    "api_key": "<YOUR_DXP_API_KEY>",
    "profile_email": "visitor@example.com",
    "channel": "website"
  }'

Example response

{
  "channel": "website",
  "profile_found": true,
  "segments": ["pricing_interested"],
  "experiences": [
    {
      "rule": "Pricing banner",
      "segment": "pricing_interested",
      "priority": 1,
      "source": "wcms_page",
      "content": {
        "type": "page",
        "title": "Pricing",
        "slug": "pricing",
        "body": "<p>Page body...</p>",
        "language": "en"
      }
    }
  ],
  "experiments": [
    {
      "experiment": "CTA copy test",
      "variant": "b",
      "content": "Start free today",
      "goal_metric": "signup_clicks"
    }
  ]
}
  • A preflight OPTIONS request returns 204 with permissive CORS headers (Access-Control-Allow-Origin: *), so browser-based calls are supported.
  • Personalization rules are filtered to active rules matching the requested channel (or the all channel) whose target segment is on the visitor profile, then sorted by ascending priority.
  • Content resolves only when the referenced WCMS page, HCMS entry, or DAM asset still exists; otherwise the experience is skipped.
  • Experiment variants are assigned deterministically: the same profile email always receives the same variant, based on the experiment traffic split.

Response codes

CodeBodyMeaning
200{channel, profile_found, segments, experiences, experiments}Delivery resolved. experiences is empty when no rule matches; profile_found is false for unknown visitors.
401{"error":"Invalid API key"}The api_key is missing, unknown, or revoked.
500{"error":"<message>"}Unexpected server error; retry the request.

Data objects and field definitions

Schemas for the objects exchanged by the API.

CustomerProfile

A visitor profile in the customer data platform, created or updated automatically by dxpTrack.

FieldTypeDescription
emailstringProfile identifier, unique per organization.
full_namestringDisplay name.
countrystringCountry code or name.
source_channelstringweb or mobile_app, from the first tracking channel.
lifecycle_stagestringStarts at visitor; managed in the DXP app.
total_visitsnumberIncremented on every tracked event with a profile email.
last_seenstringISO date (YYYY-MM-DD) of the most recent activity.
segmentsstring[]Segment memberships resolved by dxpDeliver.
Event

A behavioral event recorded by dxpTrack and browsable under DXP > Events.

FieldTypeDescription
event_namestringEvent name as sent.
event_typestringEvent category; defaults to page_view.
profile_emailstringAssociated profile email, when provided.
channelstringDelivery channel; defaults to website.
page_pathstringPage path where the event occurred.
valuenumberNumeric value, when provided.
Experience

One resolved personalization rule returned by dxpDeliver.

FieldTypeDescription
rulestringRule name.
segmentstring | nullTarget segment matched; null for unsegmented rules.
prioritynumberAscending priority used for ordering.
sourcestringwcms_page, hcms_entry, dam_asset, or custom.
contentobjectResolved content; shape depends on source (see content variants).
ExperimentResult

One running experiment with the deterministic variant for the visitor.

FieldTypeDescription
experimentstringExperiment name.
variantstringa or b, assigned by the traffic split.
contentstringVariant content to render.
goal_metricstringMetric tracked for the experiment goal.

Experience content variants

Rule sourcecontent.typeContent fields
wcms_pagepagetitle, slug, body, language
hcms_entryentrytitle, content_type, slug, body, locale
dam_assetassettitle, url, asset_type, width, height
customtextbody

Interactive API console

Run live requests against your published app directly from this page.

Enter an active API key from DXP > Delivery to run a live request.

Webhooks and event specifications

Content webhooks

Register a webhook endpoint to receive HTTP POST notifications when content changes. Webhooks are configured per organization underHCMS > Webhooks with a destination URL, an event filter, an optional content type filter, and a shared secret for verifying deliveries.

Event types

content.createdFires on matching content lifecycle changes
content.updatedFires on matching content lifecycle changes
content.publishedFires on matching content lifecycle changes
content.unpublishedFires on matching content lifecycle changes
content.deletedFires on matching content lifecycle changes

SDK and code examples

Ready-to-use snippets for browser and server integrations.

Browser (fetch)

// From any website or single-page app (CORS is permissive)
const res = await fetch("https://dx.auliq.net/functions/dxpDeliver", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ api_key: "<YOUR_DXP_API_KEY>", profile_email: "visitor@example.com", channel: "website" })
});
const { segments, experiences, experiments } = await res.json();

Server (Node.js)

// Node.js / server-side
const res = await fetch("https://dx.auliq.net/functions/dxpTrack", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    api_key: "<YOUR_DXP_API_KEY>",
    event_name: "signup_completed",
    event_type: "conversion",
    profile_email: "user@example.com",
    value: 49.0
  })
});
const { ok, event_id } = await res.json();

Versioning, rate limits, and changelog

Versioning and deprecation

  • The current API version is v1, served under /functions/ without a version prefix.
  • Breaking changes (removed or renamed parameters, changed response shapes) are introduced only in a new version prefix; v1 responses remain stable.
  • Deprecated fields continue to be returned and are flagged in the changelog before removal.

Rate limits and pagination

  • No Auliq-specific numeric quota is published for these endpoints; call dxpDeliver once per page view rather than in a loop, and batch tracking where practical.
  • Each call updates the last_used timestamp on the API key, so usage is auditable under DXP > Delivery.
  • Both endpoints are single-response APIs with no pagination. Filtering happens through segment, channel, and rule matching; result ordering is by ascending rule priority. Browse the full event stream under DXP > Events.

API changelog

v1.0.0Current
  • POST /functions/dxpTrack introduced: behavioral event ingestion with automatic profile upsert.
  • POST /functions/dxpDeliver introduced: segment, experience, and experiment resolution.
  • CORS preflight (OPTIONS) support on both endpoints.
  • API key authentication scoped to a single organization, managed under DXP > Delivery.