Files
langflow/components-data.html
github-merge-queue[bot] c47d28d1c2 deploy: 7dd37d49db
2025-10-16 21:17:19 +00:00

443 lines
97 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 bring data into your flows from various sources like files, API endpoints, and URLs."><meta data-rh="true" property="og:description" content="Data components bring data into your flows from various sources like files, API endpoints, and URLs."><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">
<script>!function(){var e="analytics",t=window[e]=window[e]||[];if(!t.initialize)if(t.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{t.invoked=!0,t.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","screen","once","off","on","addSourceMiddleware","addIntegrationMiddleware","setAnonymousId","addDestinationMiddleware","register"],t.factory=function(n){return function(){if(window[e].initialized)return window[e][n].apply(window[e],arguments);var r=Array.prototype.slice.call(arguments);if(["track","screen","alias","group","page","identify"].indexOf(n)>-1){var i=document.querySelector("link[rel='canonical']");r.push({__t:"bpc",c:i&&i.getAttribute("href")||void 0,p:location.pathname,u:location.href,s:location.search,t:document.title,r:document.referrer})}return r.unshift(n),t.push(r),t}};for(var n=0;n<t.methods.length;n++){var r=t.methods[n];t[r]=t.factory(r)}t.load=function(n,r){var i=document.createElement("script");i.type="text/javascript",i.async=!0,i.setAttribute("data-global-segment-analytics-key",e),i.src="https://cdn.segment.com/analytics.js/v1/"+n+"/analytics.min.js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(i,a),t._loadOptions=r},t._writeKey="60AfGDrVxy8nAGJngo3fCYWG4LvhMAlG",t.SNIPPET_VERSION="5.2.0",t.load("60AfGDrVxy8nAGJngo3fCYWG4LvhMAlG"),t.page()}}()</script>
<script>window.__SCROLL_TRACKING_CONFIG__={selectors:[{selector:"h1, h2, h3, h4, h5, h6",eventName:"Docs.langflow.org - Heading Viewed",properties:{element_type:"heading"}},{selector:".ch-codeblock",eventName:"Docs.langflow.org - Codeblock Viewed",properties:{element_type:"code",language:"helper:codeLanguage"}}]}</script>
<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.5b49702d.css">
<script src="/assets/js/runtime~main.6172812a.js" defer="defer"></script>
<script src="/assets/js/main.bcdd560d.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" data-event="Docs.langflow.org - Social Clicked" data-platform="github"></a><a href="https://twitter.com/langflow_ai" target="_blank" class="navbar__item navbar__link header-twitter-link" data-event="Docs.langflow.org - Social Clicked" data-platform="x"></a><a href="https://discord.gg/EqksyE2EX9" target="_blank" class="navbar__item navbar__link header-discord-link" data-event="Docs.langflow.org - Social Clicked" data-platform="discord"></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-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</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">Flows</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">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-client">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="/api-keys-and-authentication">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">Deploy</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 reference</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-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="/components-io">Core components</a></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/components-io">Input / Output</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/components-agents">Agents</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 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" tabindex="0" href="/components-models">Models</a></div></li><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="/components-data">Data</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 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" tabindex="0" href="/components-processing">Processing</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 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-3 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-3 menu__list-item"><a class="menu__link" tabindex="0" href="/components-tools">Tools</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 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" tabindex="0" href="/components-bundle-components">Bundles</a></div></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></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="/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="/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://www.langflow.org/desktop" target="_blank" class="menu__link">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1645_37)">
<path d="M12 17H20C21.1046 17 22 16.1046 22 15V13M12 17H4C2.89543 17 2 16.1046 2 15V5C2 3.89543 2.89543 3 4 3H10M12 17V21M8 21H12M12 21H16M11.75 10.2917H13.2083L16.125 7.375H17.5833L20.5 4.45833H21.9583M16.125 11.75H17.5833L20.5 8.83333H21.9583M11.75 5.91667H13.2083L16.125 3H17.5833" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_1645_37">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>
<div class="sidebar-ad-text-container">
<span class="sidebar-ad-text">Get started in minutes</span>
<span class="sidebar-ad-text sidebar-ad-text-gradient">Download Langflow Desktop</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 reference</span></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Core 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"><header><h1>Data</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>Data components bring data into your flows from various sources like files, API endpoints, and URLs.
For example:</p>
<ul>
<li>
<p><strong>Load files</strong>: Import data from a file or directory with the <a href="#file"><strong>File</strong> component</a> and <a href="#directory"><strong>Directory</strong> component</a>.</p>
</li>
<li>
<p><strong>Search the web</strong>: Fetch data from the web with components like the <a href="#news-search"><strong>News Search</strong> component</a>, <a href="#rss-reader"><strong>RSS Reader</strong> component</a>, <a href="#web-search"><strong>Web Search</strong> component</a>, and <a href="#url"><strong>URL</strong> component</a>.</p>
</li>
<li>
<p><strong>Make API calls</strong>: Use APIs to trigger flows or perform actions with the <a href="#api-request"><strong>API Request</strong> component</a> and <a href="#webhook"><strong>Webhook</strong> component</a>.</p>
</li>
<li>
<p><strong>Run SQL queries</strong>: Query an SQL database with the <a href="#sql-database"><strong>SQL Database</strong> component</a>.</p>
</li>
</ul>
<p>Each component runs different commands for retrieval, processing, and type checking.
Some components are a minimal wrapper for a command that you provide, and others include built-in scripts to fetch and process data based on variable inputs.
Additionally, some components return raw data, whereas others can convert, restructure, or validate the data before outputting it.
This means that some similar components might produce different results.</p>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_BuS1"><p>Data components pair well with <a href="/components-processing">Processing components</a> that can perform additional parsing, transformation, and validation after retrieving the data.</p><p>This can include basic operations, like saving a file in a specific format, or more complex tasks, like using a <strong>Text Splitter</strong> component to break down a large document into smaller chunks before generating embeddings for vector search.</p></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="use-data-components-in-flows">Use Data components in flows<a href="#use-data-components-in-flows" class="hash-link" aria-label="Direct link to Use Data components in flows" title="Direct link to Use Data components in flows"></a></h2>
<p>Data components are used often in flows because they offer a versatile way to perform common functions.</p>
<p>You can use these components to perform their base functions as isolated steps in your flow, or you can connect them to an <strong>Agent</strong> component as tools.</p>
<p><img decoding="async" loading="lazy" alt="An agent flow with three Data components connected to the agent as tools" src="/assets/images/connect-data-components-to-agent-a8cd8c94d0474ae434aeb5d507a803e8.png" width="4000" height="3028" class="img_ev3q"></p>
<p>For example flows, see the following:</p>
<ul>
<li>
<p><a href="/chat-with-files">Create a chatbot that can ingest files</a>: Learn how to use a <strong>File</strong> component to load a file as context for a chatbot.
The file and user input are both passed to the LLM so you can ask questions about the file you uploaded.</p>
</li>
<li>
<p><a href="/chat-with-rag">Create a vector RAG chatbot</a>: Learn how to ingest files for use in Retrieval-Augmented Generation (RAG), and then set up a chatbot that can use the ingested files as context.
The two flows in this tutorial prepare files for RAG, and then let your LLM use vector search to retrieve contextually relevant data during a chat session.</p>
</li>
<li>
<p><a href="/agents-tools">Configure tools for agents</a>: Learn how to use any component as a tool for an agent.
When used as tools, the agent autonomously decides when to call a component based on the user&#x27;s query.</p>
</li>
<li>
<p><a href="/webhook">Trigger flows with webhooks</a>: Learn how to use the <strong>Webhook</strong> component to trigger a flow run in response to an external event.</p>
</li>
</ul>
<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>The <strong>API Request</strong> component constructs and sends HTTP requests using URLs or curl commands:</p>
<ul>
<li><strong>URL mode</strong>: Enter one or more comma-separated URLs, and then select the method for the request to each URL.</li>
<li><strong>curl mode</strong>: Enter the curl command to execute.</li>
</ul>
<p>You can enable additional request options and fields in the component&#x27;s parameters.</p>
<p>Returns a <a href="/data-types#data"><code>Data</code> object</a> containing the response.</p>
<p>For provider-specific API components, see <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-blocks" aria-hidden="true"><rect width="7" height="7" x="14" y="3" rx="1"></rect><path d="M10 21V8a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-5a1 1 0 0 0-1-1H3"></path></svg> <a href="/components-bundle-components"><strong>Bundles</strong></a>.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="api-request-parameters">API Request parameters<a href="#api-request-parameters" class="hash-link" aria-label="Direct link to API Request parameters" title="Direct link to API Request parameters"></a></h3>
<p>Some parameters are hidden by default in the visual editor.
You can modify all parameters through the <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-sliders-horizontal" aria-hidden="true"><line x1="21" x2="14" y1="4" y2="4"></line><line x1="10" x2="3" y1="4" y2="4"></line><line x1="21" x2="12" y1="12" y2="12"></line><line x1="8" x2="3" y1="12" y2="12"></line><line x1="21" x2="16" y1="20" y2="20"></line><line x1="12" x2="3" y1="20" y2="20"></line><line x1="14" x2="14" y1="2" y2="6"></line><line x1="8" x2="8" y1="10" y2="14"></line><line x1="16" x2="16" y1="18" y2="22"></line></svg> <strong>Controls</strong> in the <a href="/concepts-components#component-menus">component&#x27;s header menu</a>.</p>
<table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>mode</td><td>Mode</td><td>Input parameter. Set the mode to either <strong>URL</strong> or <strong>curl</strong>.</td></tr><tr><td>urls</td><td>URL</td><td>Input parameter. Enter one or more comma-separated URLs for the request.</td></tr><tr><td>curl</td><td>curl</td><td>Input parameter. <strong>curl mode</strong> only. Enter a complete curl command. Other component parameters are populated from the command arguments.</td></tr><tr><td>method</td><td>Method</td><td>Input parameter. The HTTP method to use.</td></tr><tr><td>query_params</td><td>Query Parameters</td><td>Input parameter. The query parameters to append to the URL.</td></tr><tr><td>body</td><td>Body</td><td>Input parameter. The body to send with POST, PATCH, and PUT requests as a dictionary.</td></tr><tr><td>headers</td><td>Headers</td><td>Input parameter. The headers to send with the request as a dictionary.</td></tr><tr><td>timeout</td><td>Timeout</td><td>Input parameter. The timeout to use for the request.</td></tr><tr><td>follow_redirects</td><td>Follow Redirects</td><td>Input parameter. Whether to follow HTTP redirects. The default is enabled (<code>true</code>). If disabled (<code>false</code>), HTTP redirects aren&#x27;t followed.</td></tr><tr><td>save_to_file</td><td>Save to File</td><td>Input parameter. Whether to save the API response to a temporary file. Default: Disabled (<code>false</code>)</td></tr><tr><td>include_httpx_metadata</td><td>Include HTTPx Metadata</td><td>Input parameter. Whether to include properties such as <code>headers</code>, <code>status_code</code>, <code>response_headers</code>, and <code>redirection_history</code> in the output. Default: Disabled (<code>false</code>)</td></tr></tbody></table>
<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>The <strong>Directory</strong> component recursively loads files from a directory, with options for file types, depth, and concurrency.</p>
<p>Files must be of a <a href="#file-type-and-size-limits">supported type and size</a> to be loaded.</p>
<p>Outputs either a <a href="/data-types#data"><code>Data</code></a> or <a href="/data-types#dataframe"><code>DataFrame</code></a> object, depending on the directory contents.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="directory-parameters">Directory parameters<a href="#directory-parameters" class="hash-link" aria-label="Direct link to Directory parameters" title="Direct link to Directory parameters"></a></h3>
<p>Some parameters are hidden by default in the visual editor.
You can modify all parameters through the <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-sliders-horizontal" aria-hidden="true"><line x1="21" x2="14" y1="4" y2="4"></line><line x1="10" x2="3" y1="4" y2="4"></line><line x1="21" x2="12" y1="12" y2="12"></line><line x1="8" x2="3" y1="12" y2="12"></line><line x1="21" x2="16" y1="20" y2="20"></line><line x1="12" x2="3" y1="20" y2="20"></line><line x1="14" x2="14" y1="2" y2="6"></line><line x1="8" x2="8" y1="10" y2="14"></line><line x1="16" x2="16" y1="18" y2="22"></line></svg> <strong>Controls</strong> in the <a href="/concepts-components#component-menus">component&#x27;s header menu</a>.</p>
<table><thead><tr><th>Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>path</td><td>MessageTextInput</td><td>Input parameter. The path to the directory to load files from. Default: Current directory (<code>.</code>)</td></tr><tr><td>types</td><td>MessageTextInput</td><td>Input parameter. The file types to load. Select one or more, or leave empty to attempt to load all files.</td></tr><tr><td>depth</td><td>IntInput</td><td>Input parameter. The depth to search for files.</td></tr><tr><td>max_concurrency</td><td>IntInput</td><td>Input parameter. The maximum concurrency for loading multiple files.</td></tr><tr><td>load_hidden</td><td>BoolInput</td><td>Input parameter. If <code>true</code>, hidden files are loaded.</td></tr><tr><td>recursive</td><td>BoolInput</td><td>Input parameter. If <code>true</code>, the search is recursive.</td></tr><tr><td>silent_errors</td><td>BoolInput</td><td>Input parameter. If <code>true</code>, errors don&#x27;t raise an exception.</td></tr><tr><td>use_multithreading</td><td>BoolInput</td><td>Input parameter. If <code>true</code>, multithreading is used.</td></tr></tbody></table>
<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>The <strong>File</strong> component loads and parses files, converts the content into a <code>Data</code>, <code>DataFrame</code>, or <code>Message</code> object.
It supports multiple file types, provides parameters for parallel processing and error handling, and supports advanced parsing with the Docling library.</p>
<p>You can add files to the <strong>File</strong> component in the visual editor or at runtime, and you can upload multiple files at once.
For more information about uploading files and working with files in flows, see <a href="/concepts-file-management">File management</a> and <a href="/chat-with-files">Create a chatbot that can ingest files</a>.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="file-type-and-size-limits">File type and size limits<a href="#file-type-and-size-limits" class="hash-link" aria-label="Direct link to File type and size limits" title="Direct link to File type and size limits"></a></h3>
<p>By default, the maximum file size is 1024 MB.
To modify this value, change the <code>LANGFLOW_MAX_FILE_SIZE_UPLOAD</code> <a href="/environment-variables">environment variable</a>.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Supported file types</summary><div><div class="collapsibleContent_i85q"><p>The following file types are supported by the <strong>File</strong> component.
Use archive and compressed formats to bundle multiple files together, or use the <a href="#directory"><strong>Directory</strong> component</a> to load all files in a directory.</p><ul>
<li><code>.bz2</code></li>
<li><code>.csv</code></li>
<li><code>.docx</code></li>
<li><code>.gz</code></li>
<li><code>.htm</code></li>
<li><code>.html</code></li>
<li><code>.json</code></li>
<li><code>.js</code></li>
<li><code>.md</code></li>
<li><code>.mdx</code></li>
<li><code>.pdf</code></li>
<li><code>.py</code></li>
<li><code>.sh</code></li>
<li><code>.sql</code></li>
<li><code>.tar</code></li>
<li><code>.tgz</code></li>
<li><code>.ts</code></li>
<li><code>.tsx</code></li>
<li><code>.txt</code></li>
<li><code>.xml</code></li>
<li><code>.yaml</code></li>
<li><code>.yml</code></li>
<li><code>.zip</code></li>
</ul></div></div></details>
<p>If you need to load an unsupported file type, you must use a different component that supports that file type and, potentially, parses it outside Langflow, or you must convert it to a supported type before uploading it.</p>
<p>For images, see <a href="/concepts-file-management#upload-images">Upload images</a>.</p>
<p>For videos, see the <strong>Twelve Labs</strong> and <strong>YouTube</strong> <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-blocks" aria-hidden="true"><rect width="7" height="7" x="14" y="3" rx="1"></rect><path d="M10 21V8a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-5a1 1 0 0 0-1-1H3"></path></svg> <a href="/components-bundle-components"><strong>Bundles</strong></a>.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="file-parameters">File parameters<a href="#file-parameters" class="hash-link" aria-label="Direct link to File parameters" title="Direct link to File parameters"></a></h3>
<p>Some parameters are hidden by default in the visual editor.
You can modify all parameters through the <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-sliders-horizontal" aria-hidden="true"><line x1="21" x2="14" y1="4" y2="4"></line><line x1="10" x2="3" y1="4" y2="4"></line><line x1="21" x2="12" y1="12" y2="12"></line><line x1="8" x2="3" y1="12" y2="12"></line><line x1="21" x2="16" y1="20" y2="20"></line><line x1="12" x2="3" y1="20" y2="20"></line><line x1="14" x2="14" y1="2" y2="6"></line><line x1="8" x2="8" y1="10" y2="14"></line><line x1="16" x2="16" y1="18" y2="22"></line></svg> <strong>Controls</strong> in the <a href="/concepts-components#component-menus">component&#x27;s header menu</a>.</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>Input parameter. The path to files to load. Can be local or in <a href="/concepts-file-management">Langflow file management</a>. Supports individual files and bundled archives.</td></tr><tr><td>file_path</td><td>Server File Path</td><td>Input parameter. A <code>Data</code> object with a <code>file_path</code> property pointing to a file in <a href="/concepts-file-management">Langflow file management</a> or a <code>Message</code> object with a path to the file. Supersedes <strong>Files</strong> (<code>path</code>) but supports the same file types.</td></tr><tr><td>separator</td><td>Separator</td><td>Input parameter. The separator to use between multiple outputs in <code>Message</code> format.</td></tr><tr><td>silent_errors</td><td>Silent Errors</td><td>Input parameter. If <code>true</code>, errors in the component don&#x27;t raise an exception. Default: Disabled (<code>false</code>).</td></tr><tr><td>delete_server_file_after_processing</td><td>Delete Server File After Processing</td><td>Input parameter. If <code>true</code> (default), the <strong>Server File Path</strong> (<code>file_path</code>) is deleted after processing.</td></tr><tr><td>ignore_unsupported_extensions</td><td>Ignore Unsupported Extensions</td><td>Input parameter. If enabled (<code>true</code>), files with unsupported extensions are accepted but not processed. If disabled (<code>false</code>), the <strong>File</strong> component either can throw an error if an unsupported file type is provided. The default is <code>true</code>.</td></tr><tr><td>ignore_unspecified_files</td><td>Ignore Unspecified Files</td><td>Input parameter. If <code>true</code>, <code>Data</code> with no <code>file_path</code> property is ignored. If <code>false</code> (default), the component errors when a file isn&#x27;t specified.</td></tr><tr><td>concurrency_multithreading</td><td>Processing Concurrency</td><td>Input parameter. The number of files to process concurrently if multiple files are uploaded. Default is 1. Values greater than 1 enable parallel processing for 2 or more files. Ignored for single-file uploads and advanced parsing.</td></tr><tr><td>advanced_parser</td><td>Advanced Parser</td><td>Input parameter. If <code>true</code>, enables <a href="#advanced-parsing">advanced parsing</a>. Only available for single-file uploads of compatible file types. Default: Disabled (<code>false</code>).</td></tr></tbody></table>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="advanced-parsing">Advanced parsing<a href="#advanced-parsing" class="hash-link" aria-label="Direct link to Advanced parsing" title="Direct link to Advanced parsing"></a></h3>
<p>Starting in Langflow version 1.6, the <strong>File</strong> component supports advanced document parsing using the <a href="https://docling-project.github.io/docling/" target="_blank" rel="noopener noreferrer">Docling</a> library for supported file types.</p>
<p>To use advanced parsing, do the following:</p>
<ol>
<li>
<p>Complete the following prerequisites, if applicable:</p>
<ul>
<li>
<p><strong>Install Langflow version 1.6 or later</strong>: Earlier versions don&#x27;t support advanced parsing with the <strong>File</strong> component. For upgrade guidance, see the <a href="/release-notes">Release notes</a>.</p>
</li>
<li>
<p><strong>Install Docling dependency on macOS Intel (x86_64)</strong>: The Docling dependency isn&#x27;t installed by default for macOS Intel (x86_64). Use the <a href="https://docling-project.github.io/docling/installation/" target="_blank" rel="noopener noreferrer">Docling installation guide</a> to install the Docling dependency.</p>
<p>For all other operating systems, the Docling dependency is installed by default.</p>
</li>
<li>
<p><strong>Enable Developer Mode for Windows</strong>:</p>
</li>
</ul>
<p>If you are running Langflow Desktop on Windows, you must <a href="https://learn.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development#activate-developer-mode" target="_blank" rel="noopener noreferrer">enable Developer Mode</a> to use the Docling components.
The location of this setting depends on your Windows OS version.
Find <strong>For developers</strong> in your Windows Settings, or search for &quot;Developer&quot; in the Windows search bar, and then enable <strong>Developer mode</strong>.
You might need to restart your computer or Langflow to apply the change.</p>
<p>Developer Mode isn&#x27;t required for Langflow OSS on Windows.</p>
</li>
<li>
<p>Add one valid file to the <strong>File</strong> component.</p>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Advanced parsing limitations</div><div class="admonitionContent_BuS1"><ul>
<li>
<p>Advanced parsing processes only one file.
If you select multiple files, the <strong>File</strong> component processes the first file only, ignoring any additional files.
To process multiple files with advanced parsing, pass each file to a separate <strong>File</strong> components, or use the dedicated <a href="/bundles-docling"><strong>Docling</strong> components</a>.</p>
</li>
<li>
<p>Advanced parsing can process any of the <strong>File</strong> component&#x27;s supported file types except <code>.csv</code>, <code>.xlsx</code>, and <code>.parquet</code> files because it is designed for document processing, such as extracting text from PDFs.
For structured data analysis, use the <a href="/components-processing#parser"><strong>Parser</strong> component</a>.</p>
</li>
</ul></div></div>
</li>
<li>
<p>Enable <strong>Advanced Parsing</strong>.</p>
</li>
<li>
<p>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-sliders-horizontal" aria-hidden="true"><line x1="21" x2="14" y1="4" y2="4"></line><line x1="10" x2="3" y1="4" y2="4"></line><line x1="21" x2="12" y1="12" y2="12"></line><line x1="8" x2="3" y1="12" y2="12"></line><line x1="21" x2="16" y1="20" y2="20"></line><line x1="12" x2="3" y1="20" y2="20"></line><line x1="14" x2="14" y1="2" y2="6"></line><line x1="8" x2="8" y1="10" y2="14"></line><line x1="16" x2="16" y1="18" y2="22"></line></svg> <strong>Controls</strong> in the <a href="/concepts-components#component-menus">component&#x27;s header menu</a> to configure advanced parsing parameters, which are hidden by default:</p>
<table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>pipeline</td><td>Pipeline</td><td>Input parameter, advanced parsing. The Docling pipeline to use, either <code>standard</code> (default, recommended) or <code>vlm</code> (may produce inconsistent results).</td></tr><tr><td>ocr_engine</td><td>OCR Engine</td><td>Input parameter, advanced parsing. The OCR parser to use if <code>pipeline</code> is <code>standard</code>. Options are <code>None</code> (default) or <a href="https://pypi.org/project/easyocr/" target="_blank" rel="noopener noreferrer"><code>EasyOCR</code></a>. <code>None</code> means that no OCR engine is used, and this can produce inconsistent or broken results for some documents. This setting has no effect with the <code>vlm</code> pipeline.</td></tr><tr><td>md_image_placeholder</td><td>Markdown Image Placeholder</td><td>Input parameter, advanced parsing. Defines the placeholder for image files if the output type is <strong>Markdown</strong>. Default: <code>&lt;!-- image --&gt;</code>.</td></tr><tr><td>md_page_break_placeholder</td><td>Markdown Page Break Placeholder</td><td>Input parameter, advanced parsing. Defines the placeholder for page breaks if the output type is <strong>Markdown</strong>. Default: <code>&quot;&quot;</code> (empty string).</td></tr><tr><td>doc_key</td><td>Document Key</td><td>Input parameter, advanced parsing. The key to use for the <code>DoclingDocument</code> column, which holds the structured information extracted from the source document. See <a href="https://docling-project.github.io/docling/concepts/docling_document/" target="_blank" rel="noopener noreferrer">Docling Document</a> for details. Default: <code>doc</code>.</td></tr></tbody></table>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_BuS1"><p>For additional Docling features, including other components and OCR parsers, use the <a href="/bundles-docling"><strong>Docling</strong> bundle</a>.</p></div></div>
</li>
</ol>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="file-output">File output<a href="#file-output" class="hash-link" aria-label="Direct link to File output" title="Direct link to File output"></a></h3>
<p>The output of the <strong>File</strong> component depends on the number of files loaded and whether advanced parsing is enabled.
If multiple options are available, you can set the output type near the component&#x27;s output port.</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">No files</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">One file without advanced parsing</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">One file with advanced parsing</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Multiple files</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p>If you run the <strong>File</strong> component with no file selected, it throws an error, or, if <strong>Silent Errors</strong> is enabled, produces no output.</p></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><p>If advanced parsing is disabled and you upload one file, the following output types are available:</p><ul>
<li>
<p><strong>Structured Content</strong>: Available only for <code>.csv</code>, <code>.xlsx</code>, <code>.parquet</code>, and <code>.json</code> files.</p>
<ul>
<li>For <code>.csv</code> files, produces a <a href="/data-types#dataframe"><code>DataFrame</code></a> representing the table data.</li>
<li>For <code>.json</code> files, produces a <a href="/data-types#data"><code>Data</code></a> object with the parsed JSON data.</li>
</ul>
</li>
<li>
<p><strong>Raw Content</strong>: A <a href="/data-types#message"><code>Message</code></a> containing the file&#x27;s raw text content.</p>
</li>
<li>
<p><strong>File Path</strong>: A <a href="/data-types#message"><code>Message</code></a> containing the path to the file in <a href="/concepts-file-management">Langflow file management</a>.</p>
</li>
</ul></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><p>If advanced parsing is enabled and you upload one file, the following output types are available:</p><ul>
<li>
<p><strong>Structured Output</strong>: A <a href="/data-types#dataframe"><code>DataFrame</code></a> containing the Docling-processed document data with text elements, page numbers, and metadata.</p>
</li>
<li>
<p><strong>Markdown</strong>: A <a href="/data-types#message"><code>Message</code></a> containing the uploaded document contents in Markdown format with image placeholders.</p>
</li>
<li>
<p><strong>File Path</strong>: A <a href="/data-types#message"><code>Message</code></a> containing the path to the file in <a href="/concepts-file-management">Langflow file management</a>.</p>
</li>
</ul></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><p>If you upload multiple files, the component outputs <strong>Files</strong>, which is a <a href="/data-types#dataframe"><code>DataFrame</code></a> containing the content and metadata of all selected files.</p><p><a href="#advanced-parsing">Advanced parsing</a> doesn&#x27;t support multiple files; it processes only the first file.</p></div></div></div>
<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>The <strong>News Search</strong> component searches Google News through RSS, and then returns clean article data as a <a href="/data-types#dataframe"><code>DataFrame</code></a> containing article titles, links, publication dates, and summaries.
The component&#x27;s <code>clean_html</code> method parses the HTML content with the BeautifulSoup library, removes HTML markup, and strips whitespace to output clean data.</p>
<p>For other RSS feeds, use the <a href="#rss-reader"><strong>RSS Reader</strong> component</a>, and for other searches use the <a href="#web-search"><strong>Web Search</strong> component</a> or provider-specific <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-blocks" aria-hidden="true"><rect width="7" height="7" x="14" y="3" rx="1"></rect><path d="M10 21V8a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-5a1 1 0 0 0-1-1H3"></path></svg> <a href="/components-bundle-components"><strong>Bundles</strong></a>.</p>
<p>When used as a standard component in a flow, the <strong>News Search</strong> component must be connected to a component that accepts <code>DataFrame</code> input.
You can connect the <strong>News Search</strong> component directly to a compatible component, or you can use a <a href="/components-processing">Processing component</a> to convert or extract data of a different type between components.</p>
<p>When used in <strong>Tool Mode</strong> with an <strong>Agent</strong> component, the <strong>News Search</strong> component can be connected directly to the <strong>Agent</strong> component&#x27;s <strong>Tools</strong> port without converting the data.
The agent decides whether to use the <strong>News Search</strong> component based on the user&#x27;s query, and it can process the <code>DataFrame</code> output directly.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="news-search-parameters">News Search parameters<a href="#news-search-parameters" class="hash-link" aria-label="Direct link to News Search parameters" title="Direct link to News Search parameters"></a></h3>
<p>Some parameters are hidden by default in the visual editor.
You can modify all parameters through the <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-sliders-horizontal" aria-hidden="true"><line x1="21" x2="14" y1="4" y2="4"></line><line x1="10" x2="3" y1="4" y2="4"></line><line x1="21" x2="12" y1="12" y2="12"></line><line x1="8" x2="3" y1="12" y2="12"></line><line x1="21" x2="16" y1="20" y2="20"></line><line x1="12" x2="3" y1="20" y2="20"></line><line x1="14" x2="14" y1="2" y2="6"></line><line x1="8" x2="8" y1="10" y2="14"></line><line x1="16" x2="16" y1="18" y2="22"></line></svg> <strong>Controls</strong> in the <a href="/concepts-components#component-menus">component&#x27;s header menu</a>.</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>Input parameter. Search keywords for news articles.</td></tr><tr><td>hl</td><td>Language (hl)</td><td>Input parameter. Language code, such as en-US, fr, de. Default: <code>en-US</code>.</td></tr><tr><td>gl</td><td>Country (gl)</td><td>Input parameter. Country code, such as US, FR, DE. Default: <code>US</code>.</td></tr><tr><td>ceid</td><td>Country<!-- -->:Language<!-- --> (ceid)</td><td>Input parameter. Language, such as US<!-- -->:en<!-- -->, FR<!-- -->:fr<!-- -->. Default: <code>US:en</code>.</td></tr><tr><td>topic</td><td>Topic</td><td>Input parameter. One of: <code>WORLD</code>, <code>NATION</code>, <code>BUSINESS</code>, <code>TECHNOLOGY</code>, <code>ENTERTAINMENT</code>, <code>SCIENCE</code>, <code>SPORTS</code>, <code>HEALTH</code>.</td></tr><tr><td>location</td><td>Location (Geo)</td><td>Input parameter. City, state, or country for location-based news. Leave blank for keyword search.</td></tr><tr><td>timeout</td><td>Timeout</td><td>Input parameter. Timeout for the request in seconds.</td></tr><tr><td>articles</td><td>News Articles</td><td>Output parameter. A <code>DataFrame</code> with the key columns <code>title</code>, <code>link</code>, <code>published</code> and <code>summary</code>.</td></tr></tbody></table>
<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>The <strong>RSS Reader</strong> component fetches and parses RSS feeds from any valid RSS feed URL, and then returns the feed content as a <a href="/data-types#dataframe"><code>DataFrame</code></a> containing article titles, links, publication dates, and summaries.</p>
<p>When used as a standard component in a flow, the <strong>RSS Reader</strong> component must be connected to a component that accepts <code>DataFrame</code> input.
You can connect the <strong>RSS Reader</strong> component directly to a compatible component, or you can use a <a href="/components-processing">Processing component</a> to convert or extract data of a different type between components.</p>
<p>When used in <strong>Tool Mode</strong> with an <strong>Agent</strong> component, the <strong>RSS Reader</strong> component can be connected directly to the <strong>Agent</strong> component&#x27;s <strong>Tools</strong> port without converting the data.
The agent decides whether to use the <strong>RSS Reader</strong> component based on the user&#x27;s query, and it can process the <code>DataFrame</code> output directly.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="rss-reader-parameters">RSS Reader parameters<a href="#rss-reader-parameters" class="hash-link" aria-label="Direct link to RSS Reader parameters" title="Direct link to RSS Reader parameters"></a></h3>
<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>Input parameter. URL of the RSS feed to parse, such as <code>https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml</code>.</td></tr><tr><td>timeout</td><td>Timeout</td><td>Input parameter. Timeout for the RSS feed request in seconds. Default: <code>5</code>.</td></tr><tr><td>articles</td><td>Articles</td><td>Output parameter. A <code>DataFrame</code> containing the key columns <code>title</code>, <code>link</code>, <code>published</code> and <code>summary</code>.</td></tr></tbody></table>
<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>The <strong>SQL Database</strong> 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, such as PostgreSQL, MySQL, and SQLite.</p>
<p>For CQL queries, see the <a href="/bundles-datastax"><strong>DataStax</strong> bundle</a>.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="query-an-sql-database-with-natural-language-prompts">Query an SQL database with natural language prompts<a href="#query-an-sql-database-with-natural-language-prompts" class="hash-link" aria-label="Direct link to Query an SQL database with natural language prompts" title="Direct link to Query an SQL database with natural language prompts"></a></h3>
<p>The following example demonstrates how to use the <strong>SQL Database</strong> component in a flow, and then modify the component to support natural language queries through an <strong>Agent</strong> component.</p>
<p>This allows you to use the same <strong>SQL Database</strong> component for any query, rather than limiting it to a single manually entered query or requiring the user, application, or another component to provide valid SQL syntax as input.
Users don&#x27;t need to master SQL syntax because the <strong>Agent</strong> component translates the users&#x27; natural language prompts into SQL queries, passes the query to the <strong>SQL Database</strong> component, and then returns the results to the user.</p>
<p>Additionally, input from applications and other components doesn&#x27;t have to be extracted and transformed to exact SQL queries.
Instead, you only need to provide enough context for the agent to understand that it should create and run a SQL query according to the incoming data.</p>
<ol>
<li>
<p>Use your own sample database or create a test database.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Create a test SQL database</summary><div><div class="collapsibleContent_i85q"><ol>
<li>
<p>Create a database called <code>test.db</code>:</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>sqlite3 test.db</span></div></div><br></code></div></div>
</li>
<li>
<p>Add some values to the database:</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">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span>sqlite3 test.db &quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span>CREATE TABLE users (</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span> id INTEGER PRIMARY KEY,</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span> name TEXT,</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span> email TEXT,</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span> age INTEGER</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span>);</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span>INSERT INTO users (name, email, age) VALUES</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span> (&#x27;John Doe&#x27;, &#x27;john@example.com&#x27;, 30),</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span> (&#x27;Jane Smith&#x27;, &#x27;jane@example.com&#x27;, 25),</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span> (&#x27;Bob Johnson&#x27;, &#x27;bob@example.com&#x27;, 35);</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span>&quot;</span></div></div><br></code></div></div>
</li>
<li>
<p>Verify that the database has been created and contains your data:</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>sqlite3 test.db &quot;SELECT * FROM users;&quot;</span></div></div><br></code></div></div>
<p>The result should list the text data you entered in the previous step:</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>
</li>
</ol></div></div></details>
</li>
<li>
<p>Add an <strong>SQL Database</strong> component to your flow.</p>
</li>
<li>
<p>In the <strong>Database URL</strong> field, add the connection string for your database, such as <code>sqlite:///test.db</code>.</p>
<p>At this point, you can enter an SQL query in the <strong>SQL Query</strong> field or use the <a href="/concepts-components#component-ports">port</a> to pass a query from another component, such as a <strong>Chat Input</strong> component.
If you need more space, 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-expand" aria-hidden="true"><path d="m21 21-6-6m6 6v-4.8m0 4.8h-4.8"></path><path d="M3 16.2V21m0 0h4.8M3 21l6-6"></path><path d="M21 7.8V3m0 0h-4.8M21 3l-6 6"></path><path d="M3 7.8V3m0 0h4.8M3 3l6 6"></path></svg> <strong>Expand</strong> to open a full-screen text field.</p>
<p>However, to make this component more dynamic in an agentic context, use an <strong>Agent</strong> component to transform natural language input to SQL queries, as explained in the following steps.</p>
</li>
<li>
<p>Click the <strong>SQL Database</strong> component to expose the <a href="/concepts-components#component-menus">component&#x27;s header menu</a>, and then enable <strong>Tool Mode</strong>.</p>
<p>You can now use this component as a tool for an agent.
In <strong>Tool Mode</strong>, no query is set in the <strong>SQL Database</strong> component because the agent will generate and send one if it determines that the tool is required to complete the user&#x27;s request.
For more information, see <a href="/agents-tools">Configure tools for agents</a>.</p>
</li>
<li>
<p>Add an <strong>Agent</strong> component to your flow, and then enter your OpenAI API key.</p>
<p>The default model is an OpenAI model.
If you want to use a different model, edit the <strong>Model Provider</strong>, <strong>Model Name</strong>, and <strong>API Key</strong> fields accordingly.</p>
<p>If you need to execute highly specialized queries, consider selecting a model that is trained for tasks like advanced SQL queries.
If your preferred model isn&#x27;t in the <strong>Agent</strong> component&#x27;s built-in model list, set <strong>Model Provider</strong> to <strong>Connect other models</strong>, and then connect any <a href="/components-models">language model component</a>.</p>
</li>
<li>
<p>Connect the <strong>SQL Database</strong> component&#x27;s <strong>Toolset</strong> output to the <strong>Agent</strong> component&#x27;s <strong>Tools</strong> input.</p>
<p><img decoding="async" loading="lazy" alt="SQL Database component connected to an Agent component" src="/assets/images/component-sql-database-3d2c985aee2dd9970874cb85e1d2b570.png" width="4000" height="2400" class="img_ev3q"></p>
</li>
<li>
<p>Click <strong>Playground</strong>, and then ask the agent a question about the data in your database, such as <code>Which users are in my database?</code></p>
<p>The agent determines that it needs to query the database to answer the question, uses the LLM to generate an SQL query, and then uses the <strong>SQL Database</strong> component&#x27;s <code>RUN_SQL_QUERY</code> action to run the query on your database.
Finally, it returns the results in a conversational format, unless you provide instructions to return raw results or a different format.</p>
<p>The following example queried a test database with little data, but with a more robust dataset you could ask more detailed or complex questions.</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><br></code></div></div>
</li>
</ol>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="sql-database-parameters">SQL Database parameters<a href="#sql-database-parameters" class="hash-link" aria-label="Direct link to SQL Database parameters" title="Direct link to SQL Database parameters"></a></h3>
<p>Some parameters are hidden by default in the visual editor.
You can modify all parameters through the <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-sliders-horizontal" aria-hidden="true"><line x1="21" x2="14" y1="4" y2="4"></line><line x1="10" x2="3" y1="4" y2="4"></line><line x1="21" x2="12" y1="12" y2="12"></line><line x1="8" x2="3" y1="12" y2="12"></line><line x1="21" x2="16" y1="20" y2="20"></line><line x1="12" x2="3" y1="20" y2="20"></line><line x1="14" x2="14" y1="2" y2="6"></line><line x1="8" x2="8" y1="10" y2="14"></line><line x1="16" x2="16" y1="18" y2="22"></line></svg> <strong>Controls</strong> in the <a href="/concepts-components#component-menus">component&#x27;s header menu</a>.</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>Input parameter. The SQLAlchemy-compatible database connection URL.</td></tr><tr><td>query</td><td>SQL Query</td><td>Input parameter. The SQL query to execute, which can be entered directly, passed in from another component, or, in <strong>Tool Mode</strong>, automatically provided by an <strong>Agent</strong> component.</td></tr><tr><td>include_columns</td><td>Include Columns</td><td>Input parameter. Whether to include column names in the result. The default is enabled (<code>true</code>).</td></tr><tr><td>add_error</td><td>Add Error</td><td>Input parameter. If enabled, adds any error messages to the result, if any are returned. The default is disabled (<code>false</code>).</td></tr><tr><td>run_sql_query</td><td>Result Table</td><td>Output parameter. The query results as a <a href="/data-types#dataframe"><code>DataFrame</code></a>.</td></tr></tbody></table>
<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>The <strong>URL</strong> component fetches content from one or more URLs, processes the content, and returns it in various formats.
It follows links recursively to a given depth, and it supports output in plain text or raw HTML.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="url-parameters">URL parameters<a href="#url-parameters" class="hash-link" aria-label="Direct link to URL parameters" title="Direct link to URL parameters"></a></h3>
<p>Some parameters are hidden by default in the visual editor.
You can modify all parameters through the <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-sliders-horizontal" aria-hidden="true"><line x1="21" x2="14" y1="4" y2="4"></line><line x1="10" x2="3" y1="4" y2="4"></line><line x1="21" x2="12" y1="12" y2="12"></line><line x1="8" x2="3" y1="12" y2="12"></line><line x1="21" x2="16" y1="20" y2="20"></line><line x1="12" x2="3" y1="20" y2="20"></line><line x1="14" x2="14" y1="2" y2="6"></line><line x1="8" x2="8" y1="10" y2="14"></line><line x1="16" x2="16" y1="18" y2="22"></line></svg> <strong>Controls</strong> in the <a href="/concepts-components#component-menus">component&#x27;s header menu</a>.</p>
<p>Some of the available parameters include the following:</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>Input parameter. One or more URLs to crawl recursively. In the visual editor, 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> to add multiple URLs.</td></tr><tr><td>max_depth</td><td>Depth</td><td>Input parameter. Controls link traversal: how many &quot;clicks&quot; away from the initial page the crawler will go. A depth of 1 limits the crawl to the first page at the given URL only. A depth of 2 means the crawler crawls the first page plus each page directly linked from the first page, then stops. This setting exclusively controls link traversal; it doesn&#x27;t limit the number of URL path segments or the domain.</td></tr><tr><td>prevent_outside</td><td>Prevent Outside</td><td>Input parameter. If enabled, only crawls URLs within the same domain as the root URL. This prevents the crawler from accessing sites outside the given URL&#x27;s domain, even if they are linked from one of the crawled pages.</td></tr><tr><td>use_async</td><td>Use Async</td><td>Input parameter. 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>Input parameter. Sets the desired output format as <strong>Text</strong> or <strong>HTML</strong>. The default is <strong>Text</strong>. For more information, see <a href="#url-output">URL output</a>.</td></tr><tr><td>timeout</td><td>Timeout</td><td>Input parameter. Timeout for the request in seconds.</td></tr><tr><td>headers</td><td>Headers</td><td>Input parameter. The headers to send with the request if needed for authentication or otherwise.</td></tr></tbody></table>
<p>Additional input parameters are available for error handling and encoding.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="url-output">URL output<a href="#url-output" class="hash-link" aria-label="Direct link to URL output" title="Direct link to URL output"></a></h3>
<p>There are two settings that control the output of the <strong>URL</strong> component at different stages:</p>
<ul>
<li>
<p><strong>Output Format</strong>: This optional parameter controls the content extracted from the crawled pages:</p>
<ul>
<li><strong>Text (default)</strong>: The component extracts only the text from the HTML of the crawled pages.</li>
<li><strong>HTML</strong>: The component extracts the entire raw HTML content of the crawled pages.</li>
</ul>
</li>
<li>
<p><strong>Output data type</strong>: In the component&#x27;s output field (near the output port) you can select the structure of the outgoing data when it is passed to other components:</p>
<ul>
<li><strong>Extracted Pages</strong>: Outputs a <a href="/data-types#dataframe"><code>DataFrame</code></a> that breaks the crawled pages into columns for the entire page content (<code>text</code>) and metadata like <code>url</code> and <code>title</code>.</li>
<li><strong>Raw Content</strong>: Outputs a <a href="/data-types#message"><code>Message</code></a> containing the entire text or HTML from the crawled pages, including metadata, in a single block of text.</li>
</ul>
</li>
</ul>
<p>When used as a standard component in a flow, the <strong>URL</strong> component must be connected to a component that accepts the selected output data type (<code>DataFrame</code> or <code>Message</code>).
You can connect the <strong>URL</strong> component directly to a compatible component, or you can use a <a href="/components-processing#type-convert"><strong>Type Convert</strong> component</a> to convert the output to another type before passing the data to other components if the data types aren&#x27;t directly compatible.</p>
<p>Processing components like the <strong>Type Convert</strong> component are useful with the <strong>URL</strong> component because it can extract a large amount of data from the crawled pages.
For example, if you only want to pass specific fields to other components, you can use a <a href="/components-processing#parser"><strong>Parser</strong> component</a> to extract only that data from the crawled pages before passing the data to other components.</p>
<p>When used in <strong>Tool Mode</strong> with an <strong>Agent</strong> component, the <strong>URL</strong> component can be connected directly to the <strong>Agent</strong> component&#x27;s <strong>Tools</strong> port without converting the data.
The agent decides whether to use the <strong>URL</strong> component based on the user&#x27;s query, and it can process the <code>DataFrame</code> or <code>Message</code> output directly.</p>
<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>The <strong>Web Search</strong> component performs a basic web search using DuckDuckGo&#x27;s HTML scraping interface.
For other search APIs, see <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-blocks" aria-hidden="true"><rect width="7" height="7" x="14" y="3" rx="1"></rect><path d="M10 21V8a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-5a1 1 0 0 0-1-1H3"></path></svg> <a href="/components-bundle-components"><strong>Bundles</strong></a>.</p>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>The <strong>Web Search</strong> component uses web scraping that can be subject to rate limits.</p><p>For production use, consider using another search component with more robust API support, such as provider-specific bundles.</p></div></div>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="use-the-web-search-component-in-a-flow">Use the Web Search component in a flow<a href="#use-the-web-search-component-in-a-flow" class="hash-link" aria-label="Direct link to Use the Web Search component in a flow" title="Direct link to Use the Web Search component in a flow"></a></h3>
<p>The following steps demonstrate one way that you can use a <strong>Web Search</strong> component in a flow:</p>
<ol>
<li>
<p>Create a flow based on the <strong>Basic Prompting</strong> template.</p>
</li>
<li>
<p>Add a <strong>Web Search</strong> component, and then enter a search query, such as <code>environmental news</code>.</p>
</li>
<li>
<p>Add a <a href="/components-processing#type-convert"><strong>Type Convert</strong> component</a>, set the <strong>Output Type</strong> to <strong>Message</strong>, and then connect the <strong>Web Search</strong> component&#x27;s output to the <strong>Type Convert</strong> component&#x27;s input.</p>
<p>By default, the <strong>Web Search</strong> component outputs a <code>DataFrame</code>.
Because the <strong>Prompt Template</strong> component only accepts <code>Message</code> data, this conversion is required so that the flow can pass the search results to the <strong>Prompt Template</strong> component.
For more information, see <a href="#web-search-output">Web Search output</a>.</p>
</li>
<li>
<p>In the <strong>Prompt Template</strong> component&#x27;s <strong>Template</strong> field, add a variable like <code>{searchresults}</code> or <code>{context}</code>.</p>
<p>This adds a field to the <strong>Prompt Template</strong> component that you can use to pass the converted search results to the prompt.
For more information, see <a href="/components-prompts#define-variables-in-prompts">Define variables in prompts</a>.</p>
</li>
<li>
<p>Connect the <strong>Type Convert</strong> component&#x27;s output to the new variable field on the <strong>Prompt Template</strong> component.</p>
<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>
</li>
<li>
<p>In the <strong>Language Model</strong> component, add your OpenAI API key, or select a different provider and model.</p>
</li>
<li>
<p>Click <strong>Playground</strong>, and then enter <code>latest news</code>.</p>
<p>The LLM processes the request, including the context passed through the <strong>Prompt Template</strong> component, and then prints the response in the <strong>Playground</strong> chat interface.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Result</summary><div><div class="collapsibleContent_i85q"><p>The following is an example of a possible response.
Your response may vary based on the current state of the web, your specific query, the model, and other factors.</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 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></div></details>
</li>
</ol>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="web-search-parameters">Web Search parameters<a href="#web-search-parameters" class="hash-link" aria-label="Direct link to Web Search parameters" title="Direct link to Web Search parameters"></a></h3>
<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>Input parameter. Keywords to search for.</td></tr><tr><td>timeout</td><td>Timeout</td><td>Input parameter. Timeout for the web search request in seconds. Default: <code>5</code>.</td></tr><tr><td>results</td><td>Search Results</td><td>Output parameter. Returns a <code>DataFrame</code> containing <code>title</code>, <code>links</code>, and <code>snippets</code>. For more information, see <a href="#web-search-output">Web Search output</a>.</td></tr></tbody></table>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="web-search-output">Web Search output<a href="#web-search-output" class="hash-link" aria-label="Direct link to Web Search output" title="Direct link to Web Search output"></a></h3>
<p>The <strong>Web Search</strong> component outputs a <a href="/data-types#dataframe"><code>DataFrame</code></a> containing the key columns <code>title</code>, <code>links</code>, and <code>snippets</code>.</p>
<p>When used as a standard component in a flow, the <strong>Web Search</strong> component must be connected to a component that accepts <code>DataFrame</code> input, or you must use a <a href="/components-processing#type-convert"><strong>Type Convert</strong> component</a> to convert the output to <code>Data</code> or <code>Message</code> type before passing the data to other components.</p>
<p>When used in <strong>Tool Mode</strong> with an <strong>Agent</strong> component, the <strong>Web Search</strong> component can be connected directly to the <strong>Agent</strong> component&#x27;s <strong>Tools</strong> port without converting the data.
The agent decides whether to use the <strong>Web Search</strong> component based on the user&#x27;s query, and it can process the <code>DataFrame</code> output directly.</p>
<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>The <strong>Webhook</strong> component defines a webhook trigger that runs a flow when it receives an HTTP POST request.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="trigger-the-webhook">Trigger the webhook<a href="#trigger-the-webhook" class="hash-link" aria-label="Direct link to Trigger the webhook" title="Direct link to Trigger the webhook"></a></h3>
<p>When you add a <strong>Webhook</strong> component to your flow, a <strong>Webhook curl</strong> tab is added to the flow&#x27;s <a href="/concepts-publish#api-access"><strong>API Access</strong> pane</a>.
This tab automatically generates an HTTP POST request code snippet that you can use to trigger your flow through the <strong>Webhook</strong> component.
For example:</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>For more information, see <a href="/webhook">Trigger flows with webhooks</a>.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="webhook-parameters">Webhook parameters<a href="#webhook-parameters" class="hash-link" aria-label="Direct link to Webhook parameters" title="Direct link to Webhook parameters"></a></h3>
<table><thead><tr><th>Name</th><th>Display Name</th><th>Description</th></tr></thead><tbody><tr><td>data</td><td>Payload</td><td>Input parameter. Receives a payload from external systems through HTTP POST requests.</td></tr><tr><td>curl</td><td>curl</td><td>Input parameter. The curl command template for making requests to this webhook.</td></tr><tr><td>endpoint</td><td>Endpoint</td><td>Input parameter. The endpoint URL where this webhook receives requests.</td></tr><tr><td>output_data</td><td>Data</td><td>Output parameter. The processed data from the webhook input. Returns an empty <a href="/data-types#data"><code>Data</code></a> object if no input is provided. If the input isn&#x27;t valid JSON, the <strong>Webhook</strong> component wraps it in a <code>payload</code> object so that it can be accepted as input to trigger the flow.</td></tr></tbody></table>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="additional-data-components">Additional Data components<a href="#additional-data-components" class="hash-link" aria-label="Direct link to Additional Data components" title="Direct link to Additional Data components"></a></h2>
<p>Langflow&#x27;s core components are meant to be generic and support a range of use cases.
Core components typically aren&#x27;t limited to a single provider.</p>
<p>If the core components don&#x27;t meet your needs, you can find provider-specific components in <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-blocks" aria-hidden="true"><rect width="7" height="7" x="14" y="3" rx="1"></rect><path d="M10 21V8a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-5a1 1 0 0 0-1-1H3"></path></svg> <a href="/components-bundle-components"><strong>Bundles</strong></a>.</p>
<p>For example, the <a href="/bundles-datastax"><strong>DataStax</strong> bundle</a> includes components for CQL queries, and the <a href="/bundles-google"><strong>Google</strong> bundle</a> includes components for Google Search APIs.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="legacy-data-components">Legacy Data components<a href="#legacy-data-components" class="hash-link" aria-label="Direct link to Legacy Data components" title="Direct link to Legacy Data components"></a></h2>
<!-- -->
<p>Legacy components are longer supported and can be removed in a future release.
You can continue to use them in existing flows, but it is recommended that you replace them with supported components as soon as possible.
Suggested replacements are included in the <strong>Legacy</strong> banner on components in your flows.
They are also given in release notes and Langflow documentation whenever possible.</p>
<p>If you aren&#x27;t sure how to replace a legacy component, <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-search" aria-hidden="true"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg> <strong>Search</strong> for components by provider, service, or component name.
The component may have been deprecated in favor of a completely new component, a similar component, or a new version of the same component in a different category.</p>
<p>If there is no obvious replacement, consider whether another component can be adapted to your use case.
For example, many <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-component" aria-hidden="true"><path d="M15.536 11.293a1 1 0 0 0 0 1.414l2.376 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z"></path><path d="M2.297 11.293a1 1 0 0 0 0 1.414l2.377 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414L6.088 8.916a1 1 0 0 0-1.414 0z"></path><path d="M8.916 17.912a1 1 0 0 0 0 1.415l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.415l-2.377-2.376a1 1 0 0 0-1.414 0z"></path><path d="M8.916 4.674a1 1 0 0 0 0 1.414l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z"></path></svg> <strong>Core components</strong> provide generic functionality that can support multiple providers and use cases, such as the <a href="/components-data#api-request"><strong>API Request</strong> component</a>.</p>
<p>If neither of these options are viable, you could use the legacy component&#x27;s code to create your own custom component, or <a href="/contributing-github-issues">start a discussion</a> about the legacy component.</p>
<p>To discourage use of legacy components in new flows, these components are hidden by default.
In the visual editor, you can 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-sliders-horizontal" aria-hidden="true"><line x1="21" x2="14" y1="4" y2="4"></line><line x1="10" x2="3" y1="4" y2="4"></line><line x1="21" x2="12" y1="12" y2="12"></line><line x1="8" x2="3" y1="12" y2="12"></line><line x1="21" x2="16" y1="20" y2="20"></line><line x1="12" x2="3" y1="20" y2="20"></line><line x1="14" x2="14" y1="2" y2="6"></line><line x1="8" x2="8" y1="10" y2="14"></line><line x1="16" x2="16" y1="18" y2="22"></line></svg> <strong>Component settings</strong> to toggle the <strong>Legacy</strong> filter.</p>
<p>The following Data components are in legacy status:</p>
<ul>
<li><strong>Load CSV</strong></li>
<li><strong>Load JSON</strong></li>
</ul>
<p>Replace these components with the <strong>File</strong> component, which supports loading CSV and JSON files, as well as many other file types.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="see-also">See also<a href="#see-also" class="hash-link" aria-label="Direct link to See also" title="Direct link to See also"></a></h2>
<ul>
<li><a href="/bundles-google"><strong>Google</strong> bundle</a></li>
<li><a href="/bundles-composio"><strong>Composio</strong> bundle</a></li>
<li><a href="/concepts-file-management">File management</a></li>
</ul></div></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/components-embedding-models"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Embedding Model</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/components-processing"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Processing components</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-flows" class="table-of-contents__link toc-highlight">Use Data components in flows</a></li><li><a href="#api-request" class="table-of-contents__link toc-highlight">API Request</a><ul><li><a href="#api-request-parameters" class="table-of-contents__link toc-highlight">API Request parameters</a></li></ul></li><li><a href="#directory" class="table-of-contents__link toc-highlight">Directory</a><ul><li><a href="#directory-parameters" class="table-of-contents__link toc-highlight">Directory parameters</a></li></ul></li><li><a href="#file" class="table-of-contents__link toc-highlight">File</a><ul><li><a href="#file-type-and-size-limits" class="table-of-contents__link toc-highlight">File type and size limits</a></li><li><a href="#file-parameters" class="table-of-contents__link toc-highlight">File parameters</a></li><li><a href="#advanced-parsing" class="table-of-contents__link toc-highlight">Advanced parsing</a></li><li><a href="#file-output" class="table-of-contents__link toc-highlight">File output</a></li></ul></li><li><a href="#news-search" class="table-of-contents__link toc-highlight">News Search</a><ul><li><a href="#news-search-parameters" class="table-of-contents__link toc-highlight">News Search parameters</a></li></ul></li><li><a href="#rss-reader" class="table-of-contents__link toc-highlight">RSS Reader</a><ul><li><a href="#rss-reader-parameters" class="table-of-contents__link toc-highlight">RSS Reader parameters</a></li></ul></li><li><a href="#sql-database" class="table-of-contents__link toc-highlight">SQL Database</a><ul><li><a href="#query-an-sql-database-with-natural-language-prompts" class="table-of-contents__link toc-highlight">Query an SQL database with natural language prompts</a></li><li><a href="#sql-database-parameters" class="table-of-contents__link toc-highlight">SQL Database parameters</a></li></ul></li><li><a href="#url" class="table-of-contents__link toc-highlight">URL</a><ul><li><a href="#url-parameters" class="table-of-contents__link toc-highlight">URL parameters</a></li><li><a href="#url-output" class="table-of-contents__link toc-highlight">URL output</a></li></ul></li><li><a href="#web-search" class="table-of-contents__link toc-highlight">Web Search</a><ul><li><a href="#use-the-web-search-component-in-a-flow" class="table-of-contents__link toc-highlight">Use the Web Search component in a flow</a></li><li><a href="#web-search-parameters" class="table-of-contents__link toc-highlight">Web Search parameters</a></li><li><a href="#web-search-output" class="table-of-contents__link toc-highlight">Web Search output</a></li></ul></li><li><a href="#webhook" class="table-of-contents__link toc-highlight">Webhook</a><ul><li><a href="#trigger-the-webhook" class="table-of-contents__link toc-highlight">Trigger the webhook</a></li><li><a href="#webhook-parameters" class="table-of-contents__link toc-highlight">Webhook parameters</a></li></ul></li><li><a href="#additional-data-components" class="table-of-contents__link toc-highlight">Additional Data components</a></li><li><a href="#legacy-data-components" class="table-of-contents__link toc-highlight">Legacy Data components</a></li><li><a href="#see-also" class="table-of-contents__link toc-highlight">See also</a></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></footer><div style="position:fixed;right:21px;bottom:21px;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>