Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/langgraph-deployments-v2-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: LangSmith Deployment Control Plane Agent Connections (v2) Agent Connections (v2) Deployments (v2) Deployments (v2) API
description: 'The LangSmith Deployment Control Plane API is used to programmatically create and manage
Agent Server deployments. For example, the APIs can be orchestrated to
create custom CI/CD workflows.
## Host
https://api.host.langchain.com
## Authentication
To authenticate with the LangSmith Deployment Control Plane API, set the `X-Api-Key` header
to a valid [LangSmith API key](https://docs.langchain.com/langsmith/create-account-api-key#create-an-api-key).
## Versioning
Each endpoint path is prefixed with a version (e.g. `v1`, `v2`).
## Quick Start
1. Call `POST /v2/deployments` to create a new Deployment. The response body contains the Deployment ID (`id`) and the ID of the latest (and first) revision (`latest_revision_id`).
1. Call `GET /v2/deployments/{deployment_id}` to retrieve the Deployment. Set `deployment_id` in the URL to the value of Deployment ID (`id`).
1. Poll for revision `status` until `status` is `DEPLOYED` by calling `GET /v2/deployments/{deployment_id}/revisions/{latest_revision_id}`.
1. Call `PATCH /v2/deployments/{deployment_id}` to update the deployment.
'
version: 0.1.0
servers:
- url: https://api.host.langchain.com
description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: Deployments (v2)
paths:
/v2/deployments:
get:
tags:
- Deployments (v2)
summary: List Deployments
description: List all deployments.
operationId: list_deployments_v2_deployments_get
security:
- API Key: []
- Tenant ID: []
- Bearer Auth: []
parameters:
- name: limit
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
description: Maximum number of resources to return.
default: 20
title: Limit
description: Maximum number of resources to return.
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
description: Pagination offset. Pass this value to subsequent requests to fetch the next page of resources.
default: 0
title: Offset
description: Pagination offset. Pass this value to subsequent requests to fetch the next page of resources.
- name: name_contains
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Name of the deployment to filter by.
title: Name Contains
description: Name of the deployment to filter by.
- name: status
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: '`status` of the deployment to filter by.'
title: Status
description: '`status` of the deployment to filter by.'
- name: remote_reconciled
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
description: Flag to filter by remote reconciled deployments.
title: Remote Reconciled
description: Flag to filter by remote reconciled deployments.
- name: tag_value_ids
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Comma separated list of tag value IDs of the deployment to filter by.
title: Tag Value Ids
description: Comma separated list of tag value IDs of the deployment to filter by.
- name: image_version
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Image version to filter by.
title: Image Version
description: Image version to filter by.
- name: deployment_type
in: query
required: false
schema:
anyOf:
- enum:
- dev_free
- dev
- prod
type: string
- type: 'null'
description: Deployment type to filter by.
title: Deployment Type
description: Deployment type to filter by.
- name: deployment_ids
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Comma separated list of deployment IDs to filter by.
title: Deployment Ids
description: Comma separated list of deployment IDs to filter by.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/DeploymentsList'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
post:
tags:
- Deployments (v2)
summary: Create Deployment
description: Create a new deployment.
operationId: create_deployment_v2_deployments_post
security:
- API Key: []
- Tenant ID: []
- Bearer Auth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DeploymentCreateRequest'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Deployment'
'400':
description: Bad Request
content:
application/json:
example:
detail: Error description.
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- Deployments (v2)
summary: Delete Deployments
description: "Delete multiple deployments with partial success support.\n\nReturns:\n - 200: All deployments deleted successfully\n - 207: Some deployments deleted successfully, some failed"
operationId: delete_deployments_v2_deployments_delete
security:
- API Key: []
- Tenant ID: []
- Bearer Auth: []
parameters:
- name: deployment_ids
in: query
required: true
schema:
type: array
items:
type: string
format: uuid
maxItems: 100
title: Deployment Ids
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'404':
description: Not Found
content:
application/json:
example:
detail: Deployment ID {deployment_id} not found.
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v2/deployments/{deployment_id}:
get:
tags:
- Deployments (v2)
summary: Get Deployment
description: Get a deployment by ID.
operationId: get_deployment_v2_deployments__deployment_id__get
security:
- API Key: []
- Tenant ID: []
- Bearer Auth: []
parameters:
- name: deployment_id
in: path
required: true
schema:
type: string
format: uuid
title: Deployment ID
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Deployment'
'404':
description: Not Found
content:
application/json:
example:
detail: Deployment ID {deployment_id} not found.
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
patch:
tags:
- Deployments (v2)
summary: Patch Deployment
description: Patch a deployment by ID.
operationId: patch_deployment_v2_deployments__deployment_id__patch
security:
- API Key: []
- Tenant ID: []
- Bearer Auth: []
parameters:
- name: deployment_id
in: path
required: true
schema:
type: string
format: uuid
title: Deployment ID
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DeploymentPatchRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Deployment'
'404':
description: Not Found
content:
application/json:
example:
detail: Deployment ID {deployment_id} not found.
'400':
description: Bad Request
content:
application/json:
example:
detail: Error description.
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- Deployments (v2)
summary: Delete Deployment
description: Delete a deployment by ID.
operationId: delete_deployment_v2_deployments__deployment_id__delete
security:
- API Key: []
- Tenant ID: []
- Bearer Auth: []
parameters:
- name: deployment_id
in: path
required: true
schema:
type: string
format: uuid
title: Deployment ID
- name: delete_tracing_project
in: query
required: false
schema:
type: boolean
description: Optionally delete tracing project for the deployment.
default: false
title: Delete Tracing Project
description: Optionally delete tracing project for the deployment.
responses:
'204':
description: Successful Response
'404':
description: Not Found
content:
application/json:
example:
detail: Deployment ID {deployment_id} not found.
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v2/deployments/{deployment_id}/revisions:
get:
tags:
- Deployments (v2)
summary: List Revisions
description: List all revisions for a deployment.
operationId: list_revisions_v2_deployments__deployment_id__revisions_get
security:
- API Key: []
- Tenant ID: []
- Bearer Auth: []
parameters:
- name: deployment_id
in: path
required: true
schema:
type: string
format: uuid
title: Deployment ID
- name: limit
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
description: Maximum number of resources to return.
default: 20
title: Limit
description: Maximum number of resources to return.
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
description: Pagination offset. Pass this value to subsequent requests to fetch the next page of resources.
default: 0
title: Offset
description: Pagination offset. Pass this value to subsequent requests to fetch the next page of resources.
- name: status
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Comma separated list of revision `status` (CREATING, QUEUED, AWAITING_BUILD, BUILDING, AWAITING_DEPLOY, DEPLOYING, CREATE_FAILED, BUILD_FAILED, DEPLOY_FAILED, DEPLOYED, SKIPPED, INTERRUPTED, UNKNOWN) fields to filter by.
title: Status
description: Comma separated list of revision `status` (CREATING, QUEUED, AWAITING_BUILD, BUILDING, AWAITING_DEPLOY, DEPLOYING, CREATE_FAILED, BUILD_FAILED, DEPLOY_FAILED, DEPLOYED, SKIPPED, INTERRUPTED, UNKNOWN) fields to filter by.
- name: remote_reconciled
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
description: Flag to filter by remote reconciled revisions.
title: Remote Reconciled
description: Flag to filter by remote reconciled revisions.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/RevisionsList'
'404':
description: Not Found
content:
application/json:
example:
detail: Deployment ID {deployment_id} not found.
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v2/deployments/{deployment_id}/revisions/{revision_id}:
get:
tags:
- Deployments (v2)
summary: Get Revision
description: Get a revision by ID for a deployment.
operationId: get_revision_v2_deployments__deployment_id__revisions__revision_id__get
security:
- API Key: []
- Tenant ID: []
- Bearer Auth: []
parameters:
- name: deployment_id
in: path
required: true
schema:
type: string
format: uuid
title: Deployment ID
- name: revision_id
in: path
required: true
schema:
type: string
format: uuid
title: Revision ID
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Revision'
'404':
description: Not Found
content:
application/json:
example:
detail: Deployment ID {deployment_id} not found.
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v2/deployments/{deployment_id}/revisions/{revision_id}/redeploy:
post:
tags:
- Deployments (v2)
summary: Redeploy Revision
description: Redeploy a specific revision ID.
operationId: redeploy_revision_v2_deployments__deployment_id__revisions__revision_id__redeploy_post
security:
- API Key: []
- Tenant ID: []
- Bearer Auth: []
parameters:
- name: deployment_id
in: path
required: true
schema:
type: string
format: uuid
title: Deployment ID
- name: revision_id
in: path
required: true
schema:
type: string
format: uuid
title: Revision ID
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Deployment'
'404':
description: Not Found
content:
application/json:
example:
detail: Deployment ID {deployment_id} not found.
'400':
description: Bad Request
content:
application/json:
example:
detail: Error description.
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
Deployment:
properties:
name:
type: string
title: Name
description: Name of the deployment.<br><br>A LangSmith tracing project with the same name will also automatically be created. This cannot be changed once the deployment is created.
source:
type: string
enum:
- github
- external_docker
- internal_docker
- internal_source
title: Source
description: Deploy from a GitHub repository (`github`) or an external Docker image (`external_docker`).<br><br>Deploying from GitHub is only available for Cloud SaaS deployments. Deploying from an external Docker image is only available for self-hosted deployments. This cannot be changed once the deployment is created.
source_config:
$ref: '#/components/schemas/SourceConfig'
source_revision_config:
$ref: '#/components/schemas/SourceRevisionConfig'
secrets:
items:
$ref: '#/components/schemas/Secret'
type: array
title: Secrets
secret_references:
anyOf:
- items:
$ref: '#/components/schemas/SecretReference'
type: array
- type: 'null'
title: Secret References
description: List of Kubernetes Secret references.<br><br>Only applicable for `external_docker` source.
id:
type: string
format: uuid
title: ID
description: The ID of the deployment.<br><br>This is a read-only field.
tenant_id:
type: string
format: uuid
title: Tenant ID
description: The ID of the tenant that owns the deployment.<br><br>This is a read-only field.
created_at:
type: string
format: date-time
title: Created At
description: The creation time of the deployment.<br><br>This is a read-only field.
updated_at:
type: string
format: date-time
title: Updated At
description: The last update time of the deployment.<br><br>This is a read-only field.
status:
type: string
enum:
- AWAITING_DATABASE
- READY
- UNUSED
- AWAITING_DELETE
- UNKNOWN
title: Status
description: The status of the deployment.<br><br>This is a read-only field.
latest_revision_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Latest Revision ID
description: The ID of the latest revision of the deployment.<br><br>This is a read-only field.
active_revision_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Active Revision ID
description: The ID of the current (actively deployed) revision of the deployment.<br><br>This is a read-only field.
image_version:
anyOf:
- type: string
- type: 'null'
title: Image Version
description: Image version of the deployment.
type: object
required:
- name
- source
- source_config
- source_revision_config
- secrets
- id
- tenant_id
- created_at
- updated_at
- status
- latest_revision_id
- active_revision_id
title: Deployment
description: Deployment resource.
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ResourceSpec-Output:
properties:
min_scale:
anyOf:
- type: integer
- type: 'null'
title: Min Scale
description: The minimum scale (number of replicas) of the deployment.
max_scale:
anyOf:
- type: integer
- type: 'null'
title: Max Scale
description: The maximum scale (number of replicas) of the deployment.
cpu:
anyOf:
- type: number
maximum: 8.0
minimum: 0.1
- type: 'null'
title: CPU
description: CPU request in cores for a single replica of the deployment. Supports fractional values (e.g. 0.5 for 500m). Values are rounded to 1 decimal place. If cpu_limit is not set, limit defaults to 2x this value.
examples:
- 0.1
- 0.5
- 1
- 2
- 4
cpu_limit:
anyOf:
- type: number
maximum: 16.0
minimum: 0.1
- type: 'null'
title: CPU Limit
description: CPU limit in cores for a single replica of the deployment. Supports fractional values (e.g. 0.5 for 500m). Values are rounded to 1 decimal place. If not set, defaults to 2x cpu.
examples:
- 0.2
- 1
- 2
- 4
- 8
- 16
memory_mb:
anyOf:
- type: integer
- type: 'null'
title: Memory (MB)
description: Memory request (MB) of a single replica of the deployment. If memory_limit_mb is not set, limit defaults to 2x this value.
memory_limit_mb:
anyOf:
- type: integer
- type: 'null'
title: Memory Limit (MB)
description: Memory limit (MB) of a single replica of the deployment. If not set, defaults to 2x memory_mb.
queue_min_scale:
anyOf:
- type: integer
- type: 'null'
title: Queue Min Scale
description: The minimum scale (number of replicas) of the queue deployment. If not provided, defaults to the same value as `min_scale`.
queue_max_scale:
anyOf:
- type: integer
- type: 'null'
title: Queue Max Scale
description: The maximum scale (number of replicas) of the queue deployment. If not provided, defaults to the same value as `max_scale`.
queue_cpu:
anyOf:
- type: number
maximum: 8.0
minimum: 0.1
- type: 'null'
title: Queue CPU
description: CPU request in cores for a single replica of the queue deployment. Supports fractional values (e.g. 0.5 for 500m). Values are rounded to 1 decimal place. If not provided, defaults to the same value as `cpu`. If queue_cpu_limit is not set, limit defaults to 2x this value.
examples:
- 0.1
- 0.5
- 1
- 2
queue_cpu_limit:
anyOf:
- type: number
maximum: 16.0
minimum: 0.1
- type: 'null'
title: Queue CPU Limit
description: CPU limit in cores for a single replica of the queue deployment. Supports fractional values (e.g. 0.5 for 500m). Values are rounded to 1 decimal place. If not set, defaults to 2x queue_cpu.
examples:
- 0.2
- 1
- 2
- 4
- 8
queue_memory_mb:
anyOf:
- type: integer
- type: 'null'
title: Queue Memory (MB)
description: Memory request (MB) of a single replica of the queue deployment. If not provided, defaults to the same value as `memory_mb`. If queue_memory_limit_mb is not set, limit defaults to 2x this value.
queue_memory_limit_mb:
anyOf:
- type: integer
- type: 'null'
title: Queue Memory Limit (MB)
description: Memory limit (MB) of a single replica of the queue deployment. If not set, defaults to 2x queue_memory_mb.
orchestrator_cpu:
anyOf:
- type: number
- type: 'null'
title: Orchestrator CPU
description: do not use
orchestrator_cpu_limit:
anyOf:
- type: number
- type: 'null'
title: Orchestrator CPU Limit
description: do not use
orchestrator_memory_mb:
anyOf:
- type: integer
- type: 'null'
title: Orchestrator Memory (MB)
description: do not use
orchestrator_memory_limit_mb:
anyOf:
- type: integer
- type: 'null'
title: Orchestrator Memory Limit (MB)
description: do not use
orchestrator_min_scale:
anyOf:
- type: integer
- type: 'null'
title: Orchestrator Min Scale
description: do not use
orchestrator_max_scale:
anyOf:
- type: integer
- type: 'null'
title: Orchestrator Max Scale
description: do not use
executor_cpu:
anyOf:
- type: number
- type: 'null'
title: Executor CPU
description: do not use
executor_cpu_limit:
anyOf:
- type: number
- type: 'null'
title: Executor CPU Limit
description: do not use
executor_memory_mb:
anyOf:
- type: integer
- type: 'null'
title: Executor Memory (MB)
description: do not use
executor_memory_limit_mb:
anyOf:
- type: integer
- type: 'null'
title: Executor Memory Limit (MB)
description: do not use
redis_cpu:
anyOf:
- type: number
maximum: 8.0
minimum: 0.1
- type: 'null'
title: Redis CPU
description: CPU request in cores for the Redis deployment. Supports fractional values (e.g. 0.5 for 500m). Values are rounded to 1 decimal place. If redis_cpu_limit is not set, limit defaults to 2x this value.
examples:
- 0.1
- 0.5
- 1
- 2
redis_cpu_limit:
anyOf:
- type: number
maximum: 16.0
minimum: 0.1
- type: 'null'
title: Redis CPU Limit
description: CPU limit in cores for the Redis deployment. Supports fractional values (e.g. 0.5 for 500m). Values are rounded to 1 decimal place. If not set, defaults to 2x redis_cpu.
examples:
- 0.2
- 1
- 2
- 4
- 8
redis_memory_mb:
anyOf:
- type: integer
- type: 'null'
title: Redis Memory Mb
description: Memory request (MB) of the Redis deployment. If redis_memory_limit_mb is not set, limit defaults to this value.
redis_memory_limit_mb:
anyOf:
- type: integer
- type: 'null'
title: Redis Memory Limit (MB)
description: Memory limit (MB) of the Redis deployment. If not set, defaults to redis_memory_mb.
labels:
anyOf:
- additionalProperties:
type: string
type: object
- type: 'null'
title: Labels
description: Additional labels to apply to resources created for the deployment.
annotations:
anyOf:
- additionalProperties:
type: string
type: object
- type: 'null'
title: Annotations
description: Additional annotations to apply to resources created for the deployment.
service_account_name:
anyOf:
- type: string
- type: 'null'
title: Service Account Name
description: The name of the service account to use for the deployment.<br><br>This must already exist in the Kubernetes namespace where the deployment will be deployed to.
image_pull_secrets:
anyOf:
- items:
$ref: '#/components/schemas/LocalObjectReference'
type: array
- type: 'null'
title: Image Pull Secrets
description: List of references to secrets in the same namespace to use for pulling container images. Each entry is a LocalObjectReference to a Secret of type kubernetes.io/dockerconfigjson.
volumes:
anyOf:
- items:
$ref: '#/components/schemas/Volume'
type: array
- type: 'null'
title: Volumes
description: List of volumes that can be mounted by containers belonging to the pod. Reference the kubernetes documentation for more details on how to configure volumes.
volume_mounts:
anyOf:
- items:
$ref: '#/components/schemas/VolumeMount'
type: array
- type: 'null'
title: Volume Mounts
description: Pod volumes to mount into the container's filesystem. Reference the kubernetes documentation for more details on how to configure volume mounts.
init_containers:
anyOf:
- items:
$ref: '#/components/schemas/Container'
type: array
- type: 'null'
title: Init Containers
description: List of initialization containers belonging to the pod. Init containers are set as initContainers in the pod spec and run to completion before the main application container starts.
sidecars:
anyOf:
- items:
$ref: '#/components/schemas/Container'
type: array
- type: 'null'
title: Sidecars
description: List of sidecar containers that run alongside the main application container. These will be added to the pod spec as additional containers.
db_cpu:
anyOf:
- type: number
- type: 'null'
title: Database CPU
description: CPU request of the Postgres database deployment. If db_cpu_limit is not set, limit defaults to 2x this value.
db_cpu_limit:
anyOf:
- type: number
- type: 'null'
title: Database CPU Limit
description: CPU limit of the Postgres database deployment. If not set, defaults to 2x db_cpu.
db_memory_mb:
anyOf:
- type: integer
- type: 'null'
title: Database Memory (MB)
description: Memory request (MB) of the Postgres database deployment. If db_memory_limit_mb is not set, limit defaults to 2x this value.
db_memory_limit_mb:
anyOf:
- type: integer
- type: 'null'
title: Database Memory Limit (MB)
description: Memory limit (MB) of the Postgres database deployment. If not set, defaults to 2x db_memory_mb.
db_storage_gi:
anyOf:
- type: integer
- type: 'null'
title: Database Storage (GiB)
description: Storage (GiB) of the Postgres database deployment.
db_max_connections:
anyOf:
- type: integer
- type: 'null'
title: Database Max Connections
description: Maximum number of connections allowed to the Postgres database.
type: object
title: ResourceSpec
description: 'Resource specification for the deployment.<br>
<br>
When updating a deployment (`PATCH`), setting this field to a non-null value will trigger creation of a new revision and overwrite the existing resource_spec for the deployment. Only applicable for `external_docker` source.'
DeploymentsList:
properties:
resources:
items:
$ref: '#/components/schemas/Deployment'
type: array
title: Resources
offset:
type: integer
title: Offset
description: Pagination offset. Pass this value to subsequent requests to fetch the next page.
type: object
required:
- resources
- offset
title: DeploymentsList
RevisionsList:
properties:
resources:
items:
$ref: '#/components/schemas/Revision'
type: array
title: Resources
offset:
# --- truncated at 32 KB (71 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/langgraph/refs/heads/main/openapi/langgraph-deployments-v2-api-openapi.yml