Managed Deep Agents is in &private preview. Join the waitlist to request access. For the recommended end-to-end workflow, see the quickstart.
Set request defaults
The private preview API uses/v1/deepagents:
X-Api-Key header:
X-Api-Key header returns 401 with {"error": "Unauthorized"}. A key that is invalid or lacks workspace access returns 403 with {"error": "Forbidden"}. These auth responses use a flat {"error": "..."} body, unlike the structured error body returned by other 4xx responses.
Understand resource groups
| Resource group | Purpose |
|---|---|
| Agents | Create and manage Managed Deep Agent resources, including runtime and backend configuration. |
| Threads | Create and manage durable thread state for Managed Deep Agents. |
| Runs | Start and stream Managed Deep Agent runs on threads. |
| MCP servers | Register MCP servers and store credentials referenced by agent tools. |
| MCP tools | List tools exposed by a registered MCP server so clients can build tools.json entries. |
| Auth sessions | Start and poll user OAuth sessions for OAuth MCP servers. |
Configure sandboxes
Create-agent and update-agent payloads can include abackend object. Use default when the agent does not need sandbox-specific backend behavior:
thread_scoped_sandbox or agent_scoped_sandbox when the agent needs a LangSmith sandbox for code execution, filesystem work, or long-running tasks. Sandbox backend settings live under backend.sandbox and are valid only when backend.type is thread_scoped_sandbox or agent_scoped_sandbox:
sandbox object accepts:
| Field | Description |
|---|---|
policy_ids | Sandbox policy IDs to apply. |
idle_ttl_seconds | Idle timeout before the sandbox stops, in seconds. |
delete_after_stop_seconds | Delay before the sandbox is deleted after it stops, in seconds. |
Use common REST commands
Agents
See Deploy an agent for the create and update workflow. For deletion behavior, see Limits and notes.| Task | Endpoint reference |
|---|---|
| Create an agent | POST /v1/deepagents/agents |
| List agents | GET /v1/deepagents/agents |
| Get an agent | GET /v1/deepagents/agents/{agent_id} |
| Update an agent | PATCH /v1/deepagents/agents/{agent_id} |
| Delete an agent | DELETE /v1/deepagents/agents/{agent_id} |
Threads
See Run an agent for creating threads and managing the durable state they hold across runs.| Task | Endpoint reference |
|---|---|
| Create a thread | POST /v1/deepagents/threads |
| Search threads | POST /v1/deepagents/threads/search |
| Count threads | POST /v1/deepagents/threads/count |
| Get a thread | GET /v1/deepagents/threads/{thread_id} |
Runs
See Run an agent for starting runs on a thread and streaming their output.| Task | Endpoint reference |
|---|---|
| Start a thread run | POST /v1/deepagents/threads/{thread_id}/runs |
| Stream a thread run | POST /v1/deepagents/threads/{thread_id}/runs/stream |
| Resolve an interrupt | POST /v1/deepagents/threads/{threadID}/resolve-interrupt |
MCP servers
See Connect tools for registering MCP servers and storing the credentials your agent tools use.| Task | Endpoint reference |
|---|---|
| Create an MCP server | POST /v1/deepagents/mcp-servers |
| List MCP servers | GET /v1/deepagents/mcp-servers |
| Get an MCP server | GET /v1/deepagents/mcp-servers/{mcp_server_id} |
| Update an MCP server | PATCH /v1/deepagents/mcp-servers/{mcp_server_id} |
| Delete an MCP server | DELETE /v1/deepagents/mcp-servers/{mcp_server_id} |
| Register an OAuth provider | POST /v1/deepagents/mcp-servers/{mcp_server_id}/oauth-provider |
MCP tools
See Connect tools for listing the tools a registered server exposes and buildingtools.json entries.
| Task | Endpoint reference |
|---|---|
| List MCP tools | GET /v1/deepagents/mcp/tools |
Auth sessions
See Connect tools for running the OAuth flow that authorizes MCP servers.| Task | Endpoint reference |
|---|---|
| Start an auth session | POST /v1/deepagents/auth-sessions |
| Get an auth session | GET /v1/deepagents/auth-sessions/{session_id} |
Paginate the agents list
GET /v1/deepagents/agents is cursor-paginated. Pass page_size (defaults to 20, maximum 100) and the opaque cursor returned by a previous request. The response wraps results in an items array alongside a next_cursor field that is null on the last page:
name to filter by name substring, sort_by (created_at, updated_at, or name, defaults to updated_at), and sort_order (asc or desc, defaults to desc).
Understand API stability
Routes are versioned at/v1/, but the surface is in private preview and may change in backwards-incompatible ways before general availability. See API stability for breaking-change communication.
The API does not mirror every LangSmith Deployment endpoint in private preview. Endpoint groups such as integrations, triggers, skills, sandboxes, auth providers, and auth tokens are not mirrored yet.
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

