---
title: "Start a session-owned server from .ao/launch.json and open its application preview"
method: POST
path: "/api/v1/sessions/{sessionId}/preview/server"
tags: ["sessions"]
---

# Start a session-owned server from .ao/launch.json and open its application preview

`POST /api/v1/sessions/{sessionId}/preview/server`

## Path parameters

- `sessionId` string, required — Session identifier, e.g. project-1.

## Headers

- `X-AO-Browser-Capability` string — Opaque browser capability injected into the owning AO worker.

## Request body

- StartPreviewServerRequest
  - `configuration` string — Named preview configuration. Optional when exactly one configuration exists.

## Response `200`

OK

- PreviewServerStatusResponse
  - `configuration` string
  - `error` string
  - `logs` string[], required
  - `port` integer
  - `sessionId` string, required
  - `startedAt` string, date-time
  - `state` 'stopped' | 'starting' | 'ready' | 'stopping' | 'failed', required
  - `targetKind` 'app' | 'api'
  - `url` string

## Other responses

- `400` — Bad Request
- `403` — Forbidden
- `404` — Not Found
- `408` — Request Timeout
- `409` — Conflict
- `422` — Unprocessable Entity
- `500` — Internal Server Error
- `501` — Not Implemented
- `504` — Gateway Timeout

## Changes

- **2026-07-29** `0d7d65412642` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon/changes/api/v1/sessions/:sessionId/preview/server/post.md)

---

[API](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon.md) · [All operations](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/composiohq/agent-orchestrator-http-daemon/revisions/513f2a8dd71b/schema)
