`GET /api/apps/{id}/files` -- the App's file tree (metadata only).
GET
/api/apps/{id}/files
const url = 'https://example.com/api/apps/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/files';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/api/apps/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/filesParameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”id
required
string format: uuid
Responses
Section titled “Responses”Media typeapplication/json
Array<object>
File-tree row on the wire – metadata only (no content), hex etag.
object
etag
required
string
is_binary
required
boolean
language
required
string
path
required
string
size_bytes
required
integer format: int64
tracks_catalog
required
#1212 — this file still tracks its marketplace listing, so a catalog update will replace it and an edit here will take it off that track.
A boolean rather than the version id: the id is internal bookkeeping, and what a reader needs to decide is binary. False covers all three ways a file can be the workspace’s own — hand-written, repo-synced, or a path the listing declared as its whitelabel overlay.
boolean
updated_at
required
string format: date-time
Examplegenerated
[ { "etag": "example", "is_binary": true, "language": "example", "path": "example", "size_bytes": 1, "tracks_catalog": true, "updated_at": "2026-04-15T12:00:00Z" }]