---
title: "getJourneyRevision"
method: GET
path: "/v1/journey/configuration/{id}/revisions/{revision_id}"
tags: ["Journeys"]
---

# getJourneyRevision

`GET /v1/journey/configuration/{id}/revisions/{revision_id}`

## Request

- Base URL: `https://journey-config.sls.epilot.io`
- URL: `https://journey-config.sls.epilot.io/v1/journey/configuration/{id}/revisions/{revision_id}`
- Auth: HTTP bearer

Returns one revision with its full configuration, in the shape the builder holds a journey in, so it can be loaded straight into the editor as unsaved changes. Reading a revision changes nothing; a client persists it, if at all, by posting it back to `POST .../revisions`.

Only available for organizations with journey versioning enabled; returns `404` otherwise.

## Path parameters

- `id` string, uuid, required
- `revision_id` string, required

## Response `200`

The revision with its configuration

- JourneyRevision
  - `revision_id` string, required: Opaque identifier of the revision. Moves on every save.
  - `created_at` string, date-time, required
  - `created_by` string: User id of the author. Absent for revisions recorded from writes without a user, e.g. blueprint installs.
  - `name` string: Set at publish time only, so present if and only if this revision has been published at least once.
  - `description` string
  - `published_at` string, date-time: The last time this revision was published. Not the same question as `is_published`: a revision that was the published version yesterday still carries a `published_at`.
  - `is_published` boolean, required: Whether this revision is the published version right now.
  - `mapping_config_version` number: Version of the entity-mapping config stored alongside this revision.
  - `configuration` Journey, required
    - `journeyId` string
    - `organizationId` string, required
    - `brandId` string
    - `name` string, required
    - `steps` object[], required
      - `showStepName` boolean, nullable
      - `title` string, nullable
      - `subTitle` string, nullable
      - `showStepSubtitle` boolean, nullable
      - `showStepper` boolean, nullable
      - `showStepperLabels` boolean, nullable
      - `stepperType` 'numbers' | 'progress bar'
      - `hideNextButton` boolean, nullable
      - `guestVisible` boolean, nullable
      - `name` string, required
      - `stepId` string
      - `schema` unknown, required
      - `uischema` unknown, required
      - `maxWidth` 'small' | 'medium' | 'large' | 'extra large'
    - `design` object
      - `logoUrl` string, nullable
      - `theme` object
      - `designTokens` object
    - `rules` object[]
      - `type` 'inject' | 'injectWithKey', required
      - `sourceType` 'journey' | 'step' | 'block', required
      - `source` string, required
      - `target` string, required
    - `logics` object[]
      - `autoGeneratedId` string
      - `conditions` string[], required
      - `actions` string[], required
    - `logicsV4` object
    - `contextSchema` object[]
      - `id` string, uuid: Unique identifier for the context schema item
      - `type` string, required: Type of the parameter. It could be either an entity slug, or a text
      - `paramKey` string, required: Expected key to be received in the context
      - `isRequired` boolean: Indicates if a value is expected to be provided
      - `shouldLoadEntity` boolean: If type is not text, we can instruct the journey to fetch the entity id we receive as value
      - `description` string, nullable: Human-readable note describing the parameter's purpose. Free text; may contain newlines.
    - `journey_type` string: Journey Template
    - `protected` boolean: If true, journey is displayed in read-only mode
    - `protectedEditable` string[]: Whitelist of paths that remain editable when the journey is protected. Supports wildcard patterns (e.g. steps/*/blocks/**).
    - `settings` object
      - `embedOptions` object
        - `mode` 'full-screen' | 'inline'
        - `lang` string
        - `width` string
        - `topBar` boolean
        - `scrollToTop` boolean
        - `button` object
          - `text` string, nullable
          - `align` 'left' | 'center' | 'right'
      - `safeModeAutomation` boolean
      - `canary` boolean: DEPRECATED - This API will return hardcoded value of false. Please note that this field is internal to epilot and should not be used by external clients. If you wish to get the canary flag, please use the /v1/journey/{id}/settings API.
      - `designId` string, required
      - `templateId` string, nullable
      - `entityId` string, nullable
      - `mappingsAutomationId` string
      - `newMappings` boolean: When true, the journey is created without a mapping config or automation; mappings are managed as advanced mappings on a lazily created automation.
      - `targetedCustomer` string
      - `description` string, nullable
      - `organizationSettings` object, nullable
      - `publicToken` string, nullable
      - `runtimeEntities` string[]
      - `filePurposes` string[]
      - `entityTags` string[]
      - `addressSuggestionsFileUrl` string, nullable: @deprecated Use addressSuggestionsFileId instead
      - `addressSuggestionsFileId` string, nullable
      - `addressSuggestionsCountryCode` string, nullable: Country code for address format (e.g. DE, AT, CH, LU)
      - `addressSuggestionsEnableAutoComplete` boolean: Whether address auto-complete is enabled
      - `addressSuggestionsSource` string[]: Sources for address auto-complete (e.g. deutschePostService, customAddressesFile)
      - `addressSuggestionsEnableFreeText` boolean: Whether free text input is allowed when auto-complete is on
      - `useNewDesign` boolean: This property is deprecated and will be removed in a future version
      - `useAustrianLabels` boolean: If true, some journey input labels are in Austrian format
      - `enableDarkMode` boolean: If true, the journey shows an icon to toggle dark mode
      - `accessMode` 'PUBLIC' | 'PRIVATE'
      - `authGate` object: Steps after this step require an authenticated session (auth gate)
        - `stepId` string, required: The step containing the Login & Registration block
      - `isPublished` boolean
      - `status` string
      - `isActive` boolean
      - `savingProgress` object
        - `mode` 'auto' | 'local' | 'remote' | 'none'
        - `supportedRevision` number
      - `thirdPartyCookies` boolean: If false, third-party cookies are disabled to comply with GDPR regulations without asking for consent.
      - `betaFeatures` object: Per-journey opt-ins to beta features. One named boolean per feature (no free-form map), so a mistyped key is rejected with 400 and generated client types stay explicit. Additive: a feature is on when its key is true OR the organization-wide PostHog flag for that feature is on.
        - `modernProducts` boolean: Opt this journey into the modern product presentation (product tiles and details modal). Effective when true OR the organization flag `journey-modern-products` is on.
        - `modernLauncher` boolean: Opt this launcher journey into the modern Journey Launcher (picker, card and hero shells). Launcher journeys only. Effective when true OR the organization flag `journey-modern-launcher` is on.
      - `offline` object, nullable: Offline journeys (ER-5432). Revision-owned like every other setting: effective on publish. The runtime prepares an offline pack for this journey only when the organization flag `journey-offline` is on AND `enabled` is true.
        - `enabled` boolean, required: Prepare this journey for offline use on devices that open it online first.
        - `packTtlHours` integer: How long a prepared pack stays fresh before the next online open refreshes it. Default 24.
    - `validationRules` ValidationRuleRef: References to validation rules organized by blocks and fields. Maps block IDs to either one or more ordered rule IDs (for block-level rules) or rule references (for field-level rules).
    - `_manifest` string[]: Manifest/Blueprint ID used to create/update the entity
    - `blueprint_customization` object: Blueprint field-locking contract (server-managed). Carries the author plane (locks, default level) and the org plane (server-derived overlay). Public writes never persist client-supplied values — the stored contract is authoritative; it is written only by the Blueprints install pipeline.
    - `createdBy` string
    - `updatedBy` string, nullable
    - `__lastModifiedAt` string, nullable: If passed with value of null, the API won't modify the lastModifiedAt field on updating the journey
    - `createdAt` string, required
    - `lastModifiedAt` string, required
    - `deletedAt` string
    - `version` number, required: Revision row number of this item. `0` is the journey record, the published version.
    - `revisions` number, required: Legacy change counter of the published version, kept for compatibility: bumped whenever the published version changes and used for optimistic concurrency on `PUT`, by submissions (`journey_context.journey_revision`) and by save-and-continue. Saving a revision never changes it. Versioning metadata is only available via `publish-state`.
    - `featureFlags` object

## Other responses

- `403`: No permission to edit the journey
- `404`: Journey versioning not enabled for the organization, or journey or revision not found

## Changes

- **2026-10-15** `2f11eabb1f37`: 2 info
  - added the optional property `allOf[subschema #2]/configuration/allOf[#/components/schemas/Journey]/allOf[#/components/schemas/JourneyCreationRequest]/settings/betaFeatures/modernLauncher` to the response with the `200` status
  - added the optional property `allOf[subschema #2]/configuration/allOf[#/components/schemas/Journey]/allOf[#/components/schemas/JourneyCreationRequest]/settings/offline` to the response with the `200` status
- **2026-09-30** `c1595d30cd4f`: 1 info
  - added the optional property `allOf[subschema #2]/configuration/allOf[#/components/schemas/Journey]/allOf[#/components/schemas/JourneyCreationRequest]/blueprint_customization` to the response with the `200` status
- **2026-09-25** `5fae411349a6`: 1 info
  - added the optional property `allOf[subschema #2]/configuration/allOf[#/components/schemas/Journey]/allOf[#/components/schemas/JourneyCreationRequest]/settings/betaFeatures` to the response with the `200` status
- **2026-09-23** `c0ec24473fb0`: 1 info
  - added the optional property `allOf[subschema #2]/configuration/allOf[#/components/schemas/Journey]/allOf[#/components/schemas/JourneyCreationRequest]/steps/items/guestVisible` to the response with the `200` status
- **2026-09-10** `23fd289cd5d8`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/epilot/apis/journey-api/changes/v1/journey/configuration/:id/revisions/:revision_id/get.md)

---

[API](https://skmtc.dev/epilot/apis/journey-api.md) - [All operations](https://skmtc.dev/epilot/apis/journey-api/llms.txt) - [OpenAPI document](https://skmtc.dev/epilot/apis/journey-api/revisions/2f11eabb1f37?raw)
