---
title: "Api Public App Runtime"
method: POST
path: "/api/apps/public/{token}/runtime"
tags: ["apps"]
---

# Api Public App Runtime

`POST /api/apps/public/{token}/runtime`

## Request

- Base URL: `https://app.getdot.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://app.getdot.ai/api/apps/public/{token}/runtime`
- Auth: one of:
  - API key in header `X-API-KEY`
  - API key in cookie `Authorization`
  - OAuth 2 (password, token URL `/api/auth/token`)

Public runtime over the active AppBuild's per-query memo, no live compile.

Honours body.refresh (default False), so an embed/share view serves the stored
result rather than re-running the warehouse on every load. The stored result
follows the app's freshness like any view (app_memo.result_max_age_s): a live
app re-runs once it is minutes old, a scheduled one once a scheduled run time
has passed since the result was written (this process's response cache may
serve it up to _PUBLIC_CACHE_TTL longer).
A rebuild mints a new build with an empty memo. A member's ad-hoc Refresh writes
only their own viewer scope (see _user_scope's viewer key) and never reaches
this one.

## Path parameters

- `token` string, required

## Request body

- PublicAppRuntimeRequest
  - `build_id` string, nullable
  - `param_values` object, nullable
  - `refresh` boolean
  - `tabs` unknown
  - `stale_first` boolean
  - `structure_only` boolean
  - `verify_scripts` boolean

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/getdot/apis/dot-api-2.md) · [All operations](https://skmtc.dev/getdot/apis/dot-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/getdot/apis/dot-api-2/revisions/d26fe7163a7f?raw)
