docs: Document API endpoint for creating new project (#4413)

This commit is contained in:
Andrew Nguonly
2025-04-25 10:42:20 -07:00
committed by GitHub
parent c7fe85585b
commit 9637f3b1be
@@ -3,7 +3,7 @@
"info": {
"title": "LangGraph Control Plane API (Beta)",
"version": "0.0.1",
"description": "The LangGraph Control Plane API is used to programmatically create and manage LangGraph Server deployments. For example, the APIs can be orchestrated to create custom CI/CD workflows.\n\n### Beta\nThis API is currently in beta and may change or break without notice. This API documentation may not be up-to-date with actual API functionality.\n### Host\nhttps://api.host.langchain.com/\n\n### Authentication\nTo authenticate with the LangGraph Control Plane API, set the `X-Api-Key` header to a valid LangSmith API key for each request.\n\n### Versioning\nEach endpoint path is prefixed with a version (e.g. `v1`).\n\n### Quick Start\n\n1. Call `GET /{version}/projects` to retrieve the `Project` `id`. The `Project` `id` is needed in subsequent API calls.\n2. Call `POST /{version}/projects/{project_id}/revisions` to create a new `Revision` for the `Project`.\n3. Call `GET /{version}/projects/{project_id}/revisions` to get the latest `Revision` (first element in returned list). Get the `Revision` `id`.\n4. Poll for `Revision` `status` until `status` is `DEPLOYED` by calling `GET /{version}/projects/{project_id}/revisions/{revision_id}`."
"description": "The LangGraph Control Plane API is used to programmatically create and manage LangGraph Server deployments. For example, the APIs can be orchestrated to create custom CI/CD workflows.\n\n### Beta\nThis API is currently in beta and may change or break without notice. This API documentation may not be up-to-date with actual API functionality.\n### Host\nhttps://api.host.langchain.com/\n\n### Authentication\nTo authenticate with the LangGraph Control Plane API, set the `X-Api-Key` header to a valid LangSmith API key for each request.\n\n### Versioning\nEach endpoint path is prefixed with a version (e.g. `v1`).\n\n### Quick Start\n\n1. Call `POST /{version}/projects` to create a new `Project`.\n2. Call `GET /{version}/projects` to retrieve the `Project` `id`. The `Project` `id` is needed in subsequent API calls.\n3. Call `POST /{version}/projects/{project_id}/revisions` to create a new `Revision` for the `Project`.\n4. Call `GET /{version}/projects/{project_id}/revisions` to get the latest `Revision` (first element in returned list). Get the `Revision` `id`.\n5. Poll for `Revision` `status` until `status` is `DEPLOYED` by calling `GET /{version}/projects/{project_id}/revisions/{revision_id}`."
},
"servers": [
{
@@ -22,6 +22,34 @@
],
"paths": {
"/v1/projects": {
"post": {
"tags": ["Projects (v1)"],
"summary": "Create Project",
"description": "Create a new project.",
"operationId": "create_project_projects_post",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateProjectRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Project"
}
}
}
}
}
},
"get": {
"tags": ["Projects (v1)"],
"summary": "List Projects",
@@ -397,6 +425,83 @@
}
}
},
"CreateProjectRequest":{
"type": "object",
"description": "Object for creating a new project.",
"properties": {
"name": {
"type": "string",
"description": "Name of the project.",
"required": true
},
"lc_hosted": {
"type": "boolean",
"description": "Whether the project is hosted on LangChain's cloud (i.e. Cloud SaaS deployment option). Set to `false` for Self-Hosted Data Plane and Self-Hosted Control Plane deployment options.",
"default": true
},
"repo_url": {
"type": ["string", "null"],
"description": "URL of the GitHub repository to use for the project. Omit this field if creating a new project from a Docker image.",
"default": "null"
},
"repo_path": {
"type": ["string", "null"],
"description": "Path to `langgraph.json` configuration file. For example, `langgraph.json` or `src/langgraph.json`.\n\nIf this field is omitted or set to `null`, the previous revision's `repo_path` value is used. Set this field for deployments from a GitHub repository. Omit this field if creating a new revision from a Docker image.",
"default": "null"
},
"repo_commit": {
"type": ["string", "null"],
"description": "Git branch name of deployment.\n\nThis field only applies to deployments from a GitHub repository.",
"default": "null"
},
"env_vars": {
"type": "array",
"description": "List of environment variables or secrets.\n\nIf this field is omitted or set to `null`, the previous revision's `env_vars` value is used.",
"items": {
"$ref": "#/components/schemas/EnvVar"
},
"default": "null"
},
"host_integration_id": {
"type": ["string", "null"],
"format": "uuid",
"description": "Do not use."
},
"deployment_type": {
"type": "string",
"description": "Development (`dev`) or Production (`prod`) type deployment.",
"enum": [
"dev",
"prod"
]
},
"shareable": {
"type": ["boolean", "null"],
"description": "Boolean flag to configure if a deployment is shareable through LangGraph Studio.\n\nIf this field is omitted or set to `null`, the previous revision's `shareable` value is used. This field does not apply to BYOC deployments.",
"default": "null"
},
"platform": {
"type": "object",
"description": "Do not use.",
"default": "null"
},
"image_path": {
"type": ["string", "null"],
"description": "URI of the Docker image to deploy.\n\nIf this field is omitted or set to `null`, the previous revision's `image_path` value is used. Set this field for BYOC deployments. Omit this field if creating a new revision from a GitHub repository.",
"default": "null"
},
"build_on_push": {
"type": "boolean",
"description": "Boolean flag to indicate if a new revision is automatically created on push to GitHub branch (`repo_branch`).\n\nThis field does not apply for BYOC deployments.",
"default": false
},
"container_spec": {
"description": "If this field is omitted or set to `null`, the previous revision's `container_spec` value is used.",
"$ref": "#/components/schemas/ContainerSpec",
"default": "null"
}
}
},
"CreateRevisionRequest": {
"type": "object",
"description": "Object for creating a new revision.",