Files
langflow/docs/docs/API-Reference/api-reference-api-examples.mdx
Mendon Kissling 421d895237 docs: 1.7 release branch (#10081)
* langflow-webhook-auth-enable

* add-not-contains-filter-operator

* does-not-contains-operator

* less-redundant-explanation

* docs: add jq and path selection to data operations (#10083)

add-jq-and-path-to-data-operations

* smart transform historical names

* change back to smart transform

* jq expression capitalization/package name

* small edit for clarity of not contains operator

* read/write file component name changes

* docs: add smart router component (#10097)

* init

* add-to-release-notes

* remove-dynamic-output-as-parameter

* Apply suggestion from @aimurphy

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* Apply suggestion from @aimurphy

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* Apply suggestion from @aimurphy

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* Apply suggestion from @aimurphy

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* docs: screenshot audit (#10166)

* remove-unused

* agent-examples

* main-ui-screenshots

* components-screenshots

* combine-web-search-components

* simple-agent-flow-in-playground

* round-screenshots

* my-projects

* combine-data-components

* docs: component paths updates for lfx (#10130)

* contributing-bundles-path

* api-monitor-example

* concepts-components-page

* contribute-components-path

* Apply suggestion from @aimurphy

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* docs: auto-add projects as MCP servers  (#10096)

* add-mcp-auto-auth-as-default-behavior

* Apply suggestion from @aimurphy

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* Apply suggestion from @aimurphy

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>

* docs: amazon bedrock converse (#10289)

* use-bedrock-converse

* Apply suggestion from @aimurphy

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* Update docs/docs/Components/bundles-amazon.mdx

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* docs 1.7 release: add mock data component (#10288)

* add-component-and-release-note

* Apply suggestion from @aimurphy

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* docs: update custom component docs (#10323)

* add-partial

* update-lfx-component-paths

* move-partial

* completed-quickstart

* clean up intro

* try-docker-with-custom-mount

* up-to-typed-annotations

* typed-annotations

* dynamic-fields

* end-of-file

* bundles-naming

* chore: update component index

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* docs: add cometapi back for 1.7 release (#10445)

* add-comet-bundle-back-for-1.7

* add-comet-to-release-notes

* docs: add back docling remote vlm for release 1.7 (#10489)

* add-back-docling-vlm-content

* add-release-note

* docs: ALTK component (#10511)

* broken-anchor

* sidebar-and-page

* add-release-note

* add-context-on-output

* docs: SSRF warning (#10573)

* add-ssrf-protection-env-var

* api-request-component

* Update docs/docs/Components/components-data.mdx

* Apply suggestions from code review

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* move-note-to-table

* release-note

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* docs: dynamic create data component (#10517)

* add-dynamic-create-data-component-and-release-note

* Apply suggestions from code review

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* clarify-message-types

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* docs: cuga component bundle (#10589)

* initlal-content

* cuga-specific-component-connections

* cleanup

* use-the-same-name

* add-lite-mode-remove-api-flag-and-mode

* Apply suggestions from code review

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* public-or-private-internet

* agent-doesnt-check-urls

* peer-review

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* docs: remove docling vlm component from 1.7 release branch (#10630)

remove-vlm-component

* docs: rename component categories and make all components single pages (#10648)

* docs: OpenAPI spec version upgraded from 1.6.5 to 1.6.8 (#10627)

Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: Mendon Kissling <59585235+mendonk@users.noreply.github.com>

* up to models and agents

* sidebars

* fix-broken-links

* chore: Fix indentation on bundles-docling.mdx (#10640)

* sidebars

* redo-intros

* link-to-models

* data-components

* files-components-no-kb

* io-components

* helper-utility-components

* llm-ops-components

* logic-components

* processing-pages

* sidebars

* combine-legacy-components-into-one-page

* update-links

* remove-overview-pages-and-redirect

* make-mcp-tools-page

* Apply suggestions from code review

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* no-cap

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* docs: combined web search component (#10664)

* combine-pages

* remove-rss-and-news-search-and-update-links

* remove-vlm-link

* leave-old-release-note-but-remove-link

* docs: add altk reflection component (#10660)

* add-new-component

* differentiate-components

* docs: mcp streamable http client (#10621)

* release note

* mcp-client-changes

* update-astra-example

* icons-and-copy

* order-of-names

* docs: add cuga decomposition strategy as advanced parameter (#10672)

* update-component-link

* init

* add-decomp-as-advanced-param

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* [autofix.ci] apply automated fixes (attempt 3/3)

* Apply suggestions from code review

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* update-component-index

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* [autofix.ci] apply automated fixes (attempt 3/3)

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* docs: datastax bundles page (#10686)

* init

* Apply suggestions from code review

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* docs: llm router changed to llm selector (#10663)

* update-component-name

* previous-name-and-release-note

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* [autofix.ci] apply automated fixes (attempt 3/3)

* docs: log alembic to stdout (#10711)

* docs-alembic-log-env-var

* cleanup

* remove-legacy-component-link

* docs: configure s3 for file storage backend (#10678)

* configure-file-storage-s3

* Apply suggestions from code review

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* clarify-s3-credentials

* add-storage-tags-and-cleanup-creds-seciton

* role-link-name

* fix-parse-error

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* docs: clarify docling components (#10722)

* clarify-what-docling-components-do

* Apply suggestions from code review

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* component-name

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* docs: legacy processing components for 1.7 (#10661)

* make-components-legacy

* remove-broken-link

* remove-outdated-components

* release-notes

* Apply suggestions from code review

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* add-back-dynamic-create-data

* fix-broken-link-in-smart-router

* remove-release-note

* Apply suggestions from code review

* legacy

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* docs: remove dataframe to toolset component (#10854)

remove-df-to-toolset-component

* docs: clarify superuser flow run behavior (#10865)

superuser-clarification

* docs: add composio components (#10868)

more-composio-components

* docs: additional dependencies for running Docling in Linux-based Docker environments (#10861)

* initial-partial-and-troubleshooting

* Apply suggestions from code review

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* docs: change component h3 headings to h2 (#10886)

bump-headings

* docs: include webhook request example with auth (#10885)

* include-webhook-request-examples

* fix-build-error

* docs: configurable api key validation (#10882)

* initial-content

* clarify-differences

* typo

* docs: langflow server supports streamable http (#10891)

* initial-updates

* check-params

* server-params

* peer-review

* update-release-note

* remove-delete-endpoint-for-legacy

* Revert "docs: langflow server supports streamable http (#10891)"

This reverts commit e1dbefc21dc76456b06d5d70da61dd074a803df8.

* docs: new registration endpoints, email form, and telemetry events (#10816)

* add-email-telemetry

* add-registration-v2-endpoints-and-telemetry

* Apply suggestions from code review

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* changes-from-peer-review

* Apply suggestions from code review

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* docs: more info on smart router component (#10916)

* continue-example

* remove-duplicate-info

* match-by-route-name

* docs: sidebars release notes (#10949)

* move-to-support-section

* support

* docs: update comet api component parameters (#10950)

update-parameters

* docs: mcp server streamable http (#10955)

* content

* transport

* add-back-webhook-env-var

* Update docs/docs/Components/bundles-cuga.mdx

* docs: use bootstrap instead of deprecated launchctl load (#10951)

use-bootstrap-and-semicolons

* docs: lfx serve and lfx run (#10498)

* add-content

* add-entry-to-release-notes

* Apply suggestions from code review

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* partial-for-dependencies

* clarify-api-key-and-uvx

* lfx-included

* add-lfx-schema-and-cleanup-table

* install-nightly-curl-flow-json-clarify-dependencies-create-local-api-key

* not-automatic

* code-review

* work-in-progress

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* docs: authorization changes (#10992)

* files-superuser

* get-config-endpoint-requires-api-key

* config-endpoint

* remove-parentheticals

* docs: custom components input types (#11027)

* io-links-and-update-paths

* remove-unncessary-sentence

* Apply suggestions from code review

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* docs: cuga bundle updates (#10998)

* change-policies-to-instructions

* new-screenshot

* Apply suggestions from code review

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* files-when-knowldge-is-not-enabled

* docs: revert lfx (#11065)

revert-lfx

* docs: cuga model limits (#11064)

* add-warning

* remove-params

* add-watsonx-model

* bump-api-version

---------

Co-authored-by: April M <36110273+aimurphy@users.noreply.github.com>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-12-18 20:36:17 +00:00

427 lines
20 KiB
Plaintext

---
title: Get started with the Langflow API
slug: /api-reference-api-examples
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
You can use the Langflow API for programmatic interactions with Langflow, such as the following:
* Create and edit flows, including file management for flows.
* Develop applications that use your flows.
* Develop custom components.
* Build Langflow as a dependency of a larger application, codebase, or service.
* Contribute to the overall Langflow codebase.
To view and test all available endpoints, you can access the Langflow API's OpenAPI specification at your Langflow deployment's `/docs` endpoint, such as `http://localhost:7860/docs`.
:::tip Try it
For an example of the Langflow API in a script, see the [Langflow quickstart](/get-started-quickstart).
The quickstart demonstrates how to get automatically generated code snippets for your flows, use a script to run a flow, and extract data from the Langfow API response.
:::
## Form Langflow API requests
While individual options vary by endpoint, all Langflow API requests share some commonalities, like a URL, method, parameters, and authentication.
As an example of a Langflow API request, the following curl command calls the `/v1/run` endpoint, and it passes a runtime override (`tweaks`) to the flow's **Chat Output** component:
```bash
curl --request POST \
--url "$LANGFLOW_SERVER_URL/api/v1/run/$FLOW_ID?stream=false" \
--header "Content-Type: application/json" \
--header "x-api-key: $LANGFLOW_API_KEY" \
--data '{
"input_value": "hello world!",
"output_type": "chat",
"input_type": "chat",
"tweaks": {
"ChatOutput-6zcZt": {
"should_store_message": true
}
}
}'
```
### Base URL
By default, local deployments serve the Langflow API at `http://localhost:7860/api`.
Remotely hosted Langflow deployments are available at the domain set by the hosting service, such as `http://IP_OR_DNS/api` or `http://IP_OR_DNS:LANGFLOW_PORT/api`.
You can configure the Langflow port number in the `LANGFLOW_PORT` [environment variable](/environment-variables).
* `https://UUID.ngrok.app/api`
* `http://IP_OR_DNS/api`
* `http://IP_OR_DNS:LANGFLOW_PORT/api`
### Authentication
In Langflow versions 1.5 and later, most API endpoints require authentication with a Langflow API key in either an `x-api-key` header or query parameter.
For more information, see [API keys and authentication](/api-keys-and-authentication).
As with any API, follow industry best practices for storing and referencing sensitive credentials.
For example, you can [set environment variables](#set-environment-variables) for your API keys, and then reference those environment variables in your API requests.
### Methods, paths, and parameters
Langflow API requests use various methods, paths, path parameters, query parameters, and body parameters.
The specific requirements and options depend on the endpoint that you want to call.
For example, to create a flow, you pass a JSON-formatted flow definition to `POST /v1/flows`.
Then, to run your flow, you call `POST /v1/run/$FLOW_ID` with optional run parameters in the request body.
### API versions
The Langflow API serves `/v1` and `/v2` endpoints.
Some endpoints only exist under a single version and some exist under both the `/v1` and `/v2` versions.
If a request fails or has an unexpected result, make sure your endpoint path has the correct version.
## Set environment variables
You can store commonly used values in environment variables to facilitate reuse, simplify token rotation, and securely reference sensitive values.
You can use any method you prefer to set environment variables, such as `export`, `.env`, `zshrc`, or `.curlrc`.
Then, reference those environment variables in your API requests.
For example:
```bash
# Set environment variables
export LANGFLOW_API_KEY="sk..."
export LANGFLOW_SERVER_URL="https://localhost:7860"
export FLOW_ID="359cd752-07ea-46f2-9d3b-a4407ef618da"
export PROJECT_ID="1415de42-8f01-4f36-bf34-539f23e47466"
export LANGFLOW_API_KEY="sk-..."
# Use environment variables in API requests
curl --request POST \
--url "$LANGFLOW_SERVER_URL/api/v1/run/$FLOW_ID$?stream=false" \
--header "Content-Type: application/json" \
--header "x-api-key: $LANGFLOW_API_KEY" \
--data '{
"input_value": "hello world!",
"output_type": "chat",
"input_type": "chat",
"tweaks": {
"ChatOutput-6zcZt": {
"should_store_message": true
}
}
}'
```
Commonly used values in Langflow API requests include your [Langflow server URL](#base-url), [Langflow API keys](#authentication), flow IDs, and [project IDs](/api-projects#read-projects).
You can retrieve flow IDs from the [**API access** pane](/concepts-publish#api-access), in a flow's URL, and with [`GET /flows`](/api-flows#read-flows).
## Try some Langflow API requests
Once you have your Langflow server URL, try calling these endpoints that return Langflow metadata.
### Health check
Returns the health status of the Langflow database and chat services:
```bash
curl -X GET \
"$LANGFLOW_SERVER_URL/health_check" \
-H "accept: application/json"
```
<details>
<summary>Result</summary>
```json
{
"status": "ok",
"chat": "ok",
"db": "ok"
}
```
</details>
Langflow provides an additional `GET /health` endpoint.
This endpoint is served by uvicorn before Langflow is fully initialized, so it's not reliable for checking Langflow service health.
### Get version
Returns the current Langflow API version:
```bash
curl -X GET \
"$LANGFLOW_SERVER_URL/api/v1/version" \
-H "accept: application/json"
```
<details>
<summary>Result</summary>
```text
{
"version": "1.6.0",
"main_version": "1.6.0",
"package": "Langflow"
}
```
</details>
### Get configuration
Returns configuration details for your Langflow deployment.
Requires a [Langflow API key](/api-keys-and-authentication).
```bash
curl -X GET \
"$LANGFLOW_SERVER_URL/api/v1/config" \
-H "accept: application/json" \
-H "x-api-key: $LANGFLOW_API_KEY"
```
<details>
<summary>Result</summary>
```json
{
"feature_flags": {
"mvp_components": false
},
"serialization_max_items_length": 1000,
"serialization_max_text_length": 6000,
"frontend_timeout": 0,
"auto_saving": true,
"auto_saving_interval": 1000,
"health_check_max_retries": 5,
"max_file_size_upload": 1024,
"webhook_polling_interval": 5000,
"public_flow_cleanup_interval": 3600,
"public_flow_expiration": 86400,
"event_delivery": "streaming",
"webhook_auth_enable": false,
"voice_mode_available": false,
"default_folder_name": "Starter Project",
"hide_getting_started_progress": false
}
```
</details>
### Get all components
Returns a dictionary of all Langflow components.
Requires a [Langflow API key](/api-keys-and-authentication).
```bash
curl -X GET \
"$LANGFLOW_SERVER_URL/api/v1/all" \
-H "accept: application/json" \
-H "x-api-key: $LANGFLOW_API_KEY"
```
## Available endpoints
Because you can run Langflow as either an IDE (frontend and backend) or a runtime (headless, backend-only), it serves endpoints that support frontend and backend operations.
Many endpoints are for orchestration between the frontend and backend, reading and writing to the Langflow database, or enabling frontend functionality, like the **Playground**.
Unless you are contributing to the Langflow codebase, you won't directly call most of the Langflow endpoints.
For application development, the most commonly used endpoints are the `/run` and `/webhook` [flow trigger endpoints](/api-flows-run).
For some use cases, you might use some other endpoints, such as the `/files` endpoints to use files in flows.
To help you explore the available endpoints, the following lists are sorted by primary use case, although some endpoints might support multiple use cases.
<Tabs>
<TabItem value="Application development" label="Application development" default>
The following endpoints are useful for developing applications with Langflow and administering Langflow deployments with one or more users.
You will most often use the flow trigger endpoints.
Other endpoints are helpful for specific use cases, such as administration and flow management in runtime deployments that don't have a visual editor.
* [Flow trigger endpoints](/api-flows-run):
* POST `/v1/run/{flow_id_or_name}`: Run a flow.
* POST `/v1/run/advanced/{flow_id}`: Advanced run with explicit `inputs`, `outputs`, `tweaks`, and optional `session_id`.
* POST `/v1/webhook/{flow_id_or_name}`: Trigger a flow via webhook payload.
* [OpenAI Responses API](/api-openai-responses):
* POST `/v1/responses`: Execute flows using an OpenAI-compatible request format.
* Deployment details:
* GET `/v1/version`: Return Langflow version. See [Get version](/api-reference-api-examples#get-version).
* GET `/v1/config`: Return deployment configuration. See [Get configuration](/api-reference-api-examples#get-configuration).
* GET `/health_check`: Health check endpoint that validates database and chat service connectivity. Returns 500 status if any service is unavailable.
* [Projects endpoints](/api-projects):
* POST `/v1/projects/`: Create a project.
* GET `/v1/projects/`: List projects.
* GET `/v1/projects/{project_id}`: Read a project (with paginated flows support).
* PATCH `/v1/projects/{project_id}`: Update project info and membership.
* DELETE `/v1/projects/{project_id}`: Delete a project.
* GET `/v1/projects/download/{project_id}`: Export all flows in a project as ZIP.
* POST `/v1/projects/upload/`: Import a project ZIP (creates project and flows).
* GET `/v1/starter-projects/`: Return a list of templates.
* [Files endpoints](/api-files):
* Files (v1)
* POST `/v1/files/upload/{flow_id}`: Upload a file to a specific flow.
* GET `/v1/files/download/{flow_id}/{file_name}`: Download a file from a flow.
* GET `/v1/files/images/{flow_id}/{file_name}`: Stream an image from a flow.
* GET `/v1/files/profile_pictures/{folder_name}/{file_name}`: Get a profile picture asset.
* GET `/v1/files/profile_pictures/list`: List available profile picture assets.
* GET `/v1/files/list/{flow_id}`: List files for a flow.
* DELETE `/v1/files/delete/{flow_id}/{file_name}`: Delete a file from a flow.
* Files (v2)
* POST `/v2/files` (alias `/v2/files/`): Upload a file owned by the current user.
* GET `/v2/files` (alias `/v2/files/`): List files owned by the current user.
* DELETE `/v2/files/batch/`: Delete multiple files by IDs.
* POST `/v2/files/batch/`: Download multiple files as a ZIP by IDs.
* GET `/v2/files/{file_id}`: Download a file by ID (or return raw content internally).
* PUT `/v2/files/{file_id}`: Edit a file name by ID.
* DELETE `/v2/files/{file_id}`: Delete a file by ID.
* DELETE `/v2/files` (alias `/v2/files/`): Delete all files for the current user.
* [API keys and authentication](/api-keys-and-authentication):
* GET `/v1/api_key/`: List API keys for the current user.
* POST `/v1/api_key/`: Create a new API key.
* DELETE `/v1/api_key/{api_key_id}`: Delete an API key.
* POST `/v1/api_key/store`: Save an encrypted Store API key (cookie set).
* [Flow management endpoints](/api-flows):
* POST `/v1/flows/`: Create a flow.
* GET `/v1/flows/`: List flows (supports pagination and filters).
* GET `/v1/flows/{flow_id}`: Read a flow by ID.
* GET `/v1/flows/public_flow/{flow_id}`: Read a public flow by ID.
* PATCH `/v1/flows/{flow_id}`: Update a flow.
* DELETE `/v1/flows/{flow_id}`: Delete a flow.
* POST `/v1/flows/batch/`: Create multiple flows.
* POST `/v1/flows/upload/`: Import flows from a JSON file.
* DELETE `/v1/flows/`: Delete multiple flows by IDs.
* POST `/v1/flows/download/`: Export flows to a ZIP file.
* GET `/v1/flows/basic_examples/`: List basic example flows.
* [Users endpoints](/api-users):
* POST `/v1/users/`: Add a user (superuser required when auth enabled).
* GET `/v1/users/whoami`: Return the current authenticated user.
* GET `/v1/users/`: List all users (superuser required).
* PATCH `/v1/users/{user_id}`: Update a user (with role checks).
* PATCH `/v1/users/{user_id}/reset-password`: Reset own password.
* DELETE `/v1/users/{user_id}`: Delete a user (cannot delete yourself).
* Custom components: You might use these endpoints when developing custom Langflow components for your own use or to share with the Langflow community:
* GET `/v1/all`: Return all available Langflow component types. See [Get all components](/api-reference-api-examples#get-all-components).
* POST `/v1/custom_component`: Build a custom component from code and return its node.
* POST `/v1/custom_component/update`: Update an existing custom component's build config and outputs.
* POST `/v1/validate/code`: Validate a Python code snippet for a custom component.
* POST `/v1/validate/prompt`: Validate a prompt payload.
</TabItem>
<TabItem value="Codebase contribution" label="Codebase development">
The following endpoints are most often used when contributing to the Langflow codebase, and you need to understand or call endpoints that support frontend-to-backend orchestration or other internal functionality.
* Base (metadata):
* GET `/v1/all`: Return all available Langflow component types. See [Get all components](/api-reference-api-examples#get-all-components).
* GET `/v1/version`: Return Langflow version. See [Get version](/api-reference-api-examples#get-version).
* GET `/v1/config`: Return deployment configuration. See [Get configuration](/api-reference-api-examples#get-configuration).
* GET `/v1/starter-projects/`: Return a list of templates.
* [Build endpoints](/api-build) (internal editor support):
* POST `/v1/build/{flow_id}/flow`: Start a flow build and return a job ID.
* GET `/v1/build/{job_id}/events`: Stream or fetch build events.
* POST `/v1/build/{job_id}/cancel`: Cancel a build job.
* POST `/v1/build_public_tmp/{flow_id}/flow`: Build a public flow without auth.
* POST `/v1/validate/prompt`: Validate a prompt payload.
* [API keys and authentication](/api-keys-and-authentication):
* POST `/v1/login`: Login and set tokens as cookies.
* GET `/v1/auto_login`: Auto-login (if enabled) and set tokens.
* POST `/v1/refresh`: Refresh tokens using refresh cookie.
* POST `/v1/logout`: Logout and clear cookies.
* [Monitor endpoints](/api-monitor):
* GET `/v1/monitor/builds`: Get vertex builds for a flow.
* DELETE `/v1/monitor/builds`: Delete vertex builds for a flow.
* GET `/v1/monitor/messages/sessions`: List message session IDs (auth required).
* GET `/v1/monitor/messages`: List messages with optional filters.
* DELETE `/v1/monitor/messages`: Delete messages by IDs (auth required).
* PUT `/v1/monitor/messages/{message_id}`: Update a message.
* PATCH `/v1/monitor/messages/session/{old_session_id}`: Change a session ID for all messages in that session.
* DELETE `/v1/monitor/messages/session/{session_id}`: Delete messages by session.
* GET `/v1/monitor/transactions`: List transactions for a flow (paginated).
* Variables:
* POST `/v1/variables/`: Create a variable, such as an API key, for the user.
* GET `/v1/variables/`: List variables for the user.
* PATCH `/v1/variables/{variable_id}`: Update a variable.
* DELETE `/v1/variables/{variable_id}`: Delete a variable.
* [Use voice mode](/concepts-voice-mode):
* WS `/v1/voice/ws/flow_as_tool/{flow_id}`: Bi-directional voice session exposing the flow as a tool.
* WS `/v1/voice/ws/flow_as_tool/{flow_id}/{session_id}`: Same as above with explicit session ID.
* WS `/v1/voice/ws/flow_tts/{flow_id}`: Voice-to-text session that runs a flow and returns TTS.
* WS `/v1/voice/ws/flow_tts/{flow_id}/{session_id}`: Same as above with explicit session ID.
* GET `/v1/voice/elevenlabs/voice_ids`: List available ElevenLabs voice IDs for the user.
* MCP servers: The following endpoints are for managing Langflow MCP servers and MCP server connections.
They aren't typically called directly; instead, they are used to drive internal functionality in the Langflow frontend and when running flows that call MCP servers.
Langflow MCP servers support both streamable HTTP and SSE transport.
* HEAD `/v1/mcp/streamable`: Health check for streamable HTTP MCP.
* GET `/v1/mcp/streamable`: Open streamable HTTP connection for MCP server.
* POST `/v1/mcp/streamable`: Post messages to the MCP server via streamable HTTP.
* DELETE `/v1/mcp/streamable`: Close streamable HTTP connection.
* HEAD `/v1/mcp/sse` (LEGACY): Health check for MCP SSE.
* GET `/v1/mcp/sse` (LEGACY): Open SSE stream for MCP server events.
* POST `/v1/mcp/` (LEGACY): Post messages to the MCP server.
* GET `/v1/mcp/project/{project_id}`: List MCP-enabled tools and project auth settings.
* HEAD `/v1/mcp/project/{project_id}/streamable`: Health check for project streamable HTTP MCP.
* GET `/v1/mcp/project/{project_id}/streamable`: Open project-scoped streamable HTTP connection.
* POST `/v1/mcp/project/{project_id}/streamable`: Post messages to project MCP server via streamable HTTP.
* DELETE `/v1/mcp/project/{project_id}/streamable`: Close project streamable HTTP connection.
* HEAD `/v1/mcp/project/{project_id}/sse` (LEGACY): Health check for project SSE.
* GET `/v1/mcp/project/{project_id}/sse` (LEGACY): Open project-scoped MCP SSE.
* POST `/v1/mcp/project/{project_id}` (LEGACY): Post messages to project MCP server.
* PATCH `/v1/mcp/project/{project_id}`: Update MCP settings for flows and project auth settings.
* POST `/v1/mcp/project/{project_id}/install`: Install MCP client config for Cursor/Windsurf/Claude (local only).
* GET `/v1/mcp/project/{project_id}/installed`: Check which clients have MCP config installed.
* Custom components: You might use these endpoints when developing custom Langflow components for your own use or to share with the Langflow community:
* GET `/v1/all`: Return all available Langflow component types. See [Get all components](/api-reference-api-examples#get-all-components).
* POST `/v1/custom_component`: Build a custom component from code and return its node.
* POST `/v1/custom_component/update`: Update an existing custom component's build config and outputs.
* POST `/v1/validate/code`: Validate a Python code snippet for a custom component.
* POST `/v1/validate/prompt`: Validate a prompt payload.
</TabItem>
<TabItem value="Deprecated" label="Deprecated">
The following endpoints are deprecated:
* POST `/v1/predict/{flow_id}`: Use [`/v1/run/{flow_id}`](/api-flows-run) instead.
* POST `/v1/process/{flow_id}`: Use [`/v1/run/{flow_id}`](/api-flows-run) instead.
* GET `/v1/task/{task_id}`: Deprecated functionality.
* POST `/v1/upload/{flow_id}`: Use [`/files`](/api-files) instead.
* POST `/v1/build/{flow_id}/vertices`: Replaced by [`/monitor/builds`](/api-monitor).
* POST `/v1/build/{flow_id}/vertices/{vertex_id}`: Replaced by [`/monitor/builds`](/api-monitor).
* GET `/v1/build/{flow_id}/{vertex_id}/stream`: Replaced by [`/monitor/builds`](/api-monitor).
* GET `/v1/store/check/`: Return whether the Store feature is enabled.
* GET `/v1/store/check/api_key`: Check if a Store API key exists and is valid.
* POST `/v1/store/components/`: Share a component to the Store.
* PATCH `/v1/store/components/{component_id}`: Update a shared component.
* GET `/v1/store/components/`: List available Store components (filters supported).
* GET `/v1/store/components/{component_id}`: Download a component from the Store.
* GET `/v1/store/tags`: List Store tags.
* GET `/v1/store/users/likes`: List components liked by the current user.
* POST `/v1/store/users/likes/{component_id}`: Like a component.
</TabItem>
</Tabs>
## Next steps
* Use the Langflow API to [run a flow](/api-flows-run).
* Use the Langflow API to [upload files](/api-files).
* Use the Langflow API to [get flow logs](/api-logs).
* Explore all endpoints in the [Langflow API specification](/api).