Skip to main content

Get started with the Langflow API

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.

Try it

For an example of the Langflow API in a script, see the Langflow 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:


_14
curl --request POST \
_14
--url "$LANGFLOW_SERVER_URL/api/v1/run/$FLOW_ID?stream=false" \
_14
--header "Content-Type: application/json" \
_14
--header "x-api-key: $LANGFLOW_API_KEY" \
_14
--data '{
_14
"input_value": "hello world!",
_14
"output_type": "chat",
_14
"input_type": "chat",
_14
"tweaks": {
_14
"ChatOutput-6zcZt": {
_14
"should_store_message": true
_14
}
_14
}
_14
}'

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.

  • 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.

As with any API, follow industry best practices for storing and referencing sensitive credentials. For example, you can 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:


_22
# Set environment variables
_22
export LANGFLOW_API_KEY="sk..."
_22
export LANGFLOW_SERVER_URL="https://localhost:7860"
_22
export FLOW_ID="359cd752-07ea-46f2-9d3b-a4407ef618da"
_22
export PROJECT_ID="1415de42-8f01-4f36-bf34-539f23e47466"
_22
export LANGFLOW_API_KEY="sk-..."
_22
_22
# Use environment variables in API requests
_22
curl --request POST \
_22
--url "$LANGFLOW_SERVER_URL/api/v1/run/$FLOW_ID$?stream=false" \
_22
--header "Content-Type: application/json" \
_22
--header "x-api-key: $LANGFLOW_API_KEY" \
_22
--data '{
_22
"input_value": "hello world!",
_22
"output_type": "chat",
_22
"input_type": "chat",
_22
"tweaks": {
_22
"ChatOutput-6zcZt": {
_22
"should_store_message": true
_22
}
_22
}
_22
}'

Commonly used values in Langflow API requests include your Langflow server URL, Langflow API keys, flow IDs, and project IDs.

You can retrieve flow IDs from the API access pane, in a flow's URL, and with GET /flows.

Try some Langflow API requests

Once you have your Langflow server URL, try calling these endpoints that return Langflow metadata.

Get version

Returns the current Langflow API version:


_10
curl -X GET \
_10
"$LANGFLOW_SERVER_URL/api/v1/version" \
_10
-H "accept: application/json"
_10
-H "x-api-key: $LANGFLOW_API_KEY"

Result

_10
{
_10
"version": "1.1.1",
_10
"main_version": "1.1.1",
_10
"package": "Langflow"
_10
}

Get configuration

Returns configuration details for your Langflow deployment:


_10
curl -X GET \
_10
"$LANGFLOW_SERVER_URL/api/v1/config" \
_10
-H "accept: application/json"
_10
-H "x-api-key: $LANGFLOW_API_KEY"

Result

_10
{
_10
"feature_flags": {
_10
"mvp_components": false
_10
},
_10
"frontend_timeout": 0,
_10
"auto_saving": true,
_10
"auto_saving_interval": 1000,
_10
"health_check_max_retries": 5,
_10
"max_file_size_upload": 100
_10
}

Get all components

Returns a dictionary of all Langflow components:


_10
curl -X GET \
_10
"$LANGFLOW_SERVER_URL/api/v1/all" \
_10
-H "accept: application/json" \
_10
-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. 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.

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:

    • 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.
  • Deployment details:

  • Projects endpoints:

    • 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:

    • 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:

    • 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:

    • 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:

    • 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).

Next steps

Search