PromptFloe Developer Docs
API reference

Apps

The /v1/apps resource — list, generate, fetch, fork, and delete generated apps. Every app belongs to a chat that owns its full edit history.

#The App object

FieldTypeDescription
idstringUnique app id (e.g. app_abc).
chatIdstringThe chat this app belongs to.
workspaceIdstringOwner workspace.
promptstringOriginal prompt that generated the app.
templatestring | nullStarter template id, if any.
previewUrlstring | nullLive preview URL while the WebContainer is up.
deployUrlstring | nullProduction URL if deployed.
status"draft" | "ready" | "deployed"Lifecycle stage.
createdAtISO 8601
updatedAtISO 8601

#List apps

GET/v1/apps
const { apps, nextCursor } = await client.apps.list({
  limit: 20,
  cursor,           // pagination
  status: 'ready',  // optional filter
});

#Get an app

GET/v1/apps/:id
const app = await client.apps.get('app_abc');

#Generate an app

POST/v1/apps/generate

Streaming endpoint — see Generate an app for the event reference.

FieldTypeDescription
promptrequiredstringNatural-language description.
templatestringOptional starter id.
chatIdstringContinue an existing chat.
augmentersstring[]Augmenters to run after the build.
modelOverridestringForce a specific model.
workspaceContextOverrideobjectPer-run context override.

#Read app files

GET/v1/apps/:id/files
const files = await client.apps.files('app_abc');
// files is Record<path, contents>
console.log(files['src/App.tsx']);

#Update files

PATCH/v1/apps/:id/files

Apply a partial file patch. The server hot-reloads the preview and writes a commit.

await client.apps.patchFiles('app_abc', {
  'src/components/Hero.tsx': '...new contents...',
  'src/styles/hero.css':     '...',
});

#Fork an app

POST/v1/apps/:id/fork

Create a new chat with a copy of the app's files. Useful for branching off experimental changes.

#Delete an app

DELETE/v1/apps/:id

Soft-delete. Recoverable for 30 days. Pass ?hard=true to permanently purge (admin scope only).

#Where to go next

PromptFloe developer docs