> ## Documentation Index
> Fetch the complete documentation index at: https://veryfront.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create sandbox

> Create a sandbox.

`veryfront__create_sandbox`

Requires project.sandboxes.manage.

## Access

No external-service connection is required. Use a Veryfront credential with access to the requested resources.

**Call type:** Can change resources.

## Arguments

| Field | Type | Required | Description and constraints |
| - | - | - | - |
| `access_scope` | `string` | Yes | Private sandboxes require creator credentials or a creator-owned MCP OAuth grant. Values: `"project"`, `"private"`. |
| `project_reference` | `string` | No | Project UUID or slug to bill. When set, the project owner is billed. |
| `environment_id` | `string` | No | Environment whose variables are copied once into the sandbox; it also identifies the billing project. Format: `uuid`. |
| `ttl_mode` | `string` | No | Sandbox lifetime policy. `default` uses the platform’s idle and maximum lifetime limits. Values: `"default"`, `"duration"`, `"always_on"`. |
| `ttl_hours` | `integer` | No | Required when `ttl_mode` is duration. Number of hours before cleanup, up to 24. Maximum: `24`. |

## Example request

Send this JSON-RPC request through an initialized MCP client. Replace sample identifiers and values before calling the tool. See [MCP client setup](https://veryfront.com/docs/cloud/getting-started/connect-mcp.md).

```json title="request.json" theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "veryfront__create_sandbox",
    "arguments": {
      "access_scope": "project"
    }
  }
}
```

## Result

The published output shape is summarized below. Inspect both the MCP response content and `isError` when handling a call.

| Field | Type | Required | Description and constraints |
| - | - | - | - |
| `id` | `string` | Yes | Unique identifier for the returned record. Format: `uuid`. |
| `short_id` | `string` | Yes | |
| `endpoint` | `string` | Yes | Sandbox endpoint URL. |
| `status` | `string` | Yes | Sandbox lifecycle status. Values: `"pending"`, `"provisioning"`, `"running"`, `"error"`, `"deleting"`. |
| `project_id` | `string or null` | Yes | Project identifier associated with this result. |
| `run_id` | `string or null` | No | Agent run that created this sandbox. |
| `stopped_at` | `string or null` | No | Compute cleanup completed; only session history remains. |
| `access_scope` | `string` | Yes | Values: `"project"`, `"private"`. |
| `workspace_storage` | `string` | Yes | Persistent workspaces survive runtime pod replacement. Deleting the sandbox also deletes its workspace. Values: `"ephemeral"`, `"persistent"`. |
| `ttl_mode` | `string` | Yes | Values: `"default"`, `"duration"`, `"always_on"`. |
| `ttl_hours` | `integer or null` | Yes | |
| `expires_at` | `string or null` | Yes | |
| `created_at` | `string` | Yes | Creation timestamp in ISO 8601 format. |
| `last_activity_at` | `string or null` | Yes | |
| `variable_snapshot` | `object` | No | Snapshot provenance on sandbox details. Variables are copied once, without live synchronization. No variable keys or values are included. |

## Full schemas

```json title="input-schema.json" theme={null}
{
  "type": "object",
  "properties": {
    "access_scope": {
      "type": "string",
      "enum": [
        "project",
        "private"
      ],
      "description": "Private sandboxes require creator credentials or a creator-owned MCP OAuth grant."
    },
    "project_reference": {
      "type": "string",
      "description": "Project UUID or slug to bill. When set, the project owner is billed."
    },
    "environment_id": {
      "type": "string",
      "format": "uuid",
      "description": "Environment whose variables are copied once into the sandbox; it also identifies the billing project."
    },
    "ttl_mode": {
      "type": "string",
      "enum": [
        "default",
        "duration",
        "always_on"
      ],
      "description": "Sandbox lifetime policy. `default` uses the platform’s idle and maximum lifetime limits."
    },
    "ttl_hours": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 24,
      "description": "Required when ttl_mode is duration. Number of hours before cleanup, up to 24."
    }
  },
  "required": [
    "access_scope"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#",
  "description": "Arguments for the create_sandbox tool."
}
```

```json title="output-schema.json" theme={null}
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Unique identifier for the returned record."
    },
    "short_id": {
      "type": "string"
    },
    "endpoint": {
      "type": "string",
      "description": "Sandbox endpoint URL."
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "provisioning",
        "running",
        "error",
        "deleting"
      ],
      "description": "Sandbox lifecycle status."
    },
    "project_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid",
          "description": "Project identifier associated with this result."
        },
        {
          "type": "null",
          "description": "Project identifier associated with this result."
        }
      ],
      "description": "Project identifier associated with this result."
    },
    "run_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid",
          "description": "Run identifier associated with this result."
        },
        {
          "type": "null",
          "description": "Run identifier associated with this result."
        }
      ],
      "description": "Agent run that created this sandbox."
    },
    "stopped_at": {
      "type": [
        "string",
        "null"
      ],
      "description": "Compute cleanup completed; only session history remains."
    },
    "access_scope": {
      "type": "string",
      "enum": [
        "project",
        "private"
      ]
    },
    "workspace_storage": {
      "type": "string",
      "enum": [
        "ephemeral",
        "persistent"
      ],
      "description": "Persistent workspaces survive runtime pod replacement. Deleting the sandbox also deletes its workspace."
    },
    "ttl_mode": {
      "type": "string",
      "enum": [
        "default",
        "duration",
        "always_on"
      ]
    },
    "ttl_hours": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0
        },
        {
          "type": "null",
          "description": "The ttl hours returned by the tool."
        }
      ]
    },
    "expires_at": {
      "type": [
        "string",
        "null"
      ]
    },
    "created_at": {
      "type": "string",
      "description": "Creation timestamp in ISO 8601 format."
    },
    "last_activity_at": {
      "type": [
        "string",
        "null"
      ]
    },
    "variable_snapshot": {
      "type": "object",
      "properties": {
        "source_environment_id": {
          "anyOf": [
            {
              "type": "string",
              "format": "uuid"
            },
            {
              "type": "null",
              "description": "The source environment id returned by the tool."
            }
          ]
        },
        "variable_count": {
          "type": "integer",
          "minimum": 0
        },
        "copied_at": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "source_environment_id",
        "variable_count",
        "copied_at"
      ],
      "additionalProperties": false,
      "description": "Snapshot provenance on sandbox details. Variables are copied once, without live synchronization. No variable keys or values are included."
    }
  },
  "required": [
    "id",
    "short_id",
    "endpoint",
    "status",
    "project_id",
    "access_scope",
    "workspace_storage",
    "ttl_mode",
    "ttl_hours",
    "expires_at",
    "created_at",
    "last_activity_at"
  ],
  "additionalProperties": false,
  "description": "Structured result returned by the create_sandbox tool.",
  "$schema": "http://json-schema.org/draft-07/schema#"
}
```

<details>
  <summary>Try this tool</summary>

  Replace sample arguments with values for your project or connected account. Calls run only when you select Run tool.

  MCP tool call

  Call `veryfront__create_sandbox` against the Veryfront MCP endpoint.

  Bearer token or API key

  Arguments (JSON)

  Run this tool with these arguments.

  Run tool

  Output JSON

  <pre />
</details>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.