Fetch Experience Data

Get experience

Retrieve a single experience by ID.

The response body is wrapped in an experience key:

{
  "experience": {
    "id": "YOUR_EXPERIENCE_ID"
  }
}

Compared with GET /experiences-list, this response additionally includes experienceCustomMetrics, experienceIntegrations, experienceKeyMetrics, shippingTestMethodDefinitions, and shippingCarrierProvider.

It omits hasSchedule and history, which only list items carry. variations is present on both, but this response carries the full variation shape rather than the list's reduced one.

Tracking who changed what

This endpoint exposes two complementary audit trails:

  • experienceActions (always returned) — lifecycle state transitions (start, pause, end, delete, reset). Each entry includes a performedBy field with the email of the user who triggered the action, resolved from History records by matching action type and timestamp within a 5-minute window. performedBy is null when no matching History record is found.

  • changeLog (opt-in, see includeChangeLog below) — audit trail of deployed-config changes that touched this experience. Each entry groups diffs by entity type (experience, variations, offers, onsiteEdits, onsiteInjections, redirects, checkoutBlocks, audiences, pageTargeting) and identifies the deployer via performedBy. Capped at the 20 most recent entries, newest first.

    Note that the two trails format performedBy differently: experienceActions returns a bare email ("jane@example.com"), while changeLog returns a display name with the email in angle brackets ("Jane Doe <jane@example.com>"). Parse the changeLog form before treating it as an address.

Query Parameters

All query parameters are optional.

  • includeChangeLog — boolean, defaults to false. When true, the response includes a top-level changeLog array on the experience.

Note on history

List items on GET /experiences-list include a history array containing raw user-action records with broader action types (saveExperience, duplicateExperience, archiveCampaign, etc.) and full user objects. The single-experience response does not include this history field — use experienceActions for lifecycle events and ?includeChangeLog=true for config-deploy diffs instead.

Rate Limit: 50 requests per 30s window, refilling 25 tokens every 30s.

get/v25-10-beta/experiences/{experienceId}

Request

Path parameters

experienceIdstring uuid required

Query parameters

includeChangeLogboolean

When true, include a top-level changeLog array on the experience containing per-deploy diffs of entities that were modified (experience, variations, offers, onsiteEdits, onsiteInjections, redirects, checkoutBlocks, audiences, pageTargeting). Each entry carries the deployer's email via performedBy. Capped at the 20 most recent deploys, newest first. Defaults to false.

Response

OK

Changes

No recorded changes to this operation across all 1 revision of this API.