---
title: "Get revision detail"
method: GET
path: "/api/v1/apps/{app_id}/revisions/{revision_id}"
tags: ["Apps"]
---

# Get revision detail

`GET /api/v1/apps/{app_id}/revisions/{revision_id}`

Returns full revision data including compose file, encrypted env, and user config.

## Path parameters

- `app_id` string, required — Hex app identifier
- `revision_id` string, required

## Query parameters

- `raw_compose_file` boolean — Return compose_file as string instead of dict

## Response `200`

Revision detail with compose file

- AppRevisionDetailResponse — Full revision detail with configuration data.
  - `revision_id` string, required — Revision record identifier (hashid of snowflake_id)
  - `app_id` string, required — Hex app identifier
  - `vm_uuid` string, required — CVM UUID
  - `compose_hash` string, required — SHA-256 hash of compose file
  - `compose_file` union, required — Docker compose content (dict or raw string)
    - object
    - string
  - `encrypted_env` string, required — Hex-encoded encrypted environment variables
  - `user_config` string, required — JSON user configuration string
  - `created_at` string, required — Revision timestamp (ISO 8601)
  - `trace_id` string, nullable, required — Request trace ID for debugging
  - `operation_type` string, required — Operation: deploy, update, restart, etc.
  - `triggered_by` UserRef — Minimal user reference for embedding in responses.
    - `object_type` 'user' — Fixed value 'user'
    - `id` string, hashid, nullable — A hashed identifier that maps to an internal database ID
    - `username` string, nullable — Display username
    - `avatar_url` string, nullable — Gravatar or OAuth provider avatar URL
  - `cvm` CvmRef — Minimal CVM reference for embedding in responses.
    - `object_type` 'cvm' — Fixed value 'cvm'
    - `vm_uuid` string, required — CVM instance UUID
    - `app_id` string, nullable — Deterministic app identifier from manifest
    - `name` string, nullable — User-assigned CVM name
  - `workspace` WorkspaceRef — Minimal workspace reference for embedding in responses.
    - `object_type` 'workspace' — Fixed value 'workspace'
    - `id` string, hashid, required — Hashed workspace ID
    - `name` string, required — Workspace display name
    - `slug` string, nullable — URL-safe workspace identifier
    - `avatar_url` string, nullable — Workspace avatar URL from profile

## Other responses

- `401` — Not authenticated
- `403` — No workspace access
- `404` — App or revision not found
- `422` — Validation Error

---

[API](https://skmtc.dev/phala/apis/phala-cloud-api.md) · [All operations](https://skmtc.dev/phala/apis/phala-cloud-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/phala/phala-cloud-api/revisions/83c6ae62e860/schema)
