---
title: "Read one specific version's full source, to edit it"
method: GET
path: "/api/v1/apps/{id}/versions/{number}"
tags: ["Apps"]
---

# Read one specific version's full source, to edit it

`GET /api/v1/apps/{id}/versions/{number}`

## Request

- Base URL: `https://saltapp.ai`
- URL: `https://saltapp.ai/api/v1/apps/{id}/versions/{number}`
- Auth: API key in header `api-key`

Same rule and shape as GET.../versions/latest, for a specific version number rather than the app's current latest.

## Path parameters

- `id` string, required
- `number` integer, required

## Response `200`

OK

- AppVersionSource: A version's full editable source: html, actions, data and the full intents manifest (with ops). Deliberately unmapped under X-Salt-Act-For -- a mandate never reads source.
  - `id` string, uuid, required
  - `number` integer, required
  - `html` string, required: ≤ 512 KB UTF-8.
  - `actions` object[], required
    - `id` string, required
    - `label` string, required
    - `input` object
      - `placeholder` string
    - `intent` string: An intent id this SAME version declares. Omit for the ordinary salt.onAction path.
  - `data` object: The shape of the installation's shared (app_states.doc) and/or each person's private (app_private_states.doc) document -- a JSON Schema subset each. ≤ 16 KB.
    - `shared` object
    - `private` object
  - `intents` object[]
    - `id` string, required
    - `title` string, required
    - `description` string
    - `examples` string[]
    - `target` 'shared' | 'private', required
    - `input` object, required: A JSON Schema (our subset) of type object.
    - `ops` object[], required
      - `op` 'append' | 'prepend' | 'set' | 'remove' | 'update' | 'toggle' | 'increment', required
      - `path` string, required: A JSON Pointer, e.g. /items. Never ending in /- -- use append/prepend instead.
      - `value` unknown
      - `where` object: remove/update/toggle: field -> value (or {$input, match: "fuzzy"}).
      - `set` object: update: fields to shallow-merge into each matching item.
      - `field` string: toggle: the boolean field to flip.
      - `by` number: increment: amount to add (default 1).
    - `result` string: A confirmation template, e.g. "Added {input.text}."
  - `icon` 'list' | 'check' | 'poll' | 'calendar' | 'cart' | 'note' | 'timer' | 'heart' | 'star' | 'chart' | 'money' | 'map' | 'book' | 'music' | 'game' | 'home'
  - `tint` 'blue' | 'teal' | 'green' | 'amber' | 'orange' | 'red' | 'pink' | 'violet' | 'slate'
  - `created_at` string, date-time, nullable, required

## Other responses

- `401`: Missing or invalid credentials.
- `404`: Not found.

---

[API](https://skmtc.dev/saltapp/apis/salt-agent-api.md) · [All operations](https://skmtc.dev/saltapp/apis/salt-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/saltapp/apis/salt-agent-api/revisions/a8b8642ab7f8?raw)
