---
title: "Stop the session browser and release its resources [write]"
method: DELETE
path: "/sessions/{id}/browser"
---

# Stop the session browser and release its resources \[write\]

`DELETE /sessions/{id}/browser`

## Request

- Base URL: `https://api.agentsky.dev/v1`
- URL: `https://api.agentsky.dev/v1/sessions/{id}/browser`
- Auth: HTTP bearer

Fences new browser actions before capturing the final page and releasing the browser. Repeated requests retry unfinished cleanup; a session without a browser returns null. This operation stops browser access; use POST /sessions/{id}/interrupt to also interrupt the agent's turn.

## Path parameters

- `id` string, required

## Response `200`

Authorized browser state, or null when the session has no browser. Provider credentials, interactive viewer links and browser connection URLs are never returned.

- object
  - `browser` SessionBrowser, required
    - `id` string, required
    - `status` 'preparing' | 'running' | 'completed' | 'blocked' | 'failed' | 'stopped', required
    - `viewerUrl` unknown, required
    - `url` string, required
    - `startedAt` string, date-time, required
    - `expiresAt` string, date-time, required
    - `endedAt` string, date-time, nullable, required
    - `elapsedMs` number, required
    - `actionCount` integer, required
    - `progress` string
    - `claim` string: The agent's completion claim, separate from task verification.
    - `resolvedModel` string: Resolved Jev model reported by OpenRouter.
    - `error` string
    - `actions` object[], required
      - `id` string, required
      - `verb` string, required
      - `detail` string, required
      - `timestamp` string, date-time, required
      - `status` string, required
    - `verification` object, required
      - `status` 'passed' | 'failed' | 'unverified', required
      - `checks` object[], required
        - `label` string, required
        - `status` 'passed' | 'failed' | 'unverified', required
        - `detail` string, required
    - `lastScreenshot` string, nullable, required: Latest observed or final JPEG as a data URL when capture succeeded.
    - `lastScreenshotAt` string, date-time, nullable: Time the latest screenshot was captured successfully.
    - `cleanupPending` boolean, required: A terminal browser may still be releasing provider resources; cleanup is retried durably.
    - `costs` object, required: Recorded billed USD, including the fixed Mercury text-entry helper. Receipts can arrive after completion.
      - `decisionUsd` number, required
      - `helperUsd` number, required
      - `browserUsd` number, required
      - `runtimeUsd` number, required
      - `totalUsd` number, required: Metered cost including waived usage.
      - `chargedUsd` number, required: Actual amount charged after billing waivers.

## Other responses

- `default`: Error — { error: { code, message } }

## Changes

- **2026-11-02** `e5e8f0229a99`: 1 info
  - added the media type `application/json` for the response with the status `default`

[Operation history](https://skmtc.dev/agentsky/apis/agentsky-developer-api/changes/sessions/:id/browser/delete.md)

---

[API](https://skmtc.dev/agentsky/apis/agentsky-developer-api.md) - [All operations](https://skmtc.dev/agentsky/apis/agentsky-developer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/agentsky/apis/agentsky-developer-api/revisions/0d435187cd55?raw)
