Langflow 1.10 just released!
gradient
  1. Home  /

  2. Blog  /

  3. How to Stream Responses from the Langflow API in Node.js

How to Stream Responses from the Langflow API in Node.js

Phil Nash

Written by Phil Nash

June 1, 2025

Building flows and AI agents in Langflow is one of the fastest ways to experiment with generative AI. Once you've built your flow, you’ll want to integrate it into your own application. Langflow exposes an API for this; we’ve written before about how to use it in Node.js. We've also seen that streaming GenAI outputs makes for a better user experience. So today, we're going to combine the two and show you how to stream results from your Langflow flows in Node.js.

Example code for using the JavaScript Langflow client. It reads:  import { LangflowClient } from "@datastax/langflow-client";  const client = new LangflowClient({ langflowId, apiKey }); const flow = client.flow(flowId);  const response = await flow.stream("hello there!"); for await (const event of response) {   console.log(event); }
Example code for using the JavaScript Langflow client. It reads: import { LangflowClient } from "@datastax/langflow-client"; const client = new LangflowClient({ langflowId, apiKey }); const flow = client.flow(flowId); const response = await flow.stream("hello there!"); for await (const event of response) { console.log(event); }

Using the Langflow client

The easiest way to use the Langflow API is with the @datastax/langflow-client npm module. You can get started with the client by installing the module with npm:

npm install @datastax/langflow-client

We showed an example of how to set the Langflow client up before, but the quick version starts by importing the client:

import { LangflowClient } from "@datastax/langflow-client"

You then need the URL where you’re hosting Langflow and, if you've set up user authorisation, an API key. You then initialise the client with both:

const baseUrl = "http://localhost:7860";  
const apiKey = "YOUR_API_KEY";  
const client = new LangflowClient({ baseUrl, apiKey });

Streaming with the Langflow client

To stream through the API, you need a flow that’s set up for streaming responses. A streaming flow needs a model with streaming capabilities and the stream flag turned on, connected to a chat output. The basic prompting example, with streaming turned on, is a good example of this.

A screenshot of a Langflow flow with a chat input and prompt that are both connected to the OpenAI model. The OpenAI model component has the Stream setting enabled and it is connected to a Chat Output component.
A screenshot of a Langflow flow with a chat input and prompt that are both connected to the OpenAI model. The OpenAI model component has the Stream setting enabled and it is connected to a Chat Output component.

If you don't already have a flow, you can use the basic prompting flow as an example.

Once you have your flow in place, open the API modal and get the flow ID.

A screenshot of the Langflow API modal. It shows the API URL and points out that the flow ID can be found in the URL after api/v1/run.
A screenshot of the Langflow API modal. It shows the API URL and points out that the flow ID can be found in the URL after api/v1/run.

With the flow ID and the Langflow client, you can create a flow object:

const flowId = "YOUR_FLOW_ID";  
const flow = client.flow(flowId);

To stream a response from the flow, you can use the stream function. The response is a ReadableStream that you can iterate asynchronously over.

const response = await flow.stream("Hello, how are you?");  
for await (const event of response) {  
  console.log(event);  
}

There are three types of event that the stream emits; this is what each of them means:

  • add_message: a message has been added to the chat. It can refer to a human input message or a response from an AI.
  • token: a token has been emitted as part of a message being generated by the model.
  • end: all tokens have been returned; this message will also contain the same full response that you get from a non-streaming request

If you want to log out just the text from a flow response you can do the following:

const response = await flow.stream("Hello, how are you?");  
for await (const event of response) {  
  if (event.event === "token") {  
    console.log(event.data.chunk);  
  }  
}
An animation of a terminal program running the code that logs each chunk. It logs its response one word at a time, but quickly.
An animation of a terminal program running the code that logs each chunk. It logs its response one word at a time, but quickly.

The stream function takes all the same arguments as the run function, so you can provide tweaks for your components, too.

Integrating with Express

If you want to make an API request from an Express server and then stream it to your own front-end, you can do the following:

app.get("/stream", async (_req, res) => {  
  res.set("Content-Type", "text/plain");  
  res.set("Transfer-Encoding", "chunked");  
  
  const response = await flow.stream("Hello, how are you?");  
  
  for await (const event of response) {  
    if (event.event === "token") {  
      res.write(event.data.chunk);  
    }  
  }  
  
  res.end();  
});

We explored how you can handle a stream on the front-end in this blog post.

Stream your flows

Langflow enables you to rapidly build, experiment with, and deploy GenAI applications and with the JavaScript Langflow client you can easily stream those responses in your JavaScript applications.

Please do try out the Langflow client; if you have any issues, please raise them on the GitHub repo. If you're looking for more inspiration for building AI agents with Langflow, check out these posts that cover how to build an agent that can manage your calendar with Langflow and Composio or see how you can build local agents with Langflow and Ollama.


Similar Posts

Langflow 1.10 Desktop is now available

Langflow 1.10 Desktop is now available

Langflow Dev Team

Written by Langflow Dev Team

June 18, 2026

Langflow 1.10 Desktop is now available. For the full list of new features and platform updates in 1.10, see the OSS release announcement.

Langflow 1.10 released: Assistant flow building, Memory bases, DB Providers, internationalization, and more

Langflow 1.10 released: Assistant flow building, Memory bases, DB Providers, internationalization, and more

Langflow Dev Team

Written by Langflow Dev Team

June 9, 2026

Langflow 1.10 expands Langflow Assistant to build entire flows, introduces Memory bases for long-term semantic memory, adds configurable vector database backends, brings the interface to seven languages, and more.

Scaling Langflow: Unlocking Massive Memory Savings and Bulletproof Reliability

Scaling Langflow: Unlocking Massive Memory Savings and Bulletproof Reliability

Langflow Dev Team

Written by Langflow Dev Team

June 9, 2026

The Langflow engineering team breaks down a comprehensive package of memory and stability enhancements spanning v1.9.0 through v1.10.0—achieving an ~89% reduction in memory consumption through dependency pruning, worker lifecycle management, and advanced Linux Copy-on-Write techniques.

Langflow Policies: Turning Natural-Language Rules into Guarded Tools

Langflow Policies: Turning Natural-Language Rules into Guarded Tools

Langflow Dev Team

Written by Langflow Dev Team

May 20, 2026

Langflow's new Policies feature compiles natural-language business rules into deterministic guards around agent tools—so policy violations are caught before they happen, not after.