---
title: "Stop a session"
method: POST
path: "/v2/sandboxes/sessions/{sessionId}/stop"
tags: ["sandboxes"]
---

# Stop a session

`POST /v2/sandboxes/sessions/{sessionId}/stop`

Stops a running session and releases its allocated resources. All running processes within the session will be terminated. This action cannot be undone. A stopped session cannot be restarted.

## Path parameters

- `sessionId` string, required — The unique identifier of the session to stop.

## Query parameters

- `teamId` string
- `slug` string

## Response `200`

The session was stopped successfully.

- union
  - object
    - `session` Session, required — This object contains information related to a Vercel Sandbox Session. v2 endpoints return "session" instead of "sandbox" as the response wrapper key.
      - `sourceSandboxName` string, required — The name of the source sandbox.
      - `projectId` string, required — The unique identifier of the project associated with this session.
      - `id` string, required — The unique identifier of the sandbox.
      - `memory` number, required — Memory allocated to this sandbox in MB.
      - `vcpus` number, required — Number of vCPUs allocated to this sandbox.
      - `region` string, required — The region where the sandbox is hosted.
      - `runtime` string, required — The runtime of the sandbox.
      - `timeout` number, required — The maximum amount of time the sandbox will run for in milliseconds.
      - `status` 'aborted' | 'failed' | 'pending' | 'running' | 'snapshotting' | 'stopped' | 'stopping', required — The status of the sandbox.
      - `requestedAt` number, required — The time when the sandbox was requested, in milliseconds since the epoch.
      - `startedAt` number — The time when the sandbox was started, in milliseconds since the epoch.
      - `cwd` string, required — The working directory of the sandbox.
      - `requestedStopAt` number — The time when the sandbox was requested to stop, in milliseconds since the epoch.
      - `stoppedAt` number — The time when the sandbox was stopped, in milliseconds since the epoch.
      - `abortedAt` number — The time when the sandbox was aborted, in milliseconds since the epoch.
      - `duration` number — The duration of the sandbox in milliseconds.
      - `sourceSnapshotId` string — The unique identifier of the snapshot associated with this sandbox, if any.
      - `snapshottedAt` number — The time when a snapshot was requested, in milliseconds since the epoch.
      - `createdAt` number, required — The time when the sandbox was created, in milliseconds since the epoch.
      - `updatedAt` number, required — The last time the sandbox was updated, in milliseconds since the epoch.
      - `networkPolicy` SandboxNetworkPolicy — The network policy applied to this sandbox, if any.
        - `mode` 'allow-all' | 'custom' | 'deny-all', required — The network policy mode. - 'allow-all': All traffic is allowed. - 'deny-all': All traffic is blocked. - 'custom': Traffic is controlled by explicit allow/deny rules.
        - `allowedDomains` string[] — List of domain names the sandbox is allowed to connect to. Supports wildcard patterns (e.g., "*.vercel.com" matches all subdomains).
        - `allowedCIDRs` string[] — List of IP address ranges (in CIDR notation) the sandbox is allowed to connect to.
        - `deniedCIDRs` string[] — List of IP address ranges (in CIDR notation) the sandbox is blocked from connecting to. These rules take precedence over all allowed rules.
        - `injectionRules` SandboxInjectionRule[] — HTTP header injection rules for outgoing requests matching specific domains.
          - `domain` string, required — The domain (or pattern) that this injection rule applies to. Supports wildcards like *.vercel.com.
          - `headerNames` string[] — The names of HTTP headers that have value that will be injected for requests to this domain.
      - `activeCpuDurationMs` number — The amount of CPU time the sandbox consumed, if available, in milliseconds. This value is only available once the sandbox is stopped, and only if it stopped successfully.
      - `networkTransfer` object — The quantity of data transfered to and from the sandbox, in bytes. This value is only available once the sandbox is stopped, and only if it stopped successfully.
        - `ingress` number, required
        - `egress` number, required
  - object
    - `snapshot` Snapshot, required — This object contains information related to a Snapshot of a Vercel Sandbox session (v2 API).
      - `id` string, required — The unique identifier of the snapshot.
      - `sourceSessionId` string, required — The unique identifier of the session from which the snapshot was created.
      - `region` string — The region where the snapshot is stored.
      - `status` 'created' | 'deleted' | 'failed', required — The status of the snapshot.
      - `sizeBytes` number, required — The size of the snapshot in bytes.
      - `expiresAt` number — The time when the snapshot will expire, in milliseconds since the epoch. If not set, the snapshot does not have any expiration.
      - `createdAt` number, required — The time when the snapshot was created, in milliseconds since the epoch.
      - `updatedAt` number, required — The last time the snapshot was updated, in milliseconds since the epoch.
      - `lastUsedAt` number, required — The last time the snapshot was used (e.g. to resume or create a sandbox), in milliseconds since the epoch. Falls back to `createdAt` for older snapshots that predate this field.
      - `creationMethod` 'automatic' | 'manual' — The method used to create the snapshot.
      - `parentId` string — The unique identifier of the parent snapshot, if this snapshot was created from another snapshot.
    - `sandbox` NamedSandbox, required — This object contains information related to a Vercel NamedSandbox.
      - `name` string, required — The unique identifier of the sandbox.
      - `currentSnapshotId` string — Current snapshot ID that the named sandbox is pointing to.
      - `currentSessionId` string, required — Current session ID the sandbox is pointing to.
      - `status` 'running' | 'stopped' | 'stopping', required — The status of the current sandbox.
      - `statusUpdatedAt` number, required — The time when the sandbox status was last updated, in milliseconds since the epoch.
      - `persistent` false | true, required — Whether the sandbox persists its state across restarts via automatic snapshots.
      - `region` string — The region the sandbox is configured to run in: the region set on the sandbox, otherwise the project-level default, then the platform default. Where a running session actually landed is reported by `session.region`.
      - `vcpus` number — Number of virtual CPUs allocated.
      - `memory` number — Memory allocated in MB.
      - `runtime` string — Runtime identifier.
      - `image` string — Digest-pinned reference of the container image the sandbox was created from, when it was created from an image ("{repository}@{manifestDigest}").
      - `timeout` number — Timeout in milliseconds.
      - `snapshotExpiration` number — Default snapshot expiration time in milliseconds. 0 means no expiration.
      - `keepLastSnapshots` object — Keep-last snapshot configuration.
        - `count` number, required — Number of most recent snapshots to keep.
        - `expiration` number — Expiration time in milliseconds for kept snapshots.
        - `deleteEvicted` false | true, required — Whether to immediately delete evicted snapshots.
      - `networkPolicy` object — Network policy configuration.
        - `mode` 'allow-all' | 'custom' | 'default-allow' | 'default-deny' | 'deny-all', required
        - `allowedDomains` string[]
        - `allowedCIDRs` string[]
        - `deniedCIDRs` string[]
      - `totalEgressBytes` number — Cumulative egress bytes across all sandbox runs.
      - `totalIngressBytes` number — Cumulative ingress bytes across all sandbox runs.
      - `totalActiveCpuDurationMs` number — Cumulative active CPU duration in milliseconds across all sandbox runs.
      - `totalDurationMs` number — Cumulative wall-clock duration in milliseconds across all sandbox runs.
      - `cwd` string — The working directory of the sandbox.
      - `tags` object — Key-value tags attached to the named sandbox.
      - `mounts` object — Key-value pairs of mount path and drive.
      - `createdAt` number, required — The time when the named sandbox was created, in milliseconds since the epoch.
      - `updatedAt` number, required — The time when the named sandbox was last updated, in milliseconds since the epoch.
      - `expiresAt` number — The time at which the currently running sandbox will time out, in milliseconds since the epoch. Only present while a session is running.
    - `session` Session, required — This object contains information related to a Vercel Sandbox Session. v2 endpoints return "session" instead of "sandbox" as the response wrapper key.
      - `sourceSandboxName` string, required — The name of the source sandbox.
      - `projectId` string, required — The unique identifier of the project associated with this session.
      - `id` string, required — The unique identifier of the sandbox.
      - `memory` number, required — Memory allocated to this sandbox in MB.
      - `vcpus` number, required — Number of vCPUs allocated to this sandbox.
      - `region` string, required — The region where the sandbox is hosted.
      - `runtime` string, required — The runtime of the sandbox.
      - `timeout` number, required — The maximum amount of time the sandbox will run for in milliseconds.
      - `status` 'aborted' | 'failed' | 'pending' | 'running' | 'snapshotting' | 'stopped' | 'stopping', required — The status of the sandbox.
      - `requestedAt` number, required — The time when the sandbox was requested, in milliseconds since the epoch.
      - `startedAt` number — The time when the sandbox was started, in milliseconds since the epoch.
      - `cwd` string, required — The working directory of the sandbox.
      - `requestedStopAt` number — The time when the sandbox was requested to stop, in milliseconds since the epoch.
      - `stoppedAt` number — The time when the sandbox was stopped, in milliseconds since the epoch.
      - `abortedAt` number — The time when the sandbox was aborted, in milliseconds since the epoch.
      - `duration` number — The duration of the sandbox in milliseconds.
      - `sourceSnapshotId` string — The unique identifier of the snapshot associated with this sandbox, if any.
      - `snapshottedAt` number — The time when a snapshot was requested, in milliseconds since the epoch.
      - `createdAt` number, required — The time when the sandbox was created, in milliseconds since the epoch.
      - `updatedAt` number, required — The last time the sandbox was updated, in milliseconds since the epoch.
      - `networkPolicy` SandboxNetworkPolicy — The network policy applied to this sandbox, if any.
        - `mode` 'allow-all' | 'custom' | 'deny-all', required — The network policy mode. - 'allow-all': All traffic is allowed. - 'deny-all': All traffic is blocked. - 'custom': Traffic is controlled by explicit allow/deny rules.
        - `allowedDomains` string[] — List of domain names the sandbox is allowed to connect to. Supports wildcard patterns (e.g., "*.vercel.com" matches all subdomains).
        - `allowedCIDRs` string[] — List of IP address ranges (in CIDR notation) the sandbox is allowed to connect to.
        - `deniedCIDRs` string[] — List of IP address ranges (in CIDR notation) the sandbox is blocked from connecting to. These rules take precedence over all allowed rules.
        - `injectionRules` SandboxInjectionRule[] — HTTP header injection rules for outgoing requests matching specific domains.
          - `domain` string, required — The domain (or pattern) that this injection rule applies to. Supports wildcards like *.vercel.com.
          - `headerNames` string[] — The names of HTTP headers that have value that will be injected for requests to this domain.
      - `activeCpuDurationMs` number — The amount of CPU time the sandbox consumed, if available, in milliseconds. This value is only available once the sandbox is stopped, and only if it stopped successfully.
      - `networkTransfer` object — The quantity of data transfered to and from the sandbox, in bytes. This value is only available once the sandbox is stopped, and only if it stopped successfully.
        - `ingress` number, required
        - `egress` number, required

## Other responses

- `400` — One of the provided values in the request query is invalid.
- `401` — The request is not authorized.
- `403` — You do not have permission to access this resource.
- `404`
- `410`
- `422`
- `429`
- `500`

---

[API](https://skmtc.net/vercel/apis/api.md) · [All operations](https://skmtc.net/vercel/apis/api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/vercel/api/versions/61d1ba3f6dac/schema)
