---
title: "List journeys"
method: GET
path: "/api/v1/experience/journeys"
tags: ["experience"]
deprecated: true
---

# List journeys

`GET /api/v1/experience/journeys`

## Request

- Base URL: `https://point11.ai`
- URL: `https://point11.ai/api/v1/experience/journeys`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://auth.point11.ai/oauth2/authorize`, token URL `https://auth.point11.ai/oauth2/token`)

> **Deprecated.**

Deprecated: use experience.journeys.list.v2 (experience_journeys_list_v2), which also lists iPhone Safari journeys; this version answers as if no iPhone Safari journey existed. List Experience journeys (one customer's visit to a website or app), newest first, for one campaign or the whole organization, filtered by outcome, friction, device, search, and segment. Page with nextCursor.

## Query parameters

- `limit` integer: Visit groups per page (1–100; default 20). A group holds one journey per device, so a page reads at most 50 groups; pageSize reports the size read
- `cursor` string: Opaque cursor returned as nextCursor or previousCursor by another page
- `campaignId` string, uuid, nullable
- `destinationFingerprint` string, nullable: One campaign website: an id from experience_campaigns_get_v3's destinations; absent or null is every website
- `search` string
- `outcome` 'all' | 'achieved' | 'not-achieved' | 'unavailable' | 'unscored' | 'limited': achieved and not-achieved are a pass and a fail; unavailable is every settled visit with neither verdict (unscored, could not tell, or limited evidence), of which unscored and limited are the narrower parts
- `friction` boolean
- `device` 'desktop' | 'mobile', nullable

## Headers

- `Point11-Organization` string, uuid

## Response `200`

Success.

- ExperienceJourneysListResponse
  - `data` object[], required
    - `runId` string, required
    - `inProgress` boolean, required
    - `executionStatus` 'scheduled' | 'waiting' | 'running' | 'completed' | 'failed' | 'cancelled', nullable, required
    - `visitIdentity` object, nullable, required
      - `key` string, required
      - `scenarioId` string, nullable, required
      - `cycleId` string, nullable, required
      - `cycleCreatedAt` string, date-time, nullable, required
      - `repetition` integer, nullable, required
    - `evidenceDisposition` 'sufficient' | 'insufficient' | 'policy_limited' | 'infrastructure_limited' | 'scenario_mismatch', nullable, required
    - `customerId` string, required
    - `customerName` string, required
    - `customerJobTitle` string, nullable, required: The customer's job title as the visit's scenario froze it; null when it named none
    - `destinationName` string, required
    - `destinationFingerprint` string, nullable, required: The website's id (experience_campaigns_get_v3's destinations[].id, which destinationFingerprint filters by); null for a visit no campaign website holds
    - `browserDevice` 'desktop' | 'mobile', required
    - `agent` 'point11' | 'dots' | 'spark' | 'muse' | 'grok_bot', required: The agent that shopped the visit; point11 (Point11's own shopper) for a visit no campaign planned. Another agent's visit of the same customer, website and device is another row (visitIdentity.key ends in :<agent>)
    - `nativeApp` object, nullable, required
      - `platform` 'ios' | 'android', required
      - `buildId` string, uuid, required
      - `sha256` string, required
      - `appId` string, required
      - `versionLabel` string, required
      - `deviceName` string, required
      - `osVersion` string, required
    - `unavailableReason` string, nullable, required
    - `achieved` boolean, nullable, required
    - `qualityStars` number, nullable, required
    - `completedAt` string, date-time, nullable, required
    - `actionCount` integer, required
    - `durationMs` number, nullable, required
    - `frictionSteps` integer[], nullable, required
    - `recording` object, required
      - `thumbnailArtifactId` string, nullable, required: The journey's first stored screenshot, full size, downloaded with experience_run_artifacts_download_v1, v2 or v3; null when the visit stored none
      - `durationMs` number, nullable, required
      - `stages` object[], required
        - `stepNumber` integer, required
        - `tone` 'progress' | 'friction' | 'failed', nullable, required
        - `label` string, required
  - `nextCursor` string, nullable, required
  - `previousCursor` string, nullable, required
  - `totalCount` integer, required
  - `pageSize` integer, required

## Other responses

- `400`: The input, query, or Idempotency-Key is invalid.
- `401`: The bearer is missing, expired, or not accepted.
- `403`: The credential lacks the operation's scope or role, or the operation needs a different door.
- `404`: The resource or organization does not exist for this caller.
- `405`: This path takes another HTTP method, named in `Allow`.
- `409`: The request conflicts with current state or with prior use of its Idempotency-Key.
- `413`: The request, or the answer it asks for, is too large; narrow it.
- `429`: The credential's rate budget is spent; retry after `Retry-After` seconds.
- `500`: An unexpected server failure; retry later. Only `request_id` identifies it.
- `503`: A dependency is temporarily unavailable; retry after `Retry-After` seconds.
- `default`: Another status a product answers for its own refusal (for example `415` for an unsupported attachment); branch on `code`.

---

[API](https://skmtc.dev/point11/apis/point11-api.md) · [All operations](https://skmtc.dev/point11/apis/point11-api/llms.txt) · [OpenAPI document](https://skmtc.dev/point11/apis/point11-api/revisions/36a84c7aca11?raw)
