---
title: "Read app content"
method: GET
path: "/v2/documents/{documentId}/app"
tags: ["Apps"]
---

# Read app content

`GET /v2/documents/{documentId}/app`

## Request

- Base URL: `https://blobsrus.omniapp.co/api`
- URL: `https://blobsrus.omniapp.co/api/v2/documents/{documentId}/app`
- Auth: HTTP bearer

<Note>
  This API is currently in development and may change.
</Note>

Read the published app content, including its HTML and settings. The calling user or the user specified with the `userId` parameter must have view access to the app or the API will return an error.

The response can be used to create a draft. Read the draft state before building, as an existing draft may have diverged from the published version in the response.

## Path parameters

- `documentId` string, required

## Query parameters

- `pretty` '0' | '1' | 'true' | 'false'
- `userId` string, uuid

## Response `200`

The published app content.

- AppHTMLSettings: The published app's HTML and sandbox settings.
  - `html` string, required: The complete app HTML document.
  - `settings` AppSettings, required: The app's sandbox settings. A write replaces the whole object; omitted fields use their locked-down defaults. Host lists are normalized (deduped, invalid or Omni-owned hosts dropped) before they are stored.
    - `allowClipboard` boolean: Allow the app to read from and write to the user's clipboard.
    - `allowDefaultMapProviders` boolean: Allow the app to load Omni's default map tile providers.
    - `allowDownloads` boolean: Allow the app to trigger file downloads.
    - `allowExternalNavigation` boolean: Allow the app to navigate to domains outside the `navAllowedDomains` / `safeDomains` allowlists.
    - `allowFullscreen` boolean: Allow the app to enter full screen via `requestFullscreen()` (e.g. a "Present" button).
    - `allowInternalNavigation` boolean: Allow the app to navigate within the Omni instance.
    - `externalNavOpensInNewTab` boolean: When true, external navigation opens in a new tab instead of the current one.
    - `navAllowedDomains` string[]: Domains the app is allowed to navigate to when `navAllowedDomainsEnabled` is true.
    - `navAllowedDomainsEnabled` boolean: When true, restrict navigation to the domains listed in `navAllowedDomains`.
    - `safeDomains` string[]: Domains treated as safe for embedded content when `safeDomainsEnabled` is true.
    - `safeDomainsEnabled` boolean: When true, restrict embedded content to the domains listed in `safeDomains`.

## Other responses

- `401`: Authentication required.
- `403`: Insufficient permissions to read the document. Also returned when a Personal Access Token passes `userId` naming a different member, or when `userId` names an embed user with no live embed session.
- `404`: Document not found, the document has no app, the organization has apps disabled, or `userId` does not name a member of the organization.
- `405`: Method not allowed.

## Changes

- **2026-11-03** `43290040f88f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/omni/apis/omni-api/changes/v2/documents/:documentId/app/get.md)

---

[API](https://skmtc.dev/omni/apis/omni-api.md) - [All operations](https://skmtc.dev/omni/apis/omni-api/llms.txt) - [OpenAPI document](https://skmtc.dev/omni/apis/omni-api/revisions/43290040f88f?raw)
