Files
langflow/configuration-api-keys.html
2024-11-02 13:20:12 +00:00

60 lines
58 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.

This file contains Unicode characters that might be confused with other characters. 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-Configuration/configuration-api-keys" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.4.0">
<title data-rh="true">API Keys | 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/configuration-api-keys"><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="API Keys | Langflow Documentation"><meta data-rh="true" name="description" content="Langflow provides an API key functionality that allows users to access their individual components and flows without traditional login authentication. The API key is a user-specific token that can be included in the request header, query parameter, or as a command line argument to authenticate API calls. This documentation outlines how to generate, use, and manage API keys in Langflow."><meta data-rh="true" property="og:description" content="Langflow provides an API key functionality that allows users to access their individual components and flows without traditional login authentication. The API key is a user-specific token that can be included in the request header, query parameter, or as a command line argument to authenticate API calls. This documentation outlines how to generate, use, and manage API keys in Langflow."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://docs.langflow.org/configuration-api-keys"><link data-rh="true" rel="alternate" href="https://docs.langflow.org/configuration-api-keys" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.langflow.org/configuration-api-keys" hreflang="x-default"><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-XHC7G628ZP"></script>
<script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-XHC7G628ZP",{anonymize_ip:!0})</script>
<link rel="preconnect" href="https://www.googletagmanager.com">
<script>window.dataLayer=window.dataLayer||[]</script>
<script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElement(a);r.async=!0,r.src="https://www.googletagmanager.com/gtm.js?id=GTM-NK5M4ZT8",m.parentNode.insertBefore(r,m)}(window,document,"script","dataLayer")</script><link rel="stylesheet" href="/assets/css/styles.0c3982bb.css">
<script src="/assets/js/runtime~main.8b06b87f.js" defer="defer"></script>
<script src="/assets/js/main.f17a4565.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NK5M4ZT8" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,t("light"))}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top navbarHideable_m1mJ"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/chain.png" alt="Langflow" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/chain.png" alt="Langflow" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div><b class="navbar__title text--truncate">Langflow</b></a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/langflow-ai/langflow" target="_blank" class="navbar__item navbar__link header-github-link"></a><a href="https://twitter.com/langflow_ai" target="_blank" class="navbar__item navbar__link header-twitter-link"></a><a href="https://discord.gg/EqksyE2EX9" target="_blank" class="navbar__item navbar__link header-discord-link"></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><div class="mendable-search"><button id="ms-search-bar" style="background-color:#1a1a1a;border-color:#6B728033;color:#e1e3e7" class="dark-mode !ms-text-white hover:!ms-bg-opacity-75 hover:!ms-text-white focus:ms-bg-gray-800 focus:ms-bg-opacity-75 focus:ms-text-white ms-global search-btn__input ms-m-0 ms-flex ms-h-10 ms-w-full ms-flex-row ms-items-center ms-justify-between ms-gap-2 ms-bg-gray-50 ms-p-1 ms-px-2 ms-outline-none ms-ring-0 ms-transition-all hover:ms-cursor-pointer sm:ms-p-2 sm:ms-px-3 ms-border ms-rounded-xl"><div class="dark-mode ms-global search-btn__input-container ms-flex ms-w-full ms-min-w-0 ms-items-center ms-gap-0 sm:ms-gap-1"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" style="color:#e1e3e7;fill:#e1e3e7" class="dark-mode search-btn__icon hover:fill-white ms-h-5 ms-w-5 ms-fill-gray-400 hover:ms-text-white focus:ms-fill-white focus:ms-text-white sm:ms-h-6 sm:ms-w-6" height="20" width="20" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M15.5 14h-.79l-.28-.27A6.471 6.471 0 0016 9.5 6.5 6.5 0 109.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path></svg><div id="userInput" style="color:#e1e3e7" class="dark-mode ms-global search-btn__input ms-w-full ms-flex-grow ms-truncate ms-bg-transparent ms-text-sm ms-outline-none ms-ring-0 ms-ring-transparent focus:ms-outline-none focus:ms-ring-0 focus:ms-ring-transparent sm:ms-text-base ms-ml-1 ms-flex ms-items-start ms-justify-start">Search...</div></div><div style="background-color:#1a1a1a;border-color:#6B728033;color:#e1e3e7" class="dark-mode search-btn__shortcut ms-z-10 ms-flex ms-flex-row ms-items-center ms-gap-1 ms-rounded-lg ms-border ms-py-[2px] ms-px-[8px] ms-text-xs ms-text-gray-400 ms-transition-all disabled:ms-bg-opacity-10"><span>CTRL</span><span>K</span></div></button><div></div></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd sidebarWithHideableNavbar_wUlq"><a tabindex="-1" class="sidebarLogo_isFc" href="/"><img src="/img/chain.png" alt="Langflow" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/chain.png" alt="Langflow" class="themedComponent_mlkZ themedComponent--dark_xIcU"><b>Langflow</b></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"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="true" href="/whats-new-a-new-chapter-langflow">Whats New?</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/whats-new-a-new-chapter-langflow">1.0 - A new chapter for Langflow</a></li></ul></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" role="button" aria-expanded="true" href="/">Getting Started</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/">👋 Welcome to Langflow</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/getting-started-installation">📦 Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/getting-started-quickstart">⚡️ Quickstart</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/getting-started-common-installation-issues">❗️ Common Installation Issues</a></li></ul></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" role="button" aria-expanded="true" href="/starter-projects-basic-prompting">Starter Projects</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/starter-projects-basic-prompting">Basic Prompting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/starter-projects-blog-writer">Blog Writer</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/starter-projects-document-qa">Document QA</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/starter-projects-memory-chatbot">Memory Chatbot</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/starter-projects-vector-store-rag">Vector Store RAG</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/Starter-Projects/starter-projects-dynamic-agent">Dynamic Agent</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/Starter-Projects/starter-projects-simple-agent">Simple Agent</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/Starter-Projects/starter-projects-travel-planning-agent">Travel Planning Agent</a></li></ul></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" role="button" aria-expanded="true" href="/guides-new-to-llms">Guides</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/guides-new-to-llms">📚 New to LLMs?</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/guides-chat-memory">Chat Memory</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/guides-data-message">Data &amp; Message</a></li></ul></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" href="/workspace">Workspace</a><button aria-label="Collapse sidebar category &#x27;Workspace&#x27;" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/workspace-playground">Playground</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/workspace-api">API</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/workspace-logs">Logs</a></li></ul></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" href="/components">Components</a><button aria-label="Collapse sidebar category &#x27;Components&#x27;" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/components-io">Inputs &amp; Outputs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/components-prompts">Prompts</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/components-data">Data</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/components-helpers">Helpers</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/components-models">Models</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/components-embedding-models">Embedding Models</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/components-vector-stores">Vector Stores</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/components-custom-components">Custom Components</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/components-rag">RAG</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/components-loaders">Loaders</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/Components/components-agents">Agents</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/Components/components-memories">Memories</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/Components/components-tools">Tools</a></li></ul></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" role="button" aria-expanded="true" href="/deployment-hugging-face-spaces">Deployment</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/deployment-hugging-face-spaces">🤗 Spaces</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/deployment-kubernetes">Kubernetes</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/deployment-docker">Docker</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/deployment-gcp">GCP</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/deployment-render">Render</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/deployment-railway">Railway</a></li></ul></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" role="button" aria-expanded="true" href="/settings-global-variables">Settings</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/settings-global-variables">Global Variables</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/settings-project-general-settings">Project &amp; General Settings</a></li></ul></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="/configuration-authentication">Configuration</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/configuration-authentication">Authentication</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/configuration-api-keys">API Keys</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/configuration-cli">Langflow CLI</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/365085a8-a90a-43f9-a779-f8769ec7eca1">My Collection</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/configuration-backend-only">Backend-Only</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/configuration-auto-save">Auto-saving</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/environment-variables">Environment Variables</a></li></ul></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" role="button" aria-expanded="true" href="/integrations-assemblyai">Integrations</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/integrations-assemblyai">AssemblyAI</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/integrations-langfuse">Langfuse</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/integrations-langsmith">LangSmith</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/integrations-langwatch">LangWatch</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" role="button" aria-expanded="true" tabindex="0" href="/integrations/notion/setup">Notion</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/integrations/notion/setup">Setup</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="/integrations/notion/notion-agent-meeting-notes">Notion Meeting Notes Agent</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="/integrations/notion/notion-agent-conversational">Notion Conversational Agent</a></li></ul></li></ul></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" role="button" aria-expanded="true" href="/contributing-telemetry">Contributing</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/contributing-telemetry">Telemetry</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/contributing-how-to-contribute">How to contribute?</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/contributing-github-issues">GitHub Issues</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/contributing-community">Community</a></li></ul></li></ul></nav><button type="button" title="Collapse sidebar" aria-label="Collapse sidebar" class="button button--secondary button--outline collapseSidebarButton_PEFL"><svg width="20" height="20" aria-hidden="true" class="collapseSidebarButtonIcon_kv0_"><g fill="#7a7a7a"><path d="M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"></path><path d="M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"></path></g></svg></button></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Configuration</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">API Keys</span><meta itemprop="position" content="2"></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>API Keys</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>Langflow provides an API key functionality that allows users to access their individual components and flows without traditional login authentication. The API key is a user-specific token that can be included in the request header, query parameter, or as a command line argument to authenticate API calls. This documentation outlines how to generate, use, and manage API keys in Langflow.</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 default user and password are set using the LANGFLOW_SUPERUSER and LANGFLOW_SUPERUSER_PASSWORD environment variables. The default values are <code>langflow</code> and <code>langflow</code>, respectively.</p></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="generate-an-api-key">Generate an API key<a class="hash-link" aria-label="Direct link to Generate an API key" title="Direct link to Generate an API key" href="/configuration-api-keys#generate-an-api-key"></a></h2>
<p>Generate a user-specific token to use with Langflow.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="generate-an-api-key-with-the-langflow-ui">Generate an API key with the Langflow UI<a class="hash-link" aria-label="Direct link to Generate an API key with the Langflow UI" title="Direct link to Generate an API key with the Langflow UI" href="/configuration-api-keys#generate-an-api-key-with-the-langflow-ui"></a></h3>
<ol>
<li>Click your user icon and select <strong>Settings</strong>.</li>
<li>Click <strong>Langflow API</strong>, and then click <strong>Add New</strong>.</li>
<li>Name your key, and then click <strong>Create Secret Key</strong>.</li>
<li>Copy the API key and store it in a secure location.</li>
</ol>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="generate-an-api-key-with-the-langflow-cli">Generate an API key with the Langflow CLI<a class="hash-link" aria-label="Direct link to Generate an API key with the Langflow CLI" title="Direct link to Generate an API key with the Langflow CLI" href="/configuration-api-keys#generate-an-api-key-with-the-langflow-cli"></a></h3>
<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>langflow api-key</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span># or</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span>python -m langflow api-key</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>│ API Key Created Successfully: │</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>│ sk-O0elzoWID1izAH8RUKrnnvyyMwIzHi2Wk-uXWoNJ2Ro │</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>│ This is the only time the API key will be displayed. │</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span>│ Make sure to store it in a secure location. │</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>│ The API key has been copied to your clipboard. Cmd + V to paste it. │</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span>╰──────────────────────────────</span></div></div><br></code></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="authenticate-requests-with-the-langflow-api-key">Authenticate requests with the Langflow API key<a class="hash-link" aria-label="Direct link to Authenticate requests with the Langflow API key" title="Direct link to Authenticate requests with the Langflow API key" href="/configuration-api-keys#authenticate-requests-with-the-langflow-api-key"></a></h2>
<p>Include your API key in API requests to authenticate requests to Langflow.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="include-the-api-key-in-the-http-header">Include the API key in the HTTP header<a class="hash-link" aria-label="Direct link to Include the API key in the HTTP header" title="Direct link to Include the API key in the HTTP header" href="/configuration-api-keys#include-the-api-key-in-the-http-header"></a></h3>
<p>To use the API key when making API requests with cURL, include the API key in the HTTP header.</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://127.0.0.1:7860/api/v1/run/*`YOUR_FLOW_ID`*?stream=false&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: *`YOUR_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;inputs&quot;: {&quot;text&quot;:&quot;&quot;}, &quot;tweaks&quot;: {}}&#x27;</span></div></div><br></code></div></div>
<p>To instead pass the API key as a query parameter, do the following:</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://127.0.0.1:7860/api/v1/run/*`YOUR_FLOW_ID`*?x-api-key=*`YOUR_API_KEY`*?stream=false&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> -d &#x27;{&quot;inputs&quot;: {&quot;text&quot;:&quot;&quot;}, &quot;tweaks&quot;: {}}&#x27;</span></div></div><br></code></div></div>
<p>To use the API key when making API requests with the Python <code>requests</code> library, include the API key as a variable string.</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">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span>import argparse</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span>import json</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span>from argparse import RawTextHelpFormatter</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span>import requests</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span>from typing import Optional</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span>import warnings</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span>try:</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> from langflow.load import upload_file</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span>except ImportError:</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> warnings.warn(&quot;Langflow provides a function to help you upload files to the flow. Please install langflow to use it.&quot;)</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> upload_file = None</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span>BASE_API_URL = &quot;http://127.0.0.1:7860&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span>FLOW_ID = &quot;*`YOUR_FLOW_ID`*&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span>ENDPOINT = &quot;&quot; # You can set a specific endpoint name in the flow settings</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span># You can tweak the flow by adding a tweaks dictionary</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span># e.g {&quot;OpenAI-XXXXX&quot;: {&quot;model_name&quot;: &quot;gpt-4&quot;}}</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span>TWEAKS = {</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> &quot;ChatInput-8a86T&quot;: {},</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> &quot;Prompt-pKfl9&quot;: {},</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> &quot;ChatOutput-WcGpD&quot;: {},</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> &quot;OpenAIModel-5UyvQ&quot;: {}</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span>def run_flow(message: str,</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> endpoint: str,</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> output_type: str = &quot;chat&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> input_type: str = &quot;chat&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> tweaks: Optional[dict] = None,</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> api_key: Optional[str] = None) -&gt; dict:</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> &quot;&quot;&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> Run a flow with a given message and optional tweaks.</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> :param message: The message to send to the flow</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> :param endpoint: The ID or the endpoint name of the flow</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> :param tweaks: Optional tweaks to customize the flow</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> :return: The JSON response from the flow</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> &quot;&quot;&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> api_url = f&quot;{BASE_API_URL}/api/v1/run/{endpoint}&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> payload = {</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> &quot;input_value&quot;: message,</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> &quot;output_type&quot;: output_type,</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> &quot;input_type&quot;: input_type,</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> headers = None</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> if tweaks:</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> payload[&quot;tweaks&quot;] = tweaks</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> if api_key:</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> headers = {&quot;x-api-key&quot;: api_key}</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> response = requests.post(api_url, json=payload, headers=headers)</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> return response.json()</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span>def main():</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> parser = argparse.ArgumentParser(description=&quot;&quot;&quot;Run a flow with a given message and optional tweaks.</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span>Run it like: python &lt;your file&gt;.py &quot;your message here&quot; --endpoint &quot;your_endpoint&quot; --tweaks &#x27;{&quot;key&quot;: &quot;value&quot;}&#x27;&quot;&quot;&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> formatter_class=RawTextHelpFormatter)</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> parser.add_argument(&quot;message&quot;, type=str, help=&quot;The message to send to the flow&quot;)</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> parser.add_argument(&quot;--endpoint&quot;, type=str, default=ENDPOINT or FLOW_ID, help=&quot;The ID or the endpoint name of the flow&quot;)</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> parser.add_argument(&quot;--tweaks&quot;, type=str, help=&quot;JSON string representing the tweaks to customize the flow&quot;, default=json.dumps(TWEAKS))</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> parser.add_argument(&quot;--api_key&quot;, type=str, help=&quot;API key for authentication&quot;, default=None)</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> parser.add_argument(&quot;--output_type&quot;, type=str, default=&quot;chat&quot;, help=&quot;The output type&quot;)</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> parser.add_argument(&quot;--input_type&quot;, type=str, default=&quot;chat&quot;, help=&quot;The input type&quot;)</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> parser.add_argument(&quot;--upload_file&quot;, type=str, help=&quot;Path to the file to upload&quot;, default=None)</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> parser.add_argument(&quot;--components&quot;, type=str, help=&quot;Components to upload the file to&quot;, default=None)</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> args = parser.parse_args()</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> try:</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> tweaks = json.loads(args.tweaks)</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> except json.JSONDecodeError:</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> raise ValueError(&quot;Invalid tweaks JSON string&quot;)</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> if args.upload_file:</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> if not upload_file:</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> raise ImportError(&quot;Langflow is not installed. Please install it to use the upload_file function.&quot;)</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> elif not args.components:</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> raise ValueError(&quot;You need to provide the components to upload the file to.&quot;)</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> tweaks = upload_file(file_path=args.upload_file, host=BASE_API_URL, flow_id=args.endpoint, components=[args.components], tweaks=tweaks)</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> response = run_flow(</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> message=args.message,</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> endpoint=args.endpoint,</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> output_type=args.output_type,</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> input_type=args.input_type,</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> tweaks=tweaks,</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> api_key=args.api_key</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> )</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> print(json.dumps(response, indent=2))</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span>if __name__ == &quot;__main__&quot;:</span></div></div><div><span class="ch-code-line-number">_<!-- -->93</span><div style="display:inline-block;margin-left:16px"><span> main()</span></div></div><br></code></div></div>
<p>To pass the API key to your script with a command line argument, do the following:</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>python your_script.py &quot;*`YOUR_INPUT_MESSAGE`*&quot; --api_key &quot;*`YOUR_API_KEY`*&quot;</span></div></div><br></code></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="security-considerations">Security considerations<a class="hash-link" aria-label="Direct link to Security considerations" title="Direct link to Security considerations" href="/configuration-api-keys#security-considerations"></a></h2>
<ul>
<li><strong>Visibility</strong>: For security reasons, the API key cannot be retrieved again through the UI.</li>
<li><strong>Scope</strong>: The key allows access only to the flows and components of the specific user to whom it was issued.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="custom-api-endpoint">Custom API endpoint<a class="hash-link" aria-label="Direct link to Custom API endpoint" title="Direct link to Custom API endpoint" href="/configuration-api-keys#custom-api-endpoint"></a></h2>
<p>To choose a custom name for your API endpoint, select <strong>Project Settings</strong> &gt; <strong>Endpoint Name</strong> and name your endpoint.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="revoke-an-api-key">Revoke an API key<a class="hash-link" aria-label="Direct link to Revoke an API key" title="Direct link to Revoke an API key" href="/configuration-api-keys#revoke-an-api-key"></a></h2>
<p>To revoke an API key, delete it from the the list of keys in the <strong>Settings</strong> menu.</p>
<ol>
<li>Click your user icon and select <strong>Settings</strong>.</li>
<li>Click <strong>Langflow API</strong>.</li>
<li>Select the keys you want to delete and click the trash can icon.</li>
</ol>
<p>This action immediately invalidates the key and prevents it from being used again.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/configuration-authentication"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Authentication</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/configuration-cli"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Langflow CLI</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 class="table-of-contents__link toc-highlight" href="/configuration-api-keys#generate-an-api-key">Generate an API key</a><ul><li><a class="table-of-contents__link toc-highlight" href="/configuration-api-keys#generate-an-api-key-with-the-langflow-ui">Generate an API key with the Langflow UI</a></li><li><a class="table-of-contents__link toc-highlight" href="/configuration-api-keys#generate-an-api-key-with-the-langflow-cli">Generate an API key with the Langflow CLI</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/configuration-api-keys#authenticate-requests-with-the-langflow-api-key">Authenticate requests with the Langflow API key</a><ul><li><a class="table-of-contents__link toc-highlight" href="/configuration-api-keys#include-the-api-key-in-the-http-header">Include the API key in the HTTP header</a></li></ul></li><li><a class="table-of-contents__link toc-highlight" href="/configuration-api-keys#security-considerations">Security considerations</a></li><li><a class="table-of-contents__link toc-highlight" href="/configuration-api-keys#custom-api-endpoint">Custom API endpoint</a></li><li><a class="table-of-contents__link toc-highlight" href="/configuration-api-keys#revoke-an-api-key">Revoke an API key</a></li></ul></div></div></div></div></main></div></div></div><div id="ms-floating-button" class="ms-fixed ms-bottom-4 ms-right-8 ms-z-[100] ms-flex ms-flex-col ms-items-end hover:ms-cursor-pointer"><div class="ms-relative ms-mb-4"><div style="background-color:#f6f6f6" class="ms-absolute -ms-bottom-1 ms-right-6 -ms-z-10 ms-h-4 ms-w-4 ms-rotate-45"></div><div style="background-color:#f6f6f6" class="ms-z-10 ms-flex ms-items-center ms-justify-center ms-rounded-lg ms-px-3 ms-py-2"><p style="color:#000000;margin:0" class="ms-text-sm">Hi, how can I help you?</p></div></div><div style="background-color:#f6f6f6" class="ms-flex ms-h-16 ms-w-16 ms-flex-col ms-items-center ms-justify-center ms-self-end ms-rounded-full ms-p-2 ms-transition"><div class="ms-rotate-0 ms-flex ms-h-full ms-w-full ms-transform ms-cursor-pointer ms-items-center ms-justify-center ms-rounded-full ms-transition-all ms-delay-75 ms-duration-100 ms-ease-in-out"><div style="color:#000000;font-size:22px;width:48px;height:48px;margin:0px;padding:0px;display:flex;align-items:center;justify-content:center;text-align:center"><img src="/img/chain.png" style="width:40px"></div></div></div><div></div></div></div>
</body>
</html>