Files
langflow/components-data.html
github-merge-queue[bot] 4e1955ec09 deploy: afb82019bf
2025-07-10 15:49:56 +00:00

285 lines
64 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-Components/components-data" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.8.1">
<title data-rh="true">Data | 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/components-data"><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="Data | Langflow Documentation"><meta data-rh="true" name="description" content="Data components load data from a source into your flow."><meta data-rh="true" property="og:description" content="Data components load data from a source into your flow."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://docs.langflow.org/components-data"><link data-rh="true" rel="alternate" href="https://docs.langflow.org/components-data" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.langflow.org/components-data" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://UZK6BDPCVY-dsn.algolia.net" crossorigin="anonymous"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Data","item":"https://docs.langflow.org/components-data"}]}</script><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.530387df.css">
<script src="/assets/js/runtime~main.bfe9a128.js" defer="defer"></script>
<script src="/assets/js/main.a08bb881.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),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="theme-layout-navbar navbar navbar--fixed-top navbarHideable_m1mJ"><div class="navbar__inner"><div class="theme-layout-navbar-left 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="theme-layout-navbar-right 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="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP 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" aria-hidden="true" class="toggleIcon_g3eP 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><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></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="theme-layout-main 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"><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="/concepts-components">Components</a></div><ul 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="/concepts-components">Components 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="/components-agents">Agents</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="/components-bundle-components">Bundles</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="/components-custom-components">Create custom Python components</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/components-data">Data</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="/components-embedding-models">Embedding models</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="/components-helpers">Helpers</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="/components-io">Inputs and outputs</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="/components-logic">Logic</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="/components-memories">Memories</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="/components-models">Language models</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="/components-processing">Processing</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="/components-prompts">Prompts</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="/components-tools">Tools</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="/components-vector-stores">Vector stores</a></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="/agents">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 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="/develop-overview">Develop</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="/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-reference-api-examples">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">Contribute</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="/release-notes">Release notes</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="/troubleshoot">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"><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">Components</span></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Data</span></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"><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>
<!-- -->
<header><h1>Data components in Langflow</h1></header>
<p>Data components load data from a source into your flow.</p>
<p>They may perform some processing or type checking, like converting raw HTML data into text, or ensuring your loaded file is of an acceptable type.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="use-data-components-in-a-flow">Use data components in a flow<a href="#use-data-components-in-a-flow" class="hash-link" aria-label="Direct link to Use data components in a flow" title="Direct link to Use data components in a flow"></a></h2>
<p>Components like <a href="#news-search">News search</a>, <a href="#rss-reader">RSS reader</a>, and <a href="#web-search">Web search</a> all fetch data into Langflow, and connect to Langflow in the same way. They can output the retrieved data in <a href="/concepts-objects#dataframe-object">DataFrame</a> format, or can be connected to an <strong>Agent</strong> component to be used as tools.</p>
<p>For example, to connect all three components to an Agent component, do the following:</p>
<ol>
<li>Create the <a href="/simple-agent">Simple Agent starter flow</a>.</li>
<li>In the <strong>Agent</strong> component, in the <strong>OpenAI API Key</strong> field, add your OpenAI API key.</li>
<li>Add the <strong>News search</strong>, <strong>RSS reader</strong>, and <strong>Web Search</strong> components to your flow.</li>
<li>In all three components, enable <strong>Tool Mode</strong>.</li>
<li>Connect the three components to the <strong>Agent</strong> component&#x27;s <strong>Tools</strong> port.
The flow looks like the following:</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Data components connected to agent" src="/assets/images/connect-data-components-to-agent-a8cd8c94d0474ae434aeb5d507a803e8.png" width="4000" height="3028" class="img_ev3q"></p>
<ol start="6">
<li>Open the <strong>Playground</strong> and enter <code>Use the websearch component to get me an RSS feed of the latest news.</code>
The Agent uses the <code>perform_search</code> tool to return a list of RSS feeds.</li>
<li>Enter the name of an RSS feed that interests you.
The Agent uses the <code>read_rss</code> tool to fetch and summarize the latest RSS feed.</li>
</ol>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="api-request">API Request<a href="#api-request" class="hash-link" aria-label="Direct link to API Request" title="Direct link to API Request"></a></h2>
<p>This component makes HTTP requests using URLs or cURL commands.</p>
<ol>
<li>
<p>To use this component in a flow, connect the <strong>Data</strong> output to a component that accepts the input.
For example, connect the <strong>API Request</strong> component to a <strong>Chat Output</strong> component.</p>
</li>
<li>
<p>In the API component&#x27;s <strong>URLs</strong> field, enter the endpoint for your request.
This example uses <code>https://dummy-json.mock.beeceptor.com/posts</code>, which is a list of technology blog posts.</p>
</li>
<li>
<p>In the <strong>Method</strong> field, enter the type of request.
This example uses GET to retrieve a list of blog posts.
The component also supports POST, PATCH, PUT, and DELETE.</p>
</li>
<li>
<p>Optionally, enable the <strong>Use cURL</strong> button to create a field for pasting curl requests.
The equivalent call in this example is <code>curl -v https://dummy-json.mock.beeceptor.com/posts</code>.</p>
</li>
<li>
<p>Click <strong>Playground</strong>, and then click <strong>Run Flow</strong>.
Your request returns a list of blog posts in the <code>result</code> field.</p>
</li>
</ol>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>urls</td><td>URLs</td><td>Enter one or more URLs, separated by commas.</td></tr><tr><td>curl</td><td>cURL</td><td>Paste a curl command to populate the dictionary fields for headers and body.</td></tr><tr><td>method</td><td>Method</td><td>The HTTP method to use.</td></tr><tr><td>use_curl</td><td>Use cURL</td><td>Enable cURL mode to populate fields from a cURL command.</td></tr><tr><td>query_params</td><td>Query Parameters</td><td>The query parameters to append to the URL.</td></tr><tr><td>body</td><td>Body</td><td>The body to send with the request as a dictionary (for <code>POST</code>, <code>PATCH</code>, <code>PUT</code>).</td></tr><tr><td>headers</td><td>Headers</td><td>The headers to send with the request as a dictionary.</td></tr><tr><td>timeout</td><td>Timeout</td><td>The timeout to use for the request.</td></tr><tr><td>follow_redirects</td><td>Follow Redirects</td><td>Whether to follow http redirects.</td></tr><tr><td>save_to_file</td><td>Save to File</td><td>Save the API response to a temporary file.</td></tr><tr><td>include_httpx_metadata</td><td>Include HTTPx Metadata</td><td>Include properties such as <code>headers</code>, <code>status_code</code>, <code>response_headers</code>, and <code>redirection_history</code> in the output.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>data</td><td>Data</td><td>The result of the API requests. Returns a Data object containing source URL and results.</td></tr><tr><td>dataframe</td><td>DataFrame</td><td>Converts the API response data into a tabular DataFrame format.</td></tr></tbody></table></div></div></details>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="directory">Directory<a href="#directory" class="hash-link" aria-label="Direct link to Directory" title="Direct link to Directory"></a></h2>
<p>This component recursively loads files from a directory, with options for file types, depth, and concurrency.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Input</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>path</td><td>MessageTextInput</td><td>The path to the directory to load files from.</td></tr><tr><td>types</td><td>MessageTextInput</td><td>The file types to load (leave empty to load all types).</td></tr><tr><td>depth</td><td>IntInput</td><td>The depth to search for files.</td></tr><tr><td>max_concurrency</td><td>IntInput</td><td>The maximum concurrency for loading files.</td></tr><tr><td>load_hidden</td><td>BoolInput</td><td>If true, hidden files are loaded.</td></tr><tr><td>recursive</td><td>BoolInput</td><td>If true, the search is recursive.</td></tr><tr><td>silent_errors</td><td>BoolInput</td><td>If true, errors do not raise an exception.</td></tr><tr><td>use_multithreading</td><td>BoolInput</td><td>If true, multithreading is used.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Output</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>data</td><td>List[Data]</td><td>The loaded file data from the directory.</td></tr><tr><td>dataframe</td><td>DataFrame</td><td>The loaded file data in tabular DataFrame format.</td></tr></tbody></table></div></div></details>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="file">File<a href="#file" class="hash-link" aria-label="Direct link to File" title="Direct link to File"></a></h2>
<p>This component loads and parses files of various supported formats and converts the content into a <a href="/concepts-objects">Data</a> object. It supports multiple file types and provides options for parallel processing and error handling.</p>
<p>To load a document, follow these steps:</p>
<ol>
<li>Click the <strong>Select files</strong> button.</li>
<li>Select a local file or a file loaded with <a href="/concepts-file-management">File management</a>, and then click <strong>Select file</strong>.</li>
</ol>
<p>The loaded file name appears in the component.</p>
<p>The default maximum supported file size is 100 MB.
To modify this value, see <a href="/environment-variables#LANGFLOW_MAX_FILE_SIZE_UPLOAD">--max-file-size-upload</a>.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>path</td><td>Files</td><td>The path to files to load. Supports individual files or bundled archives.</td></tr><tr><td>file_path</td><td>Server File Path</td><td>A Data object with a <code>file_path</code> property pointing to the server file or a Message object with a path to the file. Supersedes &#x27;Path&#x27; but supports the same file types.</td></tr><tr><td>separator</td><td>Separator</td><td>The separator to use between multiple outputs in Message format.</td></tr><tr><td>silent_errors</td><td>Silent Errors</td><td>If true, errors do not raise an exception.</td></tr><tr><td>delete_server_file_after_processing</td><td>Delete Server File After Processing</td><td>If true, the Server File Path is deleted after processing.</td></tr><tr><td>ignore_unsupported_extensions</td><td>Ignore Unsupported Extensions</td><td>If true, files with unsupported extensions are not processed.</td></tr><tr><td>ignore_unspecified_files</td><td>Ignore Unspecified Files</td><td>If true, <code>Data</code> with no <code>file_path</code> property is ignored.</td></tr><tr><td>use_multithreading</td><td>[Deprecated] Use Multithreading</td><td>Set &#x27;Processing Concurrency&#x27; greater than <code>1</code> to enable multithreading. This option is deprecated.</td></tr><tr><td>concurrency_multithreading</td><td>Processing Concurrency</td><td>When multiple files are being processed, the number of files to process concurrently. Default is 1. Values greater than 1 enable parallel processing for 2 or more files.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>data</td><td>Data</td><td>The parsed content of the file as a <a href="/concepts-objects">Data</a> object.</td></tr><tr><td>dataframe</td><td>DataFrame</td><td>The file content as a <a href="/concepts-objects#dataframe-object">DataFrame</a> object.</td></tr><tr><td>message</td><td>Message</td><td>The file content as a <a href="/concepts-objects#message-object">Message</a> object.</td></tr></tbody></table></div></div></details>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="supported-file-types">Supported File Types<a href="#supported-file-types" class="hash-link" aria-label="Direct link to Supported File Types" title="Direct link to Supported File Types"></a></h3>
<p>Text files:</p>
<ul>
<li><code>.txt</code> - Text files</li>
<li><code>.md</code>, <code>.mdx</code> - Markdown files</li>
<li><code>.csv</code> - CSV files</li>
<li><code>.json</code> - JSON files</li>
<li><code>.yaml</code>, <code>.yml</code> - YAML files</li>
<li><code>.xml</code> - XML files</li>
<li><code>.html</code>, <code>.htm</code> - HTML files</li>
<li><code>.pdf</code> - PDF files</li>
<li><code>.docx</code> - Word documents</li>
<li><code>.py</code> - Python files</li>
<li><code>.sh</code> - Shell scripts</li>
<li><code>.sql</code> - SQL files</li>
<li><code>.js</code> - JavaScript files</li>
<li><code>.ts</code>, <code>.tsx</code> - TypeScript files</li>
</ul>
<p>Archive formats (for bundling multiple files):</p>
<ul>
<li><code>.zip</code> - ZIP archives</li>
<li><code>.tar</code> - TAR archives</li>
<li><code>.tgz</code> - Gzipped TAR archives</li>
<li><code>.bz2</code> - Bzip2 compressed files</li>
<li><code>.gz</code> - Gzip compressed files</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="news-search">News search<a href="#news-search" class="hash-link" aria-label="Direct link to News search" title="Direct link to News search"></a></h2>
<p>This component searches Google News with RSS and returns clean article data. The <code>clean_html</code> method parses the HTML content with the BeautifulSoup library, and then removes HTML markup and strips whitespace so the output data is clean.</p>
<p>It returns news content as a DataFrame containing article titles, links, publication dates, and summaries. The component can also be used in <strong>Tool Mode</strong> with a connected <strong>Agent</strong>.</p>
<p>To use this component in a flow, connect the <strong>News Search</strong> output to a component that accepts the DataFrame input.
For example, connect the <strong>News Search</strong> component to a <strong>Chat Output</strong> component. Enter a search query, open the Playground, and click <strong>Run Flow</strong>.</p>
<p>The latest content is returned in a structured DataFrame, with the key columns <code>title</code>, <code>link</code>, <code>published</code> and <code>summary</code>.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>query</td><td>Search Query</td><td>Search keywords for news articles.</td></tr><tr><td>hl</td><td>Language (hl)</td><td>Language code, such as en-US, fr, de. Default: <code>en-US</code>.</td></tr><tr><td>gl</td><td>Country (gl)</td><td>Country code, such as US, FR, DE. Default: <code>US</code>.</td></tr><tr><td>ceid</td><td>Country<!-- -->:Language<!-- --> (ceid)</td><td>Language, such as US<!-- -->:en<!-- -->, FR<!-- -->:fr<!-- -->. Default: <code>US:en</code>.</td></tr><tr><td>topic</td><td>Topic</td><td>One of: WORLD, NATION, BUSINESS, TECHNOLOGY, ENTERTAINMENT, SCIENCE, SPORTS, HEALTH.</td></tr><tr><td>location</td><td>Location (Geo)</td><td>City, state, or country for location-based news. Leave blank for keyword search.</td></tr><tr><td>timeout</td><td>Timeout</td><td>Timeout for the request in seconds.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>articles</td><td>News Articles</td><td>A DataFrame containing article titles, links, publication dates, and summaries.</td></tr></tbody></table></div></div></details>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="rss-reader">RSS Reader<a href="#rss-reader" class="hash-link" aria-label="Direct link to RSS Reader" title="Direct link to RSS Reader"></a></h2>
<p>This component fetches and parses RSS feeds from any valid RSS feed URL. It returns the feed content as a DataFrame containing article titles, links, publication dates, and summaries. The component can also be used in <strong>Tool Mode</strong> with a connected <strong>Agent</strong>.</p>
<p>To use this component in a flow, do the following:</p>
<ol>
<li>Connect the <strong>RSS reader</strong> output to a component that accepts the DataFrame input, such as a <strong>Chat Output</strong> component.</li>
<li>In the <strong>RSS Feed URL</strong> field, enter an RSS feed, such as <code>https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml</code> for the New York Times.</li>
<li>Open the <strong>Playground</strong>, and then click <strong>Run Flow</strong>.</li>
</ol>
<p>The latest content is returned in a structured DataFrame, with the key columns <code>title</code>, <code>link</code>, <code>published</code> and <code>summary</code>.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>rss_url</td><td>RSS Feed URL</td><td>URL of the RSS feed to parse.</td></tr><tr><td>timeout</td><td>Timeout</td><td>Timeout for the RSS feed request in seconds. Default: <code>5</code>.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>articles</td><td>Articles</td><td>A DataFrame containing article titles, links, publication dates, and summaries.</td></tr></tbody></table></div></div></details>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="sql-database">SQL database<a href="#sql-database" class="hash-link" aria-label="Direct link to SQL database" title="Direct link to SQL database"></a></h2>
<p>This component executes SQL queries on <a href="https://docs.sqlalchemy.org/en/20/" target="_blank" rel="noopener noreferrer">SQLAlchemy-compatible databases</a>.
It supports any SQLAlchemy-compatible database, including PostgreSQL, MySQL, SQLite, and others.</p>
<p>To use this component in a flow, do the following:</p>
<ol>
<li>Create a test database called <code>test.db</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>sqlite3 test.db</span></div></div><br></code></div></div>
<ol start="2">
<li>Add values to the test database.</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>sqlite3 test.db &quot;CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, email TEXT, age INTEGER); INSERT INTO users (name, email, age) VALUES (&#x27;John Doe&#x27;, &#x27;john@example.com&#x27;, 30), (&#x27;Jane Smith&#x27;, &#x27;jane@example.com&#x27;, 25), (&#x27;Bob Johnson&#x27;, &#x27;bob@example.com&#x27;, 35);&quot;</span></div></div><br></code></div></div>
<ol start="3">
<li>Verify that <code>test.db</code> has been created and contains your data.</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>sqlite3 test.db &quot;SELECT * FROM users;&quot;</span></div></div><br></code></div></div>
<p>Result:</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>1|John Doe|john@example.com</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>2|Jane Smith|jane@example.com</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>3|John Doe|john@example.com</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>4|Jane Smith|jane@example.com</span></div></div><br></code></div></div>
<ol start="4">
<li>In the <strong>SQL Database</strong> component&#x27;s <strong>Database URL</strong> field, add the connection string for <code>test.db</code>, such as <code>sqlite:///test.db</code>.</li>
</ol>
<p>With this connection established, the <strong>SQL Query</strong> field now accepts SQL queries.
Instead of manually entering SQL queries, connect this database to an agent as a <strong>Tool</strong> to query it with natural language.</p>
<ol start="5">
<li>In the <strong>SQL Database</strong> component, enable <strong>Tool Mode</strong>, and then connect it to an <strong>Agent</strong> component.
The flow looks like the following:</li>
</ol>
<p><img decoding="async" loading="lazy" alt="SQL database connected to agent" src="/assets/images/component-sql-database-3d2c985aee2dd9970874cb85e1d2b570.png" width="4000" height="2400" class="img_ev3q"></p>
<ol start="6">
<li>In the <strong>Agent</strong> component, in the <strong>OpenAI API Key</strong> field, add your OpenAI API key.</li>
<li>Open the <strong>Playground</strong> and ask <code>What users are in my database?</code>
The Agent uses the <code>run_sql_query</code> tool to retrieve the information, and additionally identifies the duplicate <code>users</code> entries.</li>
</ol>
<p>Result:</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>Here are the users in your database:</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>1. **John Doe** - Email: john@example.com</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>2. **Jane Smith** - Email: jane@example.com</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>3. **John Doe** - Email: john@example.com</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>4. **Jane Smith** - Email: jane@example.com</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>It seems there are duplicate entries for the users.</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>&gt; Finished chain.</span></div></div><br></code></div></div>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>database_url</td><td>Database URL</td><td>The SQLAlchemy-compatible database connection URL.</td></tr><tr><td>query</td><td>SQL Query</td><td>The SQL query to execute.</td></tr><tr><td>include_columns</td><td>Include Columns</td><td>If enabled, includes column names in the result. Default: <code>true</code>.</td></tr><tr><td>add_error</td><td>Add Error</td><td>If enabled, adds any error messages to the result. Default: <code>false</code>.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>run_sql_query</td><td>Result Table</td><td>The query results as a DataFrame.</td></tr></tbody></table></div></div></details>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="web-search">Web search<a href="#web-search" class="hash-link" aria-label="Direct link to Web search" title="Direct link to Web search"></a></h2>
<p>This component performs web searches using DuckDuckGo&#x27;s HTML interface, and returns the search results as a <a href="/concepts-objects#dataframe-object">DataFrame</a> containing the key columns <code>title</code>, <code>links</code>, and <code>snippets</code>. The component can also be used in <strong>Tool Mode</strong> with a connected <strong>Agent</strong>.</p>
<p>To use this component in a flow, do the following:</p>
<ol>
<li>Add the <strong>Web search</strong> component to the <a href="/basic-prompting">Basic prompting</a> flow. In the <strong>Search Query</strong> field, enter a query, such as <code>environmental news</code>.</li>
<li>Connect the <strong>Web search</strong> component&#x27;s output to a component that accepts the DataFrame input.</li>
<li>Connect a <strong>Type Convert</strong> component to convert the DataFrame to a Message.</li>
<li>In the <strong>Type Convert</strong> component, in the <strong>Output Type</strong> field, select <strong>Message</strong>.
Your flow looks like the following:</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Type convert web search output to chat" src="/assets/images/component-type-convert-and-web-search-1eef7b9a7c1a243f4a08d9717728d0e1.png" width="4000" height="1826" class="img_ev3q"></p>
<ol start="5">
<li>In the <strong>Language Model</strong> component, in the <strong>OpenAI API Key</strong> field, add your OpenAI API key.</li>
<li>Click <strong>Playground</strong>, and then ask about <code>latest news</code>.</li>
</ol>
<p>The search results are returned to the Playground as a message.</p>
<p>Result:</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>Latest news</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>AI</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>gpt-4o-mini</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>Here are some of the latest news articles related to the environment:</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>Ozone Pollution and Global Warming: A recent study highlights that ozone pollution is a significant global environmental concern, threatening human health and crop production while exacerbating global warming. Read more</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 class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>note</div><div class="admonitionContent_BuS1"><p>This component uses web scraping and may be subject to rate limits. For production use, consider using an official search API.</p></div></div>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>query</td><td>Search Query</td><td>Keywords to search for.</td></tr><tr><td>timeout</td><td>Timeout</td><td>Timeout for the web search request in seconds. Default: <code>5</code>.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>results</td><td>Search Results</td><td>A DataFrame containing search results with titles, links, and snippets.</td></tr></tbody></table></div></div></details>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="url">URL<a href="#url" class="hash-link" aria-label="Direct link to URL" title="Direct link to URL"></a></h2>
<p>This component fetches content from one or more URLs, processes the content, and returns it in various formats. It supports output in plain text or raw HTML.</p>
<p>In the component&#x27;s <strong>URLs</strong> field, enter the URL you want to load. To add multiple URL fields, click <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus" aria-hidden="true"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg> <strong>Add URL</strong>.</p>
<ol>
<li>
<p>To use this component in a flow, connect the <strong>DataFrame</strong> output to a component that accepts the input.
For example, connect the <strong>URL</strong> component to a <strong>Chat Output</strong> component.</p>
</li>
<li>
<p>In the URL component&#x27;s <strong>URLs</strong> field, enter the URL for your request.
This example uses <code>langflow.org</code>.</p>
</li>
<li>
<p>Optionally, in the <strong>Max Depth</strong> field, enter how many pages away from the initial URL you want to crawl.
Select <code>1</code> to crawl only the page specified in the <strong>URLs</strong> field.
Select <code>2</code> to crawl all pages linked from that page.
The component crawls by link traversal, not by URL path depth.</p>
</li>
<li>
<p>Click <strong>Playground</strong>, and then click <strong>Run Flow</strong>.
The text contents of the URL are returned to the Playground as a structured DataFrame.</p>
</li>
<li>
<p>In the <strong>URL</strong> component, change the output port to <strong>Message</strong>, and then run the flow again.
The text contents of the URL are returned as unstructured raw text, which you can extract patterns with the <a href="/components-processing#parser">Parser</a> component.</p>
</li>
</ol>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>urls</td><td>URLs</td><td>Click the &#x27;+&#x27; button to enter one or more URLs to crawl recursively.</td></tr><tr><td>max_depth</td><td>Max Depth</td><td>Controls how many &#x27;clicks&#x27; away from the initial page the crawler will go.</td></tr><tr><td>prevent_outside</td><td>Prevent Outside</td><td>If enabled, only crawls URLs within the same domain as the root URL.</td></tr><tr><td>use_async</td><td>Use Async</td><td>If enabled, uses asynchronous loading which can be significantly faster but might use more system resources.</td></tr><tr><td>format</td><td>Output Format</td><td>Output Format. Use <code>Text</code> to extract the text from the HTML or <code>HTML</code> for the raw HTML content.</td></tr><tr><td>timeout</td><td>Timeout</td><td>Timeout for the request in seconds.</td></tr><tr><td>headers</td><td>Headers</td><td>The headers to send with the request.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>data</td><td>Data</td><td>A list of <a href="/concepts-objects">Data</a> objects containing fetched content and metadata.</td></tr><tr><td>text</td><td>Message</td><td>The fetched content as formatted text.</td></tr><tr><td>dataframe</td><td>DataFrame</td><td>The content formatted as a <a href="/concepts-objects#dataframe-object">DataFrame</a> object.</td></tr></tbody></table></div></div></details>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="webhook">Webhook<a href="#webhook" class="hash-link" aria-label="Direct link to Webhook" title="Direct link to Webhook"></a></h2>
<p>This component defines a webhook trigger that runs a flow when it receives an HTTP POST request.</p>
<p>If the input is not valid JSON, the component wraps it in a <code>payload</code> object so that it can be processed and still trigger the flow.</p>
<p>When a <strong>Webhook</strong> component is added to the workspace, a new <strong>Webhook cURL</strong> tab becomes available in the <strong>API</strong> pane that contains an HTTP POST request for triggering the webhook component. For example:
Replace <code>LANGFLOW_SERVER_ADDRESS</code>, <code>FLOW_ID</code>, and <code>LANGFLOW_API_KEY</code> with the values from your Langflow 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">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>curl -X POST \</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> &quot;http://LANGFLOW_SERVER_ADDRESS/api/v1/webhook/FLOW_ID&quot; \</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> -H &#x27;Content-Type: application/json&#x27; \</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> -H &#x27;x-api-key: LANGFLOW_API_KEY&#x27; \</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> -d &#x27;{&quot;any&quot;: &quot;data&quot;}&#x27;</span></div></div><br></code></div></div>
<p>The <strong>Webhook</strong> component is often paired with a <a href="/components-processing#parser"><strong>Parser</strong> component</a> to extract relevant data from the raw payload.
For more information, see <a href="/webhook">Trigger flows with webhooks</a>.</p>
<p>To troubleshoot a flow with a <strong>Webhook</strong> component and verify that the component is receiving data, you can create a small flow that outputs only the parsed payload:</p>
<ol>
<li>
<p>Create a flow with <strong>Webhook</strong>, <strong>Parser</strong>, and <strong>Chat Output</strong> components.</p>
</li>
<li>
<p>Connect the Webhook component&#x27;s <strong>Data</strong> output to the Parser component&#x27;s <strong>Data</strong> input.</p>
</li>
<li>
<p>Connect the Parser component&#x27;s <strong>Parsed Text</strong> output to the Chat Output component&#x27;s <strong>Text</strong> input.</p>
</li>
<li>
<p>Edit the <strong>Parser</strong> component to set <strong>Mode</strong> to <strong>Stringify</strong>.</p>
<p>This mode passes the data received by the Webhook component as a string that is printed by the <strong>Chat Output</strong> component.</p>
</li>
<li>
<p>Click <strong>Share</strong>, select <strong>API access</strong>, and then copy the <strong>Webhook cURL</strong> code snippet.</p>
</li>
<li>
<p>Optional: Edit the <code>data</code> in the code snippet if you want to pass a different payload.</p>
</li>
<li>
<p>Send the POST request to trigger the flow.</p>
</li>
<li>
<p>Click <strong>Playground</strong> to verify that the <strong>Chat Output</strong> component printed the JSON data from your POST request.</p>
</li>
</ol>
<p>For more information, see <a href="/webhook">Trigger flows with webhooks</a>.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Description</th></tr></thead><tbody><tr><td>data</td><td>Payload</td><td>Receives a payload from external systems through HTTP POST requests.</td></tr><tr><td>curl</td><td>cURL</td><td>The cURL command template for making requests to this webhook.</td></tr><tr><td>endpoint</td><td>Endpoint</td><td>The endpoint URL where this webhook receives requests.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Description</th></tr></thead><tbody><tr><td>output_data</td><td>Data</td><td>Outputs processed data from the webhook input, and returns an empty <a href="/concepts-objects">Data</a> object if no input is provided. If the input is not valid JSON, the component wraps it in a <code>payload</code> object.</td></tr></tbody></table></div></div></details>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="legacy-components">Legacy components<a href="#legacy-components" class="hash-link" aria-label="Direct link to Legacy components" title="Direct link to Legacy components"></a></h2>
<p>Legacy components are available for use but are no longer supported.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="gmail-loader">Gmail Loader<a href="#gmail-loader" class="hash-link" aria-label="Direct link to Gmail Loader" title="Direct link to Gmail Loader"></a></h3>
<p>This component loads emails from Gmail using provided credentials and filters.</p>
<p>For more information about creating a service account JSON, see <a href="https://developers.google.com/identity/protocols/oauth2/service-account" target="_blank" rel="noopener noreferrer">Service Account JSON</a>.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Input</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>json_string</td><td>SecretStrInput</td><td>A JSON string containing OAuth 2.0 access token information for service account access.</td></tr><tr><td>label_ids</td><td>MessageTextInput</td><td>A comma-separated list of label IDs to filter emails.</td></tr><tr><td>max_results</td><td>MessageTextInput</td><td>The maximum number of emails to load.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Output</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>data</td><td>Data</td><td>The loaded email data.</td></tr></tbody></table></div></div></details>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="google-drive-loader">Google Drive Loader<a href="#google-drive-loader" class="hash-link" aria-label="Direct link to Google Drive Loader" title="Direct link to Google Drive Loader"></a></h3>
<p>This component loads documents from Google Drive using provided credentials and a single document ID.</p>
<p>For more information about creating a service account JSON, see <a href="https://developers.google.com/identity/protocols/oauth2/service-account" target="_blank" rel="noopener noreferrer">Service Account JSON</a>.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Input</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>json_string</td><td>SecretStrInput</td><td>A JSON string containing OAuth 2.0 access token information for service account access.</td></tr><tr><td>document_id</td><td>MessageTextInput</td><td>A single Google Drive document ID.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Output</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>docs</td><td>Data</td><td>The loaded document data.</td></tr></tbody></table></div></div></details>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="google-drive-search">Google Drive Search<a href="#google-drive-search" class="hash-link" aria-label="Direct link to Google Drive Search" title="Direct link to Google Drive Search"></a></h3>
<p>This component searches Google Drive files using provided credentials and query parameters.</p>
<p>For more information about creating a service account JSON, see <a href="https://developers.google.com/identity/protocols/oauth2/service-account" target="_blank" rel="noopener noreferrer">Service Account JSON</a>.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Input</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>token_string</td><td>SecretStrInput</td><td>A JSON string containing OAuth 2.0 access token information for service account access.</td></tr><tr><td>query_item</td><td>DropdownInput</td><td>The field to query.</td></tr><tr><td>valid_operator</td><td>DropdownInput</td><td>The operator to use in the query.</td></tr><tr><td>search_term</td><td>MessageTextInput</td><td>The value to search for in the specified query item.</td></tr><tr><td>query_string</td><td>MessageTextInput</td><td>The query string used for searching.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Output</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>doc_urls</td><td>List[str]</td><td>The URLs of the found documents.</td></tr><tr><td>doc_ids</td><td>List[str]</td><td>The IDs of the found documents.</td></tr><tr><td>doc_titles</td><td>List[str]</td><td>The titles of the found documents.</td></tr><tr><td>Data</td><td>Data</td><td>The document titles and URLs in a structured format.</td></tr></tbody></table></div></div></details></div></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/components-custom-components"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Create custom Python components</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/components-embedding-models"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Embedding models</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="#use-data-components-in-a-flow" class="table-of-contents__link toc-highlight">Use data components in a flow</a></li><li><a href="#api-request" class="table-of-contents__link toc-highlight">API Request</a></li><li><a href="#directory" class="table-of-contents__link toc-highlight">Directory</a></li><li><a href="#file" class="table-of-contents__link toc-highlight">File</a><ul><li><a href="#supported-file-types" class="table-of-contents__link toc-highlight">Supported File Types</a></li></ul></li><li><a href="#news-search" class="table-of-contents__link toc-highlight">News search</a></li><li><a href="#rss-reader" class="table-of-contents__link toc-highlight">RSS Reader</a></li><li><a href="#sql-database" class="table-of-contents__link toc-highlight">SQL database</a></li><li><a href="#web-search" class="table-of-contents__link toc-highlight">Web search</a></li><li><a href="#url" class="table-of-contents__link toc-highlight">URL</a></li><li><a href="#webhook" class="table-of-contents__link toc-highlight">Webhook</a></li><li><a href="#legacy-components" class="table-of-contents__link toc-highlight">Legacy components</a><ul><li><a href="#gmail-loader" class="table-of-contents__link toc-highlight">Gmail Loader</a></li><li><a href="#google-drive-loader" class="table-of-contents__link toc-highlight">Google Drive Loader</a></li><li><a href="#google-drive-search" class="table-of-contents__link toc-highlight">Google Drive Search</a></li></ul></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column 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>