Files
langflow/typescript-client.html
github-merge-queue[bot] dff8ebb9fa deploy: d4fca1fe40
2025-06-20 18:43:03 +00:00

123 lines
66 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-Develop/Clients/typescript-client" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.7.0">
<title data-rh="true">Langflow TypeScript client | Langflow Documentation</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.langflow.org/typescript-client"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Langflow TypeScript client | Langflow Documentation"><meta data-rh="true" name="description" content="The Langflow TypeScript client allows your TypeScript applications to programmatically interact with the Langflow API."><meta data-rh="true" property="og:description" content="The Langflow TypeScript client allows your TypeScript applications to programmatically interact with the Langflow API."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://docs.langflow.org/typescript-client"><link data-rh="true" rel="alternate" href="https://docs.langflow.org/typescript-client" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.langflow.org/typescript-client" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://UZK6BDPCVY-dsn.algolia.net" crossorigin="anonymous"><link rel="preconnect" href="https://www.google-analytics.com">
<link rel="preconnect" href="https://www.googletagmanager.com">
<script async src="https://www.googletagmanager.com/gtag/js?id=G-SLQFLQ3KPT"></script>
<script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-SLQFLQ3KPT",{})</script>
<link rel="search" type="application/opensearchdescription+xml" title="Langflow Documentation" href="/opensearch.xml">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Sora:wght@550;600&amp;display=swap">
<script>!function(){window.semaphore=window.semaphore||[],window.ketch=function(){window.semaphore.push(arguments)};var e=document.createElement("script");e.type="text/javascript",e.src="https://global.ketchcdn.com/web/v3/config/datastax/langflow_org_web/boot.js",e.defer=e.async=!0,document.getElementsByTagName("head")[0].appendChild(e)}()</script>
<script defer="true">!function(){const e=e=>{if(window.gtag&&e.purposes&&"analytics"in e.purposes&&"targeted_advertising"in e.purposes){const n=!0===e.purposes.analytics?"granted":"denied",t=!0===e.purposes.targeted_advertising?"granted":"denied",a={analytics_storage:n,ad_personalization:t,ad_storage:t,ad_user_data:t};window.gtag("consent","update",a)}};window.ketch&&window.ketch("on","consent",e)}()</script><link rel="stylesheet" href="/assets/css/styles.556d0cc8.css">
<script src="/assets/js/runtime~main.36d0d05a.js" defer="defer"></script>
<script src="/assets/js/main.01cab6af.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,t("light"))}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top navbarHideable_m1mJ"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/lf-docs-light.svg" alt="Langflow" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/lf-docs-dark.svg" alt="Langflow" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div></a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/langflow-ai/langflow" target="_blank" class="navbar__item navbar__link header-github-link"></a><a href="https://twitter.com/langflow_ai" target="_blank" class="navbar__item navbar__link header-twitter-link"></a><a href="https://discord.gg/EqksyE2EX9" target="_blank" class="navbar__item navbar__link header-discord-link"></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite" aria-pressed="false"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search (Command+K)"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20" aria-hidden="true"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd sidebarWithHideableNavbar_wUlq"><a tabindex="-1" class="sidebarLogo_isFc" href="/"><img src="/img/lf-docs-light.svg" alt="Langflow" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/lf-docs-dark.svg" alt="Langflow" class="themedComponent_mlkZ themedComponent--dark_xIcU"></a><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Welcome to Langflow</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/get-started-installation">Get started</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/basic-prompting">Templates</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/concepts-overview">Concepts</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/components-agents">Components</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/agents-overview">Agents</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/mcp-server">Model Context Protocol (MCP)</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/configuration-api-keys">Configuration</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role="button" aria-expanded="true" href="/develop-overview">Develop</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/develop-overview">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/develop-application">Develop an application in Langflow</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/install-custom-dependencies">Install custom dependencies</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/memory">Memory management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/session-id">Session ID</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/logging">Logging</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/webhook">Webhook</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role="button" aria-expanded="true" tabindex="0" href="/typescript-client">Clients</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/typescript-client">TypeScript Client</a></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/deployment-overview">Deployment</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/api">API reference</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/integrations-apify">Integrations</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/contributing-community">Contributing</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a href="https://github.com/langflow-ai/langflow/releases/latest" target="_blank" rel="noopener noreferrer" class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false">Changelog</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/luna-for-langflow">Support</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 sidebar-ad">
<a href="https://astra.datastax.com/signup?type=langflow" target="_blank" class="menu__link">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cloud"><path d="M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z"/></svg>
<div class="sidebar-ad-text-container">
<span class="sidebar-ad-text">Use Langflow in the cloud</span>
<span class="sidebar-ad-text sidebar-ad-text-gradient">Sign up for DataStax Langflow</span>
</div>
</a>
</li></ul></nav></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Develop</span><meta itemprop="position" content="1"></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Clients</span><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">TypeScript Client</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Langflow TypeScript client</h1></header><style>[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }</style>
<!-- -->
<p>The Langflow TypeScript client allows your TypeScript applications to programmatically interact with the Langflow API.</p>
<p>For the client code repository, see <a href="https://github.com/datastax/langflow-client-ts/" target="_blank" rel="noopener noreferrer">langflow-client-ts</a>.</p>
<p>For the npm package, see <a href="https://www.npmjs.com/package/@datastax/langflow-client" target="_blank" rel="noopener noreferrer">@datastax/langflow-client</a>.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="install-the-langflow-typescript-package">Install the Langflow TypeScript package<a href="#install-the-langflow-typescript-package" class="hash-link" aria-label="Direct link to Install the Langflow TypeScript package" title="Direct link to Install the Langflow TypeScript package"></a></h2>
<p>To install the Langflow typescript client package, use one of the following commands:</p>
<div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">npm</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">yarn</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">pnpm</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>npm install @datastax/langflow-client</span></div></div><br></code></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>yarn add @datastax/langflow-client</span></div></div><br></code></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>pnpm add @datastax/langflow-client</span></div></div><br></code></div></div></div></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="initialize-the-langflow-typescript-client">Initialize the Langflow TypeScript client<a href="#initialize-the-langflow-typescript-client" class="hash-link" aria-label="Direct link to Initialize the Langflow TypeScript client" title="Direct link to Initialize the Langflow TypeScript client"></a></h2>
<ol>
<li>Import the client into your code.</li>
</ol>
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>import { LangflowClient } from &quot;@datastax/langflow-client&quot;;</span></div></div><br></code></div></div>
<ol start="2">
<li>Initialize a client object to interact with your server.
The <code>LangflowClient</code> object allows you to interact with the Langflow API.</li>
</ol>
<p>Replace <code>BASE_URL</code> and <code>API_KEY</code> with values from your deployment.
The default Langflow base URL is <code>http://localhost:7860</code>.
To create an API key, see <a href="/configuration-api-keys">API keys</a>.</p>
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>const baseUrl = &quot;BASE_URL&quot;;</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>const apiKey = &quot;API_KEY&quot;;</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>const client = new LangflowClient({ baseUrl, apiKey });</span></div></div><br></code></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="langflow-typescript-client-quickstart">Langflow TypeScript client quickstart<a href="#langflow-typescript-client-quickstart" class="hash-link" aria-label="Direct link to Langflow TypeScript client quickstart" title="Direct link to Langflow TypeScript client quickstart"></a></h2>
<ol>
<li>With your Langflow client initialized, submit a message to your Langflow server and receive a response.
This example uses the minimum values for sending a message and running your flow on a Langflow server, with no API keys.
Replace <code>baseUrl</code> and <code>flowId</code> with values from your deployment.
The <code>input</code> string is the message you&#x27;re sending to your flow.</li>
</ol>
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->15</span><div style="display:inline-block;margin-left:16px"><span>import { LangflowClient } from &quot;@datastax/langflow-client&quot;;</span></div></div><div><span class="ch-code-line-number">_<!-- -->15</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->15</span><div style="display:inline-block;margin-left:16px"><span>const baseUrl = &quot;http://localhost:7860&quot;;</span></div></div><div><span class="ch-code-line-number">_<!-- -->15</span><div style="display:inline-block;margin-left:16px"><span>const client = new LangflowClient({ baseUrl });</span></div></div><div><span class="ch-code-line-number">_<!-- -->15</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->15</span><div style="display:inline-block;margin-left:16px"><span>async function runFlow() {</span></div></div><div><span class="ch-code-line-number">_<!-- -->15</span><div style="display:inline-block;margin-left:16px"><span> const flowId = &quot;aa5a238b-02c0-4f03-bc5c-cc3a83335cdf&quot;;</span></div></div><div><span class="ch-code-line-number">_<!-- -->15</span><div style="display:inline-block;margin-left:16px"><span> const flow = client.flow(flowId);</span></div></div><div><span class="ch-code-line-number">_<!-- -->15</span><div style="display:inline-block;margin-left:16px"><span> const input = &quot;Is anyone there?&quot;;</span></div></div><div><span class="ch-code-line-number">_<!-- -->15</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->15</span><div style="display:inline-block;margin-left:16px"><span> const response = await flow.run(input);</span></div></div><div><span class="ch-code-line-number">_<!-- -->15</span><div style="display:inline-block;margin-left:16px"><span> console.log(response);</span></div></div><div><span class="ch-code-line-number">_<!-- -->15</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><div><span class="ch-code-line-number">_<!-- -->15</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->15</span><div style="display:inline-block;margin-left:16px"><span>runFlow().catch(console.error);</span></div></div><br></code></div></div>
<details open="" class="details_lb9f alert alert--info details_b_Ee" data-collapsed="false"><summary>Response</summary><div><div class="collapsibleContent_i85q"><div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>FlowResponse {</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> sessionId: &#x27;aa5a238b-02c0-4f03-bc5c-cc3a83335cdf&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> outputs: [ { inputs: [Object], outputs: [Array] } ]</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><br></code></div></div></div></div></details>
<p>This confirms your client is connecting to Langflow.</p>
<ul>
<li>The <code>sessionID</code> value is a unique identifier for the client-server session. For more information, see <a href="/session-id">Session ID</a>.</li>
<li>The <code>outputs</code> array contains the results of your flow execution.</li>
</ul>
<ol start="2">
<li>To get the full response objects from your server, change the <code>console.log</code> code to stringify the returned JSON object:</li>
</ol>
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>console.log(JSON.stringify(response, null, 2));</span></div></div><br></code></div></div>
<p>The exact structure of the returned <code>inputs</code> and <code>outputs</code> depends on how your flow is configured in Langflow.</p>
<ol start="3">
<li>To get the first chat message returned from the chat output component, change <code>console.log</code> to use the <code>chatOutputText</code> convenience function.</li>
</ol>
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>console.log(response.chatOutputText());</span></div></div><br></code></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="use-advanced-typescript-client-features">Use advanced TypeScript client features<a href="#use-advanced-typescript-client-features" class="hash-link" aria-label="Direct link to Use advanced TypeScript client features" title="Direct link to Use advanced TypeScript client features"></a></h2>
<p>The TypeScript client can do more than just connect to your server and run a flow.</p>
<p>This example builds on the quickstart with additional features for interacting with Langflow.</p>
<ol>
<li>Pass tweaks to your code as an object with the request.
Tweaks change values within components for all calls to your flow.
This example tweaks the Open-AI model component to enforce using the <code>gpt-4o-mini</code> model.</li>
</ol>
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>const tweaks = { model_name: &quot;gpt-4o-mini&quot; };</span></div></div><br></code></div></div>
<ol start="2">
<li>Pass a session ID with the request to maintain the same conversation with the LLM from this application.</li>
</ol>
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>const session_id = &quot;aa5a238b-02c0-4f03-bc5c-cc3a83335cdf&quot;;</span></div></div><br></code></div></div>
<ol start="3">
<li>Instead of calling <code>run</code> on the Flow object, call <code>stream</code> with the same arguments.
The response is a <a href="https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream" target="_blank" rel="noopener noreferrer">ReadableStream</a> of objects.
For more information on streaming Langflow responses, see <a href="https://docs.langflow.org/api-reference-api-examples#run-flow" target="_blank" rel="noopener noreferrer">Run flow</a>.</li>
</ol>
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>const response = await client.flow(flowId).stream(input);</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>for await (const event of response) {</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> console.log(event);</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><br></code></div></div>
<ol start="4">
<li>Run the completed TypeScript application to call your server with <code>tweaks</code> and <code>session_id</code>, and stream the response back.
Replace <code>baseUrl</code> and <code>flowId</code> with values from your deployment.</li>
</ol>
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->22</span><div style="display:inline-block;margin-left:16px"><span>import { LangflowClient } from &quot;@datastax/langflow-client&quot;;</span></div></div><div><span class="ch-code-line-number">_<!-- -->22</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->22</span><div style="display:inline-block;margin-left:16px"><span>const baseUrl = &quot;http://localhost:7860&quot;;</span></div></div><div><span class="ch-code-line-number">_<!-- -->22</span><div style="display:inline-block;margin-left:16px"><span>const client = new LangflowClient({ baseUrl });</span></div></div><div><span class="ch-code-line-number">_<!-- -->22</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->22</span><div style="display:inline-block;margin-left:16px"><span>async function runFlow() {</span></div></div><div><span class="ch-code-line-number">_<!-- -->22</span><div style="display:inline-block;margin-left:16px"><span> const flowId = &quot;aa5a238b-02c0-4f03-bc5c-cc3a83335cdf&quot;;</span></div></div><div><span class="ch-code-line-number">_<!-- -->22</span><div style="display:inline-block;margin-left:16px"><span> const input = &quot;Is anyone there?&quot;;</span></div></div><div><span class="ch-code-line-number">_<!-- -->22</span><div style="display:inline-block;margin-left:16px"><span> const tweaks = { model_name: &quot;gpt-4o-mini&quot; };</span></div></div><div><span class="ch-code-line-number">_<!-- -->22</span><div style="display:inline-block;margin-left:16px"><span> const session_id = &quot;test-session&quot;;</span></div></div><div><span class="ch-code-line-number">_<!-- -->22</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->22</span><div style="display:inline-block;margin-left:16px"><span> const response = await client.flow(flowId).stream(input, {</span></div></div><div><span class="ch-code-line-number">_<!-- -->22</span><div style="display:inline-block;margin-left:16px"><span> session_id,</span></div></div><div><span class="ch-code-line-number">_<!-- -->22</span><div style="display:inline-block;margin-left:16px"><span> tweaks,</span></div></div><div><span class="ch-code-line-number">_<!-- -->22</span><div style="display:inline-block;margin-left:16px"><span> });</span></div></div><div><span class="ch-code-line-number">_<!-- -->22</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->22</span><div style="display:inline-block;margin-left:16px"><span> for await (const event of response) {</span></div></div><div><span class="ch-code-line-number">_<!-- -->22</span><div style="display:inline-block;margin-left:16px"><span> console.log(event);</span></div></div><div><span class="ch-code-line-number">_<!-- -->22</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->22</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->22</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><div><span class="ch-code-line-number">_<!-- -->22</span><div style="display:inline-block;margin-left:16px"><span>runFlow().catch(console.error);</span></div></div><br></code></div></div>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Response</summary><div><div class="collapsibleContent_i85q"><div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span>{</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> event: &#x27;add_message&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> data: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> timestamp: &#x27;2025-05-23 15:52:48 UTC&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> sender: &#x27;User&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> sender_name: &#x27;User&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> session_id: &#x27;test-session&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> text: &#x27;Is anyone there?&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> files: [],</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> error: false,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> edit: false,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> properties: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> text_color: &#x27;&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> background_color: &#x27;&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> edited: false,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> source: [Object],</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> icon: &#x27;&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> allow_markdown: false,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> positive_feedback: null,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> state: &#x27;complete&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> targets: []</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> },</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> category: &#x27;message&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> content_blocks: [],</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> id: &#x27;7f096715-3f2d-4d84-88d6-5e2f76bf3fbe&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> flow_id: &#x27;aa5a238b-02c0-4f03-bc5c-cc3a83335cdf&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> duration: null</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span>{</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> event: &#x27;token&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> data: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> chunk: &#x27;Absolutely&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> id: &#x27;c5a99314-6b23-488b-84e2-038aa3e87fb5&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> timestamp: &#x27;2025-05-23 15:52:48 UTC&#x27;</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span>{</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> event: &#x27;token&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> data: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> chunk: &#x27;,&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> id: &#x27;c5a99314-6b23-488b-84e2-038aa3e87fb5&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> timestamp: &#x27;2025-05-23 15:52:48 UTC&#x27;</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span>{</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> event: &#x27;token&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> data: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> chunk: &quot; I&#x27;m&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> id: &#x27;c5a99314-6b23-488b-84e2-038aa3e87fb5&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> timestamp: &#x27;2025-05-23 15:52:48 UTC&#x27;</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span>{</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> event: &#x27;token&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> data: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> chunk: &#x27; here&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> id: &#x27;c5a99314-6b23-488b-84e2-038aa3e87fb5&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> timestamp: &#x27;2025-05-23 15:52:48 UTC&#x27;</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span>// this response is abbreviated</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span>{</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> event: &#x27;end&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span> data: { result: { session_id: &#x27;test-session&#x27;, outputs: [Array] } }</span></div></div><div><span class="ch-code-line-number">_<!-- -->68</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><br></code></div></div></div></div></details>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="retrieve-langflow-logs-with-the-typescript-client">Retrieve Langflow logs with the TypeScript client<a href="#retrieve-langflow-logs-with-the-typescript-client" class="hash-link" aria-label="Direct link to Retrieve Langflow logs with the TypeScript client" title="Direct link to Retrieve Langflow logs with the TypeScript client"></a></h2>
<p>To retrieve Langflow logs, you must enable log retrieval on your Langflow server by including the following values in your server&#x27;s <code>.env</code> file:</p>
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>LANGFLOW_ENABLE_LOG_RETRIEVAL=true</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>LANGFLOW_LOG_RETRIEVER_BUFFER_SIZE=10000</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>LANGFLOW_LOG_LEVEL=DEBUG</span></div></div><br></code></div></div>
<p>For more information, see <a href="/api-reference-api-examples#logs">API examples</a>.</p>
<p>This complete example starts streaming logs in the background, and then runs a flow so you can see how a flow executes.
Replace <code>baseUrl</code> and <code>flowId</code> with values from your deployment.</p>
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span>import { LangflowClient } from &quot;@datastax/langflow-client&quot;;</span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span>const baseUrl = &quot;http://localhost:7863&quot;;</span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span>const flowId = &quot;86f0bf45-0544-4e88-b0b1-8e622da7a7f0&quot;;</span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span>async function runFlow(client: LangflowClient) {</span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span> const input = &quot;Is anyone there?&quot;;</span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span> const response = await client.flow(flowId).run(input);</span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span> console.log(&#x27;Flow response:&#x27;, response);</span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span>async function main() {</span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span> const client = new LangflowClient({ baseUrl: baseUrl });</span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span> // Start streaming logs</span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span> console.log(&#x27;Starting log stream...&#x27;);</span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span> for await (const log of await client.logs.stream()) {</span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span> console.log(&#x27;Log:&#x27;, log);</span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span> // Run the flow</span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span> await runFlow(client);</span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->26</span><div style="display:inline-block;margin-left:16px"><span>main().catch(console.error);</span></div></div><br></code></div></div>
<p>Logs begin streaming indefinitely, and the flow runs once.</p>
<p>The logs below are abbreviated, but you can monitor how the flow instantiates its components, configures its model, and processes the outputs.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Response</summary><div><div class="collapsibleContent_i85q"><div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>Starting log stream...</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>Log: Log {</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> timestamp: 2025-05-30T11:49:16.006Z,</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> message: &#x27;2025-05-30T07:49:16.006127-0400 DEBUG Instantiating ChatInput of type component\n&#x27;</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>Log: Log {</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> timestamp: 2025-05-30T11:49:16.029Z,</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> message: &#x27;2025-05-30T07:49:16.029957-0400 DEBUG Instantiating Prompt of type component\n&#x27;</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>Log: Log {</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> timestamp: 2025-05-30T11:49:16.049Z,</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> message: &#x27;2025-05-30T07:49:16.049520-0400 DEBUG Instantiating ChatOutput of type component\n&#x27;</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>Log: Log {</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> timestamp: 2025-05-30T11:49:16.069Z,</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> message: &#x27;2025-05-30T07:49:16.069359-0400 DEBUG Instantiating OpenAIModel of type component\n&#x27;</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>Log: Log {</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> timestamp: 2025-05-30T11:49:16.086Z,</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> message: &quot;2025-05-30T07:49:16.086426-0400 DEBUG Running layer 0 with 2 tasks, [&#x27;ChatInput-xjucM&#x27;, &#x27;Prompt-I3pxU&#x27;]\n&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>Log: Log {</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> timestamp: 2025-05-30T11:49:16.101Z,</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> message: &#x27;2025-05-30T07:49:16.101766-0400 DEBUG Building Chat Input\n&#x27;</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>Log: Log {</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> timestamp: 2025-05-30T11:49:16.113Z,</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> message: &#x27;2025-05-30T07:49:16.113343-0400 DEBUG Building Prompt\n&#x27;</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>Log: Log {</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> timestamp: 2025-05-30T11:49:16.131Z,</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> message: &#x27;2025-05-30T07:49:16.131423-0400 DEBUG Logged vertex build: 6bd9fe9c-5eea-4f05-a96d-f6de9dc77e3c\n&#x27;</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>Log: Log {</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> timestamp: 2025-05-30T11:49:16.143Z,</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> message: &#x27;2025-05-30T07:49:16.143295-0400 DEBUG Logged vertex build: 39c68ec9-3859-4fff-9b14-80b3271f8fbf\n&#x27;</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>Log: Log {</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> timestamp: 2025-05-30T11:49:16.188Z,</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> message: &quot;2025-05-30T07:49:16.188730-0400 DEBUG Running layer 1 with 1 tasks, [&#x27;OpenAIModel-RtlZm&#x27;]\n&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>Log: Log {</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> timestamp: 2025-05-30T11:49:16.201Z,</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> message: &#x27;2025-05-30T07:49:16.201946-0400 DEBUG Building OpenAI\n&#x27;</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>Log: Log {</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> timestamp: 2025-05-30T11:49:16.216Z,</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> message: &#x27;2025-05-30T07:49:16.216622-0400 INFO Model name: gpt-4.1-mini\n&#x27;</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>Flow response: FlowResponse {</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> sessionId: &#x27;86f0bf45-0544-4e88-b0b1-8e622da7a7f0&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> outputs: [ { inputs: [Object], outputs: [Array] } ]</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>Log: Log {</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> timestamp: 2025-05-30T11:49:18.094Z,</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span> message: `2025-05-30T07:49:18.094364-0400 DEBUG Vertex OpenAIModel-RtlZm, result: &lt;langflow.graph.utils.UnbuiltResult object at 0x364d24dd0&gt;, object: {&#x27;text_output&#x27;: &quot;Hey there! I&#x27;m here and ready to help you build something awesome with AI. What are you thinking about creating today?&quot;}\n`</span></div></div><div><span class="ch-code-line-number">_<!-- -->57</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><br></code></div></div></div></div></details>
<p>The <code>FlowResponse</code> object is returned to the client, with the <code>outputs</code> array including your flow result.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="langflow-typescript-project-repository">Langflow TypeScript project repository<a href="#langflow-typescript-project-repository" class="hash-link" aria-label="Direct link to Langflow TypeScript project repository" title="Direct link to Langflow TypeScript project repository"></a></h2>
<p>You can do even more with the Langflow TypeScript client.</p>
<p>For more information, see the <a href="https://github.com/datastax/langflow-client-ts/" target="_blank" rel="noopener noreferrer">langflow-client-ts</a> repository.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/webhook"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Webhook</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/deployment-overview"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Deployment overview</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#install-the-langflow-typescript-package" class="table-of-contents__link toc-highlight">Install the Langflow TypeScript package</a></li><li><a href="#initialize-the-langflow-typescript-client" class="table-of-contents__link toc-highlight">Initialize the Langflow TypeScript client</a></li><li><a href="#langflow-typescript-client-quickstart" class="table-of-contents__link toc-highlight">Langflow TypeScript client quickstart</a></li><li><a href="#use-advanced-typescript-client-features" class="table-of-contents__link toc-highlight">Use advanced TypeScript client features</a></li><li><a href="#retrieve-langflow-logs-with-the-typescript-client" class="table-of-contents__link toc-highlight">Retrieve Langflow logs with the TypeScript client</a></li><li><a href="#langflow-typescript-project-repository" class="table-of-contents__link toc-highlight">Langflow TypeScript project repository</a></li></ul></div></div></div></div></main></div></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title"></div><ul class="footer__items clean-list"><li class="footer__item"><div class="footer-links">
<span>© 2025 Langflow</span>
<span id="preferenceCenterContainer"> ·&nbsp; <a href="https://langflow.org/preferences">Manage Privacy Choices</a></span>
</div></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/lf-docs-light.svg" alt="Langflow" class="footer__logo themedComponent_mlkZ themedComponent--light_NVdE" width="160" height="40"><img src="/img/lf-docs-dark.svg" alt="Langflow" class="footer__logo themedComponent_mlkZ themedComponent--dark_xIcU" width="160" height="40"></div></div></div></footer><div style="position:fixed;right:20px;bottom:20px;z-index:100;display:flex;align-items:center;gap:10px;cursor:pointer"><div style="background-color:#f6f6f6;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px rgba(0,0,0,0.1)"><img src="/img/langflow-icon-black-transparent.svg" style="width:40px" alt="Search"></div></div></div>
</body>
</html>