<!DOCTYPE html><html class="__variable_d02b59 __variable_3c557b" lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/><link rel="preload" href="/_next/static/media/1e751dc5947d8156-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/8052ba449b4ca60a-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/bb3ef058b751a6ad-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/f417133a7bc67e37-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=%2Flogos%2Fcomposio-full-white.svg&amp;w=128&amp;q=75 1x, /_next/image?url=%2Flogos%2Fcomposio-full-white.svg&amp;w=256&amp;q=75 2x"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=%2Flogos%2Fcomposio-full-black.svg&amp;w=128&amp;q=75 1x, /_next/image?url=%2Flogos%2Fcomposio-full-black.svg&amp;w=256&amp;q=75 2x"/><link rel="preload" as="image" href="https://logos.composio.dev/api/gmail"/><link rel="preload" as="image" href="https://logos.composio.dev/api/composio"/><link rel="preload" as="image" href="https://logos.composio.dev/api/github"/><link rel="preload" as="image" href="https://logos.composio.dev/api/googlecalendar"/><link rel="preload" as="image" href="https://logos.composio.dev/api/notion"/><link rel="preload" as="image" href="https://logos.composio.dev/api/googlesheets"/><link rel="preload" as="image" href="https://logos.composio.dev/api/slack"/><link rel="preload" as="image" href="https://logos.composio.dev/api/supabase"/><link rel="stylesheet" href="/_next/static/css/b0d19ddbfeec815f.css?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/9db8e5e846a0d1c2.css?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-b930eff66a524c34.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd"/><script src="/_next/static/chunks/6ea58dfc-e66f54990cf14166.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" async=""></script><script src="/_next/static/chunks/3e92710c-6b984549a60f44e5.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" async=""></script><script src="/_next/static/chunks/7304-568c2c8f0ba50f69.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" async=""></script><script src="/_next/static/chunks/main-app-1b0f240ad0be0ab5.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" async=""></script><script src="/_next/static/chunks/8862-cffe0ea78b8db294.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" async=""></script><script src="/_next/static/chunks/app/layout-c81e151b5bcf8f81.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" async=""></script><script src="/_next/static/chunks/481b18d3-b226a9cf63447f42.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" async=""></script><script src="/_next/static/chunks/504f14e4-a0552262de9f7d74.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" async=""></script><script src="/_next/static/chunks/c5503633-24284694ed1fdfa6.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" async=""></script><script src="/_next/static/chunks/5562-04a5619131a706e5.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" async=""></script><script src="/_next/static/chunks/14-8a61002774841b0a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" async=""></script><script src="/_next/static/chunks/2510-7105d8258cdbd8c8.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" async=""></script><script src="/_next/static/chunks/9170-c6d8c29c2224efe7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" async=""></script><script src="/_next/static/chunks/6103-39bce09afc6306dd.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" async=""></script><script src="/_next/static/chunks/5539-8451c0f5ff0f02a7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" async=""></script><script src="/_next/static/chunks/2554-acb95cf9f19a8aae.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" async=""></script><script src="/_next/static/chunks/9573-4ef7b615681d5b03.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" async=""></script><script src="/_next/static/chunks/7546-737e05e251618a5a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" async=""></script><script src="/_next/static/chunks/app/startups/page-f0e7f1f269d678fa.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" async=""></script><script src="/_next/static/chunks/7709-57ce867ca125946d.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" async=""></script><script src="/_next/static/chunks/app/not-found-6bd98d10d9a828b4.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-RPSC9BJQMK" as="script"/><link rel="preload" href="/proxy/js/script.js" as="script"/><link rel="preload" as="image" href="https://logos.composio.dev/api/outlook"/><link rel="preload" as="image" href="https://logos.composio.dev/api/perplexityai"/><link rel="preload" as="image" href="https://logos.composio.dev/api/twitter"/><link rel="preload" as="image" href="https://logos.composio.dev/api/googledrive"/><link rel="preload" as="image" href="https://logos.composio.dev/api/googledocs"/><link rel="preload" as="image" href="https://logos.composio.dev/api/hubspot"/><link rel="preload" as="image" href="https://logos.composio.dev/api/linear"/><link rel="preload" as="image" href="https://logos.composio.dev/api/airtable"/><link rel="preload" as="image" href="https://logos.composio.dev/api/codeinterpreter"/><link rel="preload" as="image" href="https://logos.composio.dev/api/serpapi"/><link rel="preload" as="image" href="https://logos.composio.dev/api/jira"/><link rel="preload" as="image" href="https://logos.composio.dev/api/firecrawl"/><link rel="preload" as="image" href="https://logos.composio.dev/api/tavily"/><link rel="preload" as="image" href="https://logos.composio.dev/api/youtube"/><link rel="preload" as="image" href="https://logos.composio.dev/api/slackbot"/><link rel="preload" as="image" href="https://logos.composio.dev/api/canvas"/><link rel="preload" as="image" href="https://logos.composio.dev/api/bitbucket"/><link rel="preload" as="image" href="https://logos.composio.dev/api/googletasks"/><link rel="preload" as="image" href="https://logos.composio.dev/api/discord"/><link rel="preload" as="image" href="https://logos.composio.dev/api/figma"/><link rel="preload" as="image" href="https://logos.composio.dev/api/stripe"/><link rel="preload" as="image" href="https://logos.composio.dev/api/intercom"/><link rel="preload" as="image" href="https://logos.composio.dev/api/asana"/><link rel="preload" as="image" href="https://logos.composio.dev/api/zoom"/><meta name="next-size-adjust" content=""/><title>Startups Program | Composio</title><meta name="description" content="Build AI agents free for six months. Startups get Composio&#x27;s Business plan free — 1,000+ tool integrations, 3M LLM tokens/month, unlimited team seats, and self-managed credentials."/><link rel="manifest" href="/site.webmanifest"/><link rel="canonical" href="https://composio.dev/startups"/><meta property="og:title" content="Startups Program | Composio"/><meta property="og:description" content="Build AI agents free for six months. Startups get Composio&#x27;s Business plan free — 1,000+ tool integrations, 3M LLM tokens/month, unlimited team seats, and self-managed credentials."/><meta property="og:url" content="https://composio.dev/startups"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Startups Program | Composio"/><meta name="twitter:description" content="Build AI agents free for six months. Startups get Composio&#x27;s Business plan free — 1,000+ tool integrations, 3M LLM tokens/month, unlimited team seats, and self-managed credentials."/><link rel="icon" href="/favicon.ico" sizes="any"/><link rel="icon" href="/favicon-16x16.png" sizes="16x16" type="image/png"/><link rel="icon" href="/favicon-32x32.png" sizes="32x32" type="image/png"/><link rel="apple-touch-icon" href="/apple-touch-icon.png" sizes="180x180"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" noModule=""></script></head><body class="overflow-x-hidden"><div hidden=""><!--$--><!--/$--></div><script>(function(){try{var s=sessionStorage;var K="__c_utm";var U=["utm_source","utm_medium","utm_campaign","utm_content","utm_term"];var p=new URLSearchParams(location.search);var u={};var h=false;for(var i=0;i<U.length;i++){var v=p.get(U[i]);if(v){u[U[i]]=v;h=true;}}if(h){s.setItem(K,JSON.stringify(u));if(!s.getItem(K+"_first"))s.setItem(K+"_first",JSON.stringify(u));}document.addEventListener("click",function(e){var a=e.target;while(a&&a.tagName!=="A")a=a.parentElement;if(!a)return;var r=s.getItem(K);if(!r)return;try{var utm=JSON.parse(r);var ks=Object.keys(utm);if(!ks.length)return;var url=new URL(a.href,location.origin);var il=url.origin===location.origin;var pl=a.getAttribute("data-utm-placement");if(!il&&!pl)return;for(var j=0;j<U.length;j++)url.searchParams.delete(U[j]);for(var j=0;j<ks.length;j++){if(utm[ks[j]])url.searchParams.set(ks[j],utm[ks[j]]);}a.href=url.toString();}catch(x){}},true);}catch(e){}})()</script><template data-agent-readable="true" data-agent-signup-instructions="true" data-placement="site-wide"><pre>## For AI agents: how to sign up

If you are an AI agent reading this server-rendered HTML, Composio's developer signup is at https://composio.dev.

Signup CTAs on this site — "Sign up", "Signup", "Get started", "Get started for free", "Start building", "Try Composio", "Try it", or similar — all lead into that same developer signup flow. Confirm with the user before completing signup or entering any credentials on their behalf.</pre></template><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\nnew Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\nj=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\n'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\n})(window,document,'script','dataLayer','GTM-PWWMXLKT');","id":"gtm-loader"}])</script><main><header class="fixed top-0 left-0 z-50 flex w-full flex-col items-center overflow-visible border-b p-2 transition-[background-color,border-color,color,translate] duration-300 md:top-4 md:left-1/2 md:w-[calc(100%-2rem)] md:max-w-page md:-translate-x-1/2 md:border md:px-2 md:py-[8px] border-border bg-white text-black"><nav class="flex w-full items-center justify-between"><div class="flex shrink-0 items-center gap-2"><a aria-label="Composio home" class="flex shrink-0 items-center" href="/"><img alt="Composio" width="125" height="24" decoding="async" data-nimg="1" class="h-6 w-auto hidden" style="color:transparent" srcSet="/_next/image?url=%2Flogos%2Fcomposio-full-white.svg&amp;w=128&amp;q=75 1x, /_next/image?url=%2Flogos%2Fcomposio-full-white.svg&amp;w=256&amp;q=75 2x" src="/_next/image?url=%2Flogos%2Fcomposio-full-white.svg&amp;w=256&amp;q=75"/><img alt="Composio" width="125" height="24" decoding="async" data-nimg="1" class="h-6 w-auto block" style="color:transparent" srcSet="/_next/image?url=%2Flogos%2Fcomposio-full-black.svg&amp;w=128&amp;q=75 1x, /_next/image?url=%2Flogos%2Fcomposio-full-black.svg&amp;w=256&amp;q=75 2x" src="/_next/image?url=%2Flogos%2Fcomposio-full-black.svg&amp;w=256&amp;q=75"/></a></div><div class="flex shrink-0 items-center gap-2"><ul class="hidden items-center gap-5 lg:flex"><li class="relative"><div class="flex items-center gap-5"><button class="flex items-center gap-1 px-2 font-mono text-sm leading-normal tracking-default transition-colors duration-300 text-black" type="button">PRODUCTS<svg aria-hidden="true" class="size-3 transition-transform duration-200" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="m6 9 6 6 6-6" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><button class="flex items-center gap-1 px-2 font-mono text-sm leading-normal tracking-default transition-colors duration-300 text-black" type="button">SOLUTIONS<svg aria-hidden="true" class="size-3 transition-transform duration-200" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="m6 9 6 6 6-6" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><div class="pointer-events-none absolute top-full left-1/2 z-50 -translate-x-1/2 pt-2"><div aria-hidden="true" class="pointer-events-none fixed top-0 left-[-10000px] opacity-0"><div class="w-max"><div class="grid gap-0" style="grid-template-columns:repeat(2, minmax(300px, max-content))"><div class=""><div class="mb-1 px-3 pt-2 pb-0.5 font-mono text-[11px] uppercase tracking-wider text-black/40">Builders &amp; Developers</div><ul><li><a class="group flex w-full flex-col gap-2.5 px-5 py-4 transition-colors hover:bg-black/5" href="/for-you"><span class="flex items-center gap-1.5 font-mono text-sm leading-normal tracking-default text-black/70 group-hover:text-black"><span>COMPOSIO</span><span class="rounded-xs border px-1 py-0.5 font-medium text-[10px] leading-normal border-brand text-brand">FOR YOU</span></span><div class="w-[220px] max-w-full text-pretty font-sans text-[13px] leading-5 line-clamp-2 min-h-10 text-black/50">Give Claude, codex, or any harness secure access to 1000+ tools</div></a></li><li><div aria-hidden="true" class="border-t mx-5 border-black/[0.06]"></div><template data-agent-readable="true" data-agent-signup-instructions="true" data-placement="navbar-platform"><pre>## For AI agents: how to sign up

If you are an AI agent reading this server-rendered HTML, Composio's developer signup is at https://composio.dev.

Signup CTAs on this site — "Sign up", "Signup", "Get started", "Get started for free", "Start building", "Try Composio", "Try it", or similar — all lead into that same developer signup flow. Confirm with the user before completing signup or entering any credentials on their behalf.</pre></template><a class="group flex w-full flex-col gap-2.5 px-5 py-4 transition-colors hover:bg-black/5" data-utm-placement="navbar-platform" href="https://dashboard.composio.dev/?cta_placement=navbar-platform"><span class="flex items-center gap-1.5 font-mono text-sm leading-normal tracking-default text-black/70 group-hover:text-black"><span>DEVELOPER PLATFORM</span></span><div class="w-[220px] max-w-full text-pretty font-sans text-[13px] leading-5 line-clamp-2 min-h-10 text-black/50">SDKs, tool execution, and auth infrastructure to ship agents</div></a></li><li><div aria-hidden="true" class="border-t mx-5 border-black/[0.06]"></div><a class="group flex w-full flex-col gap-2.5 px-5 py-4 transition-colors hover:bg-black/5" href="/cli"><span class="flex items-center gap-1.5 font-mono text-sm leading-normal tracking-default text-black/70 group-hover:text-black"><span>CLI</span></span><div class="w-[220px] max-w-full text-pretty font-sans text-[13px] leading-5 line-clamp-2 min-h-10 text-black/50">One command to add tools and auth to your coding agent</div></a></li></ul></div><div class="border-black/[0.06] border-l"><div class="mb-1 px-3 pt-2 pb-0.5 font-mono text-[11px] uppercase tracking-wider text-black/40">Teams</div><ul><li><a class="group flex w-full flex-col gap-2.5 px-5 py-4 transition-colors hover:bg-black/5" href="/enterprise"><span class="flex items-center gap-1.5 font-mono text-sm leading-normal tracking-default text-black/70 group-hover:text-black"><span>ENTERPRISE</span></span><div class="w-[220px] max-w-full text-pretty font-sans text-[13px] leading-5 line-clamp-2 min-h-10 text-black/50">SSO, governance, and audit controls for deploying agents org-wide</div></a></li><li><div aria-hidden="true" class="border-t mx-5 border-black/[0.06]"></div><a class="group flex w-full flex-col gap-2.5 px-5 py-4 transition-colors hover:bg-black/5" href="/mcp-gateway"><span class="flex items-center gap-1.5 font-mono text-sm leading-normal tracking-default text-black/70 group-hover:text-black"><span>MCP GATEWAY</span></span><div class="w-[220px] max-w-full text-pretty font-sans text-[13px] leading-5 line-clamp-2 min-h-10 text-black/50">One managed MCP endpoint for all your tools and agents</div></a></li></ul></div></div></div><div class="w-max"><div class="flex w-max"><div class="w-[260px] shrink-0"><div><div class="px-3 pt-2 pb-0.5 font-mono text-[11px] uppercase tracking-wider text-black/40 mb-2">FOR AGENTS</div><ul><li><a class="group font-mono text-sm leading-normal tracking-default transition-colors flex items-center px-4 min-h-[52px] gap-3 py-3 text-black/70 hover:bg-black/5 hover:text-black" href="/claude"><span class="flex items-center gap-3"><img alt="" aria-hidden="true" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="size-5 shrink-0 object-contain" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fclients%2Fclaude.svg&amp;w=32&amp;q=75 1x, /_next/image?url=%2Fimages%2Fclients%2Fclaude.svg&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Fclients%2Fclaude.svg&amp;w=48&amp;q=75"/><span>CLAUDE</span></span></a></li><li><div aria-hidden="true" class="border-t mx-4 border-black/[0.06]"></div><a class="group font-mono text-sm leading-normal tracking-default transition-colors flex items-center px-4 min-h-[52px] gap-3 py-3 text-black/70 hover:bg-black/5 hover:text-black" href="/codex"><span class="flex items-center gap-3"><img alt="" aria-hidden="true" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="size-5 shrink-0 object-contain" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fclients%2Fcodex.svg&amp;w=32&amp;q=75 1x, /_next/image?url=%2Fimages%2Fclients%2Fcodex.svg&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Fclients%2Fcodex.svg&amp;w=48&amp;q=75"/><span>CODEX</span></span></a></li><li><div aria-hidden="true" class="border-t mx-4 border-black/[0.06]"></div><a class="group font-mono text-sm leading-normal tracking-default transition-colors flex items-center px-4 min-h-[52px] gap-3 py-3 text-black/70 hover:bg-black/5 hover:text-black" href="/claw"><span class="flex items-center gap-3"><img alt="" aria-hidden="true" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="size-5 shrink-0 object-contain" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fclients%2Fopenclaw.svg&amp;w=32&amp;q=75 1x, /_next/image?url=%2Fimages%2Fclients%2Fopenclaw.svg&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Fclients%2Fopenclaw.svg&amp;w=48&amp;q=75"/><span>OPENCLAW</span></span></a></li><li><div aria-hidden="true" class="border-t mx-4 border-black/[0.06]"></div><a class="group font-mono text-sm leading-normal tracking-default transition-colors flex items-center px-4 min-h-[52px] gap-3 py-3 text-black/70 hover:bg-black/5 hover:text-black" href="/cursor"><span class="flex items-center gap-3"><img alt="" aria-hidden="true" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="size-5 shrink-0 object-contain" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fclients%2Fcursor.svg&amp;w=32&amp;q=75 1x, /_next/image?url=%2Fimages%2Fclients%2Fcursor.svg&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Fclients%2Fcursor.svg&amp;w=48&amp;q=75"/><span>CURSOR</span></span></a></li><li><div aria-hidden="true" class="border-t mx-4 border-black/[0.06]"></div><a class="group font-mono text-sm leading-normal tracking-default transition-colors flex items-center px-4 min-h-[52px] gap-3 py-3 text-black/70 hover:bg-black/5 hover:text-black" href="/hermes"><span class="flex items-center gap-3"><img alt="" aria-hidden="true" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="size-5 shrink-0 object-contain" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fclients%2Fhermes.png&amp;w=32&amp;q=75 1x, /_next/image?url=%2Fimages%2Fclients%2Fhermes.png&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Fclients%2Fhermes.png&amp;w=48&amp;q=75"/><span>HERMES</span></span></a></li></ul></div></div><div class="border-black/[0.06] border-l"><div class="grid gap-0" style="grid-template-columns:repeat(3, minmax(260px, max-content))"><div><div class="relative"><div><div class="px-3 pt-2 pb-0.5 font-mono text-[11px] uppercase tracking-wider text-black/40 mb-2">BUILT FOR</div><ul><li><a class="group font-mono text-sm leading-normal tracking-default transition-colors flex w-full flex-col gap-2.5 py-4 px-4 hover:bg-black/5" href="/product/composio-for-everyday-ai-users"><span class="flex items-center gap-2 text-black/70 group-hover:text-black"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="size-4 shrink-0 text-black/40" stroke-width="1.75"><path d="M16 7V4" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M8 7V4" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M10 2H14" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M21 10V7H3V10" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M9 14H15" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M5 12H7" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M17 12H19" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M5 21H19" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M3 19V14" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M21 19V14" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path></svg><span>OFFICE WORK</span></span><div class="max-w-full text-pretty font-sans text-[13px] leading-5 line-clamp-2 min-h-10 w-[200px] text-black/50">Connect Claude or ChatGPT to the apps you already use — Gmail, Slack, Notion, Calendar, and 1,000+ more. One prompt, real work, done.</div></a></li><li><div aria-hidden="true" class="border-t mx-5 border-black/[0.06]"></div><a class="group font-mono text-sm leading-normal tracking-default transition-colors flex w-full flex-col gap-2.5 py-4 px-4 hover:bg-black/5" href="/product/composio-for-sales-revenue"><span class="flex items-center gap-2 text-black/70 group-hover:text-black"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="size-4 shrink-0 text-black/40" stroke-width="1.75"><path d="M16 5H22V11" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M2 20H22" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M2.01001 13L2.00001 13" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M4.01001 11L4.00001 11" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M6.01001 9L6.00001 9" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M8.01001 7L8.00001 7" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M10.01 9L10 9" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M12.01 11L12 11" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M14.01 13L14 13" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M16.01 11L16 11" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M18.01 9L18 9" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M20.01 7L20 7" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path></svg><span>SALES</span></span><div class="max-w-full text-pretty font-sans text-[13px] leading-5 line-clamp-2 min-h-10 w-[200px] text-black/50">Enrich a lead, draft the follow-up, book the meeting, brief yourself for the call — across Salesforce, HubSpot, Gmail, LinkedIn, and 1,000+ more tools. One prompt, deal momentum.</div></a></li><li><div aria-hidden="true" class="border-t mx-5 border-black/[0.06]"></div><a class="group font-mono text-sm leading-normal tracking-default transition-colors flex w-full flex-col gap-2.5 py-4 px-4 hover:bg-black/5" href="/product/composio-for-marketing-growth"><span class="flex items-center gap-2 text-black/70 group-hover:text-black"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="size-4 shrink-0 text-black/40" stroke-width="1.75"><path d="M18 2V6H22" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M8 2L12 2" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M6 4L6 4.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M4 6L4 6.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M2 8L2 16" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M22 12L22 16" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M4.01001 18L4.00001 18" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M20.01 18L20 18" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M6.01001 20L6.00001 20" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M18.01 20L18 20" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M8 22L16 22" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M10 6L12 6" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M10 18L14 18" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M18 12L18 14" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M6 10L6 14" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M8.01001 8L8.00001 8" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M8.01001 16L8.00001 16" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M16.01 16L16 16" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M12.01 12L12 12" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M14.01 10L14 10" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M16.01 8L16 8" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path></svg><span>MARKETING</span></span><div class="max-w-full text-pretty font-sans text-[13px] leading-5 line-clamp-2 min-h-10 w-[200px] text-black/50">Launch campaigns, publish social, monitor SEO, pull funnel metrics, and nurture leads — across HubSpot, Mailchimp, Google Analytics, LinkedIn, and 1,000+ more tools. One prompt, growth compounding.</div></a></li><li><div aria-hidden="true" class="border-t mx-5 border-black/[0.06]"></div><a class="group font-mono text-sm leading-normal tracking-default transition-colors flex w-full flex-col gap-2.5 py-4 px-4 hover:bg-black/5" href="/product/composio-for-product-design"><span class="flex items-center gap-2 text-black/70 group-hover:text-black"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="size-4 shrink-0 text-black/40" stroke-width="1.75"><path d="M13 21L11 21" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M16 19L15 19" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M9 19L8 19" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M19 17L18 17" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M6 17L5 17" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M22 15L21 15" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M13 15L11 15" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M3 15L2 15" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M16 13L15 13" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M9 13L8 13" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M19 11L18 11" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M6 11L5 11" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M22 9L21 9" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M3 9L2 9" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M19 7L18 7" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M6 7L5 7" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M16 5L15 5" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M9 5L8 5" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M13 3L11 3" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path></svg><span>PRODUCT &amp; DESIGN</span></span><div class="max-w-full text-pretty font-sans text-[13px] leading-5 line-clamp-2 min-h-10 w-[200px] text-black/50">Synthesize research, iterate designs, write specs, plan sprints, and track metrics — across Figma, Linear, Notion, PostHog, and 1,000+ more tools. One prompt, less context-switching, more shipping.</div></a></li></ul></div></div></div><div><div class="mb-1 px-3 pt-2 pb-0.5 font-mono text-[11px] uppercase tracking-wider text-black/40 pointer-events-none invisible select-none">BUILT FOR</div><div class="relative"><div aria-hidden="true" class="pointer-events-none absolute top-5 bottom-5 left-0 w-px bg-black/[0.06]"></div><div><ul><li><a class="group font-mono text-sm leading-normal tracking-default transition-colors flex w-full flex-col gap-2.5 py-4 px-4 hover:bg-black/5" href="/product/composio-for-customer-support"><span class="flex items-center gap-2 text-black/70 group-hover:text-black"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="size-4 shrink-0 text-black/40" stroke-width="1.75"><path d="M3 14V8" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M21 14V8" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M6 14L3 14" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M21 14L18 14" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M3 14V19" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M21 14V19" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M16 16V21H19" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M8 16V21H5" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M15 2L9 2" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M5 6.01V6" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M19 6.01V6" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M7 4.01V4" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M17 4.01V4" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path></svg><span>CUSTOMER SUPPORT</span></span><div class="max-w-full text-pretty font-sans text-[13px] leading-5 line-clamp-2 min-h-10 w-[200px] text-black/50">Triage the queue, draft the reply, escalate to engineering, and keep the CSM synced — across Zendesk, Intercom, Salesforce, Slack, and 1,000+ more tools. One prompt, every ticket moving.</div></a></li><li><div aria-hidden="true" class="border-t mx-5 border-black/[0.06]"></div><a class="group font-mono text-sm leading-normal tracking-default transition-colors flex w-full flex-col gap-2.5 py-4 px-4 hover:bg-black/5" href="/product/composio-for-engineering-devops"><span class="flex items-center gap-2 text-black/70 group-hover:text-black"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="size-4 shrink-0 text-black/40" stroke-width="1.75"><path d="M2.00001 12L2.01001 12" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M4.00001 14L4.01001 14" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M6.00001 16L6.01001 16" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M6.00001 8L6.01001 8" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M8.00001 6L8.01001 6" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M8.00001 18L8.01001 18" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M4.00001 10L4.01001 10" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M22.01 12L22 12" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M20.01 14L20 14" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M18.01 16L18 16" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M18.01 8L18 8" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M16.01 6L16 6" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M16.01 18L16 18" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M20.01 10L20 10" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path></svg><span>ENGINEERING</span></span><div class="max-w-full text-pretty font-sans text-[13px] leading-5 line-clamp-2 min-h-10 w-[200px] text-black/50">Triage, review, deploy, respond, and retro — across GitHub, Linear, Sentry, Datadog, PagerDuty, and 1,000+ more tools. One prompt, less busywork, more shipping.</div></a></li><li><div aria-hidden="true" class="border-t mx-5 border-black/[0.06]"></div><a class="group font-mono text-sm leading-normal tracking-default transition-colors flex w-full flex-col gap-2.5 py-4 px-4 hover:bg-black/5" href="/product/composio-for-hr-recruiting"><span class="flex items-center gap-2 text-black/70 group-hover:text-black"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="size-4 shrink-0 text-black/40" stroke-width="1.75"><path d="M7 4H9" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" fill="none"></path><path d="M7 10H9" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" fill="none"></path><path d="M11 6L11 8" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" fill="none"></path><path d="M5 6L5 8" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" fill="none"></path><path d="M17.5 4H18.5" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M17.5 9H18.5" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M20.5 6L20.5 7" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M15.5 6L15.5 7" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M5 14H11" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" fill="none"></path><path d="M16 13H20" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M1 18V20H15V18" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" fill="none"></path><path d="M19 18H22V15" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M3 16H3.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M13 16H13.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path></svg><span>HR &amp; RECRUITING</span></span><div class="max-w-full text-pretty font-sans text-[13px] leading-5 line-clamp-2 min-h-10 w-[200px] text-black/50">Screen candidates, schedule interviews, send offers, and run onboarding — across Ashby, Lever, BambooHR, Deel, and 1,000+ more tools. One prompt, less admin, more hires.</div></a></li><li><div aria-hidden="true" class="border-t mx-5 border-black/[0.06]"></div><a class="group font-mono text-sm leading-normal tracking-default transition-colors flex w-full flex-col gap-2.5 py-4 px-4 hover:bg-black/5" href="/product/composio-for-finance-operations"><span class="flex items-center gap-2 text-black/70 group-hover:text-black"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="size-4 shrink-0 text-black/40" stroke-width="1.75"><path d="M9 22V18" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M15 22V18" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M11 16H13" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M8 11.01L8 11" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M12 11.01L12 11" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M16 11.01L16 11" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M8 7.01001L8 7.00001" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M12 7.01001L12 7.00001" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M16 7.01001L16 7.00001" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M6 22H18" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M20 20V5" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M4 20V5" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M6 3H8" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M16 3H18" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M10 2H14" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path></svg><span>FINANCE &amp; OPS</span></span><div class="max-w-full text-pretty font-sans text-[13px] leading-5 line-clamp-2 min-h-10 w-[200px] text-black/50">Categorize expenses, reconcile payouts, approve POs, and run the close — across Stripe, NetSuite, Brex, Xero, and 1,000+ more tools. One prompt, numbers that tie out.</div></a></li></ul></div></div></div><div><div class="mb-1 px-3 pt-2 pb-0.5 font-mono text-[11px] uppercase tracking-wider text-black/40 pointer-events-none invisible select-none">BUILT FOR</div><div class="relative"><div aria-hidden="true" class="pointer-events-none absolute top-5 bottom-5 left-0 w-px bg-black/[0.06]"></div><div><ul><li><a class="group font-mono text-sm leading-normal tracking-default transition-colors flex w-full flex-col gap-2.5 py-4 px-4 hover:bg-black/5" href="/product/composio-for-ecommerce"><span class="flex items-center gap-2 text-black/70 group-hover:text-black"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="size-4 shrink-0 text-black/40" stroke-width="1.75"><path d="M8 10V4" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M16 10V4" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M10 2H14" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M10 14H14" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M2 14V10H22V14" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M18 21H6" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M4 16V19" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M20 16V19" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path></svg><span>E-COMMERCE</span></span><div class="max-w-full text-pretty font-sans text-[13px] leading-5 line-clamp-2 min-h-10 w-[200px] text-black/50">Manage inventory, triage support, run nurture flows, and tune your ads — across Shopify, Klaviyo, Gorgias, Google Ads, and 1,000+ more tools. One prompt, every order moving.</div></a></li><li><div aria-hidden="true" class="border-t mx-5 border-black/[0.06]"></div><a class="group font-mono text-sm leading-normal tracking-default transition-colors flex w-full flex-col gap-2.5 py-4 px-4 hover:bg-black/5" href="/product/composio-for-content-media"><span class="flex items-center gap-2 text-black/70 group-hover:text-black"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="size-4 shrink-0 text-black/40" stroke-width="1.75"><path d="M2 10H22" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M20 4H4" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" fill="none"></path><path d="M20 20H4" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" fill="none"></path><path d="M22 6L22 18" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" fill="none"></path><path d="M2 6L2 18" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" fill="none"></path><path d="M6 8.01V8" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M17 8.01V8" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M7 6.01V6" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M18 6.01V6" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M11.5 8.01V8" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M12.5 6.01V6" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path></svg><span>CONTENT &amp; MEDIA</span></span><div class="max-w-full text-pretty font-sans text-[13px] leading-5 line-clamp-2 min-h-10 w-[200px] text-black/50">Research, generate, schedule, publish, and measure — across YouTube, LinkedIn, Typefully, ElevenLabs, Canva, and 1,000+ more tools. One prompt, the content calendar runs itself.</div></a></li><li><div aria-hidden="true" class="border-t mx-5 border-black/[0.06]"></div><a class="group font-mono text-sm leading-normal tracking-default transition-colors flex w-full flex-col gap-2.5 py-4 px-4 hover:bg-black/5" href="/product/composio-for-it-security"><span class="flex items-center gap-2 text-black/70 group-hover:text-black"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="size-4 shrink-0 text-black/40" stroke-width="1.75"><path d="M6 3H18" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M8.01001 20L8.00001 20" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M6.01001 18L6.00001 18" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M16.01 20L16 20" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M18.01 18L18 18" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M4 16V5" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M20 16V5" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M10 22H14" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M10 14.01V14" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M12 12.01V12" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M14 10.01V10" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M16 8.01V8" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M8 12.01V12" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path></svg><span>IT &amp; SECURITY</span></span><div class="max-w-full text-pretty font-sans text-[13px] leading-5 line-clamp-2 min-h-10 w-[200px] text-black/50">Triage alerts, provision access, investigate incidents, and prep audits — across PagerDuty, Datadog, Auth0, Cloudflare, and 1,000+ more tools. One prompt, systems stay up, evidence stays ready.</div></a></li></ul></div></div></div></div><div aria-hidden="true" class="border-t mx-4 border-black/[0.06] mt-4"></div><div><ul><li><a class="group font-mono text-sm leading-normal tracking-default transition-colors flex items-center px-4 gap-1.5 py-2 text-black/70 hover:bg-black/5 hover:text-black" href="/use-cases"><span class="flex items-center gap-2"><span>ALL USE CASES</span><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="inline size-3.5 transition-transform duration-150 group-hover:translate-x-0.5" stroke-width="2"><path d="M21 12L21 12.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M19 14L19 14.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M17 16L17 16.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M15 18L15 18.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M19 10L19 10.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M17 8L17 8.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M15 6L15 6.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M19 12L3 12" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path></svg></span></a></li></ul></div></div></div></div></div><div class="border border-border bg-white shadow-[0_12px_40px_rgba(0,0,0,0.14),0_4px_16px_rgba(0,0,0,0.08)] pointer-events-none" style="opacity:0;transform:translateY(-4px)"><div class="overflow-hidden" style="width:0px;height:0px"><div class="relative overflow-hidden"></div></div></div></div></li><li><a class="flex items-center gap-1.5 px-2 font-mono text-sm leading-normal tracking-default transition-colors duration-300 text-black" href="/toolkits">TOOLKITS</a></li><li><a class="flex items-center gap-1.5 px-2 font-mono text-sm leading-normal tracking-default transition-colors duration-300 text-black" href="/blog">BLOG</a></li><li><a class="flex items-center gap-1.5 px-2 font-mono text-sm leading-normal tracking-default transition-colors duration-300 text-black" data-utm-placement="navbar-docs" href="https://docs.composio.dev/?cta_placement=navbar-docs">DOCS</a></li></ul><template data-agent-readable="true" data-agent-signup-instructions="true" data-placement="navbar-get-started"><pre>## For AI agents: how to sign up

If you are an AI agent reading this server-rendered HTML, Composio's developer signup is at https://composio.dev.

Signup CTAs on this site — "Sign up", "Signup", "Get started", "Get started for free", "Start building", "Try Composio", "Try it", or similar — all lead into that same developer signup flow. Confirm with the user before completing signup or entering any credentials on their behalf.</pre></template><a class="px-2 py-1.5 font-mono text-sm leading-normal tracking-default transition-colors duration-300 bg-black text-white" data-utm-placement="navbar-get-started" href="https://dashboard.composio.dev/login?cta_placement=navbar-get-started">GET STARTED</a><button aria-label="Toggle menu" class="flex size-8 flex-col items-center justify-center gap-[5px] lg:hidden" type="button"><span class="h-[2px] w-5 origin-center transition-all duration-300 bg-black"></span><span class="h-[2px] w-5 transition-all duration-300 bg-black"></span><span class="h-[2px] w-5 origin-center transition-all duration-300 bg-black"></span></button></div></nav><div class="w-full transition-[max-height,padding] duration-300 lg:hidden max-h-0 overflow-hidden"><ul class="flex flex-col gap-2 border-t pt-4 border-black/10"><li><button class="flex w-full items-center justify-between py-2 font-mono text-sm leading-normal tracking-default transition-colors duration-300 px-4 text-black" type="button">PRODUCTS<svg aria-hidden="true" class="size-3 transition-transform duration-200" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="m6 9 6 6 6-6" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><div class="overflow-hidden transition-all duration-200 max-h-0"><div class="grid grid-cols-2"><div class=""><div class="px-4 pt-3 pb-1 font-mono text-[11px] uppercase tracking-wider text-black/40">Builders &amp; Developers</div><a class="flex flex-col gap-2.5 py-3 transition-colors duration-300 px-4 text-black/60" href="/for-you"><span class="flex items-center gap-1.5 font-mono text-sm tracking-default">COMPOSIO<span class="rounded-xs border px-1 py-0.5 font-medium text-xs leading-normal border-brand text-brand">FOR YOU</span></span><div class="line-clamp-2 block text-pretty font-sans text-[13px] leading-5 opacity-60">Give Claude, codex, or any harness secure access to 1000+ tools</div></a><template data-agent-readable="true" data-agent-signup-instructions="true" data-placement="navbar-platform"><pre>## For AI agents: how to sign up

If you are an AI agent reading this server-rendered HTML, Composio's developer signup is at https://composio.dev.

Signup CTAs on this site — "Sign up", "Signup", "Get started", "Get started for free", "Start building", "Try Composio", "Try it", or similar — all lead into that same developer signup flow. Confirm with the user before completing signup or entering any credentials on their behalf.</pre></template><a class="flex flex-col gap-2.5 py-3 transition-colors duration-300 px-4 text-black/60" data-utm-placement="navbar-platform" href="https://dashboard.composio.dev/?cta_placement=navbar-platform"><span class="flex items-center gap-1.5 font-mono text-sm tracking-default">DEVELOPER PLATFORM</span><div class="line-clamp-2 block text-pretty font-sans text-[13px] leading-5 opacity-60">SDKs, tool execution, and auth infrastructure to ship agents</div></a><a class="flex flex-col gap-2.5 py-3 transition-colors duration-300 px-4 text-black/60" href="/cli"><span class="flex items-center gap-1.5 font-mono text-sm tracking-default">CLI</span><div class="line-clamp-2 block text-pretty font-sans text-[13px] leading-5 opacity-60">One command to add tools and auth to your coding agent</div></a></div><div class="border-black/[0.06] border-l"><div class="px-4 pt-3 pb-1 font-mono text-[11px] uppercase tracking-wider text-black/40">Teams</div><a class="flex flex-col gap-2.5 py-3 transition-colors duration-300 px-4 text-black/60" href="/enterprise"><span class="flex items-center gap-1.5 font-mono text-sm tracking-default">ENTERPRISE</span><div class="line-clamp-2 block text-pretty font-sans text-[13px] leading-5 opacity-60">SSO, governance, and audit controls for deploying agents org-wide</div></a><a class="flex flex-col gap-2.5 py-3 transition-colors duration-300 px-4 text-black/60" href="/mcp-gateway"><span class="flex items-center gap-1.5 font-mono text-sm tracking-default">MCP GATEWAY</span><div class="line-clamp-2 block text-pretty font-sans text-[13px] leading-5 opacity-60">One managed MCP endpoint for all your tools and agents</div></a></div></div></div></li><li><button class="flex w-full items-center justify-between py-2 font-mono text-sm leading-normal tracking-default transition-colors duration-300 px-4 text-black" type="button">SOLUTIONS<svg aria-hidden="true" class="size-3 transition-transform duration-200" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="m6 9 6 6 6-6" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><div class="overflow-hidden transition-all duration-200 max-h-0"><div><div><div><div class="px-4 pt-3 pb-1 font-mono text-[11px] uppercase tracking-wider text-black/40">FOR AGENTS</div><div class="grid grid-cols-2"><a class="font-mono tracking-default transition-colors duration-300 flex items-center px-4 min-h-[44px] gap-2.5 py-3 text-sm text-black/60" href="/claude"><span class="flex items-center gap-3"><img alt="" aria-hidden="true" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="size-5 shrink-0 object-contain" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fclients%2Fclaude.svg&amp;w=32&amp;q=75 1x, /_next/image?url=%2Fimages%2Fclients%2Fclaude.svg&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Fclients%2Fclaude.svg&amp;w=48&amp;q=75"/><span>CLAUDE</span></span></a><a class="font-mono tracking-default transition-colors duration-300 flex items-center px-4 min-h-[44px] gap-2.5 py-3 text-sm text-black/60" href="/codex"><span class="flex items-center gap-3"><img alt="" aria-hidden="true" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="size-5 shrink-0 object-contain" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fclients%2Fcodex.svg&amp;w=32&amp;q=75 1x, /_next/image?url=%2Fimages%2Fclients%2Fcodex.svg&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Fclients%2Fcodex.svg&amp;w=48&amp;q=75"/><span>CODEX</span></span></a><a class="font-mono tracking-default transition-colors duration-300 flex items-center px-4 min-h-[44px] gap-2.5 py-3 text-sm text-black/60" href="/claw"><span class="flex items-center gap-3"><img alt="" aria-hidden="true" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="size-5 shrink-0 object-contain" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fclients%2Fopenclaw.svg&amp;w=32&amp;q=75 1x, /_next/image?url=%2Fimages%2Fclients%2Fopenclaw.svg&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Fclients%2Fopenclaw.svg&amp;w=48&amp;q=75"/><span>OPENCLAW</span></span></a><a class="font-mono tracking-default transition-colors duration-300 flex items-center px-4 min-h-[44px] gap-2.5 py-3 text-sm text-black/60" href="/cursor"><span class="flex items-center gap-3"><img alt="" aria-hidden="true" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="size-5 shrink-0 object-contain" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fclients%2Fcursor.svg&amp;w=32&amp;q=75 1x, /_next/image?url=%2Fimages%2Fclients%2Fcursor.svg&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Fclients%2Fcursor.svg&amp;w=48&amp;q=75"/><span>CURSOR</span></span></a><a class="font-mono tracking-default transition-colors duration-300 flex items-center px-4 min-h-[44px] gap-2.5 py-3 text-sm text-black/60" href="/hermes"><span class="flex items-center gap-3"><img alt="" aria-hidden="true" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="size-5 shrink-0 object-contain" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fclients%2Fhermes.png&amp;w=32&amp;q=75 1x, /_next/image?url=%2Fimages%2Fclients%2Fhermes.png&amp;w=48&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Fclients%2Fhermes.png&amp;w=48&amp;q=75"/><span>HERMES</span></span></a></div></div></div><div><div aria-hidden="true" class="border-t mx-4 border-black/[0.06] my-4"></div><div><div class="px-4 pt-3 pb-1 font-mono text-[11px] uppercase tracking-wider text-black/40">BUILT FOR</div><div class="grid grid-cols-2"><a class="font-mono tracking-default transition-colors duration-300 flex items-center px-4 gap-2 py-2.5 text-[14px] text-black/60" href="/product/composio-for-everyday-ai-users"><span class="flex items-center gap-2 text-black/70 group-hover:text-black"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="size-4 shrink-0 text-black/40" stroke-width="1.75"><path d="M16 7V4" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M8 7V4" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M10 2H14" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M21 10V7H3V10" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M9 14H15" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M5 12H7" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M17 12H19" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M5 21H19" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M3 19V14" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M21 19V14" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path></svg><span>OFFICE WORK</span></span></a><a class="font-mono tracking-default transition-colors duration-300 flex items-center px-4 gap-2 py-2.5 text-[14px] text-black/60" href="/product/composio-for-sales-revenue"><span class="flex items-center gap-2 text-black/70 group-hover:text-black"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="size-4 shrink-0 text-black/40" stroke-width="1.75"><path d="M16 5H22V11" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M2 20H22" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M2.01001 13L2.00001 13" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M4.01001 11L4.00001 11" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M6.01001 9L6.00001 9" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M8.01001 7L8.00001 7" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M10.01 9L10 9" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M12.01 11L12 11" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M14.01 13L14 13" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M16.01 11L16 11" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M18.01 9L18 9" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M20.01 7L20 7" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path></svg><span>SALES</span></span></a><a class="font-mono tracking-default transition-colors duration-300 flex items-center px-4 gap-2 py-2.5 text-[14px] text-black/60" href="/product/composio-for-marketing-growth"><span class="flex items-center gap-2 text-black/70 group-hover:text-black"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="size-4 shrink-0 text-black/40" stroke-width="1.75"><path d="M18 2V6H22" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M8 2L12 2" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M6 4L6 4.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M4 6L4 6.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M2 8L2 16" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M22 12L22 16" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M4.01001 18L4.00001 18" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M20.01 18L20 18" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M6.01001 20L6.00001 20" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M18.01 20L18 20" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M8 22L16 22" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M10 6L12 6" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M10 18L14 18" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M18 12L18 14" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M6 10L6 14" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M8.01001 8L8.00001 8" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M8.01001 16L8.00001 16" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M16.01 16L16 16" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M12.01 12L12 12" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M14.01 10L14 10" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M16.01 8L16 8" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path></svg><span>MARKETING</span></span></a><a class="font-mono tracking-default transition-colors duration-300 flex items-center px-4 gap-2 py-2.5 text-[14px] text-black/60" href="/product/composio-for-product-design"><span class="flex items-center gap-2 text-black/70 group-hover:text-black"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="size-4 shrink-0 text-black/40" stroke-width="1.75"><path d="M13 21L11 21" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M16 19L15 19" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M9 19L8 19" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M19 17L18 17" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M6 17L5 17" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M22 15L21 15" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M13 15L11 15" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M3 15L2 15" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M16 13L15 13" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M9 13L8 13" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M19 11L18 11" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M6 11L5 11" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M22 9L21 9" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M3 9L2 9" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M19 7L18 7" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M6 7L5 7" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M16 5L15 5" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M9 5L8 5" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M13 3L11 3" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path></svg><span>PRODUCT &amp; DESIGN</span></span></a><a class="font-mono tracking-default transition-colors duration-300 flex items-center px-4 gap-2 py-2.5 text-[14px] text-black/60" href="/product/composio-for-customer-support"><span class="flex items-center gap-2 text-black/70 group-hover:text-black"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="size-4 shrink-0 text-black/40" stroke-width="1.75"><path d="M3 14V8" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M21 14V8" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M6 14L3 14" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M21 14L18 14" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M3 14V19" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M21 14V19" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M16 16V21H19" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M8 16V21H5" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M15 2L9 2" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M5 6.01V6" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M19 6.01V6" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M7 4.01V4" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M17 4.01V4" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path></svg><span>CUSTOMER SUPPORT</span></span></a><a class="font-mono tracking-default transition-colors duration-300 flex items-center px-4 gap-2 py-2.5 text-[14px] text-black/60" href="/product/composio-for-engineering-devops"><span class="flex items-center gap-2 text-black/70 group-hover:text-black"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="size-4 shrink-0 text-black/40" stroke-width="1.75"><path d="M2.00001 12L2.01001 12" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M4.00001 14L4.01001 14" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M6.00001 16L6.01001 16" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M6.00001 8L6.01001 8" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M8.00001 6L8.01001 6" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M8.00001 18L8.01001 18" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M4.00001 10L4.01001 10" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M22.01 12L22 12" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M20.01 14L20 14" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M18.01 16L18 16" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M18.01 8L18 8" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M16.01 6L16 6" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M16.01 18L16 18" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M20.01 10L20 10" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path></svg><span>ENGINEERING</span></span></a><a class="font-mono tracking-default transition-colors duration-300 flex items-center px-4 gap-2 py-2.5 text-[14px] text-black/60" href="/product/composio-for-hr-recruiting"><span class="flex items-center gap-2 text-black/70 group-hover:text-black"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="size-4 shrink-0 text-black/40" stroke-width="1.75"><path d="M7 4H9" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" fill="none"></path><path d="M7 10H9" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" fill="none"></path><path d="M11 6L11 8" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" fill="none"></path><path d="M5 6L5 8" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" fill="none"></path><path d="M17.5 4H18.5" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M17.5 9H18.5" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M20.5 6L20.5 7" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M15.5 6L15.5 7" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M5 14H11" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" fill="none"></path><path d="M16 13H20" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M1 18V20H15V18" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" fill="none"></path><path d="M19 18H22V15" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M3 16H3.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M13 16H13.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path></svg><span>HR &amp; RECRUITING</span></span></a><a class="font-mono tracking-default transition-colors duration-300 flex items-center px-4 gap-2 py-2.5 text-[14px] text-black/60" href="/product/composio-for-finance-operations"><span class="flex items-center gap-2 text-black/70 group-hover:text-black"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="size-4 shrink-0 text-black/40" stroke-width="1.75"><path d="M9 22V18" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M15 22V18" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M11 16H13" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M8 11.01L8 11" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M12 11.01L12 11" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M16 11.01L16 11" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M8 7.01001L8 7.00001" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M12 7.01001L12 7.00001" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M16 7.01001L16 7.00001" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M6 22H18" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M20 20V5" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M4 20V5" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M6 3H8" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M16 3H18" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M10 2H14" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path></svg><span>FINANCE &amp; OPS</span></span></a><a class="font-mono tracking-default transition-colors duration-300 flex items-center px-4 gap-2 py-2.5 text-[14px] text-black/60" href="/product/composio-for-ecommerce"><span class="flex items-center gap-2 text-black/70 group-hover:text-black"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="size-4 shrink-0 text-black/40" stroke-width="1.75"><path d="M8 10V4" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M16 10V4" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M10 2H14" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M10 14H14" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M2 14V10H22V14" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M18 21H6" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M4 16V19" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M20 16V19" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path></svg><span>E-COMMERCE</span></span></a><a class="font-mono tracking-default transition-colors duration-300 flex items-center px-4 gap-2 py-2.5 text-[14px] text-black/60" href="/product/composio-for-content-media"><span class="flex items-center gap-2 text-black/70 group-hover:text-black"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="size-4 shrink-0 text-black/40" stroke-width="1.75"><path d="M2 10H22" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M20 4H4" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" fill="none"></path><path d="M20 20H4" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" fill="none"></path><path d="M22 6L22 18" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" fill="none"></path><path d="M2 6L2 18" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" fill="none"></path><path d="M6 8.01V8" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M17 8.01V8" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M7 6.01V6" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M18 6.01V6" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M11.5 8.01V8" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M12.5 6.01V6" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path></svg><span>CONTENT &amp; MEDIA</span></span></a><a class="font-mono tracking-default transition-colors duration-300 flex items-center px-4 gap-2 py-2.5 text-[14px] text-black/60" href="/product/composio-for-it-security"><span class="flex items-center gap-2 text-black/70 group-hover:text-black"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="size-4 shrink-0 text-black/40" stroke-width="1.75"><path d="M6 3H18" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M8.01001 20L8.00001 20" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M6.01001 18L6.00001 18" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M16.01 20L16 20" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M18.01 18L18 18" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M4 16V5" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M20 16V5" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M10 22H14" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M10 14.01V14" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M12 12.01V12" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M14 10.01V10" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M16 8.01V8" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M8 12.01V12" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path></svg><span>IT &amp; SECURITY</span></span></a></div></div></div><div aria-hidden="true" class="border-t mx-4 border-black/[0.06] my-4"></div><a class="font-mono tracking-default transition-colors duration-300 flex items-center px-4 gap-2 py-3.5 text-base text-black/60" href="/use-cases"><span class="flex items-center gap-2"><span>ALL USE CASES</span><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="inline size-3.5 transition-transform duration-150 group-hover:translate-x-0.5" stroke-width="2"><path d="M21 12L21 12.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M19 14L19 14.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M17 16L17 16.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M15 18L15 18.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M19 10L19 10.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M17 8L17 8.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M15 6L15 6.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M19 12L3 12" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path></svg></span></a></div></div></li><li><a class="flex items-center gap-1.5 py-2 font-mono text-sm leading-normal tracking-default transition-colors duration-300 px-4 text-black" href="/toolkits">TOOLKITS</a></li><li><a class="flex items-center gap-1.5 py-2 font-mono text-sm leading-normal tracking-default transition-colors duration-300 px-4 text-black" href="/blog">BLOG</a></li><li><a class="flex items-center gap-1.5 py-2 font-mono text-sm leading-normal tracking-default transition-colors duration-300 px-4 text-black" data-utm-placement="navbar-docs" href="https://docs.composio.dev/?cta_placement=navbar-docs">DOCS</a></li></ul><div class="mt-3 flex items-center gap-5 border-t pt-4 px-4 border-black/10 text-black/40"><a aria-label="X (Twitter)" class="transition-colors hover:text-black" href="https://x.com/composio" rel="noopener noreferrer" target="_blank"><svg aria-hidden="true" class="size-4" fill="currentColor" viewBox="0 0 24 24"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"></path></svg><span class="sr-only">X (Twitter)</span></a><a aria-label="LinkedIn" class="transition-colors hover:text-black" href="https://www.linkedin.com/company/composiohq/" rel="noopener noreferrer" target="_blank"><svg aria-hidden="true" class="size-4" fill="currentColor" viewBox="0 0 24 24"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"></path></svg><span class="sr-only">LinkedIn</span></a><a aria-label="GitHub" class="transition-colors hover:text-black" href="https://github.com/composiohq/composio/" rel="noopener noreferrer" target="_blank"><svg aria-hidden="true" class="size-4" fill="currentColor" viewBox="0 0 24 24"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path></svg><span class="sr-only">GitHub</span></a><a aria-label="Discord" class="transition-colors hover:text-black" href="https://dub.composio.dev/discord" rel="noopener noreferrer" target="_blank"><svg aria-hidden="true" class="size-4" fill="currentColor" viewBox="0 0 24 24"><path d="M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028 14.09 14.09 0 0 0 1.226-1.994.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.095 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.095 2.157 2.42 0 1.333-.947 2.418-2.157 2.418z"></path></svg><span class="sr-only">Discord</span></a><a aria-label="YouTube" class="transition-colors hover:text-black" href="https://www.youtube.com/@Composio" rel="noopener noreferrer" target="_blank"><svg aria-hidden="true" class="size-4" fill="currentColor" viewBox="0 0 24 24"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"></path></svg><span class="sr-only">YouTube</span></a></div></div></header><section class="relative flex flex-col items-center overflow-hidden bg-white pt-[60px] pb-0 md:pt-0"><div aria-hidden="true" class="pointer-events-none absolute top-0 left-1/2 z-0 h-[420px] w-full max-w-page -translate-x-1/2 md:top-4 md:h-[640px] lg:h-[720px]" style="mask-image:linear-gradient(to bottom, black 0%, black 55%, transparent 100%);-webkit-mask-image:linear-gradient(to bottom, black 0%, black 55%, transparent 100%)"></div><div aria-hidden="true" class="pointer-events-none absolute inset-0 z-40 mx-auto hidden w-full max-w-page border-black/[0.06] border-x border-b lg:block"></div><div class="relative mx-auto w-full max-w-page px-5 pt-24 pb-0 md:px-10 md:pt-[140px] lg:pt-[168px]"><div class="relative z-10 mx-auto flex max-w-[840px] flex-col items-center gap-6 text-center md:gap-8" style="opacity:0;transform:translateY(16px)"><h1 class="max-w-[760px] text-black text-display text-wrap-balance">Ship agents before<br/>your next standup</h1><p class="max-w-[560px] font-sans text-base text-black/70 text-wrap-balance leading-normal">Our Business plan. Six months. On the house.</p><div class="flex flex-wrap items-center gap-3 justify-center"><a class="px-5 py-3 font-mono text-sm leading-normal tracking-default transition-colors bg-black text-white hover:bg-black/85" href="#apply">APPLY NOW</a><a class="border px-5 py-3 font-mono text-sm leading-normal tracking-default transition-colors border-black/15 bg-white text-black hover:border-black/30 hover:bg-black/[0.02]" data-utm-placement="startups-hero-docs" href="https://docs.composio.dev/?cta_placement=startups-hero-docs">READ DOCS</a></div></div><div class="relative z-10 mt-0 hidden w-full justify-center md:flex"><div class="relative mx-auto w-full max-w-[970px]"><div class="relative mx-auto aspect-[1/0.8] w-full touch-none select-none overflow-hidden sm:aspect-[1/0.55] md:max-w-[1020px]"><div class="absolute inset-x-0 top-0 aspect-square" style="width:100%;height:100%;transform:translateZ(0);will-change:transform;contain:layout paint"><canvas aria-hidden="true" style="width:100%;height:100%;display:block" tabindex="-1"></canvas><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Gmail" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/gmail"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Gmail</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Composio" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/composio"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Composio</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="GitHub" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/github"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">GitHub</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Google Calendar" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/googlecalendar"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Google Calendar</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Notion" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/notion"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Notion</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Google Sheets" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/googlesheets"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Google Sheets</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Slack" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/slack"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Slack</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Supabase" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/supabase"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Supabase</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Outlook" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/outlook"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Outlook</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Perplexity AI" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/perplexityai"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Perplexity AI</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Twitter" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/twitter"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Twitter</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Google Drive" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/googledrive"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Google Drive</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Google Docs" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/googledocs"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Google Docs</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="HubSpot" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/hubspot"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">HubSpot</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Linear" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/linear"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Linear</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Airtable" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/airtable"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Airtable</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Code Interpreter" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/codeinterpreter"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Code Interpreter</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="SerpApi" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/serpapi"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">SerpApi</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Jira" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/jira"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Jira</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Firecrawl" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/firecrawl"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Firecrawl</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Tavily" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/tavily"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Tavily</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="YouTube" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/youtube"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">YouTube</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Slackbot" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/slackbot"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Slackbot</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Canvas" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/canvas"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Canvas</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Bitbucket" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/bitbucket"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Bitbucket</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Google Tasks" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/googletasks"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Google Tasks</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Discord" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/discord"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Discord</span></div><div class="flex items-center gap-1.5 whitespace-nowrap rounded-md border border-black/[0.08] bg-white px-1.5 py-1 text-left shadow-sm backdrop-blur-sm md:gap-2 md:rounded-lg md:px-2 md:py-1.5" style="position:absolute;top:0;left:0;opacity:0;filter:blur(2px);transform:translate3d(0, 0, 0);transition:opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;backface-visibility:hidden;will-change:transform, opacity, filter;pointer-events:none"><img alt="Figma" class="size-5 shrink-0 object-contain" src="https://logos.composio.dev/api/figma"/><span class="hidden font-sans text-[12px] text-black leading-tight md:inline">Figma</span></div></div></div><a class="absolute bottom-6 left-1/2 z-30 inline-flex -translate-x-1/2 items-center gap-2 whitespace-nowrap rounded-md border border-black/10 bg-white px-4 py-2.5 font-mono text-[11px] text-black uppercase tracking-wide shadow-lg transition-[border-color,background-color,scale] duration-150 hover:border-black/25 hover:bg-neutral-50 active:scale-[0.97] md:rounded-lg" href="/toolkits">1,000+ apps available<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" aria-hidden="true" class="size-3.5"><path d="M13 4H20V11" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square" fill="none"></path><path d="M18 6L18 6.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M16 8L16 8.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M14 10L14 10.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M12 12L12 12.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M10 14L10 14.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M8 16L8 16.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M6 18L6 18.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M4 20L4 20.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path></svg></a></div></div></div></section><section class="relative bg-white"><div aria-hidden="true" class="pointer-events-none absolute inset-0 z-40 mx-auto hidden w-full max-w-page border-black/[0.06] border-x lg:block"></div><div class="relative mx-auto w-full max-w-page border-black/[0.06] border-t px-5 py-16 md:px-10 md:py-24"><div class="flex flex-col gap-10 md:gap-14"><div class="mx-auto flex w-full max-w-[720px] flex-col items-center text-center"><div class="flex items-center justify-center gap-2"><div class="size-[5.82px] bg-brand"></div><span class="font-mono text-brand text-sm leading-normal tracking-default">WHAT COMPOSIO SOLVES</span></div><h2 class="mt-6 max-w-[640px] text-pretty text-black text-h1 text-wrap-balance">Spend your runway on product, not plumbing</h2><p class="mt-4 max-w-[520px] text-pretty font-sans text-base text-black/65 text-wrap-balance leading-relaxed">Auth, tools, triggers, and a code sandbox — months of agent infrastructure, ready on day one.</p><a class="mt-8 inline-flex w-fit items-center gap-1.5 border border-black/15 bg-white px-5 py-3 font-mono text-black text-sm leading-normal tracking-default transition-colors hover:border-black/30 hover:bg-black/[0.02]" data-utm-placement="startups-capabilities-docs" href="https://docs.composio.dev/?cta_placement=startups-capabilities-docs">Read docs<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" class="size-3.5"><path d="M21 12L21 12.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M19 14L19 14.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M17 16L17 16.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M15 18L15 18.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M19 10L19 10.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M17 8L17 8.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M15 6L15 6.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M19 12L3 12" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path></svg></a></div><div class="grid w-full grid-cols-1 border border-black/[0.08] sm:grid-cols-2"><article class="flex flex-col gap-6 p-5 md:p-6 border-black/[0.08] border-b sm:border-r"><div class="flex flex-1 items-center justify-center"><div class="w-full"><div class="mb-2 flex items-center gap-2 border border-black/[0.08] bg-white px-3 py-2 shadow-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" class="size-3.5 shrink-0 text-black/30" stroke-width="2"><path d="M15 19H7" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M15 3L7 3" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M3 15L3 7" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M19 15L19 7" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M19 19L19 19.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M21 21L21 21.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path><path d="M5 17L5 17.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M17 17L17 17.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M17 5L17 5.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M5 5L5 5.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path></svg><span class="font-mono text-[11px] text-black/55">send a message to my team</span><span class="ml-auto font-mono text-[10px] text-brand uppercase tracking-wider">2 matched</span></div><div class="grid grid-cols-8 gap-1.5"><div class="flex aspect-square items-center justify-center border transition-colors border-brand/40 bg-brand/[0.08] shadow-[0_0_0_2px_rgba(81,162,255,0.12)]"><img alt="" class="object-contain" height="18" src="https://logos.composio.dev/api/gmail" style="width:18px;height:18px" width="18"/></div><div class="flex aspect-square items-center justify-center border transition-colors border-brand/40 bg-brand/[0.08] shadow-[0_0_0_2px_rgba(81,162,255,0.12)]"><img alt="" class="object-contain" height="18" src="https://logos.composio.dev/api/slack" style="width:18px;height:18px" width="18"/></div><div class="flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50"><img alt="" class="object-contain" height="18" src="https://logos.composio.dev/api/github" style="width:18px;height:18px" width="18"/></div><div class="flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50"><img alt="" class="object-contain" height="18" src="https://logos.composio.dev/api/linear" style="width:18px;height:18px" width="18"/></div><div class="flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50"><img alt="" class="object-contain" height="18" src="https://logos.composio.dev/api/notion" style="width:18px;height:18px" width="18"/></div><div class="flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50"><img alt="" class="object-contain" height="18" src="https://logos.composio.dev/api/figma" style="width:18px;height:18px" width="18"/></div><div class="flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50"><img alt="" class="object-contain" height="18" src="https://logos.composio.dev/api/stripe" style="width:18px;height:18px" width="18"/></div><div class="flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50"><img alt="" class="object-contain" height="18" src="https://logos.composio.dev/api/hubspot" style="width:18px;height:18px" width="18"/></div><div class="flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50"><img alt="" class="object-contain" height="18" src="https://logos.composio.dev/api/googledrive" style="width:18px;height:18px" width="18"/></div><div class="flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50"><img alt="" class="object-contain" height="18" src="https://logos.composio.dev/api/googlecalendar" style="width:18px;height:18px" width="18"/></div><div class="flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50"><img alt="" class="object-contain" height="18" src="https://logos.composio.dev/api/jira" style="width:18px;height:18px" width="18"/></div><div class="flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50"><img alt="" class="object-contain" height="18" src="https://logos.composio.dev/api/discord" style="width:18px;height:18px" width="18"/></div><div class="flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50"><img alt="" class="object-contain" height="18" src="https://logos.composio.dev/api/intercom" style="width:18px;height:18px" width="18"/></div><div class="flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50"><img alt="" class="object-contain" height="18" src="https://logos.composio.dev/api/asana" style="width:18px;height:18px" width="18"/></div><div class="flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50"><img alt="" class="object-contain" height="18" src="https://logos.composio.dev/api/zoom" style="width:18px;height:18px" width="18"/></div><div class="flex aspect-square items-center justify-center border border-black/[0.06] bg-white opacity-50"><span class="font-mono text-[10px] text-black/40 tracking-tight">+1K</span></div></div></div></div><div><h3 class="text-black text-lg leading-snug">Tools that resolve by intent</h3><p class="mt-2 max-w-[360px] font-sans text-black/55 text-sm leading-relaxed">Smart tool search across 1,000+ apps — surfaced just-in-time, scoped to the task.</p></div></article><article class="flex flex-col gap-6 p-5 md:p-6 border-black/[0.08] border-b"><div class="flex flex-1 items-center justify-center"><div class="w-full border border-black/[0.08] bg-white shadow-sm"><div class="flex items-center justify-between border-black/[0.06] border-b bg-black/[0.015] px-4 py-2.5"><span class="flex items-center gap-1.5"><span class="font-mono text-[11px] text-black/40 uppercase tracking-wider">user_id</span></span><span class="rounded-xs bg-black/[0.04] px-1.5 py-0.5 font-mono text-[11px] text-black/70">usr_9x2kLm7</span></div><div class="flex items-center justify-between px-4 py-3 border-black/[0.06] border-b"><span class="flex items-center gap-2.5"><span class="flex size-7 items-center justify-center border border-black/[0.06] bg-[#FBFBFB]"><img alt="" class="object-contain" height="15" src="https://logos.composio.dev/api/slack" style="width:15px;height:15px" width="15"/></span><span class="font-mono text-[12px] text-black/70">Slack</span></span><span class="flex items-center gap-1.5 font-mono text-[11px] text-brand uppercase tracking-wider"><span class="size-1.5 rounded-full bg-brand"></span>Connected</span></div><div class="flex items-center justify-between px-4 py-3 border-black/[0.06] border-b"><span class="flex items-center gap-2.5"><span class="flex size-7 items-center justify-center border border-black/[0.06] bg-[#FBFBFB]"><img alt="" class="object-contain" height="15" src="https://logos.composio.dev/api/gmail" style="width:15px;height:15px" width="15"/></span><span class="font-mono text-[12px] text-black/70">Gmail</span></span><span class="flex items-center gap-1.5 font-mono text-[11px] text-brand uppercase tracking-wider"><span class="size-1.5 rounded-full bg-brand"></span>Connected</span></div><div class="flex items-center justify-between px-4 py-3 "><span class="flex items-center gap-2.5"><span class="flex size-7 items-center justify-center border border-black/[0.06] bg-[#FBFBFB]"><img alt="" class="object-contain" height="15" src="https://logos.composio.dev/api/linear" style="width:15px;height:15px" width="15"/></span><span class="font-mono text-[12px] text-black/70">Linear</span></span><span class="flex items-center gap-1.5 font-mono text-[11px] text-brand uppercase tracking-wider"><span class="size-1.5 rounded-full bg-brand"></span>Connected</span></div></div></div><div><h3 class="text-black text-lg leading-snug">Auth and context, per end-user</h3><p class="mt-2 max-w-[360px] font-sans text-black/55 text-sm leading-relaxed">OAuth, API keys, and tokens scoped to each end-user — refreshed automatically.</p></div></article><article class="flex flex-col gap-6 p-5 md:p-6 border-black/[0.08] border-b sm:border-r sm:border-b-0"><div class="flex flex-1 items-center justify-center"><div class="w-full border border-black/[0.08] bg-white shadow-sm"><div class="flex items-center justify-between border-black/[0.06] border-b bg-black/[0.015] px-4 py-2.5"><span class="flex items-center gap-1.5"><span class="relative flex size-1.5"><span class="absolute inline-flex size-full animate-ping rounded-full bg-brand opacity-60"></span><span class="relative inline-flex size-1.5 rounded-full bg-brand"></span></span><span class="font-mono text-[11px] text-black/50 uppercase tracking-wider">Live</span></span><span class="font-mono text-[11px] text-black/40 uppercase tracking-wider">Trigger feed</span></div><div class="flex items-center justify-between px-4 py-3 border-black/[0.06] border-b bg-brand/[0.03]"><span class="flex items-center gap-2.5"><img alt="" class="object-contain" height="16" src="https://logos.composio.dev/api/gmail" style="width:16px;height:16px" width="16"/><span class="font-mono text-[12px] text-black/70">gmail.message.new</span></span><span class="font-mono text-[11px] text-black/35 tabular-nums">just now</span></div><div class="flex items-center justify-between px-4 py-3 border-black/[0.06] border-b"><span class="flex items-center gap-2.5"><img alt="" class="object-contain" height="16" src="https://logos.composio.dev/api/stripe" style="width:16px;height:16px" width="16"/><span class="font-mono text-[12px] text-black/70">stripe.charge.succeeded</span></span><span class="font-mono text-[11px] text-black/35 tabular-nums">8s</span></div><div class="flex items-center justify-between px-4 py-3"><span class="flex items-center gap-2.5"><img alt="" class="object-contain" height="16" src="https://logos.composio.dev/api/linear" style="width:16px;height:16px" width="16"/><span class="font-mono text-[12px] text-black/70">linear.issue.opened</span></span><span class="font-mono text-[11px] text-black/35 tabular-nums">14s</span></div></div></div><div><h3 class="text-black text-lg leading-snug">Listen to anything, anywhere</h3><p class="mt-2 max-w-[360px] font-sans text-black/55 text-sm leading-relaxed">Subscribe to events from any toolkit and route them straight to your agent.</p></div></article><article class="flex flex-col gap-6 p-5 md:p-6"><div class="flex flex-1 items-center justify-center"><div class="w-full overflow-hidden border border-black/[0.08] bg-white shadow-sm"><div class="flex items-center justify-between border-black/[0.06] border-b bg-black/[0.015] px-4 py-2.5"><span class="flex items-center gap-1.5"><span class="size-2 rounded-full bg-black/10"></span><span class="size-2 rounded-full bg-black/10"></span><span class="ml-1.5 font-mono text-[11px] text-black/40 lowercase tracking-wider">composio_workbench</span></span><span class="flex items-center gap-1.5"><span class="size-1.5 rounded-full bg-brand"></span><span class="font-mono text-[11px] text-black/50">python 3.11</span></span></div><pre class="overflow-x-auto px-4 py-3 font-mono text-[11px] leading-relaxed"><code class="text-black/55">const result = await composio.workbench.run(`
  const issues = await tools.LINEAR_LIST_ISSUES();
  const summary = await ai.summarize(issues);
  await tools.SLACK_POST({ channel, text: summary });
`);</code></pre><div class="flex items-center justify-between border-black/[0.06] border-t bg-black/[0.015] px-4 py-2"><span class="font-mono text-[11px] text-black/45 lowercase tracking-wider">→ posted summary to #eng</span><span class="flex items-center gap-1.5 font-mono text-[11px] text-brand uppercase tracking-wider"><span class="size-1.5 rounded-full bg-brand"></span>Done</span></div></div></div><div><h3 class="text-black text-lg leading-snug">Run arbitrary code, safely</h3><p class="mt-2 max-w-[360px] font-sans text-black/55 text-sm leading-relaxed">A sandboxed workbench pre-wired with your users&#x27; connected accounts and 1,000+ tools.</p></div></article></div></div></div></section><section class="relative bg-white"><div aria-hidden="true" class="pointer-events-none absolute inset-0 z-40 mx-auto hidden w-full max-w-page border-black/[0.06] border-x lg:block"></div><div class="relative mx-auto w-full max-w-page overflow-hidden border-black/[0.06] border-t px-5 py-16 md:px-10 md:py-24"><div aria-hidden="true" class="pointer-events-none absolute inset-0 z-0 overflow-hidden"></div><div class="relative z-10 mx-auto flex w-full flex-col items-center gap-5 text-center"><h2 class="text-black text-h1 md:whitespace-nowrap">Everything you need to build and scale</h2><p class="max-w-[520px] text-pretty font-sans text-base text-black/65 leading-relaxed">Accepted startups get six months on our Business plan — completely free.</p></div></div></section><section class="relative overflow-hidden bg-white"><div aria-hidden="true" class="pointer-events-none absolute inset-0 z-40 mx-auto hidden w-full max-w-page border-black/[0.06] border-x lg:block"></div><div class="relative z-10 mx-auto w-full max-w-page border-black/[0.06] border-t"><div class="grid grid-cols-1 items-start gap-8 px-6 pt-10 md:grid-cols-[1fr_minmax(0,360px)] md:gap-12 md:px-10 md:pt-14"><div class="flex flex-col"><div class="mb-4 flex items-center gap-2"><div class="size-[5.82px] bg-brand"></div><span class="font-mono text-brand text-sm uppercase leading-normal tracking-default">In good company</span></div><h2 class="mb-3 text-black text-h1">Join the teams shipping faster</h2><p class="mb-5 max-w-[420px] font-sans text-base text-black/65 leading-relaxed">Startups use Composio to put their agents to work across every tool — without building integrations from scratch.</p><a class="inline-flex items-center gap-1.5 self-start bg-black px-5 py-3 font-mono text-sm text-white leading-normal tracking-default transition-colors hover:bg-black/85" href="#apply">Apply now<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" class="size-3.5"><path d="M21 12L21 12.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M19 14L19 14.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M17 16L17 16.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M15 18L15 18.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M19 10L19 10.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M17 8L17 8.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M15 6L15 6.01" stroke="currentColor" stroke-width="2" stroke-linecap="square" fill="none"></path><path d="M19 12L3 12" stroke="currentColor" stroke-width="2" stroke-linecap="square" data-color="color-2" fill="none"></path></svg></a></div><div class="relative flex flex-col justify-center gap-4 "><span class="font-mono text-brand text-xs uppercase tracking-wider">Users on Composio</span><div class="flex items-baseline gap-1 font-sans text-black tabular-nums"><number-flow-react class="text-h1"><template shadowroot="open" shadowrootmode="open"
			><style>:host{display:inline-block;direction:ltr;white-space:nowrap;line-height:1}span{display:inline-block}:host([data-will-change]) span{will-change:transform}.number,.digit{padding:round(nearest, calc(var(--number-flow-mask-height, 0.25em) / 2), 1px) 0}.symbol{white-space:pre}</style
			><span role="img" aria-label="50,000"
				><span part="left"></span><span part="number" class="number"
					><span part="integer"><span class="digit" part="digit integer-digit">5</span><span class="digit" part="digit integer-digit">0</span><span class="symbol" part="symbol group">,</span><span class="digit" part="digit integer-digit">0</span><span class="digit" part="digit integer-digit">0</span><span class="digit" part="digit integer-digit">0</span></span><span part="fraction"></span></span
				><span part="right"></span></span
			></template
		><style>:where(number-flow-react){line-height:1}number-flow-react > span{font-kerning:none;display:inline-block;padding:calc(round(nearest, calc(var(--number-flow-mask-height, 0.25em) / 2), 1px) * 2) 0}</style
		><span>50,000</span></number-flow-react><span class="text-black/60 text-h1">+</span></div><p class="font-sans text-base text-black/60 leading-snug">Shipping faster with Composio.</p></div></div><div class="h-[220px] w-full md:h-[340px]"></div></div></section><section class="relative bg-white" id="apply"><div aria-hidden="true" class="pointer-events-none absolute inset-0 z-40 mx-auto hidden w-full max-w-page border-black/[0.06] border-x lg:block"></div><div class="mx-auto w-full max-w-page border-black/[0.06] border-t px-5 py-16 md:px-10 md:py-24"><div class="grid grid-cols-1 gap-10 lg:grid-cols-[minmax(0,380px)_minmax(0,1fr)] lg:gap-20"><div class="flex flex-col lg:sticky lg:top-28 lg:self-start"><div class="flex items-center gap-2"><div class="size-[5.82px] bg-brand"></div><span class="font-mono text-brand text-sm leading-normal tracking-default">APPLY</span></div><h2 class="mt-6 text-black text-h1">Join the program</h2><p class="mt-4 max-w-[380px] font-sans text-base text-black/65 leading-relaxed">Tell us what you&#x27;re building. We typically respond within a week.</p></div><div class="w-full"><form class="flex flex-col gap-6"><div class="grid grid-cols-1 gap-6 sm:grid-cols-2"><div class="flex flex-col gap-2"><span class="font-sans text-black text-sm leading-snug">Name<span class="ml-0.5 text-black/30">*</span></span><input class="h-10 w-full border border-border bg-white px-4 font-sans text-sm text-black outline-none transition-colors placeholder:text-black/25 focus:border-black/30" placeholder="Your name" required="" type="text" name="name"/></div><div class="flex flex-col gap-2"><span class="font-sans text-black text-sm leading-snug">What is your email?<span class="ml-0.5 text-black/30">*</span></span><input class="h-10 w-full border border-border bg-white px-4 font-sans text-sm text-black outline-none transition-colors placeholder:text-black/25 focus:border-black/30" placeholder="hey@example.com" required="" type="email" name="email"/></div><div class="flex flex-col gap-2"><span class="font-sans text-black text-sm leading-snug">Your website link<span class="ml-0.5 text-black/30">*</span></span><input class="h-10 w-full border border-border bg-white px-4 font-sans text-sm text-black outline-none transition-colors placeholder:text-black/25 focus:border-black/30" inputMode="url" placeholder="yoursite.com" required="" type="text" name="website"/></div><div class="flex flex-col gap-2"><span class="font-sans text-black text-sm leading-snug">Your role?<span class="ml-0.5 text-black/30">*</span></span><div class="relative"><select class="h-10 w-full appearance-none border border-border bg-white px-4 font-sans text-sm text-black outline-none transition-colors focus:border-black/30" name="role" required=""><option disabled="" value="" selected="">Select your role</option><option value="Founder">Founder</option><option value="Product">Product</option><option value="Engineering">Engineering</option></select><div class="pointer-events-none absolute top-1/2 right-4 -translate-y-1/2"><svg aria-hidden="true" class="size-4 text-black/25" fill="none" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24"><path d="M19.5 8.25l-7.5 7.5-7.5-7.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></div></div></div><div class="flex flex-col gap-2"><span class="font-sans text-black text-sm leading-snug">How much money have you raised?<span class="ml-0.5 text-black/30">*</span></span><div class="relative"><select class="h-10 w-full appearance-none border border-border bg-white px-4 font-sans text-sm text-black outline-none transition-colors focus:border-black/30" name="funding" required=""><option disabled="" value="" selected="">Select funding stage</option><option value="Bootstrapped">Bootstrapped</option><option value="Upto $500K">Upto $500K</option><option value="Between $1-5M">Between $1-5M</option><option value="More than $5M">More than $5M</option></select><div class="pointer-events-none absolute top-1/2 right-4 -translate-y-1/2"><svg aria-hidden="true" class="size-4 text-black/25" fill="none" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24"><path d="M19.5 8.25l-7.5 7.5-7.5-7.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></div></div></div><div class="flex flex-col gap-2"><span class="font-sans text-black text-sm leading-snug">How did you find out about Composio?<span class="ml-0.5 text-black/30">*</span></span><input class="h-10 w-full border border-border bg-white px-4 font-sans text-sm text-black outline-none transition-colors placeholder:text-black/25 focus:border-black/30" placeholder="Mention how you came to know of us" required="" type="text" name="referral"/></div></div><div class="flex flex-col gap-2"><span class="font-sans text-black text-sm leading-snug">What are you building / what tools do you need?<span class="ml-0.5 text-black/30">*</span></span><textarea class="min-h-[100px] w-full resize-y border border-border bg-white p-4 font-sans text-black text-sm outline-none transition-colors placeholder:text-black/25 focus:border-black/30 md:min-h-[120px]" maxLength="1000" name="building" placeholder="Brief us about how you plan to use Composio, and what tools you want to use." required="" rows="4"></textarea></div><button class="mt-2 flex h-10 w-full items-center justify-center bg-black px-8 font-mono text-sm text-white tracking-default transition-colors hover:bg-black/85 disabled:opacity-50 sm:w-auto sm:self-start" type="submit">SUBMIT APPLICATION</button></form></div></div></div></section><section class="relative bg-white"><div aria-hidden="true" class="pointer-events-none absolute inset-0 z-40 mx-auto hidden w-full max-w-page border-black/[0.06] border-x lg:block"></div><div class="relative mx-auto w-full max-w-page border-black/[0.06] border-t px-5 py-16 md:px-10 md:py-24"><div class="grid grid-cols-1 gap-10 lg:grid-cols-[minmax(0,380px)_minmax(0,1fr)] lg:gap-20"><div class="flex flex-col lg:sticky lg:top-28 lg:self-start"><div class="flex items-center gap-2"><div class="size-[5.82px] bg-brand"></div><span class="font-mono text-brand text-sm leading-normal tracking-default">FAQ</span></div><h2 class="mt-6 text-black text-h1">Frequently asked questions</h2></div><div class="flex flex-col"><div><button class="flex w-full items-start justify-between py-5 text-left md:py-6" type="button"><span class="pr-6 font-sans text-base leading-snug transition-colors duration-300 md:text-lg text-black/45">What kind of startups are eligible?</span><span class="shrink-0 font-mono text-base leading-snug transition-colors duration-300 text-black/25">+</span></button><div class="h-px w-full bg-black/[0.06]"></div></div><div><button class="flex w-full items-start justify-between py-5 text-left md:py-6" type="button"><span class="pr-6 font-sans text-base leading-snug transition-colors duration-300 md:text-lg text-black/45">Is there a maximum funding raised to be eligible?</span><span class="shrink-0 font-mono text-base leading-snug transition-colors duration-300 text-black/25">+</span></button><div class="h-px w-full bg-black/[0.06]"></div></div><div><button class="flex w-full items-start justify-between py-5 text-left md:py-6" type="button"><span class="pr-6 font-sans text-base leading-snug transition-colors duration-300 md:text-lg text-black/45">Do we need to be part of an accelerator (like YC)?</span><span class="shrink-0 font-mono text-base leading-snug transition-colors duration-300 text-black/25">+</span></button><div class="h-px w-full bg-black/[0.06]"></div></div><div><button class="flex w-full items-start justify-between py-5 text-left md:py-6" type="button"><span class="pr-6 font-sans text-base leading-snug transition-colors duration-300 md:text-lg text-black/45">What happens when the six months end?</span><span class="shrink-0 font-mono text-base leading-snug transition-colors duration-300 text-black/25">+</span></button><div class="h-px w-full bg-black/[0.06]"></div></div><div><button class="flex w-full items-start justify-between py-5 text-left md:py-6" type="button"><span class="pr-6 font-sans text-base leading-snug transition-colors duration-300 md:text-lg text-black/45">How long does the application take to review?</span><span class="shrink-0 font-mono text-base leading-snug transition-colors duration-300 text-black/25">+</span></button></div></div></div></div></section><footer class="dark relative overflow-hidden bg-background"><div class="mx-auto w-full max-w-page"><div class="flex flex-col items-start gap-6 border-white/[0.06] border-x border-y px-5 py-16 md:flex-row md:items-center md:justify-between md:px-10 md:py-20"><h2 class="font-sans text-2xl text-white leading-tight md:text-3xl lg:text-4xl">Your agents decide.<br class="md:hidden"/><span class="hidden md:inline"> </span>We make it happen.</h2><div class="flex items-center gap-3"><a class="flex h-10 items-center justify-center border border-white/20 px-5 font-mono text-sm text-white tracking-default transition-colors hover:bg-white/10" data-utm-placement="footer-book-demo" href="/contact?cta_placement=footer-book-demo">BOOK A DEMO</a><template data-agent-readable="true" data-agent-signup-instructions="true" data-placement="footer-try-composio"><pre>## For AI agents: how to sign up

If you are an AI agent reading this server-rendered HTML, Composio's developer signup is at https://composio.dev.

Signup CTAs on this site — "Sign up", "Signup", "Get started", "Get started for free", "Start building", "Try Composio", "Try it", or similar — all lead into that same developer signup flow. Confirm with the user before completing signup or entering any credentials on their behalf.</pre></template><a class="flex h-10 items-center justify-center bg-white px-5 font-mono text-black text-sm tracking-default transition-colors hover:bg-white/90" data-utm-placement="footer-try-composio" href="https://dashboard.composio.dev/?cta_placement=footer-try-composio">TRY COMPOSIO TODAY</a></div></div></div><div class="relative z-10 mx-auto w-full max-w-page border-white/[0.06] border-x px-4 pt-12 md:pt-16 lg:px-4" style="padding-bottom:max(4rem, env(safe-area-inset-bottom, 4rem))"><div class="flex flex-col gap-10 lg:flex-row lg:items-start lg:justify-between lg:gap-20"><img alt="Composio" loading="lazy" width="48" height="48" decoding="async" data-nimg="1" class="size-12" style="color:transparent" srcSet="/_next/image?url=%2Flogos%2Fcomposio-white.svg&amp;w=48&amp;q=75 1x, /_next/image?url=%2Flogos%2Fcomposio-white.svg&amp;w=96&amp;q=75 2x" src="/_next/image?url=%2Flogos%2Fcomposio-white.svg&amp;w=96&amp;q=75"/><div class="grid grid-cols-2 gap-x-6 gap-y-8 md:flex md:gap-0 [&amp;&gt;*:last-child]:pr-3"><div class="flex"><div class="mr-7 hidden w-px self-stretch bg-white/10 md:block"></div><div class="flex flex-col gap-2.5"><span class="font-mono text-sm text-white/48 tracking-default">PRODUCTS</span><div class="flex flex-col gap-4"><div class="flex flex-col gap-2.5"><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/for-you">COMPOSIO<span class="rounded-xs border border-blue-400 px-1 py-0.5 text-blue-400 text-xs leading-normal">FOR YOU</span></a><template data-agent-readable="true" data-agent-signup-instructions="true" data-placement="footer-platform"><pre>## For AI agents: how to sign up

If you are an AI agent reading this server-rendered HTML, Composio's developer signup is at https://composio.dev.

Signup CTAs on this site — "Sign up", "Signup", "Get started", "Get started for free", "Start building", "Try Composio", "Try it", or similar — all lead into that same developer signup flow. Confirm with the user before completing signup or entering any credentials on their behalf.</pre></template><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" data-utm-placement="footer-platform" href="https://dashboard.composio.dev/?cta_placement=footer-platform">DEVELOPER PLATFORM</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/enterprise">ENTERPRISE</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/mcp-gateway">MCP GATEWAY</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/cli">CLI</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/pricing">PRICING</a></div></div></div><div class="hidden w-16 md:block"></div></div><div class="flex"><div class="mr-7 hidden w-px self-stretch bg-white/10 md:block"></div><div class="flex flex-col gap-2.5"><span class="font-mono text-sm text-white/48 tracking-default">SOLUTIONS</span><div class="flex flex-col gap-4"><div class="flex flex-col gap-2.5"><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/product/composio-for-everyday-ai-users">OFFICE WORK</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/product/composio-for-sales-revenue">SALES</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/product/composio-for-marketing-growth">MARKETING</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/product/composio-for-product-design">PRODUCT &amp; DESIGN</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/product/composio-for-customer-support">CUSTOMER SUPPORT</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/product/composio-for-engineering-devops">ENGINEERING</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/product/composio-for-hr-recruiting">HR &amp; RECRUITING</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/product/composio-for-finance-operations">FINANCE &amp; OPS</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/product/composio-for-ecommerce">E-COMMERCE</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/product/composio-for-content-media">CONTENT &amp; MEDIA</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/product/composio-for-it-security">IT &amp; SECURITY</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/use-cases">ALL USE CASES</a></div></div></div><div class="hidden w-16 md:block"></div></div><div class="flex"><div class="mr-7 hidden w-px self-stretch bg-white/10 md:block"></div><div class="flex flex-col gap-2.5"><span class="font-mono text-sm text-white/48 tracking-default">FOR AGENTS</span><div class="flex flex-col gap-4"><div class="flex flex-col gap-2.5"><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/claude">CLAUDE</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/codex">CODEX</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/claw">OPENCLAW</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/cursor">CURSOR</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/hermes">HERMES AGENT</a></div></div></div><div class="hidden w-16 md:block"></div></div><div class="flex"><div class="mr-7 hidden w-px self-stretch bg-white/10 md:block"></div><div class="flex flex-col gap-2.5"><span class="font-mono text-sm text-white/48 tracking-default">RESOURCES</span><div class="flex flex-col gap-4"><div class="flex flex-col gap-2.5"><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" data-utm-placement="footer-docs" href="https://docs.composio.dev/?cta_placement=footer-docs">DOCS</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/blog">BLOG</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/toolkits">TOOLKITS</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/content">ARTICLES</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/auth">AUTH GUIDES</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/case-studies">CASE STUDIES</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/startups">STARTUPS</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/partnerships">PARTNERSHIPS</a></div></div></div><div class="hidden w-16 md:block"></div></div><div class="flex"><div class="mr-7 hidden w-px self-stretch bg-white/10 md:block"></div><div class="flex flex-col gap-2.5"><span class="font-mono text-sm text-white/48 tracking-default">COMPANY</span><div class="flex flex-col gap-4"><div class="flex flex-col gap-2.5"><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="https://jobs.ashbyhq.com/composio">CAREERS</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" data-utm-placement="footer-trust" href="https://trust.composio.dev/?cta_placement=footer-trust">TRUST</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" data-utm-placement="footer-contact" href="/contact?cta_placement=footer-contact">CONTACT US</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/support">SUPPORT</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/terms">TERMS</a><a class="flex items-center gap-2 font-mono text-sm text-white tracking-default hover:text-white/80" href="/privacy">PRIVACY POLICY</a></div></div></div></div></div></div><div class="mt-10 flex flex-col-reverse items-center gap-4 md:mt-24 md:flex-row md:justify-between md:gap-0"><div class="flex items-center gap-5 text-white/60"><a aria-label="X (Twitter)" class="hover:text-white" rel="noopener noreferrer" target="_blank" href="https://x.com/composio"><svg aria-hidden="true" class="size-5" fill="currentColor" viewBox="0 0 24 24"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"></path></svg></a><a aria-label="LinkedIn" class="hover:text-white" rel="noopener noreferrer" target="_blank" href="https://www.linkedin.com/company/composiohq/"><svg aria-hidden="true" class="size-5" fill="currentColor" viewBox="0 0 24 24"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"></path></svg></a><a aria-label="GitHub" class="hover:text-white" rel="noopener noreferrer" target="_blank" href="https://github.com/composiohq/composio/"><svg aria-hidden="true" class="size-5" fill="currentColor" viewBox="0 0 24 24"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path></svg></a><a aria-label="Discord" class="hover:text-white" rel="noopener noreferrer" target="_blank" href="https://dub.composio.dev/discord"><svg aria-hidden="true" class="size-5" fill="currentColor" viewBox="0 0 24 24"><path d="M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028 14.09 14.09 0 0 0 1.226-1.994.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.095 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.095 2.157 2.42 0 1.333-.947 2.418-2.157 2.418z"></path></svg></a><a aria-label="YouTube" class="hover:text-white" rel="noopener noreferrer" target="_blank" href="https://www.youtube.com/@Composio"><svg aria-hidden="true" class="size-5" fill="currentColor" viewBox="0 0 24 24"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"></path></svg></a></div><span class="font-mono text-sm text-white/48 tracking-default">© Composio <!-- -->2026</span></div></div></footer></main><!--$--><!--/$--><noscript><img alt="" height="1" src="https://www.facebook.com/tr?id=27019907614283068&amp;ev=PageView&amp;noscript=1" style="display:none" width="1"/></noscript><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--><script src="/_next/static/chunks/webpack-b930eff66a524c34.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[41991,[\"8862\",\"static/chunks/8862-cffe0ea78b8db294.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"7177\",\"static/chunks/app/layout-c81e151b5bcf8f81.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\"],\"\"]\n3:I[88287,[],\"\"]\n4:I[73891,[],\"\"]\n"])</script><script>self.__next_f.push([1,"5:I[66652,[\"1034\",\"static/chunks/481b18d3-b226a9cf63447f42.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"8702\",\"static/chunks/504f14e4-a0552262de9f7d74.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"8129\",\"static/chunks/c5503633-24284694ed1fdfa6.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"5562\",\"static/chunks/5562-04a5619131a706e5.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"14\",\"static/chunks/14-8a61002774841b0a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"2510\",\"static/chunks/2510-7105d8258cdbd8c8.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9170\",\"static/chunks/9170-c6d8c29c2224efe7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"6103\",\"static/chunks/6103-39bce09afc6306dd.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"5539\",\"static/chunks/5539-8451c0f5ff0f02a7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"2554\",\"static/chunks/2554-acb95cf9f19a8aae.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9573\",\"static/chunks/9573-4ef7b615681d5b03.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"7546\",\"static/chunks/7546-737e05e251618a5a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9609\",\"static/chunks/app/startups/page-f0e7f1f269d678fa.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\"],\"TrackPageView\"]\n"])</script><script>self.__next_f.push([1,"6:I[7697,[\"5562\",\"static/chunks/5562-04a5619131a706e5.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"7709\",\"static/chunks/7709-57ce867ca125946d.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"4345\",\"static/chunks/app/not-found-6bd98d10d9a828b4.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\"],\"ComposioErrorSystem\"]\n7:I[14895,[\"8862\",\"static/chunks/8862-cffe0ea78b8db294.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"7177\",\"static/chunks/app/layout-c81e151b5bcf8f81.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\"],\"CodexAgentBanner\"]\n8:I[87381,[\"8862\",\"static/chunks/8862-cffe0ea78b8db294.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"7177\",\"static/chunks/app/layout-c81e151b5bcf8f81.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\"],\"UtmPreserver\"]\n9:I[13723,[\"8862\",\"static/chunks/8862-cffe0ea78b8db294.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"7177\",\"static/chunks/app/layout-c81e151b5bcf8f81.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\"],\"MetaPixel\"]\na:I[28274,[\"8862\",\"static/chunks/8862-cffe0ea78b8db294.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"7177\",\"static/chunks/app/layout-c81e151b5bcf8f81.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\"],\"AttributionCapture\"]\nb:I[29365,[\"8862\",\"static/chunks/8862-cffe0ea78b8db294.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"7177\",\"static/chunks/app/layout-c81e151b5bcf8f81.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\"],\"RouteTracker\"]\nc:I[28245,[\"8862\",\"static/chunks/8862-cffe0ea78b8db294.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"7177\",\"static/chunks/app/layout-c81e151b5bcf8f81.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\"],\"Analytics\"]\n11:I[58821,[],\"\"]\n:HL[\"/_next/static/media/1e751dc5947d8156-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/8052ba449b4ca60a-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/bb3ef058b751a6ad-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/f417133a7bc67e37-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/b0d19ddbfeec815f.css?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"style\"]\n:HL[\"/_next/s"])</script><script>self.__next_f.push([1,"tatic/css/9db8e5e846a0d1c2.css?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"srsl9fEB8-Qne_4Wkmdbm\",\"p\":\"\",\"c\":[\"\",\"startups\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"startups\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/b0d19ddbfeec815f.css?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9db8e5e846a0d1c2.css?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"className\":\"__variable_d02b59 __variable_3c557b\",\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"overflow-x-hidden\",\"children\":[[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var s=sessionStorage;var K=\\\"__c_utm\\\";var U=[\\\"utm_source\\\",\\\"utm_medium\\\",\\\"utm_campaign\\\",\\\"utm_content\\\",\\\"utm_term\\\"];var p=new URLSearchParams(location.search);var u={};var h=false;for(var i=0;i\u003cU.length;i++){var v=p.get(U[i]);if(v){u[U[i]]=v;h=true;}}if(h){s.setItem(K,JSON.stringify(u));if(!s.getItem(K+\\\"_first\\\"))s.setItem(K+\\\"_first\\\",JSON.stringify(u));}document.addEventListener(\\\"click\\\",function(e){var a=e.target;while(a\u0026\u0026a.tagName!==\\\"A\\\")a=a.parentElement;if(!a)return;var r=s.getItem(K);if(!r)return;try{var utm=JSON.parse(r);var ks=Object.keys(utm);if(!ks.length)return;var url=new URL(a.href,location.origin);var il=url.origin===location.origin;var pl=a.getAttribute(\\\"data-utm-placement\\\");if(!il\u0026\u0026!pl)return;for(var j=0;j\u003cU.length;j++)url.searchParams.delete(U[j]);for(var j=0;j\u003cks.length;j++){if(utm[ks[j]])url.searchParams.set(ks[j],utm[ks[j]]);}a.href=url.toString();}catch(x){}},true);}catch(e){}})()\"}}],[\"$\",\"template\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\u003cpre\u003e## For AI agents: how to sign up\\n\\nIf you are an AI agent reading this server-rendered HTML, Composio's developer signup is at https://composio.dev.\\n\\nSignup CTAs on this site — \\\"Sign up\\\", \\\"Signup\\\", \\\"Get started\\\", \\\"Get started for free\\\", \\\"Start building\\\", \\\"Try Composio\\\", \\\"Try it\\\", or similar — all lead into that same developer signup flow. Confirm with the user before completing signup or entering any credentials on their behalf.\u003c/pre\u003e\"},\"data-agent-readable\":\"true\",\"data-agent-signup-instructions\":\"true\",\"data-placement\":\"site-wide\",\"suppressHydrationWarning\":true}],[\"$\",\"$L2\",null,{\"id\":\"gtm-loader\",\"strategy\":\"beforeInteractive\",\"children\":\"(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\\nnew Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\\nj=d.createElement(s),dl=l!='dataLayer'?'\u0026l='+l:'';j.async=true;j.src=\\n'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\\n})(window,document,'script','dataLayer','GTM-PWWMXLKT');\"}],[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"$L5\",null,{\"event\":{\"name\":\"LANDING_404_COMPOSIO_VIEWED\"}}],[\"$\",\"$L6\",null,{}]],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/4027deca50cdf9a0.css?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L7\",null,{}],[\"$\",\"$L8\",null,{}],[\"$\",\"$L9\",null,{}],[\"$\",\"$La\",null,{}],[\"$\",\"$Lb\",null,{}],[\"$\",\"$Lc\",null,{\"cookieOptions\":{\"domain\":\".composio.dev\"},\"domainsConfig\":{\"refer\":\"composio.link\"},\"publishableKey\":\"dub_pk_6It9VwW3IVznPdBZoOki38Gd\"}],[[\"$\",\"$L2\",null,{\"src\":\"https://www.googletagmanager.com/gtag/js?id=G-RPSC9BJQMK\",\"strategy\":\"afterInteractive\"}],[\"$\",\"$L2\",null,{\"id\":\"ga4-init\",\"strategy\":\"afterInteractive\",\"children\":\"window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','G-RPSC9BJQMK',{cookie_domain:'.composio.dev',linker:{domains:['composio.dev','dashboard.composio.dev'],accept_incoming:true}});\"}]],\"$Ld\"]}]}]]}],{\"children\":[\"startups\",\"$Le\",{\"children\":[\"__PAGE__\",\"$Lf\",{},null,false]},null,false]},null,false],\"$L10\",false]],\"m\":\"$undefined\",\"G\":[\"$11\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"13:I[74518,[],\"OutletBoundary\"]\n15:I[83275,[],\"AsyncMetadataOutlet\"]\n17:I[74518,[],\"ViewportBoundary\"]\n19:I[74518,[],\"MetadataBoundary\"]\n1a:\"$Sreact.suspense\"\nd:[\"$\",\"$L2\",null,{\"data-api\":\"/proxy/api/event\",\"data-domain\":\"composio.dev\",\"defer\":true,\"src\":\"/proxy/js/script.js\",\"strategy\":\"afterInteractive\"}]\ne:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\nf:[\"$\",\"$1\",\"c\",{\"children\":[\"$L12\",null,[\"$\",\"$L13\",null,{\"children\":[\"$L14\",[\"$\",\"$L15\",null,{\"promise\":\"$@16\"}]]}]]}]\n10:[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L17\",null,{\"children\":\"$L18\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$L19\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$1a\",null,{\"fallback\":null,\"children\":\"$L1b\"}]}]}]]}]\n"])</script><script>self.__next_f.push([1,"18:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, viewport-fit=cover\"}]]\n14:null\n"])</script><script>self.__next_f.push([1,"1c:I[32115,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"16:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Startups Program | Composio\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Build AI agents free for six months. Startups get Composio's Business plan free — 1,000+ tool integrations, 3M LLM tokens/month, unlimited team seats, and self-managed credentials.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/site.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"canonical\",\"href\":\"https://composio.dev/startups\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:title\",\"content\":\"Startups Program | Composio\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:description\",\"content\":\"Build AI agents free for six months. Startups get Composio's Business plan free — 1,000+ tool integrations, 3M LLM tokens/month, unlimited team seats, and self-managed credentials.\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:url\",\"content\":\"https://composio.dev/startups\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"8\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"9\",{\"name\":\"twitter:title\",\"content\":\"Startups Program | Composio\"}],[\"$\",\"meta\",\"10\",{\"name\":\"twitter:description\",\"content\":\"Build AI agents free for six months. Startups get Composio's Business plan free — 1,000+ tool integrations, 3M LLM tokens/month, unlimited team seats, and self-managed credentials.\"}],[\"$\",\"link\",\"11\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"sizes\":\"any\"}],[\"$\",\"link\",\"12\",{\"rel\":\"icon\",\"href\":\"/favicon-16x16.png\",\"sizes\":\"16x16\",\"type\":\"image/png\"}],[\"$\",\"link\",\"13\",{\"rel\":\"icon\",\"href\":\"/favicon-32x32.png\",\"sizes\":\"32x32\",\"type\":\"image/png\"}],[\"$\",\"link\",\"14\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.png\",\"sizes\":\"180x180\"}],[\"$\",\"$L1c\",\"15\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"1b:\"$16:metadata\"\n"])</script><script>self.__next_f.push([1,"1d:I[2814,[\"1034\",\"static/chunks/481b18d3-b226a9cf63447f42.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"8702\",\"static/chunks/504f14e4-a0552262de9f7d74.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"8129\",\"static/chunks/c5503633-24284694ed1fdfa6.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"5562\",\"static/chunks/5562-04a5619131a706e5.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"14\",\"static/chunks/14-8a61002774841b0a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"2510\",\"static/chunks/2510-7105d8258cdbd8c8.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9170\",\"static/chunks/9170-c6d8c29c2224efe7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"6103\",\"static/chunks/6103-39bce09afc6306dd.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"5539\",\"static/chunks/5539-8451c0f5ff0f02a7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"2554\",\"static/chunks/2554-acb95cf9f19a8aae.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9573\",\"static/chunks/9573-4ef7b615681d5b03.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"7546\",\"static/chunks/7546-737e05e251618a5a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9609\",\"static/chunks/app/startups/page-f0e7f1f269d678fa.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\"],\"Navbar\"]\n"])</script><script>self.__next_f.push([1,"1e:I[15557,[\"1034\",\"static/chunks/481b18d3-b226a9cf63447f42.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"8702\",\"static/chunks/504f14e4-a0552262de9f7d74.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"8129\",\"static/chunks/c5503633-24284694ed1fdfa6.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"5562\",\"static/chunks/5562-04a5619131a706e5.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"14\",\"static/chunks/14-8a61002774841b0a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"2510\",\"static/chunks/2510-7105d8258cdbd8c8.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9170\",\"static/chunks/9170-c6d8c29c2224efe7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"6103\",\"static/chunks/6103-39bce09afc6306dd.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"5539\",\"static/chunks/5539-8451c0f5ff0f02a7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"2554\",\"static/chunks/2554-acb95cf9f19a8aae.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9573\",\"static/chunks/9573-4ef7b615681d5b03.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"7546\",\"static/chunks/7546-737e05e251618a5a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9609\",\"static/chunks/app/startups/page-f0e7f1f269d678fa.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\"],\"StartupsHero\"]\n"])</script><script>self.__next_f.push([1,"1f:T4ec,"])</script><script>self.__next_f.push([1,"\nThis is a workflow builder that ensures the LLM produces a complete, step-by-step plan for any use case.\nWHEN TO CALL:\n- Call this tool based on COMPOSIO_SEARCH_TOOLS output. If search tools response indicates create_plan should be called and the usecase is not easy, call it.\n- Use this tool after COMPOSIO_SEARCH_TOOLS or COMPOSIO_MANAGE_CONNECTIONS to generate an execution plan for the user's use case.\n- USE for medium or hard tasks — skip it for easy ones.\n- If the user switches to a new use case in the same chat and COMPOSIO_SEARCH_TOOLS again instructs you to call the planner, you MUST call this tool again for that new use case.\n\nMemory Integration:\n- You can choose to add the memory received from the search tool into the known_fields parameter of the plan function to enhance planning with discovered relationships and information.\n\nOutputs a complete plan with sections such as \"workflow_steps\", \"complexity_assessment\", \"decision_matrix\", \"failure_handling\" \"output_format\", and more as needed.\n\nIf you skip this step for non-easy tasks, workflows will likely be incomplete, or fail during execution for complex tasks.\nCalling it guarantees reliable, accurate, and end-to-end workflows aligned with the available tools and connections.\n    "])</script><script>self.__next_f.push([1,"20:T493,"])</script><script>self.__next_f.push([1,"\nCreate or manage connections to user's apps. Returns a branded authentication link that works for OAuth, API keys, and all other auth types.\n\nCall policy:\n- First call COMPOSIO_SEARCH_TOOLS for the user's query.\n- If COMPOSIO_SEARCH_TOOLS indicates there is no active connection for a toolkit, call COMPOSIO_MANAGE_CONNECTIONS with the exact toolkit name(s) returned.\n- Use exact toolkit slugs returned by COMPOSIO_SEARCH_TOOLS; never invent toolkit names.\n- NEVER execute any toolkit tool without an ACTIVE connection.\n\nTool Behavior:\n- If a connection is Active, the tool returns the connection details. Always use this to verify connection status and fetch metadata.\n- If a connection is not Active, returns a authentication link (redirect_url) to create new connection.\n- If reinitiate_all is true, the tool forces reconnections for all toolkits, even if they already have active connections.\n\nWorkflow after initiating connection:\n- Always show the returned redirect_url as a FORMATTED MARKDOWN LINK to the user, and ask them to click on the link to finish authentication.\n- Begin executing tools only after the connection for that toolkit is confirmed Active.\n    "])</script><script>self.__next_f.push([1,"21:Tdec,"])</script><script>self.__next_f.push([1,"\n  Fast and parallel tool executor for tools discovered through COMPOSIO_SEARCH_TOOLS. Use this tool to execute up to 50 tools in parallel across apps only when they're logically independent (no ordering/output dependencies). Response contains structured outputs ready for immediate analysis - avoid reprocessing them via remote bash/workbench tools.\n\nPrerequisites:\n- Always use valid tool slugs and their arguments. NEVER invent tool slugs or argument fields. ALWAYS pass STRICTLY schema-compliant arguments with each tool execution.\n- Ensure an ACTIVE connection exists for the toolkits that are going to be executed. If none exists, MUST initiate one via COMPOSIO_MANAGE_CONNECTIONS before execution.\n- Only batch tools that are logically independent - no ordering, no output-to-input dependencies, and no intra-call chaining (tools in one call can't use each other's outputs). DO NOT pass dummy or placeholder inputs; always resolve required inputs using appropriate tools first.\n\nUsage guidelines:\n- If COMPOSIO_SEARCH_TOOLS returns a tool that can perform the task, prefer calling it via this executor. Do not write custom API calls or ad-hoc scripts for tasks that can be completed by available Composio tools.\n- Prefer parallel execution: group independent tools into a single multi-execute call where possible.\n- Predictively set sync_response_to_workbench=true if the response may be large or needed for later scripting. It still shows response inline; if the actual response data turns out small and easy to handle, keep everything inline and SKIP workbench usage.\n- Responses contain structured outputs for each tool. RULE: Small data - process yourself inline; large data - process in the workbench.\n- ALWAYS include inline references/links to sources in MARKDOWN format directly next to the relevant text. Eg provide slack thread links alongside with summary, render document links instead of raw IDs.\n\nRestrictions: Some tools or toolkits may be disabled in this environment. If the response indicates a restriction, inform the user and STOP execution immediately. Do NOT attempt workarounds or speculative actions.\n\n\n- CRITICAL: You MUST always include the 'memory' parameter - never omit it. Even if you think there's nothing to remember, include an empty object {} for memory.\n\nMemory Storage:\n- CRITICAL FORMAT: Memory must be a dictionary where keys are app names (strings) and values are arrays of strings. NEVER pass nested objects or dictionaries as values.\n- CORRECT format: {\"slack\": [\"Channel general has ID C1234567\"], \"gmail\": [\"John's email is john@example.com\"]}\n- Write memory entries in natural, descriptive language - NOT as key-value pairs. Use full sentences that clearly describe the relationship or information.\n- ONLY store information that will be valuable for future tool executions - focus on persistent data that saves API calls.\n- STORE: ID mappings, entity relationships, configs, stable identifiers.\n- DO NOT STORE: Action descriptions, temporary status updates, logs, or \"sent/fetched\" confirmations.\n- Examples of GOOD memory (store these):\n  * \"The important channel in Slack has ID C1234567 and is called #general\"\n  * \"The team's main repository is owned by user 'teamlead' with ID 98765\"\n  * \"The user prefers markdown docs with professional writing, no emojis\" (user_preference)\n- Examples of BAD memory (DON'T store these):\n  * \"Successfully sent email to john@example.com with message hi\"\n  * \"Fetching emails from last day (Sep 6, 2025) for analysis\"\n- Do not repeat the memories stored or found previously.\n"])</script><script>self.__next_f.push([1,"22:T20f3,"])</script><script>self.__next_f.push([1,"\n  Process **REMOTE FILES** or script BULK TOOL EXECUTIONS using Python code IN A REMOTE SANDBOX. If you can see the data in chat, DON'T USE THIS TOOL.\n**ONLY** use this when processing **data stored in a remote file** or when scripting bulk tool executions.\n\nDO NOT USE\n- When the complete response is already inline/in-memory, or you only need quick parsing, summarization, or basic math.\n\nUSE IF\n- To parse/analyze tool outputs saved by COMPOSIO_MULTI_EXECUTE_TOOL to a remote file in the sandbox or to script multi-tool chains there.\n- For bulk or repeated executions of known Composio tools (e.g., add a label to 100 emails).\n- To call APIs via proxy_execute when no Composio tool exists for that API.\n\n\nOUTPUTS\n- Returns a compact result or, if too long, artifacts under `/mnt/files/.composio/output` (cloud-backed FUSE mount, persisted across sandbox restarts).\n\nIMPORTANT CODING RULES:\n  1. Stepwise Execution: Split work into small steps. Save intermediate outputs to `/mnt/files/` (cloud-backed, persisted across failures/timeouts) or variables. Call COMPOSIO_REMOTE_WORKBENCH again for the next step.\n  2. Notebook Persistence: This is a persistent Jupyter notebook cell: variables, functions, imports, and in-memory state persist across executions. Helper functions are preloaded.\n  3. Top-level cells: Do not use `return`; Jupyter only allows it inside functions. For final values, end with `output` or `print(output)`, not `return output`.\n  4. Parallelism \u0026 Timeout (CRITICAL): There is a **hard 3-minute (180s) execution limit** per cell. Always prioritize PARALLEL execution using ThreadPoolExecutor for bulk operations - e.g., call run_composio_tool or invoke_llm across rows. If data is large, split it into smaller batches across cells.\n  5. Checkpoints: Save checkpoints to `/mnt/files/` so that long runs can be resumed from the last completed step, even after a timeout or sandbox restart.\n  6. Schema Safety: Never assume the response schema for run_composio_tool if not known already from previous tools. To inspect schema, either run a simple request **outside** the workbench or use invoke_llm helper.\n  7. LLM Helpers: Always use invoke_llm helper for summary, analysis, or field extraction on results; prefer it for much better results over ad hoc filtering.\n  8. Avoid Meta Loops: Do not use run_composio_tool to call COMPOSIO_* meta tools. Only use it for app tools.\n  9. Pagination: Use when data spans multiple pages. Continue fetching pages with the returned next_page_token or cursor until none remains. Parallelize page fetches when the tool supports page_number.\n  10. No Hardcoding: Never hardcode data. Load it from files or tool responses, iterating to construct intermediate or final inputs/outputs.\n  11. If the final output is in a workbench file, use upload_local_file to download it - never expose the raw workbench file path to the user. Prefer to download useful artifacts after task is complete.\n\n\nENV \u0026 HELPERS:\n- Home directory: `/home/user`.\n- NOTE: Helper functions already initialized in the workbench - DO NOT import or redeclare them:\n    - \n`run_composio_tool(tool_slug: str, arguments: dict) -\u003e tuple[Dict[str, Any], str]`: Execute a known Composio **app** tool. Do not invent names; match the tool input schema. Use for loops/parallel/bulk calls.\n      i) run_composio_tool returns JSON with top-level \"data\". Parse carefully—structure may be nested.\n    \n    - \n`invoke_llm(query: str) -\u003e tuple[str, str]`: Invoke an LLM for semantic tasks. Pass MAX 200k characters.\n      i) NOTE Prompting guidance: When building prompts for invoke_llm, prefer f-strings (or concatenation) so literal braces stay intact. If using str.format, escape braces by doubling them ({{ }}).\n      ii) Define the exact JSON schema you want and batch items into smaller groups to stay within token limit.\n\n    - `upload_local_file(*file_paths) -\u003e tuple[Dict[str, Any], str]`: Upload sandbox files to Composio S3/R2 storage for user-downloadable artifacts.\n    - `proxy_execute(method, endpoint, toolkit, query_params=None, body=None, headers=None) -\u003e tuple[Any, str]`: Call a toolkit API directly when no Composio tool exists. Only one toolkit can be invoked with proxy_execute per workbench call\n    - `web_search(query: str) -\u003e tuple[str, str]`: Search the web for information.\n    - `smart_file_extract(sandbox_file_path: str, show_preview: bool = True) -\u003e tuple[str, str]`: Extracts text from files in the sandbox (e.g., PDF, image).\n  All helper functions return a tuple (result, error). Always check error before using result.\n\n## Python Helper Functions for LLM Scripting\n\n\n### run_composio_tool\nExecutes a known Composio tool via backend API. Do NOT call COMPOSIO_* meta tools to avoid cycles.\n\n    def run_composio_tool(tool_slug: str, arguments: Dict[str, Any]) -\u003e tuple[Dict[str, Any], str]\n    # Returns: (tool_response_dict, error_message)\n    #   Success: ({\"data\": {actual_data}}, \"\") - Note the top-level data\n    #   Error:   ({}, \"error_message\") or (response_data, \"error_message\")\n\n    result, error = run_composio_tool(\"GMAIL_FETCH_EMAILS\", {\"max_results\": 1, \"user_id\": \"me\"})\n    if error:\n        print(\"GMAIL_FETCH_EMAILS error:\", error)\n    else:\n        email_data = result.get(\"data\", {})\n        print(\"Fetched:\", email_data)\n    \n\n\n### invoke_llm\nCalls LLM for reasoning, analysis, and semantic tasks. Pass MAX 200k characters.\n\n    # Returns: (llm_response, error_message)\n\n    # Example: analyze tool response with LLM\n    tool_resp, err = run_composio_tool(\"GMAIL_FETCH_EMAILS\", {\"max_results\": 5, \"user_id\": \"me\"})\n    if not err:\n      parsed = tool_resp.get(\"data\", {})\n      resp, err2 = invoke_llm(f\"Summarize these emails: {parsed}\")\n      if not err2:\n        print(resp)\n    # TIP: batch prompts to reduce LLM calls.\n    \n\n\n### upload_local_file\nUploads sandbox files to Composio S3/R2 storage for upload/download requests involving generated sandbox artifacts. Single files upload directly; multiple files are auto-zipped.\n\n    # Returns: (result_dict, error_string)\n    # Success: ({\"s3_url\": str, \"uploaded_file\": str, \"type\": str, \"id\": str, \"s3key\": str, \"message\": str}, \"\")\n    # Error: ({}, \"error_message\")\n\n    # Single file\n    result, error = upload_local_file(\"/path/to/report.pdf\")\n\n    # Multiple files are auto-zipped\n    result, error = upload_local_file(\"/home/user/doc1.txt\", \"/home/user/doc2.txt\")\n\n    if not error:\n      print(\"Uploaded:\", result[\"s3_url\"])\n\n\n### proxy_execute\nDirect API call to a connected toolkit service.\n\n    def proxy_execute(\n        method: Literal[\"GET\",\"POST\",\"PUT\",\"DELETE\",\"PATCH\"],\n        endpoint: str,\n        toolkit: str,\n        query_params: Optional[Dict[str, str]] = None,\n        body: Optional[object] = None,\n        headers: Optional[Dict[str, str]] = None,\n    ) -\u003e tuple[Any, str]\n    # Returns: (response_data, error_message)\n\n    # Example: GET request with query parameters\n    query_params = {\"q\": \"is:unread\", \"maxResults\": \"10\"}\n    data, error = proxy_execute(\"GET\", \"/gmail/v1/users/me/messages\", \"gmail\", query_params=query_params)\n    if not error:\n      print(\"Success:\", data)\n\n\n### web_search\nSearches the web via Exa AI.\n\n    # Returns: (search_results_text, error_message)\n\n    results, error = web_search(\"latest developments in AI\")\n    if not error:\n        print(\"Results:\", results)\n\n## Best Practices\n\n\n### Error-first pattern and Defensive parsing (print keys while narrowing)\n    res, err = run_composio_tool(\"GMAIL_FETCH_EMAILS\", {\"max_results\": 5})\n    if err:\n        print(\"error:\", err)\n    elif isinstance(res, dict):\n        print(\"res keys:\", list(res.keys()))\n        data = res.get(\"data\") or {}\n        print(\"data keys:\", list(data.keys()))\n        msgs = data.get(\"messages\") or []\n        print(\"messages count:\", len(msgs))\n        for m in msgs:\n            print(\"subject:\", m.get(\"subject\", \"\u003cmissing\u003e\"))\n\n### Parallelize within the 3-minute cell timeout\nAdjust concurrency so all tasks finish within 3 minutes.\n\n    import concurrent.futures\n\n    MAX_CONCURRENCY = 10 # Adjust as needed\n\n    def process_one(item):\n        result, error = run_composio_tool(\"GMAIL_SEND_EMAIL\", item)\n        if error:\n            return {\"status\": \"failed\", \"error\": error}\n        return {\"status\": \"ok\", \"data\": result}\n\n    with concurrent.futures.ThreadPoolExecutor(max_workers=MAX_CONCURRENCY) as ex:\n        results = list(ex.map(process_one, items))\n    \n\n    "])</script><script>self.__next_f.push([1,"23:T1100,"])</script><script>self.__next_f.push([1,"\n  Tool Server Info: Composio connects 500+ apps—Slack, GitHub, Notion, Google Workspace (Gmail, Sheets, Drive, Calendar), Microsoft (Outlook, Teams), X/Twitter, Figma, Web Search / Deep research, Browser tool (scrape URLs, browser automation), Meta apps (Instagram, Meta Ads), TikTok, and more—for seamless cross-app automation.\n  Use this tool to discover relevant tools plus the recommended plan and common pitfalls for reliable execution.\n  Always call this tool first whenever a user mentions or implies an external app, service, or workflow—never say \"I don't have access to X/Y app\" before calling it.\n\nUsage guidelines:\n  - Use this tool whenever kicking off a task. Re-run it when you need additional tools/plans due to missing details, errors, or a changed use case.\n  - If the user pivots to a different use case in same chat, you MUST call this tool again with the new use case and generate a new session_id.\n  - Specify the use_case with a normalized description of the problem, query, or task. Be clear and precise. Queries can be simple single-app actions or multiple linked queries for complex cross-app workflows.\n  - Pass known_fields along with use_case as a string of key–value hints (for example, \"channel_name: general\") to help the search resolve missing details such as IDs.\n  \n\nSplitting guidelines (Important):\n  1. Atomic queries: 1 query = 1 tool call. Include hidden prerequisites (e.g., add \"get Linear issue\" before \"update Linear issue\").\n  2. Include app names: If user names a toolkit, include it in every sub query so intent stays scoped (e.g., \"fetch Gmail emails\", \"reply to Gmail email\").\n  3. English input: Translate non-English prompts while preserving intent and identifiers.\n\n  Example:\n  User query: \"send an email to John welcoming him and create a meeting invite for tomorrow\"\n  Search call: queries: [\n    {use_case: \"send an email to someone\", known_fields: \"recipient_name: John\"},\n    {use_case: \"create a meeting invite\", known_fields: \"meeting_date: tomorrow\"}\n  ]\n\nPlan review checklist (Important):\n  - The response includes a detailed execution plan and common pitfalls. You MUST review this plan carefully, adapt it to your current context, and generate your own final step-by-step plan before execution. Execute the steps in order to ensure reliable and accurate execution. Skipping or ignoring required steps can lead to unexpected failures.\n  - Check the plan and pitfalls for input parameter nuances (required fields, IDs, formats, limits). Before executing any tool, you MUST review its COMPLETE input schema and provide STRICTLY schema-compliant arguments to avoid invalid-input errors.\n  - Determine whether pagination is needed; if a response returns a pagination token and completeness is implied, paginate until exhaustion and do not return partial results.\n\nResponse:\n  - Tools \u0026 Input Schemas: The response lists toolkits (apps) and tools suitable for the task, along with their tool_slug, description, input schema / schemaRef, and related tools for prerequisites, alternatives, or next steps.\n    - NOTE: Tools with schemaRef instead of input_schema require you to call COMPOSIO_GET_TOOL_SCHEMAS first to load their full input_schema before use.\n  - Connection Info: If a toolkit has an active connection, the response includes it along with any available current user information. If no active connection exists, you MUST initiate a new connection via COMPOSIO_MANAGE_CONNECTIONS with the correct toolkit name. DO NOT execute any toolkit tool without an ACTIVE connection.\n  - Time Info: The response includes the current UTC time for reference. You can reference UTC time from the response if needed.\n  \n  - The tools returned to you through this are to be called via COMPOSIO_MULTI_EXECUTE_TOOL. Ensure each tool execution specifies the correct tool_slug and arguments exactly as defined by the tool's input schema.\n    - The response includes a memory parameter containing relevant information about the use case and the known fields that can be used to determine the flow of execution. Any user preferences in memory must be adhered to.\n\nSESSION: ALWAYS set this parameter, first for any workflow. Pass session: {generate_id: true} for new workflows OR session: {id: \"EXISTING_ID\"} to continue. ALWAYS use the returned session_id in ALL subsequent meta tool calls.\n    "])</script><script>self.__next_f.push([1,"12:[\"$\",\"main\",null,{\"children\":[[\"$\",\"$L5\",null,{\"event\":{\"name\":\"LANDING_STARTUPS_VIEWED\"}}],[\"$\",\"$L1d\",null,{\"defaultTheme\":\"light\"}],[\"$\",\"$L1e\",null,{\"toolkits\":[{\"slug\":\"gmail\",\"name\":\"Gmail\",\"description\":\"Gmail is Google’s email service, featuring spam protection, search functions, and seamless integration with other G Suite apps for productivity\",\"logo\":\"https://logos.composio.dev/api/gmail\",\"rank\":0,\"tools\":[{\"slug\":\"GMAIL_ADD_LABEL_TO_EMAIL\",\"name\":\"Modify email labels\",\"description\":\"Adds and/or removes specified Gmail labels for a message; ensure `message_id` and all `label_ids` are valid (use 'listLabels' for custom label IDs).\"},{\"slug\":\"GMAIL_BATCH_DELETE_MESSAGES\",\"name\":\"Batch delete Gmail messages\",\"description\":\"Tool to permanently delete multiple Gmail messages in bulk, bypassing Trash with no recovery possible. Use when you need to efficiently remove large numbers of emails (e.g., retention enforcement, mailbox hygiene). Use GMAIL_MOVE_TO_TRASH instead when reversibility may be needed. Always obtain explicit user confirmation and verify a sample of message IDs before executing. High-volume calls may trigger 429 rateLimitExceeded or 403 userRateLimitExceeded errors; apply exponential backoff.\"},{\"slug\":\"GMAIL_BATCH_MODIFY_MESSAGES\",\"name\":\"Batch modify Gmail messages\",\"description\":\"Modify labels on multiple Gmail messages in one efficient API call. Supports up to 1,000 messages per request for bulk operations like archiving, marking as read/unread, or applying custom labels. High-volume calls may return 429 rateLimitExceeded or 403 userRateLimitExceeded; apply exponential backoff.\"},{\"slug\":\"GMAIL_CREATE_EMAIL_DRAFT\",\"name\":\"Create email draft\",\"description\":\"Creates a Gmail email draft. While all fields are optional per the Gmail API, practical validation requires at least one of recipient_email, cc, or bcc and at least one of subject or body. Supports To/Cc/Bcc recipients, subject, plain/HTML body (ensure `is_html=True` for HTML), attachments, and threading. Returns a draft_id that must be used as-is with GMAIL_SEND_DRAFT — synthetic or stale IDs will fail. When creating a draft reply to an existing thread (thread_id provided), leave subject empty to stay in the same thread; setting a subject will create a NEW thread instead. HTTP 429 may occur on rapid creation/send sequences; apply exponential backoff.\"},{\"slug\":\"GMAIL_CREATE_FILTER\",\"name\":\"Create Gmail filter\",\"description\":\"Tool to create a new Gmail filter with specified criteria and actions. Use when the user wants to automatically organize incoming messages based on sender, subject, size, or other criteria. Note: you can only create a maximum of 1,000 filters per account.\"},{\"slug\":\"GMAIL_CREATE_LABEL\",\"name\":\"Create label\",\"description\":\"Creates a new label with a unique name in the specified user's Gmail account. Returns a labelId (e.g., 'Label_123') required for downstream tools like GMAIL_ADD_LABEL_TO_EMAIL, GMAIL_BATCH_MODIFY_MESSAGES, and GMAIL_MODIFY_THREAD_LABELS — those tools do not accept display names.\"},{\"slug\":\"GMAIL_CREATE_PROMPT_POST\",\"name\":\"Create Prompt Post\",\"description\":\"Send a one-shot prompt to the Sanity Content Agent. Stateless one-shot prompt endpoint. No thread management or message persistence. Ideal for simple, single-turn interactions. Use when you need to send a single prompt and receive a response without maintaining conversation context.\"},{\"slug\":\"GMAIL_DELETE_DRAFT\",\"name\":\"Delete Draft\",\"description\":\"Permanently deletes a specific Gmail draft using its ID with no recovery possible; verify the correct `draft_id` and obtain explicit user confirmation before calling. Ensure the draft exists and the user has necessary permissions for the given `user_id`.\"},{\"slug\":\"GMAIL_DELETE_FILTER\",\"name\":\"Delete Gmail filter\",\"description\":\"Tool to permanently delete a Gmail filter by its ID. Use when you need to remove an existing email filtering rule.\"},{\"slug\":\"GMAIL_DELETE_LABEL\",\"name\":\"Delete label from account (permanent)\",\"description\":\"Permanently DELETES a user-created Gmail label from the account (not from a message). WARNING: This action DELETES the label definition itself, removing it from all messages. System labels (INBOX, SENT, UNREAD, etc.) cannot be deleted. To add/remove labels from specific messages, use GMAIL_ADD_LABEL_TO_EMAIL action instead.\"},{\"slug\":\"GMAIL_DELETE_MESSAGE\",\"name\":\"Delete message\",\"description\":\"Permanently deletes a specific email message by its ID from a Gmail mailbox; for `user_id`, use 'me' for the authenticated user or an email address to which the authenticated user has delegated access.\"},{\"slug\":\"GMAIL_DELETE_THREAD\",\"name\":\"Delete thread\",\"description\":\"Tool to immediately and permanently delete a specified thread and all its messages. This operation cannot be undone. Use threads.trash instead for reversible deletion.\"},{\"slug\":\"GMAIL_FETCH_EMAILS\",\"name\":\"Fetch emails\",\"description\":\"Fetches a list of email messages from a Gmail account, supporting filtering, pagination, and optional full content retrieval. Results are NOT sorted by recency; sort by internalDate client-side. The messages field may be absent or empty (valid no-results state); always null-check before accessing messageId or threadId. Null-check subject and header fields before string operations. For large result sets, prefer ids_only=true or metadata-only listing, then hydrate via GMAIL_FETCH_MESSAGE_BY_MESSAGE_ID.\"},{\"slug\":\"GMAIL_FETCH_MESSAGE_BY_MESSAGE_ID\",\"name\":\"Fetch message by message ID\",\"description\":\"Fetches a specific email message by its ID, provided the `message_id` exists and is accessible to the authenticated `user_id`. Spam/trash messages are excluded unless upstream list/search calls used `include_spam_trash=true`. Use `internalDate` (milliseconds since epoch) rather than header `Date` for recency checks.\"},{\"slug\":\"GMAIL_FETCH_MESSAGE_BY_THREAD_ID\",\"name\":\"Fetch Message by Thread ID\",\"description\":\"Retrieves messages from a Gmail thread using its `thread_id`, where the thread must be accessible by the specified `user_id`. Returns a `messages` array; `thread_id` is not echoed in the response. Message order is not guaranteed — sort by `internalDate` to find oldest/newest. Check `labelIds` per message to filter drafts. Concurrent bulk calls may trigger 403 `userRateLimitExceeded` or 429; cap concurrency ~10 and use exponential backoff.\"},{\"slug\":\"GMAIL_FORWARD_MESSAGE\",\"name\":\"Forward email message\",\"description\":\"Forward an existing Gmail message to specified recipients, preserving original body and attachments. Verify recipients and content before forwarding to avoid unintended exposure. Bulk forwarding may trigger 429/5xx rate limits; keep concurrency to 5–10 and apply backoff. Messages near Gmail's size limits may fail; reconstruct a smaller draft if needed.\"},{\"slug\":\"GMAIL_GET_ATTACHMENT\",\"name\":\"Get Gmail attachment\",\"description\":\"Retrieves a specific attachment by ID from a message in a user's Gmail mailbox, requiring valid message and attachment IDs. Returns the downloaded file with its MIME type and filename. Attachments exceeding ~25 MB may be exposed as Google Drive links — use GOOGLEDRIVE_DOWNLOAD_FILE when a Drive file_id is present instead.\"},{\"slug\":\"GMAIL_GET_AUTO_FORWARDING\",\"name\":\"Get Auto-Forwarding Settings\",\"description\":\"Tool to get the auto-forwarding setting for the specified account. Use when you need to retrieve the current auto-forwarding configuration including enabled status, forwarding email address, and message disposition.\"},{\"slug\":\"GMAIL_GET_CONTACTS\",\"name\":\"Get contacts\",\"description\":\"Fetches contacts (connections) for the authenticated Google account, allowing selection of specific data fields and pagination. Only covers saved contacts and 'Other Contacts'; email-header-only senders are out of scope. Contact records may have sparse data — handle missing fields gracefully. People API shares a per-user QPS quota; HTTP 429 requires exponential backoff (1s, 2s, 4s).\"},{\"slug\":\"GMAIL_GET_DRAFT\",\"name\":\"Get Draft\",\"description\":\"Retrieves a single Gmail draft by its ID. Use this to fetch and inspect draft content before sending via GMAIL_SEND_DRAFT. The format parameter controls the level of detail returned.\"},{\"slug\":\"GMAIL_GET_FILTER\",\"name\":\"Get Gmail filter\",\"description\":\"Tool to retrieve a specific Gmail filter by its ID. Use when you need to inspect the criteria and actions of an existing filter.\"},{\"slug\":\"GMAIL_GET_LABEL\",\"name\":\"Get label details\",\"description\":\"Gets details for a specified Gmail label. Use this to retrieve label information including name, type, visibility settings, message/thread counts, and color.\"},{\"slug\":\"GMAIL_GET_LANGUAGE_SETTINGS\",\"name\":\"Get Language Settings\",\"description\":\"Tool to retrieve the language settings for a Gmail user. Use when you need to determine the display language preference for the authenticated user or a specific Gmail account.\"},{\"slug\":\"GMAIL_GET_PEOPLE\",\"name\":\"Get People\",\"description\":\"Retrieves either a specific person's details (using `resource_name`) or lists 'Other Contacts' (if `other_contacts` is true), with `person_fields` specifying the data to return. Scope is limited to the authenticated user's own contacts and 'Other Contacts' history only.\"},{\"slug\":\"GMAIL_GET_PROFILE\",\"name\":\"Get Profile\",\"description\":\"Retrieves Gmail profile information (email address, aggregate messagesTotal/threadsTotal, historyId) for a user. messagesTotal counts individual emails; threadsTotal counts conversations; neither is per-label — use GMAIL_FETCH_EMAILS with label filters for label-specific counts. The returned historyId seeds incremental sync via GMAIL_LIST_HISTORY; if historyIdTooOld is returned, rescan with GMAIL_FETCH_EMAILS before resuming. Response may be wrapped under a top-level data field; unwrap before reading fields. A successful call confirms mailbox connectivity but not full mailbox access if granted scopes are narrow. Use the returned email address to dynamically identify the authenticated account rather than hard-coding it.\"},{\"slug\":\"GMAIL_GET_VACATION_SETTINGS\",\"name\":\"Get Vacation Settings\",\"description\":\"Tool to retrieve vacation responder settings for a Gmail user. Use when you need to check if out-of-office auto-replies are configured and view their content.\"},{\"slug\":\"GMAIL_IMPORT_MESSAGE\",\"name\":\"Import message\",\"description\":\"Tool to import a message into the user's mailbox with standard email delivery scanning and classification. Use when you need to add an existing email to a Gmail account without sending it through SMTP. This method doesn't perform SPF checks, so it might not work for some spam messages.\"},{\"slug\":\"GMAIL_INSERT_MESSAGE\",\"name\":\"Insert message into mailbox\",\"description\":\"Tool to insert a message into the user's mailbox similar to IMAP APPEND. Use when you need to add an email directly to a mailbox bypassing most scanning and classification. This does not send a message.\"},{\"slug\":\"GMAIL_LIST_CSE_IDENTITIES\",\"name\":\"List CSE identities\",\"description\":\"Tool to list client-side encrypted identities for an authenticated user. Use when you need to retrieve CSE identity configurations including key pair associations.\"},{\"slug\":\"GMAIL_LIST_CSE_KEYPAIRS\",\"name\":\"List CSE key pairs\",\"description\":\"Tool to list client-side encryption key pairs for an authenticated user. Use when you need to retrieve CSE keypair configurations including public keys and enablement states. Supports pagination for large result sets.\"},{\"slug\":\"GMAIL_LIST_DRAFTS\",\"name\":\"List Drafts\",\"description\":\"Retrieves a paginated list of email drafts from a user's Gmail account. Use verbose=true to get full draft details including subject, body, sender, and timestamp. Draft ordering is non-guaranteed; iterate using page_token until it is absent to retrieve all drafts. Newly created drafts may not appear immediately. Rapid calls may trigger 403 userRateLimitExceeded or 429 errors; apply exponential backoff (1s, 2s, 4s) before retrying.\"},{\"slug\":\"GMAIL_LIST_FILTERS\",\"name\":\"List Gmail filters\",\"description\":\"Tool to list all Gmail filters (rules) in the mailbox. Use for security audits to detect malicious filter rules or before creating new filters to avoid duplicates.\"},{\"slug\":\"GMAIL_LIST_FORWARDING_ADDRESSES\",\"name\":\"List forwarding addresses\",\"description\":\"Tool to list all forwarding addresses for the specified Gmail account. Use when you need to retrieve the email addresses that are allowed to be used for forwarding messages.\"},{\"slug\":\"GMAIL_LIST_HISTORY\",\"name\":\"List Gmail history\",\"description\":\"Tool to list Gmail mailbox change history since a known startHistoryId. Use for incremental mailbox syncs. Persist the latest historyId as a checkpoint across sessions; without it, incremental sync is unreliable. An empty history list in the response is valid and means no new changes occurred.\"},{\"slug\":\"GMAIL_LIST_LABELS\",\"name\":\"List Gmail labels\",\"description\":\"Retrieves all system and user-created labels for a Gmail account in a single unpaginated response. Primary use: obtain internal label IDs (e.g., 'Label_123') required by other Gmail tools — display names cannot be used as label identifiers and cause silent failures or errors. System labels (INBOX, UNREAD, SPAM, TRASH, etc.) are case-sensitive and must be used exactly as returned; INBOX, SPAM, and TRASH are read-only and cannot be added/removed via label modification tools. The Gmail search 'label:' operator accepts display names, but label_ids parameters in tools like GMAIL_FETCH_EMAILS require internal IDs from this tool — mixing conventions yields zero results silently. Do not hardcode label IDs across sessions; refresh via this tool on conflict errors.\"},{\"slug\":\"GMAIL_LIST_MESSAGES\",\"name\":\"List Gmail messages (Deprecated)\",\"description\":\"DEPRECATED: Use GMAIL_FETCH_EMAILS instead. Lists the messages in the user's mailbox. Use when you need to retrieve a list of email messages with optional filtering by labels or search query.\"},{\"slug\":\"GMAIL_LIST_SEND_AS\",\"name\":\"List send-as aliases\",\"description\":\"Lists the send-as aliases for a Gmail account, including the primary address and custom 'from' aliases. Use when you need to retrieve available sending addresses for composing emails.\"},{\"slug\":\"GMAIL_LIST_SMIME_INFO\",\"name\":\"List S/MIME configs\",\"description\":\"Lists S/MIME configs for the specified send-as alias. Use when you need to retrieve all S/MIME certificate configurations associated with a specific send-as email address.\"},{\"slug\":\"GMAIL_LIST_THREADS\",\"name\":\"List threads\",\"description\":\"Retrieves a list of email threads from a Gmail account, identified by `user_id` (email address or 'me'), supporting filtering and pagination. Spam and trash are excluded by default unless explicitly targeted via `label:spam` or `label:trash` in the query.\"},{\"slug\":\"GMAIL_MODIFY_THREAD_LABELS\",\"name\":\"Modify thread labels\",\"description\":\"Adds or removes specified existing label IDs from a Gmail thread, affecting all its messages; ensure the thread ID is valid. To modify a single message only, use a message-level tool instead.\"},{\"slug\":\"GMAIL_MOVE_THREAD_TO_TRASH\",\"name\":\"Trash thread\",\"description\":\"Moves the specified thread to the trash. Any messages that belong to the thread are also moved to the trash.\"},{\"slug\":\"GMAIL_MOVE_TO_TRASH\",\"name\":\"Move to Trash\",\"description\":\"Moves an existing, non-deleted email message to the trash for the specified user. Trashed messages are recoverable and still count toward storage quota until purged. Prefer this over GMAIL_BATCH_DELETE_MESSAGES when recovery may be needed. For bulk operations, use GMAIL_BATCH_MODIFY_MESSAGES or GMAIL_BATCH_DELETE_MESSAGES instead of repeated calls to this tool.\"},{\"slug\":\"GMAIL_PATCH_LABEL\",\"name\":\"Patch Label\",\"description\":\"Patches the specified user-created label. System labels (e.g., INBOX, SENT, SPAM) cannot be modified and will be rejected.\"},{\"slug\":\"GMAIL_PATCH_SEND_AS\",\"name\":\"Patch send-as alias\",\"description\":\"Tool to patch the specified send-as alias for a Gmail user. Use when you need to update properties of an existing send-as email address such as display name, reply-to address, signature, default status, or SMTP configuration.\"},{\"slug\":\"GMAIL_REMOVE_LABEL\",\"name\":\"Remove label (Deprecated)\",\"description\":\"DEPRECATED: Use GMAIL_DELETE_LABEL instead. Permanently deletes a specific, existing user-created Gmail label by its ID for a user; cannot delete system labels.\"},{\"slug\":\"GMAIL_REPLY_TO_THREAD\",\"name\":\"Reply to email thread\",\"description\":\"Sends a reply within a specific Gmail thread using the original thread's subject; do not provide a custom subject as it will start a new conversation instead of replying in-thread. Requires a valid `thread_id` and at least one of `recipient_email`, `cc`, or `bcc`. Supports optional file attachments.\"},{\"slug\":\"GMAIL_SEARCH_PEOPLE\",\"name\":\"Search People\",\"description\":\"Searches contacts by matching the query against names, nicknames, emails, phone numbers, and organizations, optionally including 'Other Contacts'. Only searches the authenticated user's contact directory — people existing solely in message headers won't appear; use GMAIL_FETCH_EMAILS for those. Results may be zero or multiple; never auto-select from ambiguous results. Results paginate via next_page_token; follow until empty and deduplicate by email. Many records lack emailAddresses or names even when requested — handle missing keys. Directory/organization policies may suppress entries.\"},{\"slug\":\"GMAIL_SEND_DRAFT\",\"name\":\"Send Draft\",\"description\":\"Sends an existing draft email AS-IS to recipients already defined within the draft. IMPORTANT: This action does NOT accept recipient parameters (to, cc, bcc). The Gmail API's drafts/send endpoint sends drafts to whatever recipients are already set in the draft's To, Cc, and Bcc headers - it cannot add or override recipients. If the draft has no recipients, you must either: 1. Create a new draft with recipients using GMAIL_CREATE_EMAIL_DRAFT, then send it 2. Use GMAIL_SEND_EMAIL to send a new email directly with recipients. Send is immediate and irreversible — confirm recipients and content before calling. No scheduling support; trigger at the desired UTC time externally. Gmail enforces ~25 MB message size limit and daily send caps (~500 recipients/day personal, ~2,000/day Workspace).\"},{\"slug\":\"GMAIL_SEND_EMAIL\",\"name\":\"Send Email\",\"description\":\"Sends an email via Gmail API using the authenticated user's Google profile display name. Sends immediately and is irreversible — confirm recipients, subject, body, and attachments before calling. At least one of 'to' (or 'recipient_email'), 'cc', or 'bcc' must be provided. At least one of subject or body must be provided. Requires `is_html=True` if the body contains HTML. All common file types including PNG, JPG, PDF, MP4, etc. are supported as attachments. Gmail API limits total message size to ~25 MB after base64 encoding. To reply in an existing thread, use GMAIL_REPLY_TO_THREAD instead. No scheduled send support; enforce timing externally.\"},{\"slug\":\"GMAIL_SETTINGS_GET_IMAP\",\"name\":\"Get IMAP Settings\",\"description\":\"Retrieves the IMAP settings for a Gmail user account, including whether IMAP is enabled, auto-expunge behavior, expunge behavior, and maximum folder size.\"},{\"slug\":\"GMAIL_SETTINGS_GET_POP\",\"name\":\"Get POP settings\",\"description\":\"Tool to retrieve POP settings for a Gmail account. Use when you need to check the current POP configuration including access window and message disposition.\"},{\"slug\":\"GMAIL_SETTINGS_SEND_AS_GET\",\"name\":\"Get send-as alias\",\"description\":\"Tool to retrieve a specific send-as alias configuration for a Gmail user. Use when you need to get details about a send-as email address including display name, signature, SMTP settings, and verification status. Fails with HTTP 404 if the specified address is not a member of the send-as collection.\"},{\"slug\":\"GMAIL_STOP_WATCH\",\"name\":\"Stop watch notifications\",\"description\":\"Tool to stop receiving push notifications for a Gmail mailbox. Use when you need to disable watch notifications previously set up via the watch endpoint.\"},{\"slug\":\"GMAIL_UNTRASH_MESSAGE\",\"name\":\"Untrash Message\",\"description\":\"Tool to remove a message from trash in Gmail. Use when you need to restore a previously trashed email message.\"},{\"slug\":\"GMAIL_UNTRASH_THREAD\",\"name\":\"Untrash thread\",\"description\":\"Tool to remove a thread from trash in Gmail. Use when you need to restore a deleted thread and its messages.\"},{\"slug\":\"GMAIL_UPDATE_DRAFT\",\"name\":\"Update draft\",\"description\":\"Updates (replaces) an existing Gmail draft's content in-place by draft ID. This action replaces the entire draft content with the new message - it does not patch individual fields. All fields are optional; if not provided, you should provide complete draft content to avoid data loss.\"},{\"slug\":\"GMAIL_UPDATE_IMAP_SETTINGS\",\"name\":\"Update IMAP settings\",\"description\":\"Tool to update IMAP settings for a Gmail account. Use when you need to modify IMAP configuration such as enabling/disabling IMAP, setting auto-expunge behavior, or configuring folder size limits.\"},{\"slug\":\"GMAIL_UPDATE_LABEL\",\"name\":\"Update Label\",\"description\":\"Tool to update the properties of an existing Gmail label. Use when you need to modify label name, visibility settings, or color.\"},{\"slug\":\"GMAIL_UPDATE_LANGUAGE_SETTINGS\",\"name\":\"Update Language Settings\",\"description\":\"Tool to update the language settings for a Gmail user. Use when you need to change the display language preference for the authenticated user or a specific Gmail account. The returned displayLanguage may differ from the requested value if Gmail selects a close variant.\"},{\"slug\":\"GMAIL_UPDATE_POP_SETTINGS\",\"name\":\"Update POP settings\",\"description\":\"Tool to update POP settings for a Gmail account. Use when you need to configure POP access window or message disposition behavior.\"},{\"slug\":\"GMAIL_UPDATE_SEND_AS\",\"name\":\"Update send-as alias\",\"description\":\"Tool to update a send-as alias for a Gmail user. Use when you need to modify display name, signature, reply-to address, or SMTP settings for a send-as email address. Gmail sanitizes HTML signatures before saving. Addresses other than the primary can only be updated by service accounts with domain-wide authority.\"},{\"slug\":\"GMAIL_UPDATE_USER_ATTRIBUTES_VALUES\",\"name\":\"Update User Attributes Values\",\"description\":\"Update user attribute values for a resource. Use this action to set or update custom attributes for a user within an organization or project. When setting a value for an attribute key that also exists in SAML, the Sanity value will take precedence and shadow the SAML value.\"},{\"slug\":\"GMAIL_UPDATE_VACATION_SETTINGS\",\"name\":\"Update Vacation Settings\",\"description\":\"Tool to update vacation responder settings for a Gmail user. Use when you need to configure out-of-office auto-replies.\"}]},{\"slug\":\"composio\",\"name\":\"Composio\",\"description\":\"Composio enables AI Agents and LLMs to authenticate and integrate with various tools via function calling.\",\"logo\":\"https://logos.composio.dev/api/composio\",\"rank\":1,\"tools\":[{\"slug\":\"COMPOSIO_CHECK_ACTIVE_CONNECTION\",\"name\":\"Check active connection (deprecated)\",\"description\":\"Deprecated: use check active connections instead for bulk operations. check active connection status for a toolkit or specific connected account id. returns connection details if active, or required parameters for establishing connection if none exists. active connections enable agent actions on the toolkit.\"},{\"slug\":\"COMPOSIO_CHECK_ACTIVE_CONNECTIONS\",\"name\":\"Check multiple active connections\",\"description\":\"Check active connection status for multiple toolkits or specific connected account ids. returns connection details if active, or required parameters for establishing connection if none exists. active connections enable agent actions on toolkits.\"},{\"slug\":\"COMPOSIO_CREATE_PLAN\",\"name\":\"Create Plan\",\"description\":\"$1f\"},{\"slug\":\"COMPOSIO_ENABLE_TRIGGER\",\"name\":\"Enable trigger\",\"description\":\"Enable a specific trigger for the authenticated user.\"},{\"slug\":\"COMPOSIO_EXECUTE_TOOL\",\"name\":\"Execute Composio Tool\",\"description\":\"Execute a tool using the composio api.\"},{\"slug\":\"COMPOSIO_GET_DEPENDENCY_GRAPH\",\"name\":\"Get Tool Dependency Graph\",\"description\":\"Get the dependency graph for a given tool, showing related parent tools that might be useful. this action calls the composio labs dependency graph api to retrieve tools that are commonly used together with or before the specified tool. this helps discover related tools and understand common workflows.\"},{\"slug\":\"COMPOSIO_GET_REQUIRED_PARAMETERS\",\"name\":\"Get required parameters for connection\",\"description\":\"Gets the required parameters for connecting to a toolkit via initiate connection. returns the exact parameter names and types needed for initiate connection's parameters field. supports api keys, oauth credentials, connection fields, and hybrid authentication scenarios. if has default credentials is true, you can call initiate connection with empty parameters for seamless oauth flow.\"},{\"slug\":\"COMPOSIO_GET_RESPONSE_SCHEMA\",\"name\":\"Get response schema\",\"description\":\"Retrieves the response schema for a specified composio tool. this action fetches the complete response schema definition for any valid composio tool, returning it as a dictionary that describes the expected response structure.\"},{\"slug\":\"COMPOSIO_INITIATE_CONNECTION\",\"name\":\"Initiate connection\",\"description\":\"Initiate a connection to a toolkit with comprehensive authentication support. supports all authentication scenarios: 1. composio default oauth (no parameters needed) 2. custom oauth (user's client id/client secret) 3. api key/bearer token authentication 4. basic auth (username/password) 5. hybrid scenarios (oauth + connection fields like site name) 6. connection-only fields (subdomain, api key at connection level) 7. no authentication required automatically detects and validates auth config vs connection fields, provides helpful error messages for missing parameters.\"},{\"slug\":\"COMPOSIO_LIST_TOOLKITS\",\"name\":\"List toolkits\",\"description\":\"List all the available toolkits on composio with filtering options.\"},{\"slug\":\"COMPOSIO_LIST_TRIGGERS\",\"name\":\"List triggers\",\"description\":\"List available triggers and their configuration schemas.\"},{\"slug\":\"COMPOSIO_MANAGE_CONNECTIONS\",\"name\":\"Manage connections\",\"description\":\"$20\"},{\"slug\":\"COMPOSIO_MULTI_EXECUTE_TOOL\",\"name\":\"Multi Execute Composio Tools\",\"description\":\"$21\"},{\"slug\":\"COMPOSIO_REMOTE_BASH_TOOL\",\"name\":\"Run bash commands\",\"description\":\"\\n  Execute bash commands in a REMOTE sandbox for file operations, data processing, and system tasks. Essential for handling large tool responses saved to remote files. **Hard 3-minute (180s) execution limit** — break large tasks into smaller commands.\\n  PRIMARY USE CASES:\\n- Process large tool responses saved by COMPOSIO_MULTI_EXECUTE_TOOL to remote sandbox\\n- File system operations, extract specific information from JSON with shell tools like jq, awk, sed, grep, etc.\\n- Commands run from /home/user directory by default\\n    \"},{\"slug\":\"COMPOSIO_REMOTE_WORKBENCH\",\"name\":\"Execute Code remotely in work bench\",\"description\":\"$22\"},{\"slug\":\"COMPOSIO_SEARCH_TOOLS\",\"name\":\"Search Composio Tools\",\"description\":\"$23\"},{\"slug\":\"COMPOSIO_WAIT_FOR_CONNECTION\",\"name\":\"Wait for connection\",\"description\":\"Wait for connections to be established for given toolkits.\"},{\"slug\":\"COMPOSIO_WAIT_FOR_CONNECTIONS\",\"name\":\"Wait for connection\",\"description\":\"\\nWait for user auth to finish. Call ONLY after you have shown the Auth link from COMPOSIO_MANAGE_CONNECTIONS.\\nWait until mode=any/all toolkits reach a terminal state (ACTIVE/FAILED) or timeout.\\n\\nExample Input: { toolkits: [\\\"gmail\\\",\\\"outlook\\\"], mode: \\\"any\\\" }\\n    \"},{\"slug\":\"COMPOSIO_GET_TOOL_SCHEMAS\",\"name\":\"Get Tool Schemas\",\"description\":\"Retrieve input schemas for tools by slug. Returns complete parameter definitions required to execute each tool. Only pass tool slugs returned by COMPOSIO_SEARCH_TOOLS — never guess or fabricate slugs. If unsure of the exact slug, call COMPOSIO_SEARCH_TOOLS first.\"}]},{\"slug\":\"github\",\"name\":\"GitHub\",\"description\":\"GitHub is a code hosting platform for version control and collaboration, offering Git-based repository management, issue tracking, and continuous integration features\",\"logo\":\"https://logos.composio.dev/api/github\",\"rank\":2,\"tools\":[{\"slug\":\"GITHUB_ABORT_REPOSITORY_MIGRATION\",\"name\":\"Abort Repository Migration\",\"description\":\"Tool to abort a repository migration that is queued or in progress. Use when you need to cancel an ongoing migration operation.\"},{\"slug\":\"GITHUB_ACCEPT_REPOSITORY_INVITATION\",\"name\":\"Accept a repository invitation\",\"description\":\"Accepts a PENDING repository invitation that has been issued to the authenticated user.\"},{\"slug\":\"GITHUB_ADD_APP_ACCESS_RESTRICTIONS\",\"name\":\"Add app access restrictions\",\"description\":\"Adds GitHub Apps to the list of apps allowed to push to a protected branch. The branch must already have protection rules with restrictions enabled. This endpoint only works for organization repositories, not personal repositories. Apps must be installed on the repository with 'contents' write permissions.\"},{\"slug\":\"GITHUB_ADD_A_REPOSITORY_COLLABORATOR\",\"name\":\"Add a repository collaborator\",\"description\":\"Adds a GitHub user as a repository collaborator, or updates their permission if already a collaborator; `permission` applies to organization-owned repositories (personal ones default to 'push' and ignore this field), and an invitation may be created or permissions updated directly.\"},{\"slug\":\"GITHUB_ADD_ASSIGNEES_TO_AN_ISSUE\",\"name\":\"Add assignees to an issue\",\"description\":\"Adds assignees to a GitHub issue. This action only adds users - it does not remove existing assignees. Changes are silently ignored if the authenticated user lacks push access to the repository.\"},{\"slug\":\"GITHUB_ADD_EMAIL_ADDRESS_FOR_AUTHENTICATED_USER\",\"name\":\"Add email for auth user\",\"description\":\"Adds one or more email addresses (which will be initially unverified) to the authenticated user's GitHub account; use this to associate new emails, noting an email verified for another account will error, while an existing email for the current user is accepted.\"},{\"slug\":\"GITHUB_ADD_FIELD_TO_USER_PROJECT\",\"name\":\"Add field to user project\",\"description\":\"Tool to add a custom field to a user-owned GitHub Projects V2 project. Use when you need to add fields like status, priority, or custom data to organize project items.\"},{\"slug\":\"GITHUB_ADD_ITEM_TO_USER_PROJECT\",\"name\":\"Add item to user project\",\"description\":\"Tool to add an issue or pull request to a user-owned GitHub project. Use when you need to add existing repository items to a project board.\"},{\"slug\":\"GITHUB_ADD_LABELS_TO_AN_ISSUE\",\"name\":\"Add labels to an issue\",\"description\":\"Adds labels (provided in the request body) to a repository issue; labels that do not already exist are created.\"},{\"slug\":\"GITHUB_ADD_ORG_RUNNER_LABELS\",\"name\":\"Add org runner labels\",\"description\":\"Adds new custom labels to an existing self-hosted runner for an organization; existing labels are not removed, and duplicates are not added.\"},{\"slug\":\"GITHUB_ADD_OR_UPDATE_TEAM_MEMBERSHIP_FOR_USER\",\"name\":\"Add or update team membership for a user\",\"description\":\"Adds a GitHub user to a team or updates their role (member or maintainer), inviting them to the organization if not already a member; idempotent, returning current details if no change is made.\"},{\"slug\":\"GITHUB_ADD_OR_UPDATE_TEAM_PROJECT_PERMISSIONS\",\"name\":\"Add or update team project permissions\",\"description\":\"Adds a classic project to a team or updates the team's permission on it. This endpoint grants or updates permissions for a team on a specific classic project (not Projects V2). The authenticated user must have admin permissions for the project. Both the team and project must belong to the same organization. Requirements: - The project must be a classic project (not GitHub Projects V2) - The authenticated user must have admin permissions on the project - The team and project must be in the same organization - Requires 'admin:org' scope for the authentication token Returns HTTP 204 No Content on success, 403 if project is not an org project, or 404 if the organization, team, or project is not found.\"},{\"slug\":\"GITHUB_ADD_OR_UPDATE_TEAM_REPOSITORY_PERMISSIONS\",\"name\":\"Add or update team repository permissions\",\"description\":\"Sets or updates a team's permission level for a repository within an organization; the team must be a member of the organization.\"},{\"slug\":\"GITHUB_ADD_PROJECT_COLLABORATOR\",\"name\":\"Add project collaborator\",\"description\":\"Adds a specified GitHub user as a collaborator to an existing organization project with a given permission level. Note: This endpoint is for organization projects (classic). You must be an organization owner or a project admin to add a collaborator. Classic projects are being deprecated in favor of the new Projects experience.\"},{\"slug\":\"GITHUB_ADD_REPOSITORY_TO_APP_INSTALLATION\",\"name\":\"Add a repository to an app installation\",\"description\":\"Adds a repository to a GitHub App installation, granting the app access; requires authenticated user to have admin rights for the repository and access to the installation.\"},{\"slug\":\"GITHUB_ADD_REPO_TO_ORG_SECRET_WITH_SELECTED_ACCESS\",\"name\":\"Add repo to org secret with selected access\",\"description\":\"Adds a repository to an existing organization-level GitHub Actions secret that is configured for 'selected' repository access.\"},{\"slug\":\"GITHUB_ADD_REPO_TO_ORG_SECRET_WITH_SELECTED_VISIBILITY\",\"name\":\"Add selected repo to org secret\",\"description\":\"Grants an existing repository access to an existing organization-level Dependabot secret when the secret's visibility is set to 'selected'; the repository must belong to the organization, and the call succeeds without change if access already exists.\"},{\"slug\":\"GITHUB_ADD_RUNNER_LABELS\",\"name\":\"Add runner labels\",\"description\":\"Adds and appends custom labels to a self-hosted repository runner, which must be registered and active.\"},{\"slug\":\"GITHUB_ADD_SELECTED_REPOSITORY_TO_ORGANIZATION_SECRET\",\"name\":\"Add selected repository to an organization secret\",\"description\":\"Adds a repository to an organization secret's access list when the secret's visibility is 'selected'; this operation is idempotent.\"},{\"slug\":\"GITHUB_ADD_SELECTED_REPOSITORY_TO_ORGANIZATION_VARIABLE\",\"name\":\"Add selected repository to an organization variable\",\"description\":\"Grants a repository access to an organization-level GitHub Actions variable, if that variable's visibility is set to 'selected_repositories'.\"},{\"slug\":\"GITHUB_ADD_SELECTED_REPOSITORY_TO_USER_SECRET\",\"name\":\"Add a selected repository to a user secret\",\"description\":\"Grants a specified repository access to an authenticated user's existing Codespaces secret, enabling Codespaces created for that repository to use the secret.\"},{\"slug\":\"GITHUB_ADD_SOCIAL_ACCOUNTS_FOR_AUTHENTICATED_USER\",\"name\":\"Add social accounts for the authenticated user\",\"description\":\"Adds one or more social media links (which must be valid, full URLs for platforms supported by GitHub) to the authenticated user's public GitHub profile.\"},{\"slug\":\"GITHUB_ADD_STATUS_CHECK_CONTEXTS\",\"name\":\"Add status check contexts\",\"description\":\"Adds status check contexts to a protected branch's required status checks. This action appends new status check contexts to the existing list of required status checks for a protected branch. The branch must already have branch protection enabled with status checks configured. Note: The 'contexts' parameter is deprecated by GitHub in favor of 'checks' array. For new implementations, consider using update_status_check_protection with the 'checks' parameter instead.\"},{\"slug\":\"GITHUB_ADD_SUB_ISSUE\",\"name\":\"Add sub-issue to an issue\",\"description\":\"Tool to add a sub-issue to a parent GitHub issue using GraphQL. Use when you need to establish a parent-child relationship between issues. Requires the 'sub_issues' GraphQL feature to be enabled.\"},{\"slug\":\"GITHUB_ADD_TEAM_ACCESS_RESTRICTIONS\",\"name\":\"Add team access restrictions\",\"description\":\"Adds teams to the list of teams with push access to a protected branch. This action grants additional teams push access to a protected branch. Unlike 'Set team access restrictions' (PUT), this action adds to the existing list rather than replacing it entirely. Prerequisites: - The repository must be owned by an organization (not a personal account) - The branch must have protection rules enabled - The branch protection must have restrictions configured - The teams must exist in the organization and have repository access\"},{\"slug\":\"GITHUB_ADD_USER_ACCESS_RESTRICTIONS\",\"name\":\"Add user access restrictions\",\"description\":\"Adds users to the list of people allowed to push to a protected branch in an organization repository. Important notes: - This action only works on organization-owned repositories (not personal repos) - The branch must already have protection rules with restrictions enabled - Users must have write access to the repository to be added - The combined total of users, apps, and teams is limited to 100 items\"},{\"slug\":\"GITHUB_ADD_USERS_TO_CODESPACES_ACCESS_FOR_ORGANIZATION\",\"name\":\"Add users to codespaces access for an organization\",\"description\":\"Adds organization members to the list of users granted Codespaces access billed to the organization. IMPORTANT: This endpoint requires the organization's Codespaces billing access to be set to 'selected_members' mode. If not already configured, use the GITHUB_MANAGE_ACCESS_CONTROL_FOR_ORGANIZATION_CODESPACES action first to set visibility to 'selected_members'.\"},{\"slug\":\"GITHUB_API_ROOT\",\"name\":\"Get GitHub API root\",\"description\":\"Retrieves a map of all top-level GitHub REST API resource URLs and their templates.\"},{\"slug\":\"GITHUB_APPROVE_WORKFLOW_RUN_FOR_FORK_PULL_REQUEST\",\"name\":\"Approve a workflow run for a fork pull request\",\"description\":\"Approves a workflow run from a forked repository's pull request; call this when such a run requires manual approval due to workflow configuration.\"},{\"slug\":\"GITHUB_ASSIGN_ORGANIZATION_ROLE_TO_TEAM\",\"name\":\"Assign an organization role to a team\",\"description\":\"Assigns an existing organization-level role (identified by `role_id`) to a team (identified by `team_slug`) within a GitHub organization (`org`), provided the organization, team, and role already exist.\"},{\"slug\":\"GITHUB_ASSIGN_ORGANIZATION_ROLE_TO_USER\",\"name\":\"Assign an organization role to a user\",\"description\":\"Assigns a specific organization role to a user who is a member or an outside collaborator in a GitHub organization, using a valid role ID.\"},{\"slug\":\"GITHUB_AUTH_USER_DOCKER_CONFLICT_PACKAGES_LIST\",\"name\":\"List Docker Migration Conflicting Packages\",\"description\":\"List Docker packages with migration conflicts for the authenticated user. This endpoint lists all Docker packages owned by the authenticated user that encountered namespace conflicts during the Docker-to-GitHub Container Registry (GHCR) migration. Conflicts occur when a package with the same name exists in both the legacy Docker registry and GHCR. IMPORTANT: The Docker registry for GitHub Packages was deprecated on Feb 24, 2025. This endpoint may return a 400 error with message 'Package migration for docker is no longer supported' as the migration period has ended. In this case, the action returns an informative response instead of failing. Use case: Identifying packages that require manual migration to GHCR. Required scope: read:packages (for OAuth and personal access tokens).\"},{\"slug\":\"GITHUB_BLOCK_USER\",\"name\":\"Block a user\",\"description\":\"Blocks an existing individual GitHub user (not an organization or your own account), preventing them from interacting with your account and repositories.\"},{\"slug\":\"GITHUB_BLOCK_USER_FROM_ORGANIZATION\",\"name\":\"Block a user from an organization\",\"description\":\"Blocks a GitHub user from an organization, preventing their contributions, collaboration, and forking of the organization's repositories. Requires admin or 'Blocking users' organization permission (write access).\"},{\"slug\":\"GITHUB_CANCEL_GITHUB_PAGES_DEPLOYMENT\",\"name\":\"Cancel a GitHub Pages deployment\",\"description\":\"Cancels an existing, ongoing or queued GitHub Pages deployment for a repository using its `pages_deployment_id`.\"},{\"slug\":\"GITHUB_CANCEL_SPONSORSHIP\",\"name\":\"Cancel sponsorship\",\"description\":\"Tool to cancel an active GitHub sponsorship using GraphQL. Use when you need to terminate a sponsorship relationship between a sponsor and a sponsorable entity. Either sponsor ID/login and sponsorable ID/login must be provided.\"},{\"slug\":\"GITHUB_CANCEL_WORKFLOW_RUN\",\"name\":\"Cancel a workflow run\",\"description\":\"Cancels a workflow run in a GitHub repository if it is in a cancellable state (e.g., 'in_progress' or 'queued'). Returns 202 Accepted on success.\"},{\"slug\":\"GITHUB_CHECK_FOLLOWING\",\"name\":\"Check if following user\",\"description\":\"Check if the authenticated user is following a specified person on GitHub. Use this action when you need to verify whether the currently authenticated user follows another GitHub user. The action returns a boolean status and descriptive message.\"},{\"slug\":\"GITHUB_CHECK_IF_GIST_IS_STARRED\",\"name\":\"Check if a gist is starred\",\"description\":\"Checks if a gist is starred by the authenticated user. Returns `is_starred: true` if the gist is starred (HTTP 204), or `is_starred: false` if not starred (HTTP 404). Use this to verify star status before starring/unstarring a gist.\"},{\"slug\":\"GITHUB_CHECK_IF_PULL_REQUEST_HAS_BEEN_MERGED\",\"name\":\"Check if pull request merged\",\"description\":\"Checks if a specified GitHub pull request has been merged, indicated by a 204 HTTP status (merged) or 404 (not merged/found).\"},{\"slug\":\"GITHUB_CHECK_IF_PULL_REQUEST_MERGED\",\"name\":\"Check if pull request merged\",\"description\":\"Checks if a pull request has been merged by querying the GitHub API. Use this action when you need to verify whether a specific pull request has been successfully merged into its target branch. The API returns a 204 status for merged PRs and 404 for unmerged PRs.\"},{\"slug\":\"GITHUB_CHECK_IF_REPO_STARRED_BY_AUTH_USER\",\"name\":\"Check if repo starred by auth user\",\"description\":\"DEPRECATED: Use `GITHUB_CHECK_IF_A_REPOSITORY_IS_STARRED_BY_THE_USER` instead.\"},{\"slug\":\"GITHUB_CHECK_IF_USER_CAN_BE_ASSIGNED\",\"name\":\"Check if a user can be assigned\",\"description\":\"Verifies if a GitHub user can be assigned to issues in a repository; assignability is confirmed by an HTTP 204 (No Content) response, resulting in an empty 'data' field in the response.\"},{\"slug\":\"GITHUB_CHECK_IF_USER_CAN_BE_ASSIGNED_TO_ISSUE\",\"name\":\"Check if a user can be assigned to an issue\",\"description\":\"Checks if a specified GitHub user can be assigned to a given issue within a repository.\"},{\"slug\":\"GITHUB_CHECK_IF_USER_FOLLOWS_ANOTHER_USER\",\"name\":\"Check if a user follows another user\",\"description\":\"Checks if a GitHub user `username` follows `target_user`; returns a 204 HTTP status if true, 404 if not or if users are invalid.\"},{\"slug\":\"GITHUB_CHECK_IF_USER_IS_BLOCKED_BY_AUTHENTICATED_USER\",\"name\":\"Check if a user is blocked by the authenticated user\",\"description\":\"Checks if the specified GitHub user is blocked by the authenticated user; a 204 No Content response indicates the user is blocked, while a 404 Not Found indicates they are not.\"},{\"slug\":\"GITHUB_CHECK_IF_USER_IS_BLOCKED_BY_ORGANIZATION\",\"name\":\"Check if a user is blocked by an organization\",\"description\":\"Checks if a GitHub user is blocked by an organization. Returns is_blocked=True if the user is blocked (HTTP 204), or is_blocked=False if not blocked (HTTP 404). Requires 'Blocking users' organization permission (read access).\"},{\"slug\":\"GITHUB_CHECK_IF_USER_IS_REPOSITORY_COLLABORATOR\",\"name\":\"Check if a user is a repository collaborator\",\"description\":\"Checks if a user is a collaborator on a specified GitHub repository, returning a 204 status if they are, or a 404 status if they are not or if the repository/user does not exist.\"},{\"slug\":\"GITHUB_CHECK_PERSON_FOLLOWED_BY_AUTH_USER\",\"name\":\"Check if person is followed by authenticated user\",\"description\":\"Checks if the authenticated GitHub user follows a target GitHub user. Returns a structured response with is_following=True when following (HTTP 204), or is_following=False when not following (HTTP 404).\"},{\"slug\":\"GITHUB_CHECK_PRIVATE_VULNERABILITY_REPORTING_STATUS\",\"name\":\"Check private vulnerability reporting status\",\"description\":\"Checks if private vulnerability reporting is enabled for the specified repository.\"},{\"slug\":\"GITHUB_CHECK_PUBLIC_ORGANIZATION_MEMBERSHIP_FOR_USER\",\"name\":\"Check public organization membership\",\"description\":\"Tool to check if a user is a public member of an organization. Use when you need to verify public organization membership status.\"},{\"slug\":\"GITHUB_CHECK_REPOSITORY_STARRED\",\"name\":\"Check if repository is starred\",\"description\":\"Check if a repository is starred by the authenticated user. Use this action when you need to verify whether the authenticated user has starred a specific repository. This is useful for confirming star status before performing star/unstar operations or displaying repository status.\"},{\"slug\":\"GITHUB_CHECK_TEAM_PERMISSIONS_FOR_A_PROJECT\",\"name\":\"Check team permissions for a project\",\"description\":\"Checks if a team has 'read', 'write', or 'admin' permissions for an organization's specific classic project, returning the project's details if access is confirmed.\"},{\"slug\":\"GITHUB_CHECK_TEAM_PERMISSIONS_FOR_A_REPOSITORY\",\"name\":\"Check team permissions for a repository\",\"description\":\"Checks a team's permissions for a specific repository within an organization, including permissions inherited from parent teams.\"},{\"slug\":\"GITHUB_CHECK_TOKEN\",\"name\":\"Check a token\",\"description\":\"Checks if a GitHub App or OAuth access_token is valid for the specified client_id and retrieves its details, typically to verify its active status and grants. NOTE: This endpoint requires Basic Authentication using the OAuth App's client_id as username and client_secret as password. The access_token parameter must be an OAuth token issued by the specified OAuth App.\"},{\"slug\":\"GITHUB_CLEAR_PROJECT_V2_ITEM_FIELD_VALUE\",\"name\":\"Clear Project V2 Item Field Value\",\"description\":\"Tool to clear the value of a field for an item in a GitHub Project V2. Use when you need to remove or reset a field value (text, number, date, assignees, labels, single-select, iteration, or milestone fields).\"},{\"slug\":\"GITHUB_CLEAR_REPOSITORY_CACHE_BY_KEY\",\"name\":\"Clear repository cache by key\",\"description\":\"Deletes GitHub Actions caches from a repository matching a specific `key` and an optional Git `ref`, used to manage storage or clear outdated/corrupted caches; the action succeeds even if no matching caches are found to delete.\"},{\"slug\":\"GITHUB_CLEAR_SELF_HOSTED_RUNNER_ORG_LABELS\",\"name\":\"Clear self-hosted runner org labels\",\"description\":\"Removes all custom labels from a self-hosted runner for an organization; default labels (e.g., 'self-hosted', 'linux', 'x64') will remain.\"},{\"slug\":\"GITHUB_CLOSE_ISSUE\",\"name\":\"Close an issue\",\"description\":\"Close a GitHub issue by setting its state to closed. Use this action when you need to mark an issue as resolved or no longer relevant. Optionally specify a reason for closing (completed or not_planned) to provide context.\"},{\"slug\":\"GITHUB_CLOSE_PULL_REQUEST\",\"name\":\"Close a pull request\",\"description\":\"Closes an open pull request without merging it. The pull request state is set to \\\"closed\\\" and it can be reopened later if needed. Use this action when you want to reject or abandon a pull request without merging the proposed changes into the base branch. You must have write access to the repository to close pull requests.\"},{\"slug\":\"GITHUB_COMMIT_MULTIPLE_FILES\",\"name\":\"Commit Multiple Files\",\"description\":\"Tool to atomically create, update, or delete multiple files in a GitHub repository as a single commit. Uses Git Data APIs to avoid SHA mismatch conflicts that occur with the Contents API when multiple files are modified in parallel. Use when you need to make multi-file changes reliably. BRANCH CREATION: When committing to a new branch (e.g., 'fix/my-fix' or 'feature/new-feature'), you MUST provide 'base_branch' (typically 'main' or 'master') to create the branch from. If the branch already exists, base_branch is not needed. This action handles race conditions automatically: if the branch is updated by another commit between fetching the HEAD and updating the reference (resulting in a 422 'not a fast forward' error), the action will retry by refetching the HEAD and rebasing changes. Use max_retries to control this behavior.\"},{\"slug\":\"GITHUB_COMPARE_TWO_COMMITS\",\"name\":\"Compare two commits\",\"description\":\"Compares two commit points (commits, branches, tags, or SHAs) within a repository or across forks, using `BASE...HEAD` or `OWNER:REF...OWNER:REF` format for the `basehead` parameter.\"},{\"slug\":\"GITHUB_CONFIGURE_JIT_RUNNER_FOR_ORG\",\"name\":\"Configure JIT runner for an org\",\"description\":\"Generates a JIT configuration for a GitHub organization's new self-hosted runner to run a single job then unregister; requires admin:org scope and the runner_group_id must exist in the organization.\"},{\"slug\":\"GITHUB_CONFIGURE_OIDC_SUBJECT_CLAIM_TEMPLATE\",\"name\":\"Configure OIDC subject claim template\",\"description\":\"Sets or updates the OIDC subject claim customization template for an existing GitHub organization by specifying which claims (e.g., 'repo', 'actor') form the OIDC token's subject (`sub`). This action customizes which claim keys are included in the OIDC subject claim for the specified organization. It allows for fine-tuning the content of the subject claim based on organizational needs.\"},{\"slug\":\"GITHUB_CONVERT_ORG_MEMBER_TO_OUTSIDE_COLLABORATOR\",\"name\":\"Convert an organization member to outside collaborator\",\"description\":\"Converts an existing organization member, who is not an owner, to an outside collaborator, restricting their access to explicitly granted repositories.\"},{\"slug\":\"GITHUB_CONVERT_PULL_REQUEST_TO_DRAFT\",\"name\":\"Convert Pull Request to Draft\",\"description\":\"Converts an open pull request to draft status, indicating it is not ready for review. Use this action when you need to mark a PR as work-in-progress after it has been opened. Draft pull requests cannot be merged until they are marked as ready for review. This action is useful when additional work is needed before the PR can be reviewed or merged.\"},{\"slug\":\"GITHUB_CREATE_A_BLOB\",\"name\":\"Create a blob\",\"description\":\"Creates a Git blob in a repository, requiring content and encoding ('utf-8' or 'base64'). Requires write access to the repository.\"},{\"slug\":\"GITHUB_CREATE_A_CHECK_RUN\",\"name\":\"Create a check run\",\"description\":\"Creates a new check run for a specific commit in a repository, used by external services to report status, detailed feedback, annotations, and images directly within the GitHub UI. NOTE: This endpoint requires GitHub App authentication - OAuth tokens and personal access tokens cannot create check runs.\"},{\"slug\":\"GITHUB_CREATE_A_CHECK_SUITE\",\"name\":\"Create a check suite\",\"description\":\"Creates a new check suite for a specific commit (`head_sha`) in an original repository (not a fork). IMPORTANT: This endpoint requires a GitHub App installation access token - OAuth tokens and classic personal access tokens cannot use this endpoint. GitHub dispatches a `check_suite` webhook event with the `requested` action upon success.\"},{\"slug\":\"GITHUB_CREATE_A_CODESPACE_FOR_THE_AUTHENTICATED_USER\",\"name\":\"Create a codespace for the authenticated user\",\"description\":\"Creates a GitHub Codespace for the authenticated user, requiring a JSON request body with either `repository_id` (integer) or a `pull_request` object (containing `pull_request_number` (integer) and `repository_id` (integer)). This action allows users to set up a development environment quickly by creating a codespace from a specified repository or pull request.\"},{\"slug\":\"GITHUB_CREATE_A_CODESPACE_FROM_A_PULL_REQUEST\",\"name\":\"Create a codespace from a pull request\",\"description\":\"Creates a GitHub Codespace for an open pull request in a Codespaces-enabled repository, with options to customize its configuration.\"},{\"slug\":\"GITHUB_CREATE_A_CODESPACE_IN_A_REPOSITORY\",\"name\":\"Create a codespace in a repository\",\"description\":\"Creates a GitHub Codespace for the authenticated user in a specified repository, which must be accessible and use a valid `devcontainer.json` if `devcontainer_path` is specified.\"},{\"slug\":\"GITHUB_CREATE_A_COMMIT\",\"name\":\"Create a commit\",\"description\":\"Creates a new commit in a GitHub repository; the `tree` SHA and any `parents` SHAs must already exist in the repository.\"},{\"slug\":\"GITHUB_CREATE_A_COMMIT_COMMENT\",\"name\":\"Create a commit comment\",\"description\":\"Creates a comment on a specific commit, or on a specific line if `path` and `position` are provided.\"},{\"slug\":\"GITHUB_CREATE_A_COMMIT_STATUS\",\"name\":\"Create a commit status\",\"description\":\"Sets a commit's status (e.g., error, failure, pending, success from CI/CD) for a given SHA; max 1000 statuses per SHA/context.\"},{\"slug\":\"GITHUB_CREATE_A_CUSTOM_ORGANIZATION_ROLE\",\"name\":\"Create a custom organization role\",\"description\":\"Creates a custom role with defined permissions within a GitHub organization.\"},{\"slug\":\"GITHUB_CREATE_A_DEPLOY_KEY\",\"name\":\"Create a deploy key\",\"description\":\"Creates a deploy key for a repository; the repository must exist and be accessible, and the provided key must be a valid public SSH key.\"},{\"slug\":\"GITHUB_CREATE_A_DEPLOYMENT\",\"name\":\"Create a deployment\",\"description\":\"Creates a GitHub deployment for an existing repository, targeting a specific ref (branch, tag, or SHA) that must also exist within the repository.\"},{\"slug\":\"GITHUB_CREATE_A_DEPLOYMENT_BRANCH_POLICY\",\"name\":\"Create a deployment branch policy\",\"description\":\"Creates a deployment branch or tag policy for an existing environment in a GitHub repository, using a Ruby File.fnmatch pattern (where `*` doesn't match `/`) to specify which branches or tags are deployable.\"},{\"slug\":\"GITHUB_CREATE_A_DEPLOYMENT_STATUS\",\"name\":\"Create a deployment status\",\"description\":\"Creates a status for an existing deployment, updating its operational state, associated URLs, and description.\"},{\"slug\":\"GITHUB_CREATE_A_DISCUSSION\",\"name\":\"Create a discussion\",\"description\":\"Creates a new discussion post on a specific team's page within an organization.\"},{\"slug\":\"GITHUB_CREATE_A_DISCUSSION_COMMENT\",\"name\":\"Create a discussion comment\",\"description\":\"Creates a new comment on an existing team discussion within a GitHub organization.\"},{\"slug\":\"GITHUB_CREATE_A_FORK\",\"name\":\"Create a fork\",\"description\":\"Creates a fork of an accessible repository, optionally into a specific organization, with a new name, or copying only the default branch.\"},{\"slug\":\"GITHUB_CREATE_A_GIST\",\"name\":\"Create a gist\",\"description\":\"Creates a new gist on GitHub with provided files, an optional description, and public/secret visibility.\"},{\"slug\":\"GITHUB_CREATE_A_GIST_COMMENT\",\"name\":\"Create a gist comment\",\"description\":\"Creates a new comment on a specified GitHub gist.\"},{\"slug\":\"GITHUB_CREATE_A_GITHUB_APP_FROM_A_MANIFEST\",\"name\":\"Create a GitHub App from a manifest\",\"description\":\"Use this action to complete the GitHub App Manifest flow (step 3 of 3) by exchanging the temporary authorization `code` for the app's full configuration, including credentials and private key. The code is provided via redirect URL after creating the app through GitHub's web interface and must be used within 1 hour.\"},{\"slug\":\"GITHUB_CREATE_A_GITHUB_PAGES_DEPLOYMENT\",\"name\":\"Create a github pages deployment\",\"description\":\"Creates a GitHub Pages deployment for a repository using a specified artifact and OIDC token, provided GitHub Pages is enabled and the artifact (containing static assets) is accessible.\"},{\"slug\":\"GITHUB_CREATE_A_GITHUB_PAGES_SITE\",\"name\":\"Create a github pages site\",\"description\":\"Configures or updates GitHub Pages for a repository, setting build type and source; ensure a Pages workflow exists for 'workflow' `build_type`, or `source_branch` exists for 'legacy' or unspecified `build_type`. This action allows users to effectively manage their GitHub Pages site settings, specifying how the site is built and where the source files are located.\"},{\"slug\":\"GITHUB_CREATE_A_LABEL\",\"name\":\"Create a label\",\"description\":\"Creates a new label in a specified GitHub repository, provided the repository exists and the user has write permissions.\"},{\"slug\":\"GITHUB_CREATE_A_MILESTONE\",\"name\":\"Create a milestone\",\"description\":\"Creates a milestone in a GitHub repository for tracking progress on issues or pull requests; requires repository existence and user write permissions.\"},{\"slug\":\"GITHUB_CREATE_AN_AUTOLINK_REFERENCE_FOR_A_REPOSITORY\",\"name\":\"Create an autolink reference for a repository\",\"description\":\"Creates a repository autolink to automatically convert text references (e.g., 'TICKET-123') into hyperlinks, using a unique `key_prefix` and a `url_template` that includes `\u003cnum\u003e`.\"},{\"slug\":\"GITHUB_CREATE_AN_ENVIRONMENT_VARIABLE\",\"name\":\"Create an environment variable\",\"description\":\"Creates an encrypted environment variable for a pre-existing environment within a GitHub repository; will fail if the variable name already exists.\"},{\"slug\":\"GITHUB_CREATE_AN_ISSUE\",\"name\":\"Create an issue\",\"description\":\"Creates a new issue in a GitHub repository, requiring the repository to exist and have issues enabled; specific fields like assignees, milestone, or labels may require push access.\"},{\"slug\":\"GITHUB_CREATE_AN_ISSUE_COMMENT\",\"name\":\"Create an issue comment\",\"description\":\"Creates a new comment on an existing GitHub issue or pull request within the specified repository.\"},{\"slug\":\"GITHUB_CREATE_AN_ORGANIZATION_PROJECT\",\"name\":\"Create an organization project\",\"description\":\"Creates a new classic project board within a specified GitHub organization. Note: This action uses GitHub's Projects (classic) REST API. The classic projects feature may be disabled in some organizations, and GitHub recommends migrating to Projects V2 (accessible via GraphQL API) for new projects. Requirements: - The authenticated user must be an organization member with project creation permissions - Classic projects must be enabled for the organization - Requires 'repo' and 'admin:org' or 'write:org' scopes\"},{\"slug\":\"GITHUB_CREATE_AN_ORGANIZATION_REPOSITORY\",\"name\":\"Create an organization repository\",\"description\":\"Creates a new repository within a specified GitHub organization, with options for detailed configuration including visibility, features, merge strategies, initial commit, and templates.\"},{\"slug\":\"GITHUB_CREATE_AN_ORGANIZATION_VARIABLE\",\"name\":\"Create an organization variable\",\"description\":\"Creates a new, uniquely named GitHub Actions variable for an organization, with configurable repository access visibility (all, private, or selected).\"},{\"slug\":\"GITHUB_CREATE_AN_ORGANIZATION_WEBHOOK\",\"name\":\"Create an organization webhook\",\"description\":\"Creates a webhook for a GitHub organization to deliver event notifications to a configured URL.\"},{\"slug\":\"GITHUB_CREATE_A_PROJECT_CARD\",\"name\":\"Create a project card\",\"description\":\"Creates a project card in a GitHub project column (classic projects only). DEPRECATION NOTICE: GitHub Projects (classic) was sunset on August 23, 2024. This API only works with existing classic project columns. New classic projects cannot be created. Consider using GitHub Projects V2 (GraphQL API) instead. The request body must contain either: - `note`: A text note for the card - OR `content_id` AND `content_type`: To associate an issue or pull request\"},{\"slug\":\"GITHUB_CREATE_A_PROJECT_COLUMN\",\"name\":\"Create a project column (Classic - Deprecated)\",\"description\":\"Creates a new column in a GitHub project (classic). DEPRECATION NOTICE: GitHub Classic Projects (V1) and its REST API were sunset on April 1, 2025. This action will return a 404 error on GitHub.com. For new projects, use GitHub Projects V2 which uses the GraphQL API instead. See: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/\"},{\"slug\":\"GITHUB_CREATE_A_PULL_REQUEST\",\"name\":\"Create a pull request\",\"description\":\"Creates a pull request in a GitHub repository, requiring existing `base` and `head` branches; `title` or `issue` must be provided.\"},{\"slug\":\"GITHUB_CREATE_A_REFERENCE\",\"name\":\"Create a reference\",\"description\":\"Creates a NEW Git reference (branch or tag) in a repository. IMPORTANT: This action ONLY creates NEW references - if the reference already exists, it will fail with a 422 'Reference already exists' error. To update an existing reference, use the 'Update a reference' (GITHUB_UPDATE_A_REFERENCE) action instead. The repository must not be empty prior to this operation.\"},{\"slug\":\"GITHUB_CREATE_A_REGISTRATION_TOKEN_FOR_AN_ORGANIZATION\",\"name\":\"Create a registration token for an organization\",\"description\":\"Generates a temporary (one-hour) registration token to add a new self-hosted runner to an organization for GitHub Actions.\"},{\"slug\":\"GITHUB_CREATE_A_REGISTRATION_TOKEN_FOR_A_REPOSITORY\",\"name\":\"Create a registration token for a repository\",\"description\":\"Generates a time-limited token required to register a new self-hosted runner with a specific repository.\"},{\"slug\":\"GITHUB_CREATE_A_RELEASE\",\"name\":\"Create a release\",\"description\":\"Creates a release in a GitHub repository for a specified tag; the tag must be unique for published releases, and if a `discussion_category_name` is given, it must already exist.\"},{\"slug\":\"GITHUB_CREATE_A_REMOVE_TOKEN_FOR_AN_ORGANIZATION\",\"name\":\"Create a remove token for an organization\",\"description\":\"Generates a token, valid for one hour, to authenticate removing a self-hosted runner from an organization.\"},{\"slug\":\"GITHUB_CREATE_A_REMOVE_TOKEN_FOR_A_REPOSITORY\",\"name\":\"Create a remove token for a repository\",\"description\":\"Generates a temporary (one-hour validity) token required to unregister and remove a self-hosted runner from a repository.\"},{\"slug\":\"GITHUB_CREATE_A_REPLY_FOR_A_REVIEW_COMMENT\",\"name\":\"Create a reply for a review comment\",\"description\":\"Posts a reply to a specific review comment on a GitHub pull request, requiring the repository, pull request, and original comment to exist, and a non-empty reply body.\"},{\"slug\":\"GITHUB_CREATE_A_REPOSITORY_DISPATCH_EVENT\",\"name\":\"Create a repository dispatch event\",\"description\":\"Triggers a GitHub Actions workflow or a webhook on a repository by creating a repository dispatch event, allowing programmatic triggering of workflows based on events outside of GitHub.\"},{\"slug\":\"GITHUB_CREATE_A_REPOSITORY_FOR_THE_AUTHENTICATED_USER\",\"name\":\"Create a repository for the authenticated user\",\"description\":\"Creates a new repository for the authenticated user, optionally within an organization if `team_id` is specified.\"},{\"slug\":\"GITHUB_CREATE_A_REPOSITORY_FROM_AN_UNPUBLISHED_CODESPACE\",\"name\":\"Create a repository from an unpublished codespace\",\"description\":\"Publishes the specified codespace to a new repository, using the codespace's current state as the initial commit.\"},{\"slug\":\"GITHUB_CREATE_A_REPOSITORY_PROJECT\",\"name\":\"Create a repository project\",\"description\":\"Creates a new GitHub Projects V2 project board linked to a specified repository. Note: This action uses GitHub's Projects V2 GraphQL API. The legacy Projects V1 REST API has been sunset by GitHub. The project is owned by the repository owner (user or organization) and linked to the specified repository.\"},{\"slug\":\"GITHUB_CREATE_A_REPOSITORY_RULESET\",\"name\":\"Create a repository ruleset\",\"description\":\"Creates a uniquely named ruleset for a repository, defining rules for branches or tags with specified enforcement, conditions, and bypass actors.\"},{\"slug\":\"GITHUB_CREATE_A_REPOSITORY_USING_A_TEMPLATE\",\"name\":\"Create a repository using a template\",\"description\":\"Creates a new repository from an existing template repository; the authenticated user must have access to the template and, if creating in an organization, repository creation permissions within it.\"},{\"slug\":\"GITHUB_CREATE_A_REPOSITORY_VARIABLE\",\"name\":\"Create a repository variable\",\"description\":\"Creates a new, unencrypted variable in a repository for GitHub Actions workflows; fails if a variable with the same name already exists.\"},{\"slug\":\"GITHUB_CREATE_A_REPOSITORY_WEBHOOK\",\"name\":\"Create a repository webhook\",\"description\":\"Creates a webhook for a specified repository; requires admin permissions on the repository.\"},{\"slug\":\"GITHUB_CREATE_A_REVIEW_COMMENT_FOR_A_PULL_REQUEST\",\"name\":\"Create a review comment for a pull request\",\"description\":\"Creates a review comment on a pull request's diff, targeting a specific line, range of lines, an entire file, or replying to an existing comment.\"},{\"slug\":\"GITHUB_CREATE_A_REVIEW_FOR_A_PULL_REQUEST\",\"name\":\"Create a review for a pull request\",\"description\":\"Creates a pull request review, allowing approval, change requests, or comments; `body` is required if `event` is `REQUEST_CHANGES` or `COMMENT`, and omitting `event` makes the review `PENDING`.\"},{\"slug\":\"GITHUB_CREATE_A_SCOPED_ACCESS_TOKEN\",\"name\":\"Create a scoped access token\",\"description\":\"Exchanges a user-to-server token for a new, fine-grained scoped access token for a GitHub App, requiring `client_id`, `access_token`, either `target` or `target_id`, and at least one permission; for repository-specific scoping, provide either `repositories` (names) or `repository_ids` (IDs), but not both.\"},{\"slug\":\"GITHUB_CREATE_A_SNAPSHOT_OF_DEPENDENCIES_FOR_A_REPOSITORY\",\"name\":\"Create a dependency snapshot\",\"description\":\"Creates a snapshot of a repository's dependencies to populate the GitHub dependency graph and enable security alerts; `sha` must be a 40-character commit ID, `ref` a fully qualified Git reference (e.g., `refs/heads/main`), and `scanned` an ISO 8601 timestamp.\"},{\"slug\":\"GITHUB_CREATE_A_TAG_OBJECT\",\"name\":\"Create a tag object\",\"description\":\"Creates an annotated Git tag object in a repository, pointing to an existing Git object (commit, tree, or blob) defined by its SHA and ensuring the `type` field correctly specifies the object's type.\"},{\"slug\":\"GITHUB_CREATE_A_TAG_PROTECTION_STATE_FOR_A_REPOSITORY\",\"name\":\"Create a tag protection state for a repository\",\"description\":\"DEPRECATED: This API was sunset on August 30, 2024. Use GITHUB_CREATE_A_REPOSITORY_RULESET instead to create tag protection rules via repository rulesets.\"},{\"slug\":\"GITHUB_CREATE_A_TEAM\",\"name\":\"Create a team\",\"description\":\"Creates a new team in an organization, optionally with maintainers, repositories, specific privacy, notification settings, or a parent team; if `parent_team_id` is given, `privacy` must be 'closed'.\"},{\"slug\":\"GITHUB_CREATE_A_TEMPORARY_PRIVATE_FORK\",\"name\":\"Create a temporary private fork\",\"description\":\"Creates a temporary private fork of the specified repository to address a security vulnerability, linking the fork to a GHSA ID that must be specifically associated with this repository; the fork may take up to 5 minutes to become accessible.\"},{\"slug\":\"GITHUB_CREATE_A_TREE\",\"name\":\"Create a tree\",\"description\":\"Creates a new Git tree object in a repository, defining file/directory structure by specifying tree entries, optionally building on a `base_tree` SHA; all provided SHAs must be valid.\"},{\"slug\":\"GITHUB_CREATE_A_USER_PROJECT\",\"name\":\"Create a user project\",\"description\":\"Creates a new GitHub Projects V2 project board for the authenticated user to organize and track issues, pull requests, and notes. Note: This action uses GitHub's Projects V2 GraphQL API. The legacy Projects V1 REST API has been sunset by GitHub.\"},{\"slug\":\"GITHUB_CREATE_A_WORKFLOW_DISPATCH_EVENT\",\"name\":\"Create a workflow dispatch event\",\"description\":\"Manually triggers a GitHub Actions workflow identified by `workflow_id` at a given `ref`, if the workflow is configured to accept `workflow_dispatch` events.\"},{\"slug\":\"GITHUB_CREATE_BRANCH\",\"name\":\"Create a branch\",\"description\":\"Creates a new branch in a GitHub repository pointing to a specified commit. Use this action when you need to create a new branch from an existing commit SHA. IMPORTANT: This action only creates NEW branches. If the branch already exists, it will fail with a 422 'Reference already exists' error. The repository must not be empty (must have at least one commit) before creating a branch.\"},{\"slug\":\"GITHUB_CREATE_COMMIT_SIGNATURE_PROTECTION\",\"name\":\"Create commit signature protection\",\"description\":\"Enables commit signature protection for a specified branch, requiring all new commits to be signed.\"},{\"slug\":\"GITHUB_CREATE_DEPLOYMENT_PROTECTION_RULE\",\"name\":\"Create a custom deployment protection rule on an environment\",\"description\":\"Enables a custom deployment protection rule for an existing environment in a repository by linking a configured GitHub App (via `integration_id`) to control deployments.\"},{\"slug\":\"GITHUB_CREATE_DRAFT_ITEM_FOR_USER_PROJECT\",\"name\":\"Create draft item for user project\",\"description\":\"Creates a draft issue item in a user-owned GitHub ProjectsV2. Use when you need to add a new draft item to track ideas or tasks in a user's project.\"},{\"slug\":\"GITHUB_CREATE_INFERENCE_CHAT_COMPLETIONS\",\"name\":\"Create inference chat completions\",\"description\":\"Tool to create chat completions using GitHub Models inference API. Use when you need to generate AI-powered text responses using models like GPT-4, Claude, or Llama through GitHub's inference endpoint.\"},{\"slug\":\"GITHUB_CREATE_INFERENCE_EMBEDDINGS\",\"name\":\"Create inference embeddings\",\"description\":\"Tool to create inference embeddings using GitHub's AI models. Use when you need to convert text into vector representations for similarity search, clustering, or other ML tasks.\"},{\"slug\":\"GITHUB_CREATE_ISSUE_TYPE\",\"name\":\"Create issue type\",\"description\":\"Create a new issue type for a GitHub organization. Requires the authenticated user to be an organization administrator. OAuth tokens need admin:org scope.\"},{\"slug\":\"GITHUB_CREATE_JIT_RUNNER_CONFIG\",\"name\":\"Create JIT runner config for repo\",\"description\":\"Generates a temporary Just-In-Time (JIT) configuration for a new self-hosted GitHub Actions runner for a repository; any specified non-default `runner_group_id` must be an existing runner group accessible by the repository.\"},{\"slug\":\"GITHUB_CREATE_OR_UPDATE_AN_ENVIRONMENT\",\"name\":\"Create or update an environment\",\"description\":\"Creates a new environment or updates an existing one in a GitHub repository, allowing configuration of deployment protection rules such as wait timers and reviewers; ensure `environment_name` is URL-encoded if it contains special characters.\"},{\"slug\":\"GITHUB_CREATE_OR_UPDATE_AN_ENVIRONMENT_SECRET\",\"name\":\"Create or update an environment secret\",\"description\":\"Creates or updates an environment secret with an `encrypted_value` that was encrypted using the public key identified by `key_id` for the specified environment.\"},{\"slug\":\"GITHUB_CREATE_OR_UPDATE_AN_ORGANIZATION_SECRET\",\"name\":\"Create or update an organization secret\",\"description\":\"Creates or updates an organization secret for GitHub Actions, requiring its value to be pre-encrypted via LibSodium using the organization's public key.\"},{\"slug\":\"GITHUB_CREATE_OR_UPDATE_A_REPOSITORY_SECRET\",\"name\":\"Create or update a repository secret\",\"description\":\"Creates or updates a GitHub Actions secret within a specific repository; use `encrypted_value` and `key_id` to set or change its value.\"},{\"slug\":\"GITHUB_CREATE_OR_UPDATE_A_SECRET_FOR_THE_AUTHENTICATED_USER\",\"name\":\"Create or update a secret for the authenticated user\",\"description\":\"Creates or updates a Codespaces secret for the authenticated user; `encrypted_value` must be encrypted with the public key (ID: `key_id`) from GitHub's 'Get public key for the authenticated user' endpoint.\"},{\"slug\":\"GITHUB_CREATE_OR_UPDATE_CUSTOM_PROPERTIES_FOR_AN_ORG\",\"name\":\"Create or update custom properties for an organization\",\"description\":\"Creates new custom property schemas or updates existing ones in bulk for a specified organization; each property definition must include `property_name` and `value_type`.\"},{\"slug\":\"GITHUB_CREATE_OR_UPDATE_CUSTOM_PROPERTY_ORG\",\"name\":\"Create or update a custom property for an organization\",\"description\":\"Creates a new custom property (name must be unique for creation) or updates an existing one for an organization to define metadata for its repositories.\"},{\"slug\":\"GITHUB_CREATE_OR_UPDATE_FILE_CONTENTS\",\"name\":\"Create or update file contents\",\"description\":\"Creates a new file or updates an existing file in a GitHub repository; SHA can be provided to validate file updates, automatically fetched if not provided.\"},{\"slug\":\"GITHUB_CREATE_OR_UPDATE_GITHUB_PAGES_SITE\",\"name\":\"Create or Update GitHub Pages Site\",\"description\":\"Tool to enable or update GitHub Pages configuration for a repository. Use when setting up GitHub Pages for static site deployment or modifying Pages settings like custom domains and HTTPS enforcement.\"},{\"slug\":\"GITHUB_CREATE_OR_UPDATE_REPO_SECRET_WITH_ENCRYPTED_VALUE\",\"name\":\"Create or update repo secret with encrypted value\",\"description\":\"Creates or updates a Dependabot secret in a repository using an `encrypted_value` (pre-encrypted with LibSodium using the repository's Dependabot public key) and its corresponding `key_id`. This action allows you to securely manage secrets for a given repository, ensuring that sensitive data remains protected during the update process. By providing the encrypted value alongside the key ID, you can seamlessly maintain the necessary credentials for your repository's operations.\"},{\"slug\":\"GITHUB_CREATE_REACTION_FOR_A_COMMIT_COMMENT\",\"name\":\"Create reaction for a commit comment\",\"description\":\"Creates an emoji reaction for a commit comment; if the user has already reacted with the same content, details of the existing reaction are returned.\"},{\"slug\":\"GITHUB_CREATE_REACTION_FOR_AN_ISSUE\",\"name\":\"Create reaction for an issue\",\"description\":\"Creates a reaction for a specified issue within a GitHub repository.\"},{\"slug\":\"GITHUB_CREATE_REACTION_FOR_AN_ISSUE_COMMENT\",\"name\":\"Create reaction for an issue comment\",\"description\":\"Creates a reaction for a specific comment on an issue within a GitHub repository.\"},{\"slug\":\"GITHUB_CREATE_REACTION_FOR_A_PULL_REQUEST_REVIEW_COMMENT\",\"name\":\"Create reaction for a pull request review comment\",\"description\":\"Adds a specified reaction to a pull request review comment within a GitHub repository.\"},{\"slug\":\"GITHUB_CREATE_REACTION_FOR_A_RELEASE\",\"name\":\"Create reaction for a release\",\"description\":\"Creates an emoji reaction for a specific, existing release in a GitHub repository.\"},{\"slug\":\"GITHUB_CREATE_REACTION_FOR_A_TEAM_DISCUSSION\",\"name\":\"Create reaction for a team discussion\",\"description\":\"Creates a reaction for a team discussion within a GitHub organization.\"},{\"slug\":\"GITHUB_CREATE_REACTION_FOR_A_TEAM_DISCUSSION_COMMENT\",\"name\":\"Create reaction for a team discussion comment\",\"description\":\"Adds a reaction to a team discussion comment, requiring the specified organization, team, discussion, and comment to exist.\"},{\"slug\":\"GITHUB_CREATE_REPOSITORY\",\"name\":\"Create repository\",\"description\":\"Creates a new repository for the authenticated user. Use this action when you need to create a new GitHub repository under the authenticated user's account. The repository name must be unique for the user, and various settings can be configured such as visibility (public/private), enabled features (issues, wiki, projects), and merge options.\"},{\"slug\":\"GITHUB_CREATE_SPONSORSHIP\",\"name\":\"Create sponsorship\",\"description\":\"Tool to start a new GitHub sponsorship or reactivate a past sponsorship using GraphQL. Use when you need to sponsor a maintainer through GitHub Sponsors with a specified amount and privacy level.\"},{\"slug\":\"GITHUB_CREATE_SPONSORS_TIER\",\"name\":\"Create Sponsors Tier\",\"description\":\"Tool to create a new payment tier for your GitHub Sponsors profile using GraphQL. Use when you need to add a new sponsorship tier with a specific monthly price and description. The amount is specified in dollars and will be converted to cents automatically.\"},{\"slug\":\"GITHUB_CREATE_UPDATE_ORG_SECRET_WITH_LIB_SODIUM\",\"name\":\"Create or Update Organization Secret with LibSodium\",\"description\":\"Creates or updates a Dependabot organization secret, requiring the secret value to be pre-encrypted with LibSodium using the organization's public key obtained from the 'Get an organization public key' endpoint.\"},{\"slug\":\"GITHUB_CREATE_USER_LIST\",\"name\":\"Create user list\",\"description\":\"Tool to create a new user list on GitHub. Use when you need to organize and group GitHub users for easier tracking and management.\"},{\"slug\":\"GITHUB_CREATE_VIEW_FOR_USER_PROJECT\",\"name\":\"Create view for user project\",\"description\":\"Tool to create a new view in a user-owned GitHub project (Projects V2). Use when you need to add a customized view with specific layout, filters, and visible fields to organize project items. Note: This action works with GitHub Projects V2. The view can be configured with different layouts (table, board, roadmap) and optional filters. The visible_fields parameter is not applicable to roadmap layouts.\"},{\"slug\":\"GITHUB_DECLINE_A_REPOSITORY_INVITATION\",\"name\":\"Decline a repository invitation\",\"description\":\"Declines a specific, pending repository invitation for the authenticated user, identified by its `invitation_id`.\"},{\"slug\":\"GITHUB_DELETE_ACCESS_RESTRICTIONS\",\"name\":\"Delete access restrictions\",\"description\":\"Removes all user, team, and app-based access restrictions from a protected branch.\"},{\"slug\":\"GITHUB_DELETE_ADMIN_BRANCH_PROTECTION\",\"name\":\"Delete admin branch protection\",\"description\":\"Removes admin enforcement from a protected branch (branch name cannot contain wildcard characters) in a repository.\"},{\"slug\":\"GITHUB_DELETE_A_FILE\",\"name\":\"Delete a file\",\"description\":\"Deletes a file by path from a GitHub repository. The file's blob SHA is automatically fetched if not provided.\"},{\"slug\":\"GITHUB_DELETE_A_PACKAGE_VERSION_FOR_THE_AUTHENTICATED_USER\",\"name\":\"Delete a package version for the authenticated user\",\"description\":\"Deletes an existing package version associated with the authenticated user.\"},{\"slug\":\"GITHUB_DELETE_APP_AUTHORIZATION\",\"name\":\"Delete an app authorization\",\"description\":\"Deletes an OAuth application grant for a user, which revokes ALL OAuth tokens and their associated authorizations for the application. This endpoint is only accessible to OAuth App owners and requires Basic Authentication using the OAuth App's client_id and client_secret.\"},{\"slug\":\"GITHUB_DELETE_APP_TOKEN\",\"name\":\"Delete an app token\",\"description\":\"Revokes a single OAuth access token for an OAuth App or GitHub App with OAuth authorization. IMPORTANT: This endpoint requires Basic Authentication using the OAuth App's client_id as username and client_secret as password. It CANNOT be called with personal access tokens, GitHub App installation tokens, or any other token type. You must be the OAuth App owner to use this endpoint.\"},{\"slug\":\"GITHUB_DELETE_A_REFERENCE\",\"name\":\"Delete a reference\",\"description\":\"Deletes a Git reference from a repository; 'ref' must be fully qualified (e.g., 'refs/heads/branch' or 'refs/tags/tag').\"},{\"slug\":\"GITHUB_DELETE_A_RELEASE\",\"name\":\"Delete a release\",\"description\":\"Permanently deletes a specific release, its assets, and potentially its associated Git tag from a repository.\"},{\"slug\":\"GITHUB_DELETE_A_RELEASE_ASSET\",\"name\":\"Delete a release asset\",\"description\":\"Deletes a specific release asset from a GitHub repository; this action is idempotent.\"},{\"slug\":\"GITHUB_DELETE_A_RELEASE_REACTION\",\"name\":\"Delete a release reaction\",\"description\":\"Deletes a reaction from a GitHub release, provided the repository, release, and reaction exist.\"},{\"slug\":\"GITHUB_DELETE_A_REPOSITORY\",\"name\":\"Delete a repository\",\"description\":\"Permanently deletes the specified repository; this is a destructive, irreversible action that requires admin privileges for the repository.\"},{\"slug\":\"GITHUB_DELETE_A_REPOSITORY_INVITATION\",\"name\":\"Delete a repository invitation\",\"description\":\"Deletes an active repository invitation, permanently revoking a user's access to collaborate on the specified repository.\"},{\"slug\":\"GITHUB_DELETE_A_REPOSITORY_RULESET\",\"name\":\"Delete a repository ruleset\",\"description\":\"Permanently deletes a repository ruleset.\"},{\"slug\":\"GITHUB_DELETE_A_REPOSITORY_SECRET\",\"name\":\"Delete a repository secret\",\"description\":\"Deletes a named GitHub Actions secret from a specified repository; this operation is destructive and idempotent, and requires the repository to exist.\"},{\"slug\":\"GITHUB_DELETE_A_REPOSITORY_SUBSCRIPTION\",\"name\":\"Delete a repository subscription\",\"description\":\"Deletes the authenticated user's subscription to a specified repository if it exists, effectively 'unwatching' it.\"},{\"slug\":\"GITHUB_DELETE_A_REPOSITORY_VARIABLE\",\"name\":\"Delete a repository variable\",\"description\":\"Deletes a named variable (e.g., for GitHub Actions workflows) from a repository; the repository and the variable must already exist.\"},{\"slug\":\"GITHUB_DELETE_A_REPOSITORY_WEBHOOK\",\"name\":\"Delete a repository webhook\",\"description\":\"Deletes a specific webhook from a repository.\"},{\"slug\":\"GITHUB_DELETE_A_REVIEW_COMMENT_FOR_A_PULL_REQUEST\",\"name\":\"Delete a review comment for a pull request\",\"description\":\"Deletes a specific pull request review comment.\"},{\"slug\":\"GITHUB_DELETE_ARTIFACT\",\"name\":\"Delete an artifact\",\"description\":\"Deletes a GitHub artifact by its ID within a repository, typically resulting in an empty response (HTTP 204 No Content) on success.\"},{\"slug\":\"GITHUB_DELETE_A_SECRET_FOR_THE_AUTHENTICATED_USER\",\"name\":\"Delete a secret for the authenticated user\",\"description\":\"Deletes an existing Codespaces secret for the authenticated user by `secret_name`. This is a destructive and irreversible operation. Returns 404 if the secret does not exist.\"},{\"slug\":\"GITHUB_DELETE_A_SELF_HOSTED_RUNNER_FROM_AN_ORGANIZATION\",\"name\":\"Delete a self hosted runner from an organization\",\"description\":\"Forces the removal of a self-hosted runner from a GitHub organization. This endpoint can be used to completely remove the runner when the machine you were using no longer exists. The runner will be immediately disconnected from GitHub Actions. Requires admin:org scope and organization admin access. Returns 204 No Content on successful deletion.\"},{\"slug\":\"GITHUB_DELETE_A_SELF_HOSTED_RUNNER_FROM_A_REPOSITORY\",\"name\":\"Delete a self hosted runner from a repository\",\"description\":\"Removes a specific self-hosted runner (by `runner_id`) from a repository, if registered there; this is idempotent.\"},{\"slug\":\"GITHUB_DELETE_A_TAG_PROTECTION_STATE_FOR_A_REPOSITORY\",\"name\":\"Delete a tag protection state for a repository\",\"description\":\"DEPRECATED: This API was sunset on August 30, 2024. Use GITHUB_DELETE_A_REPOSITORY_RULESET instead to manage tag protection rules via repository rulesets.\"},{\"slug\":\"GITHUB_DELETE_A_TEAM\",\"name\":\"Delete a team\",\"description\":\"Deletes a team (and any child teams) from an organization.\"},{\"slug\":\"GITHUB_DELETE_A_THREAD_SUBSCRIPTION\",\"name\":\"Delete a thread subscription\",\"description\":\"Call this to mute a specific notification thread by deleting the user's subscription; notifications may still occur if the user is @mentioned, comments, or due to repository watch settings.\"},{\"slug\":\"GITHUB_DELETE_AUTOLINK_REFERENCE\",\"name\":\"Delete an autolink reference from a repository\",\"description\":\"Deletes a specific autolink reference (which automatically links external resource IDs like JIRA-123 to URLs) from the specified repository.\"},{\"slug\":\"GITHUB_DELETE_A_WORKFLOW_RUN\",\"name\":\"Delete a workflow run\",\"description\":\"Deletes a specific workflow run from a repository.\"},{\"slug\":\"GITHUB_DELETE_BRANCH_PROTECTION\",\"name\":\"Delete branch protection\",\"description\":\"Removes all protection rules from a specific branch in a GitHub repository; the branch must currently have protection rules enabled.\"},{\"slug\":\"GITHUB_DELETE_CODE_SCANNING_ANALYSIS\",\"name\":\"Delete a code scanning analysis from a repository\",\"description\":\"Deletes a specific code scanning analysis by its ID from a repository; `confirm_delete` must be `true` if it's the last analysis of its type for a given tool and reference to prevent data loss.\"},{\"slug\":\"GITHUB_DELETE_CODESPACE\",\"name\":\"Delete a codespace for the authenticated user\",\"description\":\"Deletes a specific codespace owned by the authenticated user; this is a destructive action and the codespace must exist.\"},{\"slug\":\"GITHUB_DELETE_COMMIT_COMMENT\",\"name\":\"Delete a commit comment\",\"description\":\"Deletes a specific commit comment, identified by its `comment_id`, from the specified repository; the comment must exist.\"},{\"slug\":\"GITHUB_DELETE_COMMIT_COMMENT_REACTION\",\"name\":\"Delete a commit comment reaction\",\"description\":\"Deletes a reaction from a commit comment in a GitHub repository.\"},{\"slug\":\"GITHUB_DELETE_COMMIT_SIGNATURE_PROTECTION\",\"name\":\"Delete commit signature protection\",\"description\":\"Disables GPG commit signature protection for a specific branch in a GitHub repository, meaning commits pushed to this branch no longer require GPG signing.\"},{\"slug\":\"GITHUB_DELETE_CUSTOM_ORGANIZATION_ROLE\",\"name\":\"Delete a custom organization role\",\"description\":\"Deletes a custom organization role (which should not be actively assigned) by its ID; a 204 No Content response indicates success.\"},{\"slug\":\"GITHUB_DELETE_DEPENDEBOT_SECRET_BY_NAME\",\"name\":\"Delete dependabot secret by name\",\"description\":\"Deletes a specific Dependabot secret, identified by its name, from a given repository if both the repository and secret exist.\"},{\"slug\":\"GITHUB_DELETE_DEPLOY_KEY\",\"name\":\"Delete a deploy key\",\"description\":\"Deletes a specific deploy key from a repository; to change a key's properties or access scope, the existing key must be deleted and a new one created.\"},{\"slug\":\"GITHUB_DELETE_DEPLOYMENT\",\"name\":\"Delete a deployment\",\"description\":\"Permanently deletes a specified *inactive* deployment from a repository.\"},{\"slug\":\"GITHUB_DELETE_DEPLOYMENT_BRANCH_POLICY\",\"name\":\"Delete a deployment branch policy\",\"description\":\"Deletes a specific deployment branch or tag policy, identified by its ID, from a given environment within a repository.\"},{\"slug\":\"GITHUB_DELETE_DISCUSSION\",\"name\":\"Delete a discussion\",\"description\":\"Deletes a specific team discussion, identified by its number, from an organization's team.\"},{\"slug\":\"GITHUB_DELETE_DISCUSSION_COMMENT\",\"name\":\"Delete a discussion comment\",\"description\":\"Deletes a specific comment from an existing team discussion within an organization, provided the specified organization, team, discussion, and comment all exist.\"},{\"slug\":\"GITHUB_DELETE_EMAIL_ADDRESS\",\"name\":\"Delete authenticated user email address\",\"description\":\"Sends an empty request body to `DELETE /user/emails` to attempt deletion of user email addresses; the API typically requires specific emails, so outcome may vary.\"}]},{\"slug\":\"googlecalendar\",\"name\":\"Google Calendar\",\"description\":\"Google Calendar is a time management tool providing scheduling features, event reminders, and integration with email and other apps for streamlined organization\",\"logo\":\"https://logos.composio.dev/api/googlecalendar\",\"rank\":3,\"tools\":[{\"slug\":\"GOOGLECALENDAR_ACL_DELETE\",\"name\":\"Delete ACL Rule\",\"description\":\"Deletes an access control rule from a Google Calendar. Use when you need to remove sharing permissions for a user, group, or domain.\"},{\"slug\":\"GOOGLECALENDAR_ACL_GET\",\"name\":\"Get ACL Rule\",\"description\":\"Retrieves a specific access control rule for a calendar. Use when you need to check permissions for a specific user, group, or domain.\"},{\"slug\":\"GOOGLECALENDAR_ACL_INSERT\",\"name\":\"Create ACL Rule\",\"description\":\"Creates an access control rule for a calendar. Use when you need to grant sharing permissions to a user, group, or domain.\"},{\"slug\":\"GOOGLECALENDAR_ACL_LIST\",\"name\":\"List ACL Rules\",\"description\":\"Retrieves the list of access control rules (ACLs) for a specified calendar, providing the necessary 'rule_id' values required for updating specific ACL rules.\"},{\"slug\":\"GOOGLECALENDAR_ACL_PATCH\",\"name\":\"Patch ACL Rule\",\"description\":\"Updates an existing access control rule for a calendar using patch semantics (partial update). This allows modifying specific fields without affecting other properties. IMPORTANT: The ACL rule must already exist on the calendar. This action cannot create new rules. If you receive a 404 Not Found error, the rule does not exist - use ACL insert to create it first, or use ACL list to verify available rules. Each patch request consumes three quota units. For domain-type ACL rules, if PATCH fails with 500 error, this action will automatically fallback to UPDATE method.\"},{\"slug\":\"GOOGLECALENDAR_ACL_UPDATE\",\"name\":\"Update ACL Rule\",\"description\":\"Updates an access control rule for the specified calendar.\"},{\"slug\":\"GOOGLECALENDAR_ACL_WATCH\",\"name\":\"Watch ACL Changes\",\"description\":\"Tool to watch for changes to ACL resources. Use when you need to set up real-time notifications for access control list modifications on a calendar.\"},{\"slug\":\"GOOGLECALENDAR_BATCH_EVENTS\",\"name\":\"Batch Events\",\"description\":\"Execute up to 1000 event mutations (create/patch/delete) in one Google Calendar HTTP batch request with per-item status/results. Use this to materially reduce round-trips for bulk operations like migrations, cleanup, or large-scale updates.\"},{\"slug\":\"GOOGLECALENDAR_CALENDAR_LIST_DELETE\",\"name\":\"Remove Calendar from List\",\"description\":\"Tool to remove a calendar from the user's calendar list. Use when you need to unsubscribe from or hide a calendar from the user's list.\"},{\"slug\":\"GOOGLECALENDAR_CALENDAR_LIST_GET\",\"name\":\"Get Single Calendar by ID\",\"description\":\"Retrieves metadata for a SINGLE specific calendar from the user's calendar list by its calendar ID. This action requires a calendarId parameter and returns details about that one calendar only. NOTE: This does NOT list all calendars. To list all calendars in the user's calendar list, use GOOGLECALENDAR_CALENDAR_LIST_LIST instead.\"},{\"slug\":\"GOOGLECALENDAR_CALENDAR_LIST_INSERT\",\"name\":\"Insert Calendar into List\",\"description\":\"Inserts an existing calendar into the user's calendar list, making it visible in the UI. Calendars (e.g., newly created ones) won't appear in the list or UI until explicitly inserted.\"},{\"slug\":\"GOOGLECALENDAR_CALENDAR_LIST_PATCH\",\"name\":\"Patch Calendar List Entry\",\"description\":\"Updates an existing calendar on the user's calendar list using patch semantics. This method allows partial updates, modifying only the specified fields.\"},{\"slug\":\"GOOGLECALENDAR_CALENDAR_LIST_UPDATE\",\"name\":\"Update Calendar List Entry\",\"description\":\"Updates a calendar list entry's display/subscription settings (color, visibility, reminders, selection) for the authenticated user — does not modify the underlying calendar resource (title, timezone, etc.). To modify the calendar itself, use GOOGLECALENDAR_CALENDARS_UPDATE.\"},{\"slug\":\"GOOGLECALENDAR_CALENDAR_LIST_WATCH\",\"name\":\"Watch Calendar List\",\"description\":\"Watch for changes to CalendarList resources using push notifications. Use this to receive real-time updates when calendar list entries are modified.\"},{\"slug\":\"GOOGLECALENDAR_CALENDARS_DELETE\",\"name\":\"Delete Calendar\",\"description\":\"Deletes a secondary calendar that you own or have delete permissions on. Deletion is permanent and irreversible — verify the correct calendar_id before calling. You cannot delete your primary calendar or calendars you only have read/write access to. Use calendarList.list to find calendars with owner accessRole. For primary calendars, use calendars.clear instead. Parallel calls may trigger userRateLimitExceeded; sequence bulk deletions.\"},{\"slug\":\"GOOGLECALENDAR_CALENDARS_UPDATE\",\"name\":\"Update Calendar\",\"description\":\"Full PUT-style update that overwrites all calendar metadata fields; unspecified optional fields are cleared. Use GOOGLECALENDAR_PATCH_CALENDAR to update only a subset of fields. Mutates the underlying calendar resource (title, description, timeZone, etc.); use GOOGLECALENDAR_CALENDAR_LIST_UPDATE to change per-user display properties like color.\"},{\"slug\":\"GOOGLECALENDAR_CHANNELS_STOP\",\"name\":\"Stop Channel\",\"description\":\"Tool to stop watching resources through a notification channel. Use when you need to discontinue push notifications for a specific channel subscription.\"},{\"slug\":\"GOOGLECALENDAR_CLEAR_CALENDAR\",\"name\":\"Clear Calendar\",\"description\":\"Clears a primary calendar by deleting all events from it. The calendar itself is preserved; only its events are removed. Primary calendars cannot be deleted entirely.\"},{\"slug\":\"GOOGLECALENDAR_COLORS_GET\",\"name\":\"Get Color Definitions\",\"description\":\"Returns the color definitions for calendars and events. Use when you need to retrieve the available color palette for styling calendars or events.\"},{\"slug\":\"GOOGLECALENDAR_CREATE_CALENDAR\",\"name\":\"Create a new calendar\",\"description\":\"Creates a new secondary Google Calendar with the specified title and optional settings. Use this action when you need to create a new calendar for organizing events separately from the primary calendar. The authenticated user becomes the owner of the newly created calendar. Optional parameters include description, location, and timezone.\"},{\"slug\":\"GOOGLECALENDAR_CREATE_EVENT\",\"name\":\"Create Event\",\"description\":\"Create a Google Calendar event using start_datetime plus duration fields. The organizer is added as an attendee unless exclude_organizer is True. By default adds Google Meet link (works for Workspace, gracefully falls back for personal Gmail). Attendees can be email strings (required) or objects with email and optional fields. No conflict checking is performed; use GOOGLECALENDAR_FREE_BUSY_QUERY to detect overlaps before creating. Returns event id and htmlLink nested under data.response_data. Example: { \\\"start_datetime\\\": \\\"2025-01-16T13:00:00\\\", \\\"timezone\\\": \\\"America/New_York\\\", \\\"event_duration_hour\\\": 1, \\\"event_duration_minutes\\\": 30, \\\"summary\\\": \\\"Client sync\\\", \\\"attendees\\\": [\\\"required@example.com\\\", {\\\"email\\\": \\\"optional@example.com\\\", \\\"optional\\\": true}] }\"},{\"slug\":\"GOOGLECALENDAR_DELETE_EVENT\",\"name\":\"Delete event\",\"description\":\"Deletes a specified event by `event_id` from a Google Calendar (`calendar_id`); idempotent — a 404 for an already-deleted event is a no-op. Bulk deletions may trigger `rateLimitExceeded` or `userRateLimitExceeded`; cap concurrency to 5–10 requests and apply exponential backoff.\"},{\"slug\":\"GOOGLECALENDAR_DUPLICATE_CALENDAR\",\"name\":\"Create a calendar\",\"description\":\"Creates a new, empty Google Calendar with the specified title (summary). Newly created calendars default to UTC timezone; use GOOGLECALENDAR_PATCH_CALENDAR afterward to set the desired timeZone if needed.\"},{\"slug\":\"GOOGLECALENDAR_EVENTS_GET\",\"name\":\"Get Event\",\"description\":\"Retrieves a SINGLE event by its unique event_id (REQUIRED). This action does NOT list or search events - it fetches ONE specific event when you already know its ID. If you want to list events within a time range, search for events, or filter by criteria like time_min/time_max, use GOOGLECALENDAR_EVENTS_LIST instead.\"},{\"slug\":\"GOOGLECALENDAR_EVENTS_IMPORT\",\"name\":\"Import Event\",\"description\":\"Tool to import an event as a private copy to a calendar. Use when you need to add an existing event to a calendar using its iCalUID. Only events with eventType='default' can be imported.\"},{\"slug\":\"GOOGLECALENDAR_EVENTS_INSTANCES\",\"name\":\"Get Event Instances\",\"description\":\"Returns instances of the specified recurring event. Use timeMin/timeMax to constrain the window; omitting bounds can return large result sets and is quota-heavy. On high-volume calls, 403 rateLimitExceeded or 429 too_many_requests may occur; apply exponential backoff (1s, 2s, 4s) before retrying.\"},{\"slug\":\"GOOGLECALENDAR_EVENTS_LIST\",\"name\":\"List Events\",\"description\":\"Returns events on the specified calendar. TIMEZONE WARNING: When using timeMin/timeMax with UTC timestamps (ending in 'Z'), the time window is interpreted in UTC regardless of the calendar's timezone. For example, querying '2026-01-19T00:00:00Z' to '2026-01-20T00:00:00Z' on a calendar in America/Los_Angeles (UTC-8) covers 2026-01-18 4pm to 2026-01-19 4pm local time, potentially missing events on the intended local date. To query for a specific local date, use timestamps with the appropriate timezone offset in timeMin/timeMax (e.g., '2026-01-19T00:00:00-08:00' for PST).\"},{\"slug\":\"GOOGLECALENDAR_EVENTS_LIST_ALL_CALENDARS\",\"name\":\"List Events from All Calendars\",\"description\":\"Return a unified event list across all calendars in the user's calendar list for a given time range. Use when you need a single view of all events across multiple calendars. An inverted or incorrect time range silently returns empty results rather than an error. An empty `items` list means no events matched the filters—adjust `time_min`, `time_max`, or `q` before concluding no events exist.\"},{\"slug\":\"GOOGLECALENDAR_EVENTS_MOVE\",\"name\":\"Move Event\",\"description\":\"Moves an event to another calendar, i.e., changes an event's organizer.\"},{\"slug\":\"GOOGLECALENDAR_EVENTS_WATCH\",\"name\":\"Watch Events\",\"description\":\"Watch for changes to Events resources. Watch channels expire; persist the channel `id` per `calendarId` to re-establish watches after expiration or restarts.\"},{\"slug\":\"GOOGLECALENDAR_FIND_EVENT\",\"name\":\"Find event\",\"description\":\"Finds events in a specified Google Calendar using text query, time ranges (event start/end, last modification), and event types. Ensure `timeMin` is not chronologically after `timeMax` if both are provided. Results may span multiple pages; always follow `nextPageToken` until absent to avoid silently missing events. Validate the correct match from results by checking summary, start.dateTime, and organizer.email before using event_id for mutations. An empty `items` array means no events matched — widen filters rather than treating it as an error.\"},{\"slug\":\"GOOGLECALENDAR_FIND_FREE_SLOTS\",\"name\":\"Find free slots\",\"description\":\"Finds both free and busy time slots in Google Calendars for specified calendars within a defined time range. If `time_min` is not provided, defaults to the current timestamp in the specified timezone. If `time_max` is not provided, defaults to 23:59:59 of the day specified in `time_min` (if provided), otherwise defaults to 23:59:59 of the current day in the specified timezone. Returns busy intervals and calculates free slots by finding gaps between busy periods; `time_min` must precede `time_max` if both are provided. This action retrieves free and busy time slots for the specified calendars over a given time period. It analyzes the busy intervals from the calendars and provides calculated free slots based on the gaps in the busy periods. Returned free slots are unfiltered by duration; callers must filter intervals to those fully containing the required meeting length. No event metadata (titles, descriptions, links) is returned; use GOOGLECALENDAR_EVENTS_LIST for event details.\"},{\"slug\":\"GOOGLECALENDAR_FREE_BUSY_QUERY\",\"name\":\"Query Free/Busy Information (Deprecated)\",\"description\":\"DEPRECATED: Use GOOGLECALENDAR_FIND_FREE_SLOTS instead (though this tool provides wider secondary/shared calendar coverage). Returns opaque busy intervals only—no event titles or details; use GOOGLECALENDAR_EVENTS_LIST when event details are needed.\"},{\"slug\":\"GOOGLECALENDAR_GET_CALENDAR\",\"name\":\"Get Google Calendar\",\"description\":\"Retrieves a specific Google Calendar, identified by `calendar_id`, to which the authenticated user has access. Response includes `timeZone` (IANA format, e.g., 'America/Los_Angeles') — use it directly when constructing `timeMin`/`timeMax` in other tools to avoid DST errors. An empty `defaultReminders` list is valid (no defaults configured). Insufficient `accessRole` may omit fields like `defaultReminders` and `colorId`.\"},{\"slug\":\"GOOGLECALENDAR_GET_CALENDAR_PROFILE\",\"name\":\"Get Calendar Profile (Deprecated)\",\"description\":\"DEPRECATED: Use CalendarListGet instead. Tool to retrieve the authenticated user's primary calendar profile. Use when you need to get information about the user's main calendar, including timezone, settings, and preferences.\"},{\"slug\":\"GOOGLECALENDAR_GET_CURRENT_DATE_TIME\",\"name\":\"Get current date and time\",\"description\":\"Gets the current date and time, allowing for a specific timezone offset. Call this tool first before computing relative dates (e.g., 'tomorrow', 'next Monday') to avoid off-by-one-day errors across timezones.\"},{\"slug\":\"GOOGLECALENDAR_LIST_BUILDINGS\",\"name\":\"List Buildings\",\"description\":\"Lists all buildings for a Google Workspace customer account with full details including addresses, coordinates, and floor names. Use this action when you need to retrieve the complete list of physical building locations configured in Google Workspace Calendar resources. This is useful for workspace administrators managing conference room and resource scheduling across multiple office buildings. Requires Google Workspace administrator privileges with Directory API access.\"},{\"slug\":\"GOOGLECALENDAR_LIST_CALENDAR_RESOURCES\",\"name\":\"List Calendar Resources\",\"description\":\"Retrieves calendar resources (such as conference rooms) from a Google Workspace domain using the Admin SDK Directory API. Use this action when you need to list available meeting rooms, conference spaces, or other bookable calendar resources in an organization. The action supports filtering by resource category, capacity, building location, and other criteria. IMPORTANT: This requires Admin SDK Directory API access and appropriate admin permissions - it is NOT available for personal Gmail accounts, only Google Workspace domains.\"},{\"slug\":\"GOOGLECALENDAR_LIST_CALENDARS\",\"name\":\"List Google Calendars\",\"description\":\"Retrieves calendars from the user's Google Calendar list, with options for pagination and filtering. Loop through all pages using nextPageToken until absent to avoid missing calendars. Use the primary flag and accessRole field from the response to identify calendars — display names are not valid calendar_id values. Read access (listing) does not imply write OAuth scopes.\"},{\"slug\":\"GOOGLECALENDAR_LIST_SETTINGS\",\"name\":\"List Calendar Settings (Deprecated)\",\"description\":\"DEPRECATED: Use GOOGLECALENDAR_SETTINGS_LIST instead. Tool to return all user settings for the authenticated user. Use when you need to retrieve calendar settings.\"},{\"slug\":\"GOOGLECALENDAR_PATCH_CALENDAR\",\"name\":\"Patch Calendar\",\"description\":\"Partially updates (PATCHes) an existing Google Calendar, modifying only the fields provided. At least one of summary, description, location, or timezone must be provided. Empty strings for `description` or `location` clear them.\"},{\"slug\":\"GOOGLECALENDAR_PATCH_EVENT\",\"name\":\"Patch Event\",\"description\":\"Update specified fields of an existing event in a Google Calendar using patch semantics (array fields like `attendees` are fully replaced if provided); ensure the `calendar_id` and `event_id` are valid and the user has write access to the calendar.\"},{\"slug\":\"GOOGLECALENDAR_QUICK_ADD\",\"name\":\"Quick Add Event\",\"description\":\"Parses natural language text to quickly create a basic Google Calendar event with its title, date, and time, suitable for simple scheduling; does not support direct attendee addition or recurring events, and `calendar_id` must be valid if not 'primary'.\"},{\"slug\":\"GOOGLECALENDAR_REMOVE_ATTENDEE\",\"name\":\"Remove attendee from event\",\"description\":\"Removes an attendee from a specified event in a Google Calendar; the calendar and event must exist. Concurrent calls on the same event can overwrite attendee lists — apply changes sequentially per event.\"},{\"slug\":\"GOOGLECALENDAR_SETTINGS_GET\",\"name\":\"Get Calendar Setting\",\"description\":\"Tool to return a single user setting for the authenticated user. Use when you need to retrieve a specific calendar setting value.\"},{\"slug\":\"GOOGLECALENDAR_SETTINGS_LIST\",\"name\":\"List Settings\",\"description\":\"Returns all user settings for the authenticated user. Results include multiple settings keyed by id (e.g., `timeZone`); locate a specific setting by its `id` field. `timeZone` values are IANA identifiers (e.g., `America/New_York`) — use directly in datetime and event logic; align with `timeZone` from GOOGLECALENDAR_GET_CALENDAR for consistent notification times.\"},{\"slug\":\"GOOGLECALENDAR_SETTINGS_WATCH\",\"name\":\"Watch Settings\",\"description\":\"Watch for changes to Settings resources.\"},{\"slug\":\"GOOGLECALENDAR_SYNC_EVENTS\",\"name\":\"Sync Events (Deprecated)\",\"description\":\"DEPRECATED: Use GOOGLECALENDAR_EVENTS_LIST instead. EventsList already handles syncToken with automatic param stripping. Synchronizes Google Calendar events, performing a full sync if no `sync_token` is provided or if a 410 GONE error (due to an expired token) necessitates it, otherwise performs an incremental sync for events changed since the `sync_token` was issued.\"},{\"slug\":\"GOOGLECALENDAR_UPDATE_EVENT\",\"name\":\"Update Google event\",\"description\":\"Updates an existing event in Google Calendar. REQUIRES event_id - you MUST first search for the event using GOOGLECALENDAR_FIND_EVENT or GOOGLECALENDAR_EVENTS_LIST to obtain the event_id. This is a full PUT replacement: omitted fields (including attendees, reminders, recurrence, conferencing) are cleared. Always provide the complete desired event state. Use GOOGLECALENDAR_PATCH_EVENT instead for partial edits.\"}]},{\"slug\":\"notion\",\"name\":\"Notion\",\"description\":\"Notion centralizes notes, docs, wikis, and tasks in a unified workspace, letting teams build custom workflows for collaboration and knowledge management\",\"logo\":\"https://logos.composio.dev/api/notion\",\"rank\":4,\"tools\":[{\"slug\":\"NOTION_ADD_MULTIPLE_PAGE_CONTENT\",\"name\":\"Add multiple content blocks (bulk, user-friendly)\",\"description\":\"Bulk-add content blocks to Notion. Text \u003e2000 chars auto-splits. Parses markdown formatting. ⚠️ PARENT BLOCK TYPES: Content is added AS CHILDREN of parent_block_id. - To add content AFTER a heading, use PAGE ID as parent + heading ID in 'after' param. - Headings CANNOT have children unless is_toggleable=True. Simplified format: {'content': 'text', 'block_property': 'paragraph'} Full format for code: {'type': 'code', 'code': {'rich_text': [...], 'language': 'python'}} Array format also supported (auto-normalized): [{\\\"parent_block_id\\\": \\\"...\\\"}, {block1}, {block2}] =\u003e proper request structure\"},{\"slug\":\"NOTION_ADD_PAGE_CONTENT\",\"name\":\"Add single content block to Notion page (Deprecated)\",\"description\":\"DEPRECATED: Use 'add_multiple_page_content' for better performance. Adds a single content block to a Notion page/block. CRITICAL: Notion API enforces a HARD LIMIT of 2000 characters per text.content field. Content exceeding 2000 chars is AUTOMATICALLY SPLIT into multiple sequential blocks. REQUIRED 'content' field for text blocks: paragraph, heading_1-3, callout, to_do, toggle, quote, list items. Parent blocks MUST be: Page, Toggle, To-do, Bulleted/Numbered List Item, Callout, or Quote. Common errors: - \\\"content.length should be ≤ 2000\\\": Text exceeds API limit (should be auto-handled) - \\\"Content is required for paragraph blocks\\\": Missing 'content' field for text blocks - \\\"object_not_found\\\": Invalid parent_block_id or no integration access For bulk operations, use 'add_multiple_page_content' instead.\"},{\"slug\":\"NOTION_APPEND_BLOCK_CHILDREN\",\"name\":\"Append raw Notion blocks (advanced API)\",\"description\":\"DEPRECATED: Use NOTION_APPEND_TEXT_BLOCKS, NOTION_APPEND_TASK_BLOCKS, NOTION_APPEND_CODE_BLOCKS, NOTION_APPEND_MEDIA_BLOCKS, NOTION_APPEND_LAYOUT_BLOCKS, or NOTION_APPEND_TABLE_BLOCKS instead. Appends raw Notion API blocks to parent. Text limited to 2000 chars per text.content field. Each block MUST have 'object':'block' and 'type'. Use rich_text arrays for text blocks.\"},{\"slug\":\"NOTION_APPEND_CODE_BLOCKS\",\"name\":\"Append code blocks (code, quote, equation)\",\"description\":\"Append code and technical blocks (code, quote, equation) to a Notion page. Use for: - Code snippets and programming examples (code) - Citations and highlighted quotes (quote) - Mathematical formulas and equations (equation) Supported block types: - code: Code with syntax highlighting (70+ languages including Python, JavaScript, Go, Rust, etc.) - quote: Block quotes for citations - equation: LaTeX/KaTeX mathematical expressions ⚠️ Code content is limited to 2000 characters per text.content field. For longer code, split into multiple code blocks. For other block types, use specialized actions: - append_text_blocks: paragraphs, headings, lists - append_task_blocks: to-do, toggle, callout - append_media_blocks: image, video, audio, files - append_layout_blocks: divider, columns, TOC - append_table_blocks: tables\"},{\"slug\":\"NOTION_APPEND_LAYOUT_BLOCKS\",\"name\":\"Append layout blocks (divider, TOC, columns)\",\"description\":\"Append layout blocks (divider, TOC, breadcrumb, columns) to a Notion page. Supported types: - divider: Horizontal line separator - table_of_contents: Auto-generated from headings - breadcrumb: Page hierarchy navigation - column_list: Multi-column layout (requires 2+ columns, each with 1+ child block) For multi-column layouts, create column_list with column children in one request. Each column must contain at least 1 child block. For other blocks, use: append_text_blocks, append_task_blocks, append_code_blocks, append_media_blocks, or append_table_blocks.\"},{\"slug\":\"NOTION_APPEND_MEDIA_BLOCKS\",\"name\":\"Append media blocks (image, video, audio, files)\",\"description\":\"Append media blocks (image, video, audio, file, pdf, embed, bookmark) to a Notion page. Use for: - Images and screenshots (image) - YouTube/Vimeo videos or direct video URLs (video) - Audio files and podcasts (audio) - File downloads (file) - PDF documents (pdf) - Embedded content from Twitter, Figma, CodePen, etc. (embed) - Link previews with metadata (bookmark) All media blocks require external URLs. For other block types, use specialized actions: - append_text_blocks: paragraphs, headings, lists - append_task_blocks: to-do, toggle, callout - append_code_blocks: code, quote, equation - append_layout_blocks: divider, columns, TOC - append_table_blocks: tables\"},{\"slug\":\"NOTION_APPEND_TABLE_BLOCKS\",\"name\":\"Append table blocks\",\"description\":\"Append table blocks to a Notion page. Use for structured tabular data like spreadsheets, comparison charts, and status trackers. Example: { \\\"table_width\\\": 3, \\\"has_column_header\\\": true, \\\"rows\\\": [ {\\\"cells\\\": [[{\\\"type\\\": \\\"text\\\", \\\"text\\\": {\\\"content\\\": \\\"Col1\\\"}}], [...], [...]]} ] } ⚠️ Cell content limited to 2000 chars per text.content field.\"},{\"slug\":\"NOTION_APPEND_TASK_BLOCKS\",\"name\":\"Append task blocks (to-do, toggle, callout)\",\"description\":\"Append task blocks (to-do, toggle, callout) to a Notion page or block. Supported block types: - to_do: Checkbox items (checkable/uncheckable) - toggle: Collapsible sections - callout: Highlighted boxes with emoji icons All three types support nested children (up to 2 levels of nesting). block_id must be a page or block that supports children (e.g., page, toggle, paragraph, list items, quote, callout, to_do). Blocks like divider, breadcrumb, equation do NOT support children. Limits: 2000 chars per text.content, max 100 blocks per request. For other blocks: append_text_blocks, append_code_blocks, append_media_blocks, append_layout_blocks, append_table_blocks.\"},{\"slug\":\"NOTION_APPEND_TEXT_BLOCKS\",\"name\":\"Append text blocks (paragraphs, headings, lists)\",\"description\":\"Append text blocks (paragraphs, headings, lists) to a Notion page. This is the most commonly used action for adding content to Notion. Use for: documentation, notes, articles, outlines, lists. Supported block types: - paragraph: Regular text - heading_1, heading_2, heading_3: Section headers - bulleted_list_item: Bullet points - numbered_list_item: Numbered lists ⚠️ Text content is limited to 2000 characters per text.content field. For other block types, use specialized actions: - append_task_blocks: to-do, toggle, callout - append_code_blocks: code, quote, equation - append_media_blocks: image, video, audio, files - append_layout_blocks: divider, columns, TOC - append_table_blocks: tables\"},{\"slug\":\"NOTION_ARCHIVE_NOTION_PAGE\",\"name\":\"Archive Notion Page\",\"description\":\"Archives (moves to trash) or unarchives (restores from trash) a specified Notion page. Limitation: Workspace-level pages (top-level pages with no parent page or database) cannot be archived via the API and must be archived manually in the Notion UI.\"},{\"slug\":\"NOTION_CREATE_COMMENT\",\"name\":\"Create comment\",\"description\":\"Adds a comment to a Notion page (via `parent_page_id`) OR to an existing discussion thread (via `discussion_id`); cannot create new discussion threads on specific blocks (inline comments).\"},{\"slug\":\"NOTION_CREATE_DATABASE\",\"name\":\"Create Notion Database\",\"description\":\"Creates a new Notion database as a subpage under a specified parent page with a defined properties schema. IMPORTANT NOTES: - The parent page MUST be shared with your integration, otherwise you'll get a 404 error - If you encounter conflict errors (409), retry the request as Notion may experience temporary save conflicts - For relation properties, you MUST provide the database_id of the related database - Parent ID must be a valid UUID format (with or without hyphens), not a template variable Use this action exclusively for creating new databases.\"},{\"slug\":\"NOTION_CREATE_FILE_UPLOAD\",\"name\":\"Create Notion file upload\",\"description\":\"Tool to create a Notion FileUpload object and retrieve an upload URL. Use when you need to automate attaching local or external files directly into Notion without external hosting.\"},{\"slug\":\"NOTION_CREATE_NOTION_PAGE\",\"name\":\"Create Notion page\",\"description\":\"Creates a new page in a Notion workspace under a specified parent page or database. Supports creating pages with markdown content using the native markdown parameter, or as an empty page that can be populated later. PREREQUISITES: - Parent page/database must exist and be accessible in your Notion workspace - Use search_pages or list_databases first to obtain valid parent IDs LIMITATIONS: - Cannot create root-level pages (must have a parent) - May encounter conflicts if creating pages too quickly - Title-based parent search is less reliable than using UUIDs - The markdown parameter is mutually exclusive with children/content parameters\"},{\"slug\":\"NOTION_CREATE_VIEW\",\"name\":\"Create Notion view\",\"description\":\"Create a Notion view.\"},{\"slug\":\"NOTION_CREATE_VIEW_QUERY\",\"name\":\"Create Notion view query\",\"description\":\"Create a Notion view query and return the first page of page references.\"},{\"slug\":\"NOTION_DELETE_BLOCK\",\"name\":\"Delete a block\",\"description\":\"Archives a Notion block, page, or database using its ID, which sets its 'archived' property to true (like moving to \\\"Trash\\\" in the UI) and allows it to be restored later. Note: This operation will fail if the block has an archived parent or ancestor in the hierarchy. You must unarchive the ancestor before archiving/deleting its descendants. IMPORTANT LIMITATION: Workspace-level pages (top-level pages that are direct children of the workspace, not contained within other pages or databases) cannot be archived via the Notion API. This is a documented Notion API restriction. Only pages that are children of other pages or databases can be deleted through this action.\"},{\"slug\":\"NOTION_DELETE_VIEW\",\"name\":\"Delete Notion view\",\"description\":\"Delete a Notion view.\"},{\"slug\":\"NOTION_DELETE_VIEW_QUERY\",\"name\":\"Delete Notion view query\",\"description\":\"Delete a cached Notion view query.\"},{\"slug\":\"NOTION_DUPLICATE_PAGE\",\"name\":\"Duplicate page\",\"description\":\"Duplicates a Notion page, including all its content, properties, and nested blocks, under a specified parent page or workspace.\"},{\"slug\":\"NOTION_FETCH_ALL_BLOCK_CONTENTS\",\"name\":\"Fetch All Notion Block Contents\",\"description\":\"Tool to fetch all child blocks for a given Notion block. Use when you need a complete listing of a block's children beyond a single page; supports optional recursive expansion of nested blocks.\"},{\"slug\":\"NOTION_FETCH_BLOCK_CONTENTS\",\"name\":\"Fetch Notion Block Children\",\"description\":\"Retrieves a paginated list of direct, first-level child block objects along with contents for a given parent Notion block or page ID; use block IDs from the response for subsequent calls to access deeply nested content.\"},{\"slug\":\"NOTION_FETCH_BLOCK_METADATA\",\"name\":\"Fetch Notion block metadata\",\"description\":\"Fetches metadata for a Notion block (including pages, which are special blocks) using its UUID. Returns block type, properties, and basic info but not child content. Prerequisites: 1) Block/page must be shared with your integration, 2) Use valid block_id from API responses (not URLs). For child blocks, use fetch_block_contents instead. Common 404 errors mean the block isn't accessible to your integration.\"},{\"slug\":\"NOTION_FETCH_COMMENTS\",\"name\":\"Fetch comments\",\"description\":\"Fetches unresolved comments for a specified Notion block or page ID. The block/page must be shared with your Notion integration and the integration must have 'Read comments' capability enabled, otherwise a 404 error will be returned.\"},{\"slug\":\"NOTION_FETCH_DATA\",\"name\":\"Fetch Notion Data\",\"description\":\"Fetches Notion items (pages and/or databases) from the Notion workspace, use this to get minimal data about the items in the workspace with a query or list all items in the workspace with minimal data\"},{\"slug\":\"NOTION_FETCH_DATABASE\",\"name\":\"Fetch Database\",\"description\":\"Fetches a Notion database's structural metadata (properties, title, etc.) via its `database_id`, not the data entries; `database_id` must reference an existing database.\"},{\"slug\":\"NOTION_FETCH_ROW\",\"name\":\"Fetch database row\",\"description\":\"Retrieves a Notion database row's properties and metadata; use fetch_block_contents for page content blocks.\"},{\"slug\":\"NOTION_GET_ABOUT_ME\",\"name\":\"Get About Me (Deprecated)\",\"description\":\"DEPRECATED: Use GetAboutUser instead. Retrieves the User object for the bot associated with the current Notion integration token, typically to obtain the bot's user ID for other API operations.\"},{\"slug\":\"NOTION_GET_ABOUT_USER\",\"name\":\"Get about user\",\"description\":\"Retrieves detailed information about a specific Notion user, such as their name, avatar, and email, based on their unique user ID.\"},{\"slug\":\"NOTION_GET_PAGE_MARKDOWN\",\"name\":\"Get page markdown\",\"description\":\"Retrieve a Notion page's full content rendered as Notion-flavored Markdown in a single API call. Use when you need the readable content of a page without recursive block-children fetching.\"},{\"slug\":\"NOTION_GET_PAGE_PROPERTY_ACTION\",\"name\":\"Get page property\",\"description\":\"Call this to get a specific property from a Notion page when you have a valid `page_id` and `property_id`; handles pagination for properties returning multiple items.\"},{\"slug\":\"NOTION_GET_VIEW_QUERY_RESULTS\",\"name\":\"Get Notion view query results\",\"description\":\"Get a page of results from a cached Notion view query.\"},{\"slug\":\"NOTION_INSERT_ROW_DATABASE\",\"name\":\"Insert row database\",\"description\":\"Creates a new page (row) in a specified Notion database. Prerequisites: - Database must be shared with your integration - Property names AND types must match schema exactly (case-sensitive) - Use NOTION_FETCH_DATA with fetch_type='databases' first to get exact property names and types - Each database has ONE 'title' property; other text fields are 'rich_text' - Database must NOT have multiple data sources (synced databases are not supported) Common Errors: - 404: Database not shared with integration - 400 \\\"not a property\\\": Wrong property name - 400 \\\"expected to be X\\\": Wrong property type - 400 \\\"multiple_data_sources\\\": Database uses multiple data sources (not supported) Note: Rich text content in child_blocks is automatically truncated to 2000 characters per Notion API limits.\"},{\"slug\":\"NOTION_INSERT_ROW_FROM_NL\",\"name\":\"Insert Row From Natural Language\",\"description\":\"Creates a new row (page) in a Notion database from a natural language description. Fetches the database schema at runtime, uses an LLM to generate the correctly-formatted property payload, and creates the page.\"},{\"slug\":\"NOTION_LIST_DATA_SOURCE_TEMPLATES\",\"name\":\"List data source templates\",\"description\":\"Tool to list all templates for a Notion data source. Use when needing to discover template IDs/names for bulk page creation. Use after confirming the data_source_id.\"},{\"slug\":\"NOTION_LIST_FILE_UPLOADS\",\"name\":\"List Notion file uploads\",\"description\":\"Tool to retrieve file uploads for the current bot integration, sorted by most recent first. Use when you need to list all file uploads or paginate through file upload history.\"},{\"slug\":\"NOTION_LIST_USERS\",\"name\":\"List users\",\"description\":\"Retrieves a paginated list of users (excluding guests) from the Notion workspace; the number of users returned per page may be less than the requested `page_size`.\"},{\"slug\":\"NOTION_LIST_VIEWS\",\"name\":\"List Notion views\",\"description\":\"List Notion views for a database or data source.\"},{\"slug\":\"NOTION_MOVE_PAGE\",\"name\":\"Move Page\",\"description\":\"Tool to move a Notion page to a new parent (page or database). Use when you need to reorganize page hierarchy. Important: To move to a database, use data_source_id (NOT database_id). Get the data source ID from the database object using NOTION_FETCH_DATABASE.\"},{\"slug\":\"NOTION_QUERY_DATABASE\",\"name\":\"Query database\",\"description\":\"Queries a Notion database to retrieve pages (rows). In Notion, databases are collections where each row is a page and columns are properties. Returns paginated results with metadata. Important requirements: - The database must be shared with your integration - Property names in sorts must match existing database properties exactly (case-sensitive) - For timestamp sorting, use 'created_time' or 'last_edited_time' (case-insensitive) - The start_cursor must be the opaque value from a previous response's next_cursor field - Database IDs must be valid 32-character UUIDs (with or without hyphens) Use this action to: - Retrieve all or filtered database entries - Sort results by database properties or page timestamps - Paginate through large result sets - Get database content for processing or display\"},{\"slug\":\"NOTION_QUERY_DATABASE_WITH_FILTER\",\"name\":\"Query database with filter\",\"description\":\"Tool to query a Notion database with server-side filtering, sorting, and pagination. Use when you need to retrieve a subset of rows by property, date, status, or other conditions.\"},{\"slug\":\"NOTION_QUERY_DATA_SOURCE\",\"name\":\"Query data source\",\"description\":\"Tool to query a Notion data source. Use when you need to retrieve pages or child data sources with filters, sorts, and pagination. Make paginated requests using cursors and optional property filters for efficient data retrieval.\"},{\"slug\":\"NOTION_REPLACE_PAGE_CONTENT\",\"name\":\"Replace page content (with backup)\",\"description\":\"Safely replaces a page's child blocks by optionally backing up current content, deleting existing children, then appending new children in batches. Use when you need to rebuild a page without leaving partial states. Notion does not provide atomic transactions; this tool orchestrates a multi-step workflow with optional backup to reduce risk.\"},{\"slug\":\"NOTION_RETRIEVE_COMMENT\",\"name\":\"Retrieve Comment\",\"description\":\"Tool to retrieve a specific comment by its ID. Use when you have a comment ID and need to fetch its details.\"},{\"slug\":\"NOTION_RETRIEVE_DATABASE_PROPERTY\",\"name\":\"Retrieve Database Property\",\"description\":\"Tool to retrieve a specific property object of a Notion database. Use when you need to get details about a single database column/property.\"},{\"slug\":\"NOTION_RETRIEVE_FILE_UPLOAD\",\"name\":\"Retrieve Notion file upload\",\"description\":\"Tool to retrieve details of a Notion File Upload object by its identifier. Use when you need to check the status or details of an existing file upload.\"},{\"slug\":\"NOTION_RETRIEVE_PAGE\",\"name\":\"Retrieve page\",\"description\":\"Retrieve a Notion page's properties/metadata (not block content) by page_id. Use when you have a page URL/ID and need to access its properties; for page content use block-children tools.\"},{\"slug\":\"NOTION_RETRIEVE_VIEW\",\"name\":\"Retrieve Notion view\",\"description\":\"Retrieve a Notion view and its configuration.\"},{\"slug\":\"NOTION_SEARCH_NOTION_PAGE\",\"name\":\"Search Notion pages and databases\",\"description\":\"Searches Notion pages and databases by title. Use specific search terms to find items by title (primary approach). KNOWN LIMITATIONS: (1) Search indexing is not immediate - recently shared items may not appear. (2) Search is not exhaustive - results may be incomplete. (3) Database pages return all custom properties with full nested structures, which can create large responses for databases with many properties - use filter_properties to reduce response size. FALLBACK STRATEGY: If a specific title search returns empty results despite knowing items exist, try an empty query to list all accessible items and filter client-side.\"},{\"slug\":\"NOTION_SEND_FILE_UPLOAD\",\"name\":\"Send file upload\",\"description\":\"Tool to transmit file contents to Notion for a file upload object. Use after creating a file upload object to send the actual file data.\"},{\"slug\":\"NOTION_UPDATE_BLOCK\",\"name\":\"Update block\",\"description\":\"Updates existing Notion block's text content. ⚠️ CRITICAL: Content limited to 2000 chars. Cannot change block type or archive blocks. Content exceeding 2000 chars will fail with validation error. For longer content, split across multiple blocks using add_multiple_page_content.\"},{\"slug\":\"NOTION_UPDATE_PAGE\",\"name\":\"Update Page\",\"description\":\"Update page properties, icon, cover, or archive status. IMPORTANT: Property names are workspace-specific and case-sensitive. Use NOTION_FETCH_ROW or NOTION_FETCH_DATABASE first to discover exact property names and valid select/status options. Common errors: - \\\"X is not a property that exists\\\": Discover properties with NOTION_FETCH_ROW - \\\"Invalid status option\\\": Check valid options with NOTION_FETCH_DATABASE - \\\"should be defined\\\": Wrap values: {'Field': {'type': value}} Property formats: title/rich_text use {'text': {'content': 'value'}}, select/status use {'name': 'option'}\"},{\"slug\":\"NOTION_UPDATE_ROW_DATABASE\",\"name\":\"Update Database Row (Page)\",\"description\":\"Updates a specific row/page within a Notion database by its page UUID (row_id). IMPORTANT CLARIFICATION: This action updates INDIVIDUAL ROWS (pages) in a database, NOT the database structure. - To update a ROW/PAGE: Use THIS action with `row_id` (the page UUID) - To update DATABASE SCHEMA (columns, properties, title): Use NOTION_UPDATE_SCHEMA_DATABASE with `database_id` REQUIRED: `row_id` is MANDATORY. This is the UUID of the specific page/row to update. Do NOT pass `database_id` to this action - that parameter does not exist here. Common issues: (1) Use UUID from page URL, not the full URL (2) Ensure page is shared with integration (3) Match property names exactly as in database (4) Use 'status' type for Status properties, not 'select' (5) Retry on 409 Conflict errors (concurrent updates) Supports updating properties, icon, cover, or archiving the row.\"},{\"slug\":\"NOTION_UPDATE_SCHEMA_DATABASE\",\"name\":\"Update database schema\",\"description\":\"Updates an existing Notion database's schema including title, description, and/or properties (columns). IMPORTANT NOTES: - At least one update (title, description, or properties) must be provided - The database must be shared with your integration - Property names are case-sensitive and must match exactly - When changing a property to 'relation' type, you MUST provide the database_id of the target database - Removing properties will permanently delete that column and its data - Use NOTION_FETCH_DATA first to get the exact property names and database structure Common errors: - 'database_id' missing: Ensure you're passing the database_id parameter (not page_id) - 'data_source_id' undefined: When changing to relation type, database_id is required in PropertySchemaUpdate - Property name mismatch: Names must match exactly including case and special characters\"},{\"slug\":\"NOTION_UPDATE_VIEW\",\"name\":\"Update Notion view\",\"description\":\"Update a Notion view.\"},{\"slug\":\"NOTION_UPSERT_ROW_DATABASE\",\"name\":\"Upsert database rows\",\"description\":\"Tool to upsert rows in a Notion database by querying for existing rows and creating or updating them. Use when you need to sync data to Notion without creating duplicates. Each item is matched by a filter, then either created (if no match) or updated (if match found). Supports bulk operations with per-item error handling.\"}]},{\"slug\":\"googlesheets\",\"name\":\"Google Sheets\",\"description\":\"Google Sheets is a cloud-based spreadsheet tool enabling real-time collaboration, data analysis, and integration with other Google Workspace apps\",\"logo\":\"https://logos.composio.dev/api/googlesheets\",\"rank\":5,\"tools\":[{\"slug\":\"GOOGLESHEETS_ADD_SHEET\",\"name\":\"Add Sheet to Existing Spreadsheet\",\"description\":\"Adds a new sheet to a spreadsheet. Supports three sheet types: GRID, OBJECT, and DATA_SOURCE. SHEET TYPES: - GRID (default): Standard spreadsheet with rows/columns. Use properties to set dimensions, tab color, etc. - OBJECT: Sheet containing a chart. Requires objectSheetConfig with chartSpec (basicChart or pieChart). - DATA_SOURCE: Sheet connected to BigQuery. Requires dataSourceConfig with bigQuery spec and bigquery.readonly OAuth scope. OTHER NOTES: - Sheet names must be unique; use forceUnique=true to auto-append suffix (_2, _3) if name exists - For tab colors, use EITHER rgbColor OR themeColor, not both - Avoid 'index' when creating sheets in parallel (causes errors) - OBJECT sheets are created via addChart with position.newSheet=true - DATA_SOURCE sheets require bigquery.readonly OAuth scope Use cases: Add standard grid sheet, create chart on dedicated sheet, connect to BigQuery data source.\"},{\"slug\":\"GOOGLESHEETS_AGGREGATE_COLUMN_DATA\",\"name\":\"Aggregate Column Data\",\"description\":\"Searches for rows where a specific column matches a value and performs mathematical operations on data from another column.\"},{\"slug\":\"GOOGLESHEETS_APPEND_DIMENSION\",\"name\":\"Append Dimension\",\"description\":\"Tool to append new rows or columns to a sheet, increasing its size. Use when you need to add empty rows or columns to an existing sheet.\"},{\"slug\":\"GOOGLESHEETS_AUTO_RESIZE_DIMENSIONS\",\"name\":\"Auto-Resize Rows or Columns\",\"description\":\"Auto-fit column widths or row heights for a dimension range using batchUpdate.autoResizeDimensions. Use when you need to automatically adjust row heights or column widths to fit content after writing data.\"},{\"slug\":\"GOOGLESHEETS_BATCH_CLEAR_VALUES_BY_DATA_FILTER\",\"name\":\"Batch Clear Values By Data Filter\",\"description\":\"Clears one or more ranges of values from a spreadsheet using data filters. The caller must specify the spreadsheet ID and one or more DataFilters. Ranges matching any of the specified data filters will be cleared. Only values are cleared -- all other properties of the cell (such as formatting, data validation, etc..) are kept.\"},{\"slug\":\"GOOGLESHEETS_BATCH_GET\",\"name\":\"Batch get spreadsheet\",\"description\":\"Retrieves data from specified cell ranges in a Google Spreadsheet.\"},{\"slug\":\"GOOGLESHEETS_BATCH_UPDATE\",\"name\":\"Batch update spreadsheet (Deprecated)\",\"description\":\"DEPRECATED: Use GOOGLESHEETS_VALUES_UPDATE instead. Write values to ONE range in a Google Sheet, or append as new rows if no start cell is given. IMPORTANT - This tool does NOT accept the Google Sheets API's native batch format: - WRONG: {\\\"data\\\": [{\\\"range\\\": \\\"...\\\", \\\"values\\\": [[...]]}], ...} - CORRECT: {\\\"sheet_name\\\": \\\"...\\\", \\\"values\\\": [[...]], \\\"first_cell_location\\\": \\\"...\\\", ...} To update MULTIPLE ranges, make SEPARATE CALLS to this tool for each range. Features: - Auto-expands grid for large datasets (prevents range errors) - Set first_cell_location to write at a specific position (e.g., \\\"A1\\\", \\\"B5\\\") - Omit first_cell_location to append values as new rows at the end Requirements: Target sheet must exist and spreadsheet must contain at least one worksheet.\"},{\"slug\":\"GOOGLESHEETS_BATCH_UPDATE_VALUES_BY_DATA_FILTER\",\"name\":\"Batch Update Values by Data Filter\",\"description\":\"Tool to update values in ranges matching data filters. Use when you need to update specific data in a Google Sheet based on criteria rather than fixed cell ranges.\"},{\"slug\":\"GOOGLESHEETS_CLEAR_BASIC_FILTER\",\"name\":\"Clear Basic Filter\",\"description\":\"Tool to clear the basic filter from a sheet. Use when you need to remove an existing basic filter from a specific sheet within a Google Spreadsheet.\"},{\"slug\":\"GOOGLESHEETS_CLEAR_VALUES\",\"name\":\"Clear spreadsheet values\",\"description\":\"Clears cell content (preserving formatting and notes) from a specified A1 notation range in a Google Spreadsheet; the range must correspond to an existing sheet and cells.\"},{\"slug\":\"GOOGLESHEETS_CREATE_CHART\",\"name\":\"Create Chart in Google Sheets\",\"description\":\"Create a chart in a Google Sheets spreadsheet using the specified data range and chart type. Conditional requirements: - Provide either a simple chart via chart_type + data_range (basicChart), OR supply a full chart_spec supporting all chart types. Exactly one approach should be used. - When using chart_spec, set exactly one of the union fields (basicChart | pieChart | bubbleChart | candlestickChart | histogramChart | waterfallChart | treemapChart | orgChart | scorecardChart).\"},{\"slug\":\"GOOGLESHEETS_CREATE_GOOGLE_SHEET1\",\"name\":\"Create a Google Sheet\",\"description\":\"Creates a new Google Spreadsheet in Google Drive. If a title is provided, the spreadsheet will be created with that name. If no title is provided, Google will create a spreadsheet with a default name like 'Untitled spreadsheet'. Optionally create the spreadsheet in a specific folder by providing either: - folder_id: The Google Drive folder ID (preferred, unambiguous) - folder_name: The folder name (searches for exact match; if multiple folders match, returns choices) If neither folder_id nor folder_name is provided, the spreadsheet is created in the root Drive folder.\"},{\"slug\":\"GOOGLESHEETS_CREATE_SPREADSHEET_COLUMN\",\"name\":\"Create spreadsheet column\",\"description\":\"Creates a new column in a Google Spreadsheet. Specify the target sheet using sheet_id (numeric) or sheet_name (text). If neither is provided, defaults to the first sheet (sheet_id=0).\"},{\"slug\":\"GOOGLESHEETS_CREATE_SPREADSHEET_ROW\",\"name\":\"Create spreadsheet row\",\"description\":\"Inserts a new, empty row into a specified sheet of a Google Spreadsheet at a given index, optionally inheriting formatting from the row above.\"},{\"slug\":\"GOOGLESHEETS_DELETE_CHART\",\"name\":\"Delete Chart from Google Sheets\",\"description\":\"Delete an existing chart from a Google Sheets spreadsheet. Use this action when you need to remove a chart that is no longer needed or needs to be replaced. This action is irreversible — once a chart is deleted, it cannot be recovered. The chart data source (the cells containing the data) remains unchanged; only the chart visualization is removed.\"},{\"slug\":\"GOOGLESHEETS_DELETE_DIMENSION\",\"name\":\"Delete Dimension (Rows/Columns)\",\"description\":\"Tool to delete specified rows or columns from a sheet in a Google Spreadsheet. Use when you need to remove a range of rows or columns.\"},{\"slug\":\"GOOGLESHEETS_DELETE_SHEET\",\"name\":\"Delete Sheet\",\"description\":\"Tool to delete a sheet (worksheet) from a spreadsheet. Use when you need to remove a specific sheet from a Google Sheet document.\"},{\"slug\":\"GOOGLESHEETS_EXECUTE_SQL\",\"name\":\"Execute SQL on Spreadsheet\",\"description\":\"DEPRECATED: Use direct Google Sheets actions instead: - GOOGLESHEETS_VALUES_GET / GOOGLESHEETS_BATCH_GET for reads - GOOGLESHEETS_VALUES_UPDATE / GOOGLESHEETS_UPDATE_VALUES_BATCH / GOOGLESHEETS_SPREADSHEETS_VALUES_APPEND for writes Execute SQL queries against Google Sheets tables. Supports SELECT, INSERT, UPDATE, DELETE operations and WITH clauses (CTEs) with familiar SQL syntax. Tables are automatically detected and mapped from the spreadsheet structure.\"},{\"slug\":\"GOOGLESHEETS_FIND_REPLACE\",\"name\":\"Find and Replace in Spreadsheet\",\"description\":\"Tool to find and replace text in a Google Spreadsheet. Use when you need to fix formula errors, update values, or perform bulk text replacements across cells. Common use cases: - Fix #ERROR! cells by replacing with empty string or correct formula - Update old values with new ones across multiple cells - Fix formula references or patterns - Clean up data formatting issues\"},{\"slug\":\"GOOGLESHEETS_FIND_WORKSHEET_BY_TITLE\",\"name\":\"Find worksheet by title (Deprecated)\",\"description\":\"DEPRECATED: Use GetSpreadsheetInfo instead. Finds a worksheet by its exact, case-sensitive title within a Google Spreadsheet; returns a boolean indicating if found and the matched worksheet's metadata when found, or None when not found.\"},{\"slug\":\"GOOGLESHEETS_FORMAT_CELL\",\"name\":\"Format cell\",\"description\":\"Applies text and background cell formatting to a specified range in a Google Sheets worksheet.\"},{\"slug\":\"GOOGLESHEETS_GET_BATCH_VALUES\",\"name\":\"Batch Get Spreadsheet Values (Deprecated)\",\"description\":\"DEPRECATED: Use GOOGLESHEETS_BATCH_GET instead. Tool to return one or more ranges of values from a spreadsheet. Use when you need to retrieve data from multiple ranges in a single request.\"},{\"slug\":\"GOOGLESHEETS_GET_CONDITIONAL_FORMAT_RULES\",\"name\":\"Get conditional format rules\",\"description\":\"List conditional formatting rules for each sheet (or a selected sheet) in a normalized, easy-to-edit form. Use when you need to view, audit, or prepare to modify conditional format rules.\"},{\"slug\":\"GOOGLESHEETS_GET_DATA_VALIDATION_RULES\",\"name\":\"Get Data Validation Rules\",\"description\":\"Tool to extract data validation rules from a Google Sheets spreadsheet. Use when you need to understand dropdown lists, allowed values, custom formulas, or other validation constraints for cells.\"},{\"slug\":\"GOOGLESHEETS_GET_SHEET_NAMES\",\"name\":\"Get sheet names\",\"description\":\"Lists all worksheet names from a specified Google Spreadsheet (which must exist), useful for discovering sheets before further operations.\"},{\"slug\":\"GOOGLESHEETS_GET_SPREADSHEET_BY_DATA_FILTER\",\"name\":\"Get Spreadsheet by Data Filter\",\"description\":\"Returns the spreadsheet at the given ID, filtered by the specified data filters. Use this tool when you need to retrieve specific subsets of data from a Google Sheet based on criteria like A1 notation, developer metadata, or grid ranges. Important: This action is designed for filtered data retrieval. While it accepts empty filters and returns full metadata in that case, GOOGLESHEETS_GET_SPREADSHEET_INFO is the recommended action for unfiltered spreadsheet retrieval.\"},{\"slug\":\"GOOGLESHEETS_GET_SPREADSHEET_INFO\",\"name\":\"Get spreadsheet info\",\"description\":\"Retrieves metadata for a Google Spreadsheet using its ID. By default, returns essential information (ID, title, sheet properties) to avoid payload size issues. Use the fields parameter for comprehensive metadata or specific fields.\"},{\"slug\":\"GOOGLESHEETS_GET_TABLE_SCHEMA\",\"name\":\"Get Table Schema\",\"description\":\"DEPRECATED: Use GOOGLESHEETS_GET_SHEET_NAMES and GOOGLESHEETS_GET_SPREADSHEET_INFO for sheet structure metadata, and GOOGLESHEETS_VALUES_GET for direct range inspection. This action is used to get the schema of a table in a Google Spreadsheet, call this action to get the schema of a table in a spreadsheet BEFORE YOU QUERY THE TABLE. Analyze table structure and infer column names, types, and constraints. Uses statistical analysis of sample data to determine the most likely data type for each column. Call this action after calling the LIST_TABLES action to get the schema of a table in a spreadsheet.\"},{\"slug\":\"GOOGLESHEETS_INSERT_DIMENSION\",\"name\":\"Insert Dimension in Google Sheet\",\"description\":\"Tool to insert new rows or columns into a sheet at a specified location. Use when you need to add empty rows or columns within an existing Google Sheet.\"},{\"slug\":\"GOOGLESHEETS_LIST_CHARTS\",\"name\":\"List Charts in Google Sheets\",\"description\":\"Lists all charts in a Google Sheets spreadsheet across all sheets, returning chart_id, sheet metadata, chart type, title, and position. Use this action when you need to discover what charts exist in a spreadsheet, retrieve chart IDs for update or delete operations, or inspect chart configurations. The default field mask in GOOGLESHEETS_GET_SPREADSHEET_INFO omits chart data, making this dedicated action necessary for chart discovery.\"},{\"slug\":\"GOOGLESHEETS_LIST_TABLES\",\"name\":\"List Tables in Spreadsheet\",\"description\":\"DEPRECATED: Use GOOGLESHEETS_GET_SHEET_NAMES for tab discovery and GOOGLESHEETS_GET_SPREADSHEET_INFO for full sheet metadata. This action is used to list all tables in a Google Spreadsheet, call this action to get the list of tables in a spreadsheet. Discover all tables in a Google Spreadsheet by analyzing sheet structure and detecting data patterns. Uses heuristic analysis to find header rows, data boundaries, and table structures.\"},{\"slug\":\"GOOGLESHEETS_LOOKUP_SPREADSHEET_ROW\",\"name\":\"Look up spreadsheet row\",\"description\":\"Finds the first row in a Google Spreadsheet where a cell's entire content exactly matches the query string, searching within a specified A1 notation range or the first sheet by default.\"},{\"slug\":\"GOOGLESHEETS_MOVE_CHART\",\"name\":\"Move or Resize Chart in Google Sheets\",\"description\":\"Move or resize an existing chart on a Google Sheets spreadsheet. Use this action when you need to reposition a chart to a different location on the same or different sheet, move it to a brand-new sheet, or change its size. This action wraps the updateEmbeddedObjectPosition batchUpdate request type and supports three positioning modes: moving to a new sheet, moving to an existing sheet, or repositioning via pixel-perfect overlay coordinates.\"},{\"slug\":\"GOOGLESHEETS_MUTATE_CONDITIONAL_FORMAT_RULES\",\"name\":\"Mutate conditional format rules\",\"description\":\"Add, update, delete, or reorder conditional format rules on a Google Sheet. Use when you need to create, modify, or remove conditional formatting without manually building batchUpdate requests. Supports four operations: ADD (create new rule), UPDATE (replace existing rule), DELETE (remove rule), MOVE (reorder rules by changing index).\"},{\"slug\":\"GOOGLESHEETS_QUERY_TABLE\",\"name\":\"Query Spreadsheet Table\",\"description\":\"DEPRECATED: Use GOOGLESHEETS_VALUES_GET / GOOGLESHEETS_BATCH_GET for table reads and GOOGLESHEETS_LOOKUP_SPREADSHEET_ROW for row lookup/filter workflows. Execute SQL-like SELECT queries against Google Spreadsheet tables. Table names correspond to sheet/tab names visible at the bottom of the spreadsheet. Use GOOGLESHEETS_LIST_TABLES first to discover available table names if unknown. Supports WHERE conditions, ORDER BY, LIMIT clauses.\"},{\"slug\":\"GOOGLESHEETS_SEARCH_DEVELOPER_METADATA\",\"name\":\"Search Developer Metadata\",\"description\":\"Tool to search for developer metadata in a spreadsheet. Use when you need to find specific metadata entries based on filters.\"},{\"slug\":\"GOOGLESHEETS_SEARCH_SPREADSHEETS\",\"name\":\"Search Spreadsheets\",\"description\":\"Search for Google Spreadsheets using various filters including name, content, date ranges, and more.\"},{\"slug\":\"GOOGLESHEETS_SET_BASIC_FILTER\",\"name\":\"Set Basic Filter\",\"description\":\"Tool to set a basic filter on a sheet in a Google Spreadsheet. Use when you need to filter or sort data within a specific range on a sheet.\"},{\"slug\":\"GOOGLESHEETS_SET_DATA_VALIDATION_RULE\",\"name\":\"Set Data Validation Rule\",\"description\":\"Tool to set or clear data validation rules (including dropdowns) on a range in Google Sheets. Use when you need to apply dropdown lists, range-based dropdowns, or custom formula validation to cells.\"},{\"slug\":\"GOOGLESHEETS_SHEET_FROM_JSON\",\"name\":\"Create sheet from JSON\",\"description\":\"DEPRECATED: Use GOOGLESHEETS_CREATE_GOOGLE_SHEET1 + GOOGLESHEETS_UPDATE_VALUES_BATCH (or GOOGLESHEETS_VALUES_UPDATE / GOOGLESHEETS_SPREADSHEETS_VALUES_APPEND) instead. Creates a new Google Spreadsheet and populates its first worksheet from `sheet_json`. When data is provided, the first item's keys establish the headers. An empty list creates an empty worksheet.\"},{\"slug\":\"GOOGLESHEETS_SORT_RANGE\",\"name\":\"Sort Range\",\"description\":\"Sorts data within a specified range in a Google Sheet based on one or more sort criteria. Use this action when you need to reorder rows in a range by column values, with support for multi-level (cascading) sorts.\"},{\"slug\":\"GOOGLESHEETS_SPREADSHEETS_SHEETS_COPY_TO\",\"name\":\"Copy Sheet to Another Spreadsheet\",\"description\":\"Tool to copy a single sheet from a spreadsheet to another spreadsheet. Use when you need to duplicate a sheet into a different spreadsheet.\"},{\"slug\":\"GOOGLESHEETS_SPREADSHEETS_VALUES_APPEND\",\"name\":\"Append Values to Spreadsheet\",\"description\":\"Tool to append values to a spreadsheet. Use when you need to add new data to the end of an existing table in a Google Sheet.\"},{\"slug\":\"GOOGLESHEETS_SPREADSHEETS_VALUES_BATCH_CLEAR\",\"name\":\"Batch Clear Spreadsheet Values\",\"description\":\"Tool to clear one or more ranges of values from a spreadsheet. Use when you need to remove data from specific cells or ranges while keeping formatting and other properties intact.\"},{\"slug\":\"GOOGLESHEETS_SPREADSHEETS_VALUES_BATCH_GET_BY_DATA_FILTER\",\"name\":\"Batch Get Spreadsheet Values by Data Filter\",\"description\":\"Tool to return one or more ranges of values from a spreadsheet that match the specified data filters. Use when you need to retrieve specific data sets based on filtering criteria rather than entire sheets or fixed ranges.\"},{\"slug\":\"GOOGLESHEETS_UPDATE_CHART\",\"name\":\"Update Chart in Google Sheets\",\"description\":\"Update the specification of an existing chart in a Google Sheets spreadsheet. Use this action when you need to modify an existing chart's properties such as its title, chart type, data ranges, colors, axes, or other visual settings. This action updates the chart's specification but does not change its position or size on the sheet.\"},{\"slug\":\"GOOGLESHEETS_UPDATE_DIMENSION_PROPERTIES\",\"name\":\"Update Dimension Properties (Hide/Unhide \u0026 Resize)\",\"description\":\"Tool to hide/unhide rows or columns and set row heights or column widths. Use when you need to change visibility or pixel sizing of dimensions in a Google Sheet.\"},{\"slug\":\"GOOGLESHEETS_UPDATE_SHEET_PROPERTIES\",\"name\":\"Update Sheet Properties\",\"description\":\"Tool to update properties of a sheet (worksheet) within a Google Spreadsheet, such as its title, index, visibility, tab color, or grid properties. Use this when you need to modify the metadata or appearance of a specific sheet.\"},{\"slug\":\"GOOGLESHEETS_UPDATE_SPREADSHEET_PROPERTIES\",\"name\":\"Update Spreadsheet Properties\",\"description\":\"Tool to update SPREADSHEET-LEVEL properties such as the spreadsheet's title, locale, time zone, or auto-recalculation settings. Use when you need to modify the overall configuration of a Google Spreadsheet. NOTE: To update individual SHEET properties (like renaming a specific sheet/tab), use GOOGLESHEETS_UPDATE_SHEET_PROPERTIES instead.\"},{\"slug\":\"GOOGLESHEETS_UPDATE_VALUES_BATCH\",\"name\":\"Batch update spreadsheet values\",\"description\":\"Tool to set values in one or more ranges of a spreadsheet. Use when you need to update multiple ranges in a single operation for better performance.\"},{\"slug\":\"GOOGLESHEETS_UPSERT_ROWS\",\"name\":\"Upsert Rows (Smart Update/Insert)\",\"description\":\"Upsert rows - update existing rows by key, append new ones. Automatically handles column mapping and partial updates. Use for: CRM syncs (match Lead ID), transaction imports (match Transaction ID), inventory updates (match SKU), calendar syncs (match Event ID). Features: - Auto-adds missing columns to sheet - Partial column updates (only update Phone + Status, preserve other columns) - Column order doesn't matter (auto-maps by header name) - Prevents duplicates by matching key column Example inputs: - Contact update: keyColumn='Email', headers=['Email','Phone','Status'], data=[['john@ex.com','555-0101','Active']] - Inventory sync: keyColumn='SKU', headers=['SKU','Stock','Price'], data=[['WIDGET-001',50,9.99],['GADGET-002',30,19.99]] - CRM lead update: keyColumn='Lead ID', headers=['Lead ID','Score','Status'], data=[['L-12345',85,'Hot']] - Partial update: keyColumn='Email', headers=['Email','Phone'] (only updates Phone, preserves Name/Address/etc)\"},{\"slug\":\"GOOGLESHEETS_VALUES_GET\",\"name\":\"Get spreadsheet values\",\"description\":\"Returns a range of values from a spreadsheet. Use when you need to read data from specific cells or ranges in a Google Sheet.\"},{\"slug\":\"GOOGLESHEETS_VALUES_UPDATE\",\"name\":\"Update spreadsheet values\",\"description\":\"Tool to set values in a range of a Google Spreadsheet. Use when you need to update or overwrite existing cell values in a specific range.\"}]},{\"slug\":\"slack\",\"name\":\"Slack\",\"description\":\"Slack is a channel-based messaging platform. With Slack, people can work together more effectively, connect all their software tools and services, and find the information they need to do their best work - all within a secure, enterprise-grade environment.\",\"logo\":\"https://logos.composio.dev/api/slack\",\"rank\":6,\"tools\":[{\"slug\":\"SLACK_ADD_CALL_PARTICIPANTS\",\"name\":\"Add call participants\",\"description\":\"Registers new participants added to a Slack call.\"},{\"slug\":\"SLACK_ADD_EMOJI\",\"name\":\"Add emoji\",\"description\":\"Adds a custom emoji to a Slack workspace given a unique name and an image URL; subject to workspace emoji limits.\"},{\"slug\":\"SLACK_ADD_EMOJI_ALIAS\",\"name\":\"Add an emoji alias\",\"description\":\"Adds an alias for an existing custom emoji in a Slack Enterprise Grid organization.\"},{\"slug\":\"SLACK_ADD_ENTERPRISE_USER_TO_WORKSPACE\",\"name\":\"Add Enterprise user to workspace\",\"description\":\"Adds an Enterprise user to a workspace. Use when you need to assign an existing Enterprise Grid user to a specific workspace with optional guest restrictions.\"},{\"slug\":\"SLACK_ADD_REACTION_TO_AN_ITEM\",\"name\":\"Add reaction to message\",\"description\":\"Adds a specified emoji reaction to an existing message in a Slack channel, identified by its timestamp; does not remove or retrieve reactions.\"},{\"slug\":\"SLACK_ADD_REMOTE_FILE\",\"name\":\"Add a remote file\",\"description\":\"Adds a reference to an external file (e.g., Google Drive, Dropbox) to Slack for discovery and sharing, requiring a unique `external_id` and an `external_url` accessible by Slack.\"},{\"slug\":\"SLACK_ADD_STAR\",\"name\":\"Add a star to an item\",\"description\":\"Stars a channel, file, file comment, or a specific message in Slack.\"},{\"slug\":\"SLACK_ADMIN_CONVERSATIONS_SEARCH\",\"name\":\"Search for channels in Enterprise organization\",\"description\":\"Tool to search for public or private channels in an Enterprise organization. Use when you need to find channels by name, type, or other criteria within an Enterprise Grid workspace.\"},{\"slug\":\"SLACK_API_TEST\",\"name\":\"Test Slack API connection\",\"description\":\"Tool to check API calling code by testing connectivity and authentication to the Slack API. Use when you need to verify that API credentials are valid and the connection is working properly.\"},{\"slug\":\"SLACK_ARCHIVE_CONVERSATION\",\"name\":\"Archive a Slack conversation\",\"description\":\"Archives a Slack conversation by its ID, rendering it read-only and hidden while retaining history, ideal for cleaning up inactive channels; be aware that some channels (like #general or certain DMs) cannot be archived and this may impact connected integrations.\"},{\"slug\":\"SLACK_ASSISTANT_SEARCH_CONTEXT\",\"name\":\"Real-time search\",\"description\":\"Search Slack messages, files, channels, and users via Real-time Search API. For queries referencing entities by name (users/channels/files), first resolve with content_types (users/channels/files) to get exact ID. If multiple matches, ask user to clarify before proceeding (e.g. ask for user email).\"},{\"slug\":\"SLACK_ASSISTANT_SEARCH_INFO\",\"name\":\"Check search capabilities\",\"description\":\"Check if semantic (AI-powered) search is available on the Slack workspace. Returns whether natural language queries will trigger semantic search in assistant.search.context calls.\"},{\"slug\":\"SLACK_CHAT_POST_MESSAGE\",\"name\":\"Send message\",\"description\":\"(DEPRECATED: use `SLACK_SEND_MESSAGE`) Posts a message to a Slack channel, DM, or private group; requires at least one content field (`markdown_text`, `text`, `blocks`, or `attachments`) — omitting all causes a `no_text` error. Fails with `not_in_channel`, `channel_not_found`, or `channel_is_archived` if the bot lacks access. Body limit ~4000 characters. Rate-limited at ~1 req/sec (HTTP 429, honor `Retry-After`). Not idempotent — duplicate calls post duplicate messages.\"},{\"slug\":\"SLACK_CLOSE_DM\",\"name\":\"Close conversation channel\",\"description\":\"Closes a Slack direct message (DM) or multi-person direct message (MPDM) channel, removing it from the user's sidebar without deleting history; this action affects only the calling user's view.\"},{\"slug\":\"SLACK_CONVERT_CHANNEL_TO_PRIVATE\",\"name\":\"Convert public channel to private\",\"description\":\"Convert a public Slack channel to private using the Admin API. This is an Enterprise Grid only feature and requires an org-installed user token with admin.conversations:write scope.\"},{\"slug\":\"SLACK_CREATE_A_REMINDER\",\"name\":\"Create a reminder\",\"description\":\"Creates a Slack reminder with specified text and time; time accepts Unix timestamps, seconds from now, or natural language (e.g., 'in 15 minutes', 'every Thursday at 2pm').\"},{\"slug\":\"SLACK_CREATE_CANVAS\",\"name\":\"Create Slack Canvas\",\"description\":\"Creates a new Slack Canvas with the specified title and optional content.\"},{\"slug\":\"SLACK_CREATE_CHANNEL\",\"name\":\"Create channel\",\"description\":\"Initiates a public or private channel-based conversation in a Slack workspace. Immediately creates the channel; invoke only after explicit user confirmation.\"},{\"slug\":\"SLACK_CREATE_CHANNEL_BASED_CONVERSATION\",\"name\":\"Create a channel-based conversation\",\"description\":\"Creates a new public or private Slack channel with a unique name; the channel can be org-wide, or team-specific if `team_id` is given (required if `org_wide` is false or not provided).\"},{\"slug\":\"SLACK_CREATE_ENTERPRISE_TEAM\",\"name\":\"Create Enterprise team\",\"description\":\"Tool to create an Enterprise team in Slack. Use when you need to create a new team (workspace) within an Enterprise Grid organization. Requires admin.teams:write scope.\"},{\"slug\":\"SLACK_CREATE_SLACK_LIST\",\"name\":\"Create Slack List\",\"description\":\"Creates a new Slack List via `slackLists.create`. Provide a `name` and, optionally, a `description_blocks` description and a `schema` of typed columns. You can instead copy an existing List's structure with `copy_from_list_id` (and its rows via `include_copied_list_records`), or enable task-tracking columns with `todo_mode`. Returns the new List's `list_id`. Requires a user token with the `lists:write` scope.\"},{\"slug\":\"SLACK_CREATE_SLACK_LIST_ITEM\",\"name\":\"Create Slack List item\",\"description\":\"Creates a new item (row) in a Slack List via `slackLists.items.create`. Set initial cell values with `initial_fields`; text columns require Block Kit `rich_text` (a plain string is wrapped automatically). Optionally duplicate an existing row with `duplicated_item_id` or create a subtask with `parent_item_id`. Requires a user token with the `lists:write` scope.\"},{\"slug\":\"SLACK_CREATE_USER_GROUP\",\"name\":\"Create a Slack user group\",\"description\":\"Creates a new User Group (often referred to as a subteam) in a Slack workspace.\"},{\"slug\":\"SLACK_CUSTOMIZE_URL_UNFURL\",\"name\":\"Customize URL unfurl\",\"description\":\"Customizes URL previews (unfurling) in a specific Slack message using a URL-encoded JSON in `unfurls` to define custom content or remove existing previews.\"},{\"slug\":\"SLACK_DELETE_CANVAS\",\"name\":\"Delete Slack Canvas\",\"description\":\"Deletes a Slack Canvas permanently and irreversibly. Always confirm with the user before calling this tool.\"},{\"slug\":\"SLACK_DELETE_CHANNEL\",\"name\":\"Delete a public or private channel\",\"description\":\"Permanently and irreversibly deletes a specified public or private channel, including all its messages and files, within a Slack Enterprise Grid organization.\"},{\"slug\":\"SLACK_DELETE_FILE\",\"name\":\"Delete a file by ID\",\"description\":\"Permanently deletes an existing file from a Slack workspace using its unique file ID; this action is irreversible and also removes any associated comments or shares.\"},{\"slug\":\"SLACK_DELETE_FILE_COMMENT\",\"name\":\"Delete file comment\",\"description\":\"Deletes a specific comment from a file in Slack; this action is irreversible.\"},{\"slug\":\"SLACK_DELETE_MULTIPLE_SLACK_LIST_ITEMS\",\"name\":\"Delete multiple Slack List items\",\"description\":\"Deletes several items (rows) from a Slack List in one call via `slackLists.items.deleteMultiple`. This operation is ALL-OR-NOTHING: Slack returns a single `{\\\"ok\\\": true}` on success or `{\\\"ok\\\": false, \\\"error\\\": ...}` on failure, with NO per-item result array, so partial state cannot be reported. On failure, treat the whole batch as not deleted and retry the entire batch. Requires a user token with the `lists:write` scope.\"},{\"slug\":\"SLACK_DELETE_REMINDER\",\"name\":\"Delete a Slack reminder\",\"description\":\"Deletes an existing Slack reminder, typically when it is no longer relevant or a task is completed; this operation is irreversible.\"},{\"slug\":\"SLACK_DELETES_A_MESSAGE_FROM_A_CHAT\",\"name\":\"Delete a message from a chat\",\"description\":\"Deletes a message, identified by its channel ID and timestamp, from a Slack channel, private group, or direct message conversation; the authenticated user or bot must be the original poster.\"},{\"slug\":\"SLACK_DELETE_SCHEDULED_MESSAGE\",\"name\":\"Delete scheduled chat message\",\"description\":\"Deletes a pending, unsent scheduled message from the specified Slack channel, identified by its `scheduled_message_id`.\"},{\"slug\":\"SLACK_DELETE_SLACK_LIST_ACCESS\",\"name\":\"Delete Slack List access\",\"description\":\"Revokes sharing access on a Slack List via `slackLists.access.delete`. Provide the `list_id` and EXACTLY ONE of `channel_ids` or `user_ids` (they are mutually exclusive) to remove access for those channels or users. Requires a user token with the `lists:write` scope.\"},{\"slug\":\"SLACK_DELETE_SLACK_LIST_ITEM\",\"name\":\"Delete Slack List item\",\"description\":\"Deletes an item (row) from a Slack List via `slackLists.items.delete`. Identify the List with `list_id` and the row to remove with `id`. Deletion is permanent and cannot be undone. Requires a user token with the `lists:write` scope.\"},{\"slug\":\"SLACK_DELETE_USER_PROFILE_PHOTO\",\"name\":\"Delete user profile photo\",\"description\":\"Deletes the Slack profile photo for the user identified by the token, reverting them to the default avatar; this action is irreversible and succeeds even if no custom photo was set.\"},{\"slug\":\"SLACK_DISABLE_USER_GROUP\",\"name\":\"Disable a Slack user group\",\"description\":\"Disables a specified, currently enabled Slack User Group by its unique ID, effectively archiving it by setting its 'date_delete' timestamp; the group is not permanently deleted and can be re-enabled.\"},{\"slug\":\"SLACK_DOWNLOAD_SLACK_FILE\",\"name\":\"Download Slack file\",\"description\":\"Tool to download Slack file content and convert it to a publicly accessible URL. Use when you need to retrieve and download files that have been shared in Slack channels or conversations.\"},{\"slug\":\"SLACK_EDIT_CANVAS\",\"name\":\"Edit Slack Canvas\",\"description\":\"Edits a Slack Canvas with granular control over content placement. Supports replace, insert (before/after/start/end) operations for flexible content management.\"},{\"slug\":\"SLACK_ENABLE_PUBLIC_SHARING_OF_A_FILE\",\"name\":\"Share file public url\",\"description\":\"Enables public sharing for an existing Slack file by generating a publicly accessible URL; this action does not create new files. Once enabled, the file is accessible to anyone with the URL — verify intent before sharing sensitive or confidential files.\"},{\"slug\":\"SLACK_ENABLE_USER_GROUP\",\"name\":\"Enable a user group\",\"description\":\"Enables a disabled User Group in Slack using its ID, reactivating it for mentions and permissions; this action only changes the enabled status and cannot create new groups or modify other properties.\"},{\"slug\":\"SLACK_END_CALL\",\"name\":\"End a call\",\"description\":\"Ends an ongoing Slack call, identified by its ID (obtained from `calls.add`), optionally specifying the call's duration.\"},{\"slug\":\"SLACK_END_DND\",\"name\":\"End DND session\",\"description\":\"Ends the authenticated user's current Do Not Disturb (DND) session in Slack, affecting only DND status and making them available; if DND is not active, Slack acknowledges the request without changing status.\"},{\"slug\":\"SLACK_END_SNOOZE\",\"name\":\"End snooze\",\"description\":\"Ends the current user's snooze mode immediately.\"},{\"slug\":\"SLACK_FETCH_CONVERSATION_HISTORY\",\"name\":\"Fetch conversation history\",\"description\":\"Fetches a chronological list of messages and events from a specified Slack conversation, accessible by the authenticated user/bot, with options for pagination and time range filtering. IMPORTANT LIMITATION: This action only returns messages from the main channel timeline. Threaded replies are NOT returned by this endpoint. To retrieve threaded replies, use the SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION action (conversations.replies API) instead. The oldest/latest timestamp filters work reliably for filtering the main channel timeline, but cannot be used to retrieve individual threaded replies - even if you know the exact reply timestamp, setting oldest=latest to that timestamp will return an empty messages array. To get threaded replies: 1. Use this action to get parent messages (which include thread_ts, reply_count, latest_reply fields) 2. Use SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION with the parent's thread_ts to fetch all replies in that thread\"},{\"slug\":\"SLACK_FETCH_ITEM_REACTIONS\",\"name\":\"Fetch item reactions\",\"description\":\"Fetches reactions for a Slack message, file, or file comment. Exactly one identifier path must be provided: `channel`+`timestamp`, `file`, or `file_comment`. Mixing identifiers (e.g., providing both `channel`+`timestamp` and `file`) causes errors. If the response omits the `reactions` field, the item has zero reactions.\"},{\"slug\":\"SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION\",\"name\":\"Retrieve conversation replies\",\"description\":\"Retrieves replies to a specific parent message in a Slack conversation, using the channel ID and the parent message's timestamp (`ts`). Note: The parent message in the response contains metadata (reply_count, reply_users, latest_reply) that indicates expected thread activity. If the returned messages array contains fewer replies than reply_count indicates, check: (1) has_more=true means pagination is needed, (2) recently posted replies may have timing delays, (3) some replies may be filtered by permissions or deleted. The composio_execution_message field will warn about any detected mismatches.\"},{\"slug\":\"SLACK_FETCH_TEAM_INFO\",\"name\":\"Fetch team info\",\"description\":\"Fetches comprehensive metadata about the current Slack team, or a specified team if the provided ID is accessible.\"},{\"slug\":\"SLACK_FIND_CHANNELS\",\"name\":\"Find channels\",\"description\":\"Find channels in a Slack workspace by any criteria - name, topic, purpose, or description. Returns channel IDs (C*/G* prefixed) required by most Slack tools — always resolve names to IDs here before passing to other tools. NOTE: This action searches channels and conversations visible to the authenticated user. Empty results may indicate: - No channels match the search query in name, topic, or purpose - The target private channel or DM is not accessible to the authenticated user because they are not a member - The connection lacks required read scopes (channels:read, groups:read, im:read, mpim:read). If empty, retry with exact_match=false or exclude_archived=false to avoid false negatives. In large workspaces, paginate using next_cursor to avoid missing matches. Check 'composio_execution_message' and 'total_channels_searched' in the response for details.\"},{\"slug\":\"SLACK_FIND_USER_BY_EMAIL_ADDRESS\",\"name\":\"Lookup users by email\",\"description\":\"Retrieves the Slack user object for an active user by their registered email address; requires the users:read.email OAuth scope. Fails with 'users_not_found' if the email is unregistered, the user is inactive, the account is a guest, or the email is hidden by workspace privacy settings.\"},{\"slug\":\"SLACK_FIND_USERS\",\"name\":\"Find users\",\"description\":\"Find users in a Slack workspace by any criteria - email, name, display name, or other text. Includes optimized email lookup for exact email matches. Zero results may reflect email visibility restrictions or workspace policies, not global absence. Repeated calls may trigger HTTP 429; honor the Retry-After header.\"},{\"slug\":\"SLACK_GET_APP_PERMISSION_SCOPES\",\"name\":\"Get app permission scopes\",\"description\":\"DEPRECATED: Use SLACK_TEST_AUTH instead. Preflight a Slack token by calling auth.test and returning the token's currently granted OAuth scopes (from response headers) to detect missing permissions before attempting admin actions. Use when you need to verify token capabilities or check for specific scopes before making API calls that require elevated permissions.\"},{\"slug\":\"SLACK_GET_AUDIT_ACTION_TYPES\",\"name\":\"Get Audit Action Types\",\"description\":\"Tool to retrieve information about action types available in the Slack Audit Logs API. Use when you need to know which action types can be used to filter audit logs or understand the categories of auditable actions in Slack.\"},{\"slug\":\"SLACK_GET_AUDIT_SCHEMAS\",\"name\":\"Get Audit Schemas\",\"description\":\"Tool to retrieve object schema information from the Slack Audit Logs API. Use when you need to understand the types of objects returned by audit log endpoints. Returns a list of all object types with descriptions.\"},{\"slug\":\"SLACK_GET_BOT_USER\",\"name\":\"Fetch bot user information\",\"description\":\"Fetches information for a specified, existing Slack bot user; will not work for regular user accounts or other integration types.\"},{\"slug\":\"SLACK_GET_CALL_INFO\",\"name\":\"Retrieve call information\",\"description\":\"Retrieves a point-in-time snapshot of a specific Slack call's information.\"},{\"slug\":\"SLACK_GET_CANVAS\",\"name\":\"Get Slack Canvas (Deprecated)\",\"description\":\"DEPRECATED: Use SLACK_RETRIEVE_DETAILED_INFORMATION_ABOUT_A_FILE instead. Retrieves a specific Slack Canvas by its ID, including its content and metadata.\"},{\"slug\":\"SLACK_GET_CHANNEL_CONVERSATION_PREFERENCES\",\"name\":\"Get channel conversation preferences\",\"description\":\"Retrieves conversation preferences (e.g., who can post, who can thread) for a specified channel, primarily for use within Slack Enterprise Grid environments.\"},{\"slug\":\"SLACK_GET_REMINDER\",\"name\":\"Get reminder information\",\"description\":\"Retrieves detailed information for an existing Slack reminder specified by its ID; this is a read-only operation.\"},{\"slug\":\"SLACK_GET_REMOTE_FILE\",\"name\":\"Get remote file\",\"description\":\"Retrieve information about a remote file added to Slack via the files.remote API. Does not work for standard Slack-hosted file uploads.\"},{\"slug\":\"SLACK_GET_SLACK_LIST_ITEM\",\"name\":\"Get Slack List item\",\"description\":\"Fetches a single item (row) from a Slack List via `slackLists.items.info`. Returns the row's `column_id`-keyed typed values along with metadata about the parent List. Set `include_is_subscribed` to also report whether the calling user is subscribed to the row. Requires a user token with the `lists:read` scope.\"},{\"slug\":\"SLACK_GET_TEAM_PROFILE\",\"name\":\"Retrieve team profile details\",\"description\":\"Retrieves all profile field definitions for a Slack team, optionally filtered by visibility, to understand the team's profile structure.\"},{\"slug\":\"SLACK_GET_UNREAD_MESSAGES_FROM_USER\",\"name\":\"Get unread messages from user\",\"description\":\"Retrieves unread direct messages from a specific user by opening their DM conversation, checking for unread messages, and fetching message history since the last read timestamp. Use this action when you need to check if a specific user has sent unread direct messages to the authenticated user, or when monitoring incoming DMs from particular users. Returns an empty messages array if there are no unread messages from the specified user. Note: This action only works for direct messages (DMs), not channel messages or group conversations.\"},{\"slug\":\"SLACK_GET_USER_DND_STATUS\",\"name\":\"Get team DND status\",\"description\":\"Retrieves a user's current Do Not Disturb status.\"},{\"slug\":\"SLACK_GET_USER_PRESENCE\",\"name\":\"Retrieve user presence\",\"description\":\"Retrieves a Slack user's current real-time presence (e.g., 'active', 'away') to determine their availability, noting this action does not provide historical data or status reasons.\"},{\"slug\":\"SLACK_GET_WORKSPACE_CONNECTIONS_FOR_CHANNEL\",\"name\":\"Get workspace connections for channel\",\"description\":\"Tool to get all workspaces a channel is connected to within an Enterprise org. Use when you need to determine which workspaces have access to a specific public or private channel in an Enterprise Grid organization.\"},{\"slug\":\"SLACK_GET_WORKSPACE_SETTINGS\",\"name\":\"Fetch workspace settings information\",\"description\":\"Retrieves detailed settings for a specific Slack workspace, primarily for administrators in an Enterprise Grid organization to view or audit workspace configurations.\"},{\"slug\":\"SLACK_INVITE_USERS_TO_A_SLACK_CHANNEL\",\"name\":\"Invite users to a Slack channel\",\"description\":\"Invites users to an existing Slack channel using their valid Slack User IDs. Response is always HTTP 200; inspect `ok`, `error`, and `errors` fields to confirm users were added.\"},{\"slug\":\"SLACK_INVITE_USER_TO_CHANNEL\",\"name\":\"Invite users to channel\",\"description\":\"Invites users to a specified Slack channel; this action is restricted to Enterprise Grid workspaces and requires the authenticated user to be a member of the target channel.\"},{\"slug\":\"SLACK_INVITE_USER_TO_WORKSPACE\",\"name\":\"Invite user to workspace\",\"description\":\"Invites a user to a Slack workspace and specified channels by email; use `resend=True` to re-process an existing invitation for a user not yet signed up.\"},{\"slug\":\"SLACK_JOIN_AN_EXISTING_CONVERSATION\",\"name\":\"Join conversation by channel id\",\"description\":\"Joins an existing Slack conversation (public channel, private channel, or multi-person direct message) by its ID, if the authenticated user has permission. Joining an already-joined channel returns a non-fatal no-op response. Private or restricted channel joins may fail with a permission error.\"},{\"slug\":\"SLACK_LEAVE_A_CONVERSATION\",\"name\":\"Leave conversation channel\",\"description\":\"(DEPRECATED: use `SLACK_LEAVE_CONVERSATION`) Leaves a Slack conversation given its channel ID; fails if leaving as the last member of a private channel or if used on a Slack Connect channel.\"},{\"slug\":\"SLACK_LEAVE_CONVERSATION\",\"name\":\"Leave conversation channel\",\"description\":\"Leaves a Slack conversation given its channel ID; fails if leaving as the last member of a private channel or if used on a Slack Connect channel.\"},{\"slug\":\"SLACK_LIST_ADMIN_APPS_APPROVED\",\"name\":\"List approved apps\",\"description\":\"Tool to list approved apps for an Enterprise Grid organization or workspace. Use when you need to retrieve the list of apps that have been approved for installation by workspace admins. Requires admin.apps:read scope and a user token from an org owner/admin context.\"},{\"slug\":\"SLACK_LIST_ADMIN_APPS_REQUESTS\",\"name\":\"List app requests\",\"description\":\"Tool to list pending app installation requests for a team/workspace. Use when you need to see which apps users have requested to install that haven't yet been approved or denied. Requires Enterprise Grid or Business+ plan with admin.apps:read scope.\"},{\"slug\":\"SLACK_LIST_ADMIN_EMOJI\",\"name\":\"List admin emoji\",\"description\":\"List custom emoji across an Enterprise Grid organization. Use when you need to retrieve all custom emoji for an entire Enterprise Grid org (not just a single workspace). Requires admin.teams:read scope and an admin token. For single workspace emoji, use the regular emoji.list method instead.\"},{\"slug\":\"SLACK_LIST_ALL_CHANNELS\",\"name\":\"List all channels\",\"description\":\"Lists conversations available to the user with various filters and search options. Always use resolved `channel_id` (not display names) for downstream operations, as names may be non-unique. The `created` field in results is a Unix epoch timestamp (UTC). Pagination across large workspaces may return HTTP 429 with a `Retry-After` header; honor the delay and resume from the last successful cursor.\"},{\"slug\":\"SLACK_LIST_ALL_USERS\",\"name\":\"List all users\",\"description\":\"Retrieves a paginated list of all users with profile details, status, and team memberships in a Slack workspace; data may not be real-time. Filter response fields `is_bot`, `is_app_user`, and `deleted` to build human-only rosters. Profile fields like `email` and `phone` may be absent depending on OAuth scopes and workspace privacy settings. Guest/restricted accounts may be omitted based on scopes—do not treat results as a complete directory. High-frequency calls risk HTTP 429; honor the `Retry-After` header and throttle to ~1–2 requests/second. Use stable user IDs rather than display names for mapping. Prefer SLACK_FIND_USERS for targeted lookups; cache results to avoid full-workspace fetches.\"},{\"slug\":\"SLACK_LIST_APPROVED_WORKSPACE_INVITE_REQUESTS\",\"name\":\"List approved workspace invite requests\",\"description\":\"List all approved workspace invite requests with pagination support. Use to review which invite requests have been approved and the details of each approval. Requires admin.invites:read scope and Enterprise Grid organization.\"},{\"slug\":\"SLACK_LIST_AUTH_TEAMS\",\"name\":\"List authorized teams\",\"description\":\"Obtains a paginated list of workspaces your org-wide app has been approved for. Use when you need to discover all workspaces within an organization where the app is installed.\"},{\"slug\":\"SLACK_LIST_AVAILABLE_WORKSPACES\",\"name\":\"List available workspaces\",\"description\":\"List Slack workspaces where both the connection and target user have access. Returns each workspace's team_id and name. Use this when: (1) the user references a workspace by name, (2) a user-specific tool requires team_id and you don't have one, or (3) a user-specific call fails with a team/workspace access error. Match the user's workspace name to a team_id from the results and pass that team_id to subsequent tools. If the name matches zero or multiple workspaces, ask the user to clarify. Only meaningful for org-level installs; single-workspace connections return the workspace only if the specified user's membership is visible to this token.\"},{\"slug\":\"SLACK_LIST_CANVASES\",\"name\":\"List Slack Canvases (Deprecated)\",\"description\":\"DEPRECATED: Use SLACK_LIST_FILES_WITH_FILTERS_IN_SLACK instead (pass types=\\\"canvas\\\" for equivalent behavior). Lists Slack Canvases with filtering by channel, user, timestamp, and page-based pagination. Uses Slack's files.list API with types=canvas filter. Only canvases accessible to the authenticated app are returned; missing canvases indicate permissions restrictions, not empty data. Use `paging.pages` in the response to determine total pages; iterate `page` with `count` to retrieve all results. Known limitations: - The 'user' filter may return canvases accessible to the specified user, not just canvases they created. - The 'ts_from' and 'ts_to' timestamp filters may not work reliably for canvas types. Consider client-side filtering on the 'created' field in the response if precise date filtering is required.\"},{\"slug\":\"SLACK_LIST_CONVERSATIONS\",\"name\":\"List conversations\",\"description\":\"List conversations (channels/DMs) accessible to a specified user (or the authenticated user if no user ID is provided), respecting shared membership for non-public channels. Returns conversation IDs (C* for channels, G* for group DMs), not display names. Absence of private channels, DMs, or MPIMs from results indicates token scope or membership limits, not that the conversation is nonexistent.\"},{\"slug\":\"SLACK_LIST_CUSTOM_EMOJIS\",\"name\":\"List team custom emojis\",\"description\":\"Retrieves all custom emojis for the Slack workspace (image URLs or aliases), not standard Unicode emojis; does not include usage statistics or creation dates.\"},{\"slug\":\"SLACK_LIST_DENIED_WORKSPACE_INVITE_REQUESTS\",\"name\":\"List denied workspace invite requests\",\"description\":\"Tool to list all denied workspace invite requests with details about who denied them and when. Use when you need to review or audit denied invitation requests.\"},{\"slug\":\"SLACK_LIST_ENTERPRISE_TEAMS\",\"name\":\"List Enterprise teams\",\"description\":\"List all teams (workspaces) in a Slack Enterprise Grid organization with pagination support. Use when you need to retrieve team IDs, names, domains, and metadata for all workspaces in an Enterprise. Requires admin.teams:read scope and Enterprise Grid organization.\"},{\"slug\":\"SLACK_LIST_FILES_WITH_FILTERS_IN_SLACK\",\"name\":\"List Slack files\",\"description\":\"Lists files and their metadata within a Slack workspace, filterable by user, channel, timestamp, or type; returns metadata only, not file content. Results are limited to files visible to the authenticated user — files in private channels or restricted to certain members require appropriate membership and permissions. For large workspaces, check `paging.pages` in the response to determine total pages when paginating.\"},{\"slug\":\"SLACK_LIST_IDP_GROUPS_LINKED_TO_CHANNEL\",\"name\":\"List IDP groups linked to channel\",\"description\":\"Lists IDP groups that have restricted access to a private Slack channel. Use when you need to see which identity provider groups can access a specific channel.\"},{\"slug\":\"SLACK_LIST_PENDING_WORKSPACE_INVITE_REQUESTS\",\"name\":\"List pending workspace invite requests\",\"description\":\"Tool to list all pending workspace invite requests. Use when you need to see who has been invited but hasn't joined yet. Requires admin.invites:read scope.\"},{\"slug\":\"SLACK_LIST_PINNED_ITEMS\",\"name\":\"List pinned items in a channel\",\"description\":\"Retrieves all messages and files pinned to a specified channel; the caller must have access to this channel.\"},{\"slug\":\"SLACK_LIST_REMINDERS\",\"name\":\"List reminders\",\"description\":\"Lists all reminders with their details for the authenticated Slack user; returns an empty array if no reminders exist (valid state, not an error). Reminder text is not unique—perform client-side matching on returned objects before extracting a reminder ID for use with SLACK_DELETE_A_SLACK_REMINDER.\"},{\"slug\":\"SLACK_LIST_REMOTE_FILES\",\"name\":\"List remote files\",\"description\":\"Retrieve information about a team's remote files.\"},{\"slug\":\"SLACK_LIST_RESTRICTED_APPS\",\"name\":\"List Restricted Apps\",\"description\":\"Tool to list restricted apps for an org or workspace. Use when you need to view apps that have been restricted from installation. Requires admin.apps:read scope and appropriate admin permissions.\"},{\"slug\":\"SLACK_LIST_SCHEDULED_MESSAGES\",\"name\":\"List scheduled messages\",\"description\":\"Retrieves a list of pending (not yet delivered) messages scheduled in a specific Slack channel, or across all accessible channels if no channel ID is provided, optionally filtered by time and paginated.\"},{\"slug\":\"SLACK_LIST_SLACK_LIST_ITEMS\",\"name\":\"List Slack List items\",\"description\":\"Lists the rows (items) in a Slack List via `slackLists.items.list`. Each row exposes `column_id`-keyed typed values (e.g. `rich_text`, `select`, `user`, `date`, `number`); the legacy `key`/`value` fields are deprecated. Results are cursor-paginated—you must paginate using `response_metadata.next_cursor` until it is empty, or rows are silently truncated to the first page. Set `archived=true` to return archived rows instead of active ones. Requires a user token with the `lists:read` scope.\"},{\"slug\":\"SLACK_LIST_STARRED_ITEMS\",\"name\":\"List starred items\",\"description\":\"Lists items starred by a user. Returns classic starred items only — does not reflect Slack's 'saved for later' feature. Use SLACK_SEARCH_MESSAGES or SLACK_SEARCH_ALL for broader saved-content queries.\"},{\"slug\":\"SLACK_LIST_UNREAD_CHANNEL_MESSAGES\",\"name\":\"List unread channel messages\",\"description\":\"Lists all unread messages in a specified Slack channel for the authenticated user. This action fetches messages that have been posted since the user's last read position in the channel. Use this action when you need to retrieve messages the user hasn't seen yet. The action determines the user's read position and returns all messages posted after that timestamp. Note: This only returns messages from the main channel timeline, not threaded replies. For threaded replies, use SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION.\"},{\"slug\":\"SLACK_LIST_USER_GROUP_MEMBERS\",\"name\":\"List all users in a user group\",\"description\":\"Retrieves a list of all user IDs within a specified Slack user group, with an option to include users from disabled groups.\"},{\"slug\":\"SLACK_LIST_USER_GROUPS\",\"name\":\"List user groups\",\"description\":\"Lists user groups in a Slack workspace, including user-created and default groups; results for large workspaces may be paginated.\"},{\"slug\":\"SLACK_LIST_USER_REACTIONS\",\"name\":\"List user reactions\",\"description\":\"Lists all reactions added by a specific user to messages, files, or file comments in Slack, useful for engagement analysis when the item content itself is not required. Results are paginated; check `response_metadata.next_cursor` and iterate with the `cursor` parameter to retrieve complete reaction history.\"},{\"slug\":\"SLACK_LIST_WORKSPACE_ADMINS\",\"name\":\"List workspace admins\",\"description\":\"Tool to list all admins on a given Slack workspace. Use when you need to identify workspace administrators. Requires Enterprise Grid organization and admin.teams:read scope.\"},{\"slug\":\"SLACK_LIST_WORKSPACE_OWNERS\",\"name\":\"List workspace owners\",\"description\":\"Tool to list all owners on a given Slack workspace. Use when you need to identify workspace ownership or admin structure. Requires admin.teams:read scope.\"},{\"slug\":\"SLACK_LIST_WORKSPACE_USERS\",\"name\":\"List admin users\",\"description\":\"Retrieves a paginated list of admin users for a specified Slack workspace.\"},{\"slug\":\"SLACK_LOOKUP_CANVAS_SECTIONS\",\"name\":\"Lookup Canvas Sections\",\"description\":\"Looks up section IDs in a Slack Canvas for use with targeted edit operations. Section IDs are needed for insert_after, insert_before, delete, and section-specific replace operations.\"},{\"slug\":\"SLACK_MANUALLY_SET_USER_PRESENCE\",\"name\":\"Set user presence\",\"description\":\"(DEPRECATED: use `SLACK_SET_USER_PRESENCE`) Manually sets a user's Slack presence, overriding automatic detection; this setting persists across connections but can be overridden by user actions or Slack's auto-away (e.g., after 10 mins of inactivity).\"},{\"slug\":\"SLACK_OPEN_DM\",\"name\":\"Open DM\",\"description\":\"Opens or resumes a Slack direct message (DM) or multi-person direct message (MPIM) by providing either user IDs or an existing channel ID. Returns `already_open=true` when the DM exists — treat as success and reuse the returned `channel.id` (starts with 'D') for subsequent SLACK_SEND_MESSAGE calls; passing a username, email, or user ID directly to SLACK_SEND_MESSAGE causes `channel_not_found`. Avoid redundant calls when an existing DM channel ID is available.\"},{\"slug\":\"SLACK_PIN_ITEM\",\"name\":\"Pin an item to a channel\",\"description\":\"Pins a message to a specified Slack channel; the message must not already be pinned.\"},{\"slug\":\"SLACK_READ_AUDIT_LOGS\",\"name\":\"Read Audit Logs\",\"description\":\"Read Slack Enterprise Grid Audit Logs (logins, admin changes, app installs, channel/privacy changes, etc.) with server-side filters and pagination. Requires Enterprise Grid organization with auditlogs:read scope and a user token (xoxp-...) from an owner/admin context.\"},{\"slug\":\"SLACK_REMOVE_CALL_PARTICIPANTS\",\"name\":\"Remove call participants\",\"description\":\"Registers participants removed from a Slack call.\"},{\"slug\":\"SLACK_REMOVE_EMOJI\",\"name\":\"Remove emoji\",\"description\":\"Tool to remove a custom emoji across an Enterprise Grid organization. Use when you need to delete a custom emoji from the entire organization.\"},{\"slug\":\"SLACK_REMOVE_REACTION_FROM_ITEM\",\"name\":\"Remove reaction from item\",\"description\":\"Removes an emoji reaction from a message, file, or file comment in Slack. Provide exactly one targeting method: channel+timestamp together, file, or file_comment. Mixing methods or omitting all returns invalid_arguments.\"},{\"slug\":\"SLACK_REMOVE_REMOTE_FILE\",\"name\":\"Remove remote file\",\"description\":\"Removes the Slack reference to an external file (which must have been previously added via the remote files API), specified by either its `external_id` or `file` ID (one of which is required), without deleting the actual external file.\"},{\"slug\":\"SLACK_REMOVE_STAR\",\"name\":\"Remove a star from an item\",\"description\":\"Removes a star from a previously starred Slack item (message, file, file comment, channel, group, or DM), requiring identification via `file`, `file_comment`, `channel` (for channel/group/DM), or both `channel` and `timestamp` (for a message).\"},{\"slug\":\"SLACK_REMOVE_USER_FROM_CONVERSATION\",\"name\":\"Remove user from conversation\",\"description\":\"Removes a specified user from a Slack conversation (channel); the caller must have permissions to remove users and cannot remove themselves using this action.\"},{\"slug\":\"SLACK_REMOVE_USER_FROM_WORKSPACE\",\"name\":\"Remove user from workspace\",\"description\":\"Tool to remove a user from a Slack workspace. Use when you need to revoke a user's access to a workspace.\"},{\"slug\":\"SLACK_RENAME_CONVERSATION\",\"name\":\"Rename a conversation\",\"description\":\"Renames a Slack channel, automatically adjusting the new name to meet naming conventions (e.g., converting to lowercase), which may affect integrations using the old name.\"},{\"slug\":\"SLACK_RENAME_EMOJI\",\"name\":\"Rename an emoji\",\"description\":\"Renames an existing custom emoji in a Slack workspace, updating all its instances.\"},{\"slug\":\"SLACK_RESET_USER_SESSIONS\",\"name\":\"Reset user sessions\",\"description\":\"Tool to wipe all valid sessions on all devices for a given user. Use when you need to force a user to re-authenticate due to security concerns or account changes.\"},{\"slug\":\"SLACK_RESTRICT_APP_INSTALLATION\",\"name\":\"Restrict app installation\",\"description\":\"Restrict an app for installation on a workspace. Use when you need to prevent an app from being installed on a specific workspace or enterprise organization.\"},{\"slug\":\"SLACK_RETRIEVE_A_USER_S_IDENTITY_DETAILS\",\"name\":\"Retrieve a user's identity details\",\"description\":\"Retrieves the authenticated user's and their team's identity, with details varying based on OAuth scopes (e.g., `identity.basic`, `identity.email`, `identity.avatar`).\"},{\"slug\":\"SLACK_RETRIEVE_CONVERSATION_INFORMATION\",\"name\":\"Retrieve conversation information\",\"description\":\"Retrieves metadata for a Slack conversation by ID (e.g., name, purpose, creation date, with options for member count/locale), excluding message content. The `channel` parameter is effectively required. Private channels, DMs, or channels where the app lacks membership may return restricted data; check `is_archived` and `is_member` fields in the response to diagnose access issues. Bulk lookups may trigger HTTP 429 rate limiting; honor the `Retry-After` response header.\"},{\"slug\":\"SLACK_RETRIEVE_CONVERSATION_MEMBERS_LIST\",\"name\":\"Get conversation members\",\"description\":\"Retrieves a paginated list of active member IDs (not names, emails, or presence) for a specified Slack public channel, private channel, DM, or MPIM. Returns only user IDs; use a user-lookup tool to enrich member data.\"},{\"slug\":\"SLACK_RETRIEVE_CURRENT_USER_DND_STATUS\",\"name\":\"Retrieve user DND status\",\"description\":\"Retrieves a Slack user's current Do Not Disturb (DND) status to determine their availability before interaction; any specified user ID must be a valid Slack user ID.\"},{\"slug\":\"SLACK_RETRIEVE_DETAILED_INFORMATION_ABOUT_A_FILE\",\"name\":\"Retrieve detailed file information\",\"description\":\"Retrieves detailed metadata and paginated comments for a specific Slack file ID; does not download file content.\"},{\"slug\":\"SLACK_RETRIEVE_DETAILED_USER_INFORMATION\",\"name\":\"Retrieve detailed user information\",\"description\":\"Retrieves comprehensive information for a valid Slack user ID, excluding message history and channel memberships. Sensitive fields like `email` and `phone` require the `users:read.email` scope and may be silently omitted based on workspace privacy policies.\"},{\"slug\":\"SLACK_RETRIEVE_MESSAGE_PERMALINK_URL\",\"name\":\"Retrieve message permalink\",\"description\":\"Retrieves a permalink URL for a specific message in a Slack channel or conversation; the permalink respects Slack's privacy settings.\"},{\"slug\":\"SLACK_RETRIEVE_USER_PROFILE_INFORMATION\",\"name\":\"Retrieve user profile information\",\"description\":\"Retrieves profile information for a specified Slack user (defaults to the authenticated user if `user` ID is omitted); a provided `user` ID must be valid. Sensitive fields like email and phone may be silently omitted if required scopes (e.g., `users:read.email`) are not granted or workspace privacy policies restrict access.\"},{\"slug\":\"SLACK_REVOKE_FILE_PUBLIC_SHARING\",\"name\":\"Revoke a file's public url\",\"description\":\"Revokes a Slack file's public URL, making it private; this is a no-op if not already public and is irreversible.\"},{\"slug\":\"SLACK_RTM_CONNECT\",\"name\":\"Start RTM session\",\"description\":\"Starts a Real Time Messaging session and returns a WebSocket URL. Use when you need to establish a persistent RTM connection to receive real-time events from Slack.\"},{\"slug\":\"SLACK_RTM_START\",\"name\":\"Start RTM session\",\"description\":\"Starts a Real Time Messaging API session for Slack. Use when you need to establish an RTM connection with additional options beyond rtm.connect. Note: RTM API is deprecated; consider Socket Mode for new apps.\"},{\"slug\":\"SLACK_SCHEDULE_MESSAGE\",\"name\":\"Schedule message\",\"description\":\"Schedules a message to a Slack channel, DM, or private group for a future time (`post_at`), requiring `text`, `blocks`, or `attachments` for content; scheduling is limited to 120 days in advance.\"},{\"slug\":\"SLACK_SCIM_GET_CONFIG\",\"name\":\"Get SCIM service provider configuration\",\"description\":\"Tool to retrieve SCIM service provider configuration from Slack. Use when you need to discover Slack's SCIM API capabilities including supported authentication schemes, bulk operations, filtering, and other service provider features.\"},{\"slug\":\"SLACK_SEARCH_ALL\",\"name\":\"Search all content\",\"description\":\"Tool to search all messages and files. Use when you need unified content search across channels and files in one call. Results are scoped to content visible to the authenticated token; missing hits in private or restricted channels reflect permission/membership gaps. Response separates messages and files into distinct sections — explicitly read the files section for document results. Results are index-based and may lag several minutes behind real-time; use SLACK_FETCH_CONVERSATION_HISTORY for near-real-time per-channel coverage. Paginated searches exceeding ~1 req/sec may return HTTP 429 too_many_requests; honor the Retry-After header and resume from the last page.\"},{\"slug\":\"SLACK_SEARCH_MESSAGES\",\"name\":\"Search messages\",\"description\":\"Workspace‑wide Slack message search with date ranges and filters. Use `query` modifiers (e.g., in:#channel, from:@user, before/after:YYYY-MM-DD), sorting (score/timestamp), and pagination.\"},{\"slug\":\"SLACK_SEND_EPHEMERAL_MESSAGE\",\"name\":\"Send ephemeral message\",\"description\":\"Sends an ephemeral message visible only to the specified `user` in a channel; other channel members cannot see it. Both the bot and the target user must be members of the specified channel.\"},{\"slug\":\"SLACK_SEND_ME_MESSAGE\",\"name\":\"Share a me message in a channel\",\"description\":\"Sends a 'me message' (e.g., '/me is typing') to a Slack channel, where it's displayed as a third-person user action; messages are plain text and the channel must exist and be accessible.\"},{\"slug\":\"SLACK_SEND_MESSAGE\",\"name\":\"Send message\",\"description\":\"Posts a message to a Slack channel, DM, or private group. Provide exactly one visible content mode: `markdown_text` for normal Markdown content, or `blocks` for raw Slack Block Kit layouts. Use `fallback_text` only with `blocks`; it maps to Slack's top-level `text` fallback. Fails with `not_in_channel`, `channel_not_found`, or `channel_is_archived` if the bot lacks access. Rate-limited at ~1 req/sec (HTTP 429, honor `Retry-After`). Not idempotent — duplicate calls post duplicate messages.\"},{\"slug\":\"SLACK_SET_ADMIN_USER\",\"name\":\"Set admin user\",\"description\":\"Promotes an existing workspace member (guest, regular user, or owner) to admin status. Use when you need to grant admin privileges to a user.\"},{\"slug\":\"SLACK_SET_CONVERSATION_PREFS\",\"name\":\"Set conversation preferences\",\"description\":\"Sets the posting permissions for a public or private channel in Slack. Use this to control who can post messages, start threads, use @channel/@here mentions, and initiate huddles in a specific channel.\"},{\"slug\":\"SLACK_SET_CONVERSATION_PURPOSE\",\"name\":\"Set a conversation's purpose\",\"description\":\"Sets the purpose (a short description of its topic/goal, displayed in the header) for a Slack conversation; the calling user must be a member.\"},{\"slug\":\"SLACK_SET_DEFAULT_CHANNELS\",\"name\":\"Set default channels\",\"description\":\"Tool to set the default channels of a workspace. Use when you need to configure which channels new members automatically join.\"},{\"slug\":\"SLACK_SET_DND_DURATION\",\"name\":\"Set DND duration\",\"description\":\"Turns on Do Not Disturb mode for the current user, or changes its duration.\"},{\"slug\":\"SLACK_SET_PROFILE_PHOTO\",\"name\":\"Set profile photo\",\"description\":\"This method allows the user to set their profile image.\"},{\"slug\":\"SLACK_SET_READ_CURSOR_IN_A_CONVERSATION\",\"name\":\"Set conversation read cursor\",\"description\":\"Marks a message, specified by its timestamp (`ts`), as the most recently read for the authenticated user in the given `channel`, provided the user is a member of the channel and the message exists within it.\"},{\"slug\":\"SLACK_SET_SLACK_LIST_ACCESS\",\"name\":\"Set Slack List access\",\"description\":\"Grants or sets sharing access on a Slack List via `slackLists.access.set`. Grant `read`, `write`, or `owner` access to either channels (`channel_ids`) or users (`user_ids`) — exactly one of the two is required. The `owner` level is user-only and subject to additional server-side rules. Requires a user token with the `lists:write` scope.\"},{\"slug\":\"SLACK_SET_STATUS\",\"name\":\"Set Slack user profile information\",\"description\":\"(DEPRECATED: use `SLACK_SET_USER_PROFILE`) Updates a Slack user's profile, setting either individual fields or multiple fields via a JSON object.\"},{\"slug\":\"SLACK_SET_THE_TOPIC_OF_A_CONVERSATION\",\"name\":\"Set conversation topic\",\"description\":\"Sets or updates the topic for a specified Slack conversation.\"},{\"slug\":\"SLACK_SET_USER_ACTIVE\",\"name\":\"Mark user as active\",\"description\":\"Tool to mark a user as active in Slack. Note: This endpoint is deprecated and non-functional - it exists for backwards compatibility but does not perform any action.\"},{\"slug\":\"SLACK_SET_USER_PRESENCE\",\"name\":\"Set user presence\",\"description\":\"Manually sets a user's Slack presence, overriding automatic detection; this setting persists across connections but can be overridden by user actions or Slack's auto-away (e.g., after 10 mins of inactivity).\"},{\"slug\":\"SLACK_SET_USER_PROFILE\",\"name\":\"Set Slack user profile information\",\"description\":\"Updates a Slack user's profile, setting either individual fields or multiple fields via a JSON object.\"},{\"slug\":\"SLACK_SET_WORKSPACE_DESCRIPTION\",\"name\":\"Set workspace description\",\"description\":\"Set the description of a given workspace. Use when you need to update or change the description text displayed for a Slack workspace.\"},{\"slug\":\"SLACK_SET_WORKSPACE_ICON\",\"name\":\"Set workspace icon\",\"description\":\"Sets the icon of a workspace. Use when you need to update or change the workspace icon image. The image must be publicly accessible and in a supported format (GIF, PNG, JPG, JPEG, HEIC, or HEIF).\"},{\"slug\":\"SLACK_SET_WORKSPACE_NAME\",\"name\":\"Set workspace name\",\"description\":\"Set the name of a given Slack workspace. Use when you need to update the display name for a workspace in an Enterprise Grid organization.\"},{\"slug\":\"SLACK_SET_WORKSPACE_OWNER\",\"name\":\"Set workspace owner\",\"description\":\"Set an existing guest, regular user, or admin user to be a workspace owner. Use when you need to promote a workspace member to owner status. Requires an Enterprise Grid workspace.\"},{\"slug\":\"SLACK_SET_WORKSPACES_FOR_CHANNEL\",\"name\":\"Set workspaces for channel\",\"description\":\"Set the workspaces in an Enterprise grid org that connect to a channel. Use when you need to share a public or private channel with specific workspaces in an Enterprise Grid organization.\"},{\"slug\":\"SLACK_SHARE_REMOTE_FILE\",\"name\":\"Share a remote file in channels\",\"description\":\"Shares a remote file, which must already be registered with Slack, into specified Slack channels or direct message conversations.\"},{\"slug\":\"SLACK_START_CALL\",\"name\":\"Start call\",\"description\":\"Registers a new call in Slack using `calls.add` for third-party call integration; `created_by` is required if not using a user-specific token.\"},{\"slug\":\"SLACK_TEST_AUTH\",\"name\":\"Test authentication\",\"description\":\"Checks authentication and tells you who you are. Use to verify Slack API authentication is functional and to retrieve identity information about the authenticated user or bot.\"},{\"slug\":\"SLACK_UNARCHIVE_CHANNEL\",\"name\":\"Unarchive channel\",\"description\":\"Reverses conversation archival.\"},{\"slug\":\"SLACK_UNPIN_ITEM\",\"name\":\"Unpin message from channel\",\"description\":\"Unpins a message, identified by its timestamp, from a specified channel if the message is currently pinned there; this operation is destructive.\"},{\"slug\":\"SLACK_UPDATE_CALL_INFO\",\"name\":\"Update call information\",\"description\":\"Updates the title, join URL, or desktop app join URL for an existing Slack call identified by its ID.\"},{\"slug\":\"SLACK_UPDATE_REMOTE_FILE\",\"name\":\"Update an existing remote file\",\"description\":\"Updates metadata or content details for an existing remote file in Slack; this action cannot upload new files or change the fundamental file type.\"},{\"slug\":\"SLACK_UPDATES_A_SLACK_MESSAGE\",\"name\":\"Update a Slack message\",\"description\":\"Updates a Slack message by timestamp. Provide exactly one visible content mode: `markdown_text` for normal Markdown content, or `blocks` for raw Slack Block Kit layouts. Use `fallback_text` only with `blocks`; it maps to Slack's top-level `text` fallback.\"},{\"slug\":\"SLACK_UPDATE_SLACK_LIST\",\"name\":\"Update Slack List\",\"description\":\"Updates a Slack List's metadata via `slackLists.update`. Only the List's `name`, `description_blocks`, and `todo_mode` are editable here. The List to update is identified by its `id` (not `list_id`). Descriptions are rich text — a plain string is wrapped into a `rich_text` block automatically. Requires a user token with the `lists:write` scope.\"},{\"slug\":\"SLACK_UPDATE_SLACK_LIST_ITEM\",\"name\":\"Update Slack List item\",\"description\":\"Updates one or more cells in an EXISTING Slack List row via `slackLists.items.update`. Each cell is identified by `row_id` (an existing row ID matching `^Rec[A-Z0-9]{8,}$`) and `column_id` and carries a typed value; text columns require Block Kit `rich_text` (a plain string is wrapped automatically), and `select` takes the column's choice values (e.g. `[\\\"todo\\\"]`). Use it to UPDATE existing rows; the live API rejects `row_id_to_create` inside a cell (despite Slack's inline example), so to ADD a row use `create_slack_list_item`. Requires a user token with the `lists:write` scope.\"},{\"slug\":\"SLACK_UPDATE_USER_GROUP\",\"name\":\"Update Slack user group\",\"description\":\"Updates an existing Slack User Group, which must be specified by an existing `usergroup` ID, with new optional details such as its name, description, handle, or default channels.\"},{\"slug\":\"SLACK_UPDATE_USER_GROUP_MEMBERS\",\"name\":\"Update user group members\",\"description\":\"Replaces all members of an existing Slack User Group with a new list of valid user IDs.\"},{\"slug\":\"SLACK_UPLOAD_OR_CREATE_A_FILE_IN_SLACK\",\"name\":\"Upload or create a file in Slack\",\"description\":\"Upload files, images, screenshots, documents, or any media to Slack channels or threads. Supports all file types including images (PNG, JPG, JPEG, GIF), documents (PDF, DOCX, TXT), code files, and more. Can share files publicly in channels or as thread replies with optional comments. Large files may fail with `upload_too_large`; use SLACK_ADD_A_REMOTE_FILE_FROM_A_SERVICE for large uploads. If the API returns `ok=false` with `method_deprecated`, fall back to SLACK_ADD_A_REMOTE_FILE_FROM_A_SERVICE or SLACK_SEND_MESSAGE with a URL.\"}]},{\"slug\":\"supabase\",\"name\":\"Supabase\",\"description\":\"Supabase is an open-source backend-as-a-service providing a Postgres database, authentication, storage, and real-time subscription APIs for building modern applications\",\"logo\":\"https://logos.composio.dev/api/supabase\",\"rank\":7,\"tools\":[{\"slug\":\"SUPABASE_ALPHA_CREATE_API_KEY\",\"name\":\"Create project api key\",\"description\":\"Creates a 'publishable' or 'secret' API key for an existing Supabase project, optionally with a description; 'secret' keys can have customized JWT templates.\"},{\"slug\":\"SUPABASE_ALPHA_DELETE_API_KEY\",\"name\":\"Delete an API key from the project\",\"description\":\"Permanently deletes a specific API key (identified by `id`) from a Supabase project (identified by `ref`), revoking its access.\"},{\"slug\":\"SUPABASE_ALPHA_DELETE_THIRD_PARTY_AUTH_INTEGRATION\",\"name\":\"Delete third party auth config\",\"description\":\"Removes a third-party authentication provider (e.g., Google, GitHub) from a Supabase project's configuration; this immediately prevents users from logging in via that method.\"},{\"slug\":\"SUPABASE_ALPHA_GET_THIRD_PARTY_INTEGRATION\",\"name\":\"Get a third-party integration\",\"description\":\"Retrieves the detailed configuration for a specific third-party authentication (TPA) provider, identified by `tpa_id`, within an existing Supabase project specified by `ref`.\"},{\"slug\":\"SUPABASE_ALPHA_LIST_THIRD_PARTY_AUTH_INTEGRATIONS\",\"name\":\"List third-party auth integrations for project\",\"description\":\"Lists all configured third-party authentication provider integrations for an existing Supabase project (using its `ref`), suitable for read-only auditing or verifying current authentication settings.\"},{\"slug\":\"SUPABASE_ALPHA_UPDATE_API_KEY\",\"name\":\"Update an API key for the project\",\"description\":\"Updates an existing Supabase project API key's `description` and/or `secret_jwt_template` (which defines its `role`); does not regenerate the key string.\"},{\"slug\":\"SUPABASE_APPLY_A_MIGRATION\",\"name\":\"Apply a database migration\",\"description\":\"Tool to apply database migrations to a Supabase project. Use when you need to execute SQL schema changes, create tables, alter columns, or run other DDL/DML operations as part of a tracked migration. This is a Beta feature in the Supabase Management API.\"},{\"slug\":\"SUPABASE_BETA_ACTIVATE_CUSTOM_HOSTNAME\",\"name\":\"Beta activate custom hostname for project\",\"description\":\"Activates a previously configured custom hostname for a Supabase project, assuming DNS settings are verified externally.\"},{\"slug\":\"SUPABASE_BETA_ACTIVATE_VANITY_SUBDOMAIN\",\"name\":\"Activate vanity subdomain for project\",\"description\":\"Activates a vanity subdomain for the specified Supabase project (e.g., 'my-brand.supabase.co'). Important notes: - Vanity subdomains require a paid plan (Pro/Team/Enterprise) - Usage of vanity subdomains and custom domains is mutually exclusive - After activation, your project's auth services will no longer work on the original {project-ref}.supabase.co hostname - Schedule a downtime window to update client code and OAuth providers before activating\"},{\"slug\":\"SUPABASE_BETA_AUTHORIZE_USER_THROUGH_OAUTH\",\"name\":\"Authorize user through OAuth\",\"description\":\"Generates a Supabase OAuth 2.0 authorization URL for user redirection. IMPORTANT: This action requires a pre-registered OAuth client_id and a redirect_uri that matches one of the pre-registered URIs for that OAuth application. Without a valid registered OAuth application, this endpoint will return a 400 error. To use this action: 1. Register an OAuth application in the Supabase dashboard 2. Use the client_id from the registered application 3. Ensure redirect_uri matches one of the registered callback URLs\"},{\"slug\":\"SUPABASE_BETA_CHECK_VANITY_SUBDOMAIN_AVAILABILITY\",\"name\":\"Check vanity subdomain availability\",\"description\":\"Checks if a specific vanity subdomain is available for a Supabase project; this action does not reserve or assign the subdomain.\"},{\"slug\":\"SUPABASE_BETA_CREATE_READ_REPLICA\",\"name\":\"Setup read replica for project\",\"description\":\"Provisions a read-only replica for a Supabase project in a specified, Supabase-supported AWS region to enhance read performance and reduce latency.\"},{\"slug\":\"SUPABASE_BETA_ENABLE_DATABASE_WEBHOOKS\",\"name\":\"Enable project database webhooks\",\"description\":\"Enables database webhooks for the Supabase project `ref`, triggering real-time notifications for INSERT, UPDATE, or DELETE events.\"},{\"slug\":\"SUPABASE_BETA_GET_PROJECT_CUSTOM_HOSTNAME_CONFIG\",\"name\":\"Beta get project's custom hostname config\",\"description\":\"Retrieves a Supabase project's custom hostname configuration, including its status, SSL certificate, and ownership verification, noting that availability may depend on the project's plan.\"},{\"slug\":\"SUPABASE_BETA_GET_PROJECT_NETWORK_BANS\",\"name\":\"Retrieve network bans for project\",\"description\":\"Retrieves the list of banned IPv4 addresses for a Supabase project using its unique project reference string; this is a read-only operation.\"},{\"slug\":\"SUPABASE_BETA_GET_PROJECT_NETWORK_RESTRICTIONS\",\"name\":\"Get project network restrictions\",\"description\":\"Retrieves the network restriction settings (IP allowlists) for a Supabase project. Use this action to: - Check which IPv4/IPv6 CIDR blocks are allowed to connect to the project's database - Verify if network restrictions are enabled (entitlement: \\\"allowed\\\") or disabled (\\\"disallowed\\\") - Audit current network security configuration - Check if network restrictions have been modified (old_config present) Note: Default values 0.0.0.0/0 (IPv4) and ::/0 (IPv6) mean all IPs are allowed. Network restrictions require a Pro, Team, or Enterprise plan.\"},{\"slug\":\"SUPABASE_BETA_GET_PROJECT_PGSODIUM_CONFIG\",\"name\":\"Get project pgsodium config\",\"description\":\"Retrieves the PGSodium configuration, including the root encryption key, for an existing Supabase project identified by its `ref`.\"},{\"slug\":\"SUPABASE_BETA_GET_PROJECT_SSL_ENFORCEMENT_CONFIG\",\"name\":\"Get project SSL enforcement configuration\",\"description\":\"Retrieves the SSL enforcement configuration for a specified Supabase project, indicating if SSL connections are mandated for its database.\"},{\"slug\":\"SUPABASE_BETA_GET_VANITY_SUBDOMAIN_CONFIG\",\"name\":\"Get current vanity subdomain config\",\"description\":\"Fetches the current vanity subdomain configuration, including its status and custom domain name, for a Supabase project identified by its reference ID.\"},{\"slug\":\"SUPABASE_BETA_REMOVE_NETWORK_BANS\",\"name\":\"Remove project network bans\",\"description\":\"Removes specified IPv4 addresses from a Supabase project's network ban list, granting immediate access; IPs not currently banned are ignored.\"},{\"slug\":\"SUPABASE_BETA_REMOVE_READ_REPLICA\",\"name\":\"Remove read replica\",\"description\":\"Remove a read replica from a Supabase project (Pro plan or higher required). This beta endpoint initiates the removal of a specified read replica database. The operation is irreversible. Before removal, ensure all application traffic is redirected from the replica to the primary database. Requirements: - Project must be on Pro plan or higher - Bearer token with infra_read_replicas_write permission (FGA) - Valid read replica database identifier Note: Returns 201 on success with an empty response body.\"},{\"slug\":\"SUPABASE_BETA_RUN_SQL_QUERY\",\"name\":\"Execute project database query\",\"description\":\"Executes a given SQL query against the project's database; use for advanced data operations or when standard API endpoints are insufficient, ensuring queries are valid PostgreSQL and sanitized. Use the get_table_schemas or generate_type_script_types tool to retrieve the table schema, then base your query on it.\"},{\"slug\":\"SUPABASE_BETA_UPDATE_PROJECT_NETWORK_RESTRICTIONS\",\"name\":\"Beta update project network restrictions\",\"description\":\"Updates and applies network access restrictions (IPv4/IPv6 CIDR lists) for a Supabase project, which may terminate existing connections not matching the new rules.\"},{\"slug\":\"SUPABASE_BETA_UPGRADE_PROJECT_POSTGRES_VERSION\",\"name\":\"Upgrade the project's PostgreSQL version\",\"description\":\"Initiates an asynchronous upgrade of a Supabase project's PostgreSQL database to a specified `target_version` from a selected `release_channel`, returning a `tracking_id` to monitor status; the `target_version` must be available in the chosen channel.\"},{\"slug\":\"SUPABASE_COUNT_ACTION_RUNS\",\"name\":\"Count action runs\",\"description\":\"Counts the number of action runs for a Supabase project using a HEAD request. Use this when you need to retrieve the total count of action runs without fetching the full list of runs.\"},{\"slug\":\"SUPABASE_CREATE_A_PROJECT\",\"name\":\"Create new project\",\"description\":\"Creates a new Supabase project, requiring a unique name (no dots) within the organization; project creation is asynchronous.\"},{\"slug\":\"SUPABASE_CREATE_BULK_SECRETS\",\"name\":\"Bulk create secrets\",\"description\":\"Tool to bulk create secrets for a Supabase project. Use when you need to create multiple project secrets at once. Each secret name must not start with SUPABASE_.\"},{\"slug\":\"SUPABASE_CREATE_DATABASE_BRANCH\",\"name\":\"Create a database branch\",\"description\":\"Creates a new, isolated database branch from an existing Supabase project (identified by `ref`), useful for setting up separate environments like development or testing, which can optionally be linked to a Git branch.\"},{\"slug\":\"SUPABASE_CREATE_FUNCTION\",\"name\":\"Create a function\",\"description\":\"Creates a new serverless Edge Function for a Supabase project (identified by `ref`), requiring valid JavaScript/TypeScript in `body` and a project-unique `slug` identifier.\"},{\"slug\":\"SUPABASE_CREATE_LOGIN_ROLE\",\"name\":\"Create CLI login role\",\"description\":\"Creates a temporary CLI login role for database access with specified permissions; use when setting up CLI authentication for development or administrative tasks.\"},{\"slug\":\"SUPABASE_CREATE_ORGANIZATION\",\"name\":\"Create an organization\",\"description\":\"Creates a new Supabase organization, which serves as a top-level container for projects, billing, and team access.\"},{\"slug\":\"SUPABASE_CREATE_PROJECT_SIGNING_KEY\",\"name\":\"Create project signing key\",\"description\":\"Create a new signing key for JWT authentication in a Supabase project. The key is created in standby status by default and must be activated separately.\"},{\"slug\":\"SUPABASE_CREATE_SSO_PROVIDER\",\"name\":\"Create SSO provider configuration\",\"description\":\"Creates a new SAML 2.0 Single Sign-On (SSO) provider for a Supabase project, requiring either `metadata_xml` or `metadata_url` for SAML IdP configuration.\"},{\"slug\":\"SUPABASE_CREATE_THIRD_PARTY_AUTH_INTEGRATION\",\"name\":\"Create a new third-party auth integration\",\"description\":\"Call this to add a new third-party authentication method (OIDC or JWKS) to a Supabase project for integrating external identity providers (e.g., for SSO); the API may also support `custom_jwks` if sent directly.\"},{\"slug\":\"SUPABASE_DELETE_ALL_BRANCHES\",\"name\":\"Delete all branches\",\"description\":\"Disables preview branching for a Supabase project, which deletes all remaining branches. IMPORTANT: Before calling this endpoint, you must manually delete all non-default branches. The API will reject the request with a 422 error if non-default branches exist. Use this action when you need to completely disable the preview branching feature for a project. This action is irreversible - all branches will be permanently removed and preview branching will be disabled. Requirements: - Preview branching must be enabled on the project - All non-default branches must be deleted first - Project must be on Pro plan or above to have preview branching\"},{\"slug\":\"SUPABASE_DELETE_CUSTOM_HOSTNAME_CONFIG\",\"name\":\"Delete custom hostname config\",\"description\":\"Deletes an active custom hostname configuration for the project identified by `ref`, reverting to the default Supabase-provided hostname; this action immediately makes the project inaccessible via the custom domain and requires subsequent updates to client, OAuth, and DNS settings.\"},{\"slug\":\"SUPABASE_DELETE_DATABASE_BRANCH\",\"name\":\"Delete branch by id\",\"description\":\"Permanently and irreversibly deletes a specific, non-default database branch by its `branch_id`, without affecting other branches.\"},{\"slug\":\"SUPABASE_DELETE_EDGE_FUNCTION\",\"name\":\"Delete edge function\",\"description\":\"Deletes an Edge Function from a Supabase project by its slug. Use this action when you need to permanently remove a deployed Edge Function that is no longer needed or should be replaced. This action is irreversible — the function cannot be recovered once deleted, though you can redeploy it from source if needed.\"},{\"slug\":\"SUPABASE_DELETE_FUNCTION\",\"name\":\"Delete an edge function by slug\",\"description\":\"Permanently deletes a specific Edge Function (by `function_slug`) from a Supabase project (by `ref`); this action is irreversible and requires prior existence of both project and function.\"},{\"slug\":\"SUPABASE_DELETE_LOGIN_ROLES\",\"name\":\"Delete CLI login roles\",\"description\":\"[Beta] Deletes existing login roles used by the Supabase CLI for the specified project. Use when you need to remove CLI authentication roles that were previously created for project access.\"},{\"slug\":\"SUPABASE_DELETE_PROJECT\",\"name\":\"Delete a project\",\"description\":\"Permanently and irreversibly deletes a Supabase project and all associated resources, including databases, storage, and configurations. This action is irreversible — the project cannot be recovered once deleted. Use when you need to completely remove a project from your organization.\"},{\"slug\":\"SUPABASE_DELETE_PROJECT_VANITY_SUBDOMAIN\",\"name\":\"Delete vanity subdomain for project\",\"description\":\"Permanently and irreversibly deletes an active vanity subdomain configuration for the specified Supabase project, reverting it to its default Supabase URL.\"},{\"slug\":\"SUPABASE_DELETE_SECRETS\",\"name\":\"Bulk delete secrets\",\"description\":\"Deletes one or more secrets from a Supabase project by their names. This action is irreversible - deleted secrets cannot be recovered. Use this action when you need to remove environment variables or configuration secrets that are no longer needed or should be replaced. Supports both single and bulk deletion operations through the same endpoint.\"},{\"slug\":\"SUPABASE_DELETE_SSO_PROVIDER\",\"name\":\"Remove an SSO provider\",\"description\":\"Deletes a specific SSO provider by its ID (`provider_id`) from a Supabase project (`ref`), which disables it and returns its details; ensure this action will not inadvertently lock out users.\"},{\"slug\":\"SUPABASE_DEPLOY_FUNCTION\",\"name\":\"Deploy function\",\"description\":\"Deploys Edge Functions to a Supabase project using multipart upload.\"},{\"slug\":\"SUPABASE_DISABLE_PREVIEW_BRANCHING\",\"name\":\"Disable preview branching\",\"description\":\"Disables the preview branching feature for an existing Supabase project, identified by its unique reference ID (`ref`). Note: Preview branching must be enabled on the project for this operation to succeed. If the project does not have preview branching enabled, a 422 error will be returned.\"},{\"slug\":\"SUPABASE_DISABLE_PROJECT_READONLY\",\"name\":\"Disable project readonly mode\",\"description\":\"Temporarily disables a Supabase project's read-only mode for 15 minutes to allow write operations (e.g., for maintenance or critical updates), after which it automatically reverts to read-only.\"},{\"slug\":\"SUPABASE_EXCHANGE_OAUTH_TOKEN\",\"name\":\"Exchange auth code for access and refresh token\",\"description\":\"(Beta) Implements the OAuth 2.0 token endpoint to exchange an authorization code or refresh token for access/refresh tokens, based on `grant_type`. This is a standard OAuth 2.0 token endpoint that uses application/x-www-form-urlencoded content type as per OAuth 2.0 specification. Requires a valid registered OAuth application client_id and client_secret. For authorization_code grant type: - Requires valid authorization code obtained from the OAuth authorization flow - Optionally requires code_verifier if PKCE was used during authorization For refresh_token grant type: - Requires valid refresh_token from a previous token exchange\"},{\"slug\":\"SUPABASE_GENERATE_TYPESCRIPT_TYPES\",\"name\":\"Generate TypeScript types\",\"description\":\"Generates and retrieves TypeScript types from a Supabase project's database; any schemas specified in `included_schemas` must exist in the project.\"},{\"slug\":\"SUPABASE_GET_ACTION_RUN\",\"name\":\"Get action run status\",\"description\":\"Retrieves the status and details of a specific action run, including its steps, timestamps, and configuration. Use this to monitor or check the progress of an action execution.\"},{\"slug\":\"SUPABASE_GET_ACTION_RUN_LOGS\",\"name\":\"Get action run logs\",\"description\":\"Retrieves the execution logs for a specific action run by its ID. Use this to debug action executions, view output messages, and investigate errors that occurred during action runs.\"},{\"slug\":\"SUPABASE_GET_AUTH_CONFIG\",\"name\":\"Get project auth config\",\"description\":\"Retrieves the complete authentication configuration for a Supabase project. Use this action when you need to inspect auth settings, OAuth provider configurations, MFA policies, email/SMS templates, security policies, or webhook hooks. Returns all auth configuration fields including enabled providers (Apple, Google, GitHub, etc.), JWT settings, rate limits, password requirements, session policies, and mailer configuration. This is a read-only operation that does not modify any settings.\"},{\"slug\":\"SUPABASE_GET_AVAILABLE_REGIONS\",\"name\":\"Get Available Regions\",\"description\":\"Tool to get the list of available regions for creating a new Supabase project. Use when you need to determine which regions are available for project deployment, or to get region recommendations based on geographic location and instance size requirements. Note: This is a Beta endpoint.\"},{\"slug\":\"SUPABASE_GET_BRANCH\",\"name\":\"Get a database branch\",\"description\":\"Retrieves detailed information about a specific database branch by its name and project reference. Use this to check branch status, configuration, and metadata before performing operations on the branch.\"},{\"slug\":\"SUPABASE_GET_DATABASE_BRANCH_CONFIG\",\"name\":\"Get database branch config\",\"description\":\"Retrieves the read-only configuration and status for a Supabase database branch, typically for monitoring or verifying its settings.\"},{\"slug\":\"SUPABASE_GET_DATABASE_METADATA\",\"name\":\"Get Database Metadata\",\"description\":\"Gets database metadata for the given project. Returns information about databases, schemas, and tables structure. Note: This endpoint is deprecated and may be removed in future versions.\"},{\"slug\":\"SUPABASE_GET_FUNCTION\",\"name\":\"Retrieve a function\",\"description\":\"Retrieves detailed information, metadata, configuration, and status for a specific Edge Function using its project reference ID and function slug.\"},{\"slug\":\"SUPABASE_GET_FUNCTION_BODY\",\"name\":\"Retrieve a function body\",\"description\":\"Retrieves the source code (body) for a specified serverless Edge Function using its project reference and function slug; this is a read-only operation that does not execute the function or return runtime logs.\"},{\"slug\":\"SUPABASE_GET_HEALTH\",\"name\":\"Get API Health Status\",\"description\":\"Tool to check the health status of the Supabase API. Use when you need to verify API availability or troubleshoot connectivity issues.\"},{\"slug\":\"SUPABASE_GET_JIT_ACCESS_CONFIG\",\"name\":\"Get JIT access config\",\"description\":\"[Beta] Retrieves the project's just-in-time (JIT) access configuration, including user roles and their expiration settings. Use this to check temporary access grants and their validity periods.\"},{\"slug\":\"SUPABASE_GET_LEGACY_SIGNING_KEY\",\"name\":\"Get legacy signing key\",\"description\":\"Retrieves the signing key information for the JWT secret imported as signing key for this project. This endpoint is deprecated and will be removed in the future; check for HTTP 404 Not Found which indicates the endpoint is no longer available.\"},{\"slug\":\"SUPABASE_GET_MIGRATION\",\"name\":\"Get a migration\",\"description\":\"Retrieves a specific database migration entry from the migration history using its version identifier. Use when you need to inspect migration details, SQL statements, or rollback commands for a specific migration version.\"},{\"slug\":\"SUPABASE_GET_ORGANIZATION\",\"name\":\"Get information about an organization\",\"description\":\"Fetches comprehensive details for a specific Supabase organization using its unique slug.\"},{\"slug\":\"SUPABASE_GET_PERFORMANCE_ADVISORS\",\"name\":\"Get performance advisors\",\"description\":\"Retrieves project performance advisors for a Supabase project. Returns a list of performance lints that identify potential issues and optimization opportunities. Note: This endpoint is deprecated.\"},{\"slug\":\"SUPABASE_GET_PROJECT\",\"name\":\"Get project\",\"description\":\"Retrieves detailed information about a specific Supabase project by its unique reference ID. Use when you need to get comprehensive project details including status, database configuration, and metadata. Authentication: - Requires a valid Bearer token in the Authorization header. - Token format: 'Bearer \u003caccess_token\u003e' where access_token is either: - A Personal Access Token (PAT) generated from https://supabase.com/dashboard/account/tokens - An OAuth2 access token with the 'project_admin_read' scope Required Scope: - project_admin_read: Allows retrieval of project information. Returns: Project object containing id, ref, name, organization details, region, status, database configuration, and created_at timestamp.\"},{\"slug\":\"SUPABASE_GET_PROJECT_API_KEY\",\"name\":\"Get project API key\",\"description\":\"Retrieves details of a specific API key for a Supabase project by its UUID. Use when you need to inspect a single key's configuration, type, or metadata.\"},{\"slug\":\"SUPABASE_GET_PROJECT_API_KEYS\",\"name\":\"Get project API keys\",\"description\":\"Retrieves all API keys for an existing Supabase project, specified by its unique reference ID (`ref`); this is a read-only operation.\"},{\"slug\":\"SUPABASE_GET_PROJECT_LEGACY_API_KEYS\",\"name\":\"Get project legacy API keys status\",\"description\":\"Checks whether JWT-based legacy API keys (anon, service_role) are enabled for a Supabase project. This API endpoint is deprecated and may be removed in the future (returns HTTP 404 Not Found when unavailable).\"},{\"slug\":\"SUPABASE_GET_PROJECT_LOGS\",\"name\":\"Get project logs\",\"description\":\"Retrieves analytics logs for a Supabase project. Use this to fetch and analyze project logs including edge function logs, database logs, and API logs for monitoring and debugging.\"},{\"slug\":\"SUPABASE_GET_PROJECT_PGBOUNCER_CONFIG\",\"name\":\"Get project PgBouncer config\",\"description\":\"Retrieves the active PgBouncer configuration (PostgreSQL connection pooler) for a Supabase project, used for performance tuning, auditing, or getting the connection string.\"},{\"slug\":\"SUPABASE_GET_PROJECT_POSTGRES_CONFIG\",\"name\":\"Get project postgres config\",\"description\":\"Retrieves the current read-only PostgreSQL database configuration for a specified Supabase project's `ref`, noting that some advanced or security-sensitive details might be omitted from the response.\"},{\"slug\":\"SUPABASE_GET_PROJECT_POSTGREST_CONFIG\",\"name\":\"Get project's PostgREST config\",\"description\":\"Retrieves the PostgREST configuration for a specific Supabase project.\"},{\"slug\":\"SUPABASE_GET_PROJECT_READONLY_MODE_STATUS\",\"name\":\"Get project's read-only mode status\",\"description\":\"Retrieves the read-only mode status for a specified Supabase project to check its operational state; this action does not change the read-only state.\"},{\"slug\":\"SUPABASE_GET_PROJECT_SIGNING_KEYS\",\"name\":\"Get project signing keys\",\"description\":\"Tool to list all signing keys for a Supabase project. Use when you need to retrieve JWT signing keys for authentication verification or rotation management.\"},{\"slug\":\"SUPABASE_GET_PROJECT_SUPAVISOR_CONFIG\",\"name\":\"Get project Supavisor configuration\",\"description\":\"Retrieves the Supavisor (connection pooler) configuration for a specified Supabase project, identified by its reference ID.\"},{\"slug\":\"SUPABASE_GET_PROJECT_UPGRADE_ELIGIBILITY\",\"name\":\"Get Project Upgrade Eligibility\",\"description\":\"Checks a Supabase project's eligibility for an upgrade, verifying compatibility and identifying potential issues; this action does not perform the actual upgrade.\"},{\"slug\":\"SUPABASE_GET_PROJECT_UPGRADE_STATUS\",\"name\":\"Get project upgrade status\",\"description\":\"Retrieves the latest status of a Supabase project's database upgrade for monitoring purposes; does not initiate or modify upgrades.\"},{\"slug\":\"SUPABASE_GET_RESUMABLE_UPLOAD_BASE_OPTIONS\",\"name\":\"Get TUS resumable upload base options\",\"description\":\"Handles OPTIONS request for TUS Resumable uploads to discover server capabilities. Use when preparing resumable upload requests to verify supported TUS protocol versions and extensions.\"},{\"slug\":\"SUPABASE_GET_RESUMABLE_UPLOAD_OPTIONS\",\"name\":\"Get TUS resumable upload options\",\"description\":\"Handles OPTIONS request for TUS Resumable uploads to discover server capabilities. Use when preparing resumable upload requests to verify supported TUS protocol versions and extensions.\"},{\"slug\":\"SUPABASE_GET_SECURITY_ADVISORS\",\"name\":\"Get Security Advisors\",\"description\":\"Retrieves security advisor findings and recommendations for a Supabase project. Use when you need to audit project security posture, identify SQL-based security issues, or get remediation guidance. Note: This endpoint is deprecated and may be removed in future API versions.\"},{\"slug\":\"SUPABASE_GETS_PROJECT_S_AUTH_CONFIG\",\"name\":\"Get project's auth config\",\"description\":\"Retrieves the project's complete read-only authentication configuration, detailing all settings (e.g., providers, MFA, email/SMS, JWT, security policies) but excluding sensitive secrets.\"},{\"slug\":\"SUPABASE_GETS_PROJECT_S_SERVICE_HEALTH_STATUS\",\"name\":\"Get project's service health status\",\"description\":\"Retrieves the current health status for a Supabase project, for specified services or all services if the 'services' list is omitted.\"},{\"slug\":\"SUPABASE_GET_SQL_SNIPPET\",\"name\":\"Get a specific SQL snippet\",\"description\":\"Retrieves a specific SQL snippet by its unique identifier.\"},{\"slug\":\"SUPABASE_GET_SSO_PROVIDER\",\"name\":\"Get a SSO provider by its UUID\",\"description\":\"Retrieves the configuration details for a specific Single Sign-On (SSO) provider (e.g., SAML, Google, GitHub, Azure AD), identified by its UUID, within a Supabase project.\"},{\"slug\":\"SUPABASE_GET_TABLE_SCHEMAS\",\"name\":\"Get Table Schemas\",\"description\":\"Retrieves column details, types, and constraints for multiple database tables to help debug schema issues and write accurate SQL queries. Use the SUPABASE_LIST_TABLES action first to discover available tables, the fetch their detailed schemas.\"},{\"slug\":\"SUPABASE_HANDLE_RESUMABLE_UPLOAD_SIGN_OPTIONS\",\"name\":\"OPTIONS for resumable upload sign\",\"description\":\"Handles CORS preflight OPTIONS request for TUS resumable upload signing. Use when preparing cross-origin resumable upload requests to verify allowed methods and headers.\"},{\"slug\":\"SUPABASE_HANDLE_RESUMABLE_UPLOAD_SIGN_OPTIONS_WITH_ID\",\"name\":\"OPTIONS for resumable upload sign\",\"description\":\"Handles CORS preflight OPTIONS request for TUS resumable upload signing endpoints. Use when preparing cross-origin resumable upload requests to verify allowed methods and headers.\"},{\"slug\":\"SUPABASE_INVOKE_EDGE_FUNCTION\",\"name\":\"Invoke Edge Function\",\"description\":\"Tool to invoke a deployed Supabase Edge Function over HTTPS. Use for testing and debugging Edge Functions with configurable method, headers, body, and authentication.\"},{\"slug\":\"SUPABASE_LIST_ALL_ORGANIZATIONS\",\"name\":\"List all organizations\",\"description\":\"Lists all organizations (ID and name only) associated with the Supabase account, excluding project details within these organizations.\"},{\"slug\":\"SUPABASE_LIST_ALL_PROJECTS\",\"name\":\"List all projects\",\"description\":\"Retrieves a list of all Supabase projects, including their ID, name, region, and status, for the authenticated user. Authentication: - Requires a valid Bearer token in the Authorization header. - Token format: 'Bearer \u003caccess_token\u003e' where access_token is either: - A Personal Access Token (PAT) generated from https://supabase.com/dashboard/account/tokens - An OAuth2 access token with the 'Projects.Read' scope Required Scope: - Projects.Read: Allows retrieval of project metadata. Returns: List of Project objects containing id, name, organization_id, region, status, database info, and created_at.\"},{\"slug\":\"SUPABASE_LIST_BACKUPS\",\"name\":\"List project database backups\",\"description\":\"Lists all database backups for a Supabase project, providing details on existing backups but not creating new ones or performing restores; availability may depend on plan and configuration.\"},{\"slug\":\"SUPABASE_LIST_BRANCHES\",\"name\":\"List database branches\",\"description\":\"Lists all database branches for a specified Supabase project, providing information about each branch's status, configuration, and metadata. Use this action when you need to view all branches in a project, check branch statuses, or identify available branches before performing operations. Database branches are useful for isolated development and testing of schema changes.\"},{\"slug\":\"SUPABASE_LIST_BUCKETS\",\"name\":\"List all buckets\",\"description\":\"Retrieves a list of all storage buckets for a Supabase project, without returning bucket contents or access policies.\"},{\"slug\":\"SUPABASE_LIST_DATABASE_BRANCHES\",\"name\":\"List all database branches\",\"description\":\"Lists all database branches for a specified Supabase project, used for isolated development and testing of schema changes; ensure the project reference ID is valid.\"},{\"slug\":\"SUPABASE_LIST_FUNCTIONS\",\"name\":\"List all functions\",\"description\":\"Lists metadata for all Edge Functions in a Supabase project (specified by 'ref'), excluding function code or logs; the project must exist.\"},{\"slug\":\"SUPABASE_LIST_MIGRATION_HISTORY\",\"name\":\"List migration history\",\"description\":\"Retrieves the list of applied database migration versions for a Supabase project. Use this to track which migrations have been applied to the project's database. This is a read-only operation that requires the project reference ID.\"},{\"slug\":\"SUPABASE_LIST_ORGANIZATION_MEMBERS\",\"name\":\"List members of an organization\",\"description\":\"Retrieves all members of a Supabase organization, identified by its unique slug, including their user ID, username, email, role, and MFA status.\"},{\"slug\":\"SUPABASE_LIST_PROJECT_SECRETS\",\"name\":\"List project secrets\",\"description\":\"Retrieves all secrets (environment variables) for a Supabase project by its reference ID. Use this action when you need to view the secrets configured for a project, such as API keys, database URLs, or other environment variables. Note that secret values in the response may be masked for security reasons.\"},{\"slug\":\"SUPABASE_LIST_SECRETS\",\"name\":\"List all secrets\",\"description\":\"Retrieves all secrets for a Supabase project using its reference ID; secret values in the response may be masked.\"},{\"slug\":\"SUPABASE_LIST_SQL_SNIPPETS\",\"name\":\"List SQL snippets for the logged in user\",\"description\":\"Retrieves a list of SQL snippets for the logged-in user, optionally filtered by a specific Supabase project if `project_ref` is provided.\"},{\"slug\":\"SUPABASE_LIST_SSO_PROVIDERS\",\"name\":\"List all SSO providers\",\"description\":\"Lists all configured Single Sign-On (SSO) providers for a Supabase project, requiring the project reference ID (`ref`) of an existing project.\"},{\"slug\":\"SUPABASE_LIST_TABLES\",\"name\":\"List Database Tables\",\"description\":\"Lists all tables and views in specified database schemas, providing a quick overview of database structure to help identify available tables before fetching detailed schemas.\"},{\"slug\":\"SUPABASE_MERGE_BRANCH\",\"name\":\"Merge a database branch\",\"description\":\"Merges a database branch, applying all schema changes and migrations from the branch to the target database. Use this action when you need to promote changes from a database branch to production or another target environment after testing and validation are complete. This operation is irreversible - once merged, the changes cannot be automatically rolled back.\"},{\"slug\":\"SUPABASE_PATCH_MIGRATION\",\"name\":\"Patch a migration\",\"description\":\"[Beta] Patches an existing entry in the project's migration history, updating the name or rollback script. Use this to correct migration metadata after the migration has been created.\"},{\"slug\":\"SUPABASE_PATCH_NETWORK_RESTRICTIONS\",\"name\":\"Patch project network restrictions\",\"description\":\"Updates project's network restrictions by incrementally adding or removing IPv4/IPv6 CIDR blocks. Use when you need to modify existing restrictions without replacing the entire configuration.\"},{\"slug\":\"SUPABASE_PUSH_BRANCH\",\"name\":\"Push a database branch\",\"description\":\"Pushes a database branch, applying migrations and changes to the specified branch. Use when you need to deploy schema changes or migrations to a database branch.\"},{\"slug\":\"SUPABASE_RESET_DATABASE_BRANCH\",\"name\":\"Reset a database branch\",\"description\":\"Resets an existing Supabase database branch, identified by `branch_id`, to its initial clean state, irreversibly deleting all its current data and schema changes.\"},{\"slug\":\"SUPABASE_RESTORE_PITR_BACKUP\",\"name\":\"Restore database PITR backup\",\"description\":\"Restores a Supabase project's database to a specific Unix timestamp using Point-in-Time Recovery (PITR), overwriting the current state; requires a paid plan with PITR and physical backups enabled.\"},{\"slug\":\"SUPABASE_RUN_READ_ONLY_QUERY\",\"name\":\"Execute read-only database query\",\"description\":\"[Beta] Run a SQL query as supabase_read_only_user. Use when you need to safely execute SELECT queries without risk of modifying data. Only read operations are allowed.\"},{\"slug\":\"SUPABASE_SELECT_FROM_TABLE\",\"name\":\"Select From Table\",\"description\":\"Tool to select rows from a Supabase/PostgREST table. Use for read-only queries with filtering, sorting, and pagination.\"},{\"slug\":\"SUPABASE_UPDATE_A_FUNCTION\",\"name\":\"Update a function\",\"description\":\"Updates an existing Supabase Edge Function's properties (like name, slug, source code, JWT settings, import map) identified by project `ref` and `function_slug`, supporting plain text code or ESZIP for the body. Use RETRIEVE_A_FUNCTION_BODY action first to get the current source code, as this action requires sending the complete function code, not just the changes.\"},{\"slug\":\"SUPABASE_UPDATE_API_KEY\",\"name\":\"Update API key\",\"description\":\"Updates an existing Supabase project API key's metadata including name, description, and JWT template configuration. This action modifies key properties without regenerating the actual key value. Use this action when you need to change a key's display name, update its description for better organization, or modify the JWT role template for secret-type keys. Note: This does not rotate or regenerate the key string itself - the key value remains unchanged unless explicitly revealed with reveal=true.\"},{\"slug\":\"SUPABASE_UPDATE_BRANCH\",\"name\":\"Update branch configuration\",\"description\":\"Updates the configuration of a Supabase database branch, allowing modification of its name, associated Git branch, notification URL, persistence settings, and status. Use this action when you need to modify branch settings after creation, such as linking to a different Git branch, changing the branch name, or updating persistence behavior. Note: Database branching requires a paid Supabase plan (Pro or higher).\"},{\"slug\":\"SUPABASE_UPDATE_DATABASE_BRANCH_CONFIG\",\"name\":\"Update database branch config\",\"description\":\"Updates the configuration of a Supabase database branch, allowing modification of its name, associated Git branch, reset-on-push behavior, persistence, and status. Note: Database branching requires a paid Supabase plan (Pro or higher). This action requires a valid branch_id which must be exactly 20 lowercase alphabetic characters. Authentication: - Requires a valid Bearer token in the Authorization header. - Token format: 'Bearer \u003caccess_token\u003e' Required Scope: - Environment:Write\"},{\"slug\":\"SUPABASE_UPDATE_DATABASE_PASSWORD\",\"name\":\"Update database password\",\"description\":\"Updates the database password for a Supabase project. Use when needing to rotate credentials or recover database access.\"},{\"slug\":\"SUPABASE_UPDATE_FUNCTIONS\",\"name\":\"Bulk update functions\",\"description\":\"Tool to bulk update Edge Functions in a Supabase project. Use when you need to update multiple functions at once with new configurations such as status, version, or other properties.\"},{\"slug\":\"SUPABASE_UPDATE_JIT_ACCESS_CONFIG\",\"name\":\"Update JIT access config\",\"description\":\"[Beta] Update a Supabase project's just-in-time (JIT) access configuration. Use to enable or disable JIT access features for privileged operations on the project.\"},{\"slug\":\"SUPABASE_UPDATE_PGSODIUM_CONFIG\",\"name\":\"Update pgsodium root key\",\"description\":\"Critically updates or initializes a Supabase project's pgsodium root encryption key for security setup or key rotation, requiring secure backup of the new key to prevent irreversible data loss.\"},{\"slug\":\"SUPABASE_UPDATE_PROJECT\",\"name\":\"Update a project\",\"description\":\"Updates a Supabase project's configuration (currently supports updating the project name). Use when you need to rename an existing project.\"},{\"slug\":\"SUPABASE_UPDATE_PROJECT_AUTH_CONFIG\",\"name\":\"Update project's auth config\",\"description\":\"Update Supabase project Auth configuration via the Management API. Use to fix misconfigured Auth redirects, SMTP settings, or other auth parameters. Only provided fields are updated; others remain unchanged. Before updating, confirm the Auth service status is ACTIVE_HEALTHY by checking project health.\"},{\"slug\":\"SUPABASE_UPDATE_PROJECT_CUSTOM_HOSTNAME\",\"name\":\"Update project's custom hostname configuration\",\"description\":\"Updates the custom hostname for a Supabase project, requiring subsequent DNS changes to a user-controlled domain for SSL certificate issuance and domain ownership.\"},{\"slug\":\"SUPABASE_UPDATE_PROJECT_LEGACY_API_KEYS\",\"name\":\"Update project legacy API keys\",\"description\":\"Tool to disable or re-enable JWT-based legacy API keys (anon, service_role) for a Supabase project. Use when you need to toggle legacy API key access for security or migration purposes. Note: This API endpoint may be removed in the future - check for HTTP 404 Not Found if the endpoint is no longer available.\"},{\"slug\":\"SUPABASE_UPDATE_PROJECT_POSTGRES_CONFIG\",\"name\":\"Update project's postgres config\",\"description\":\"Updates specified PostgreSQL configuration parameters for an existing Supabase project (`ref`) to optimize database performance; note that unspecified parameters remain unchanged, and caution is advised as incorrect settings can impact stability or require a restart.\"},{\"slug\":\"SUPABASE_UPDATE_PROJECT_POSTGREST_CONFIG\",\"name\":\"Update project's PostgREST config\",\"description\":\"Updates PostgREST configuration settings (e.g., `max_rows`, `db_pool`, `db_schema`, `db_extra_search_path`) for a Supabase project to fine-tune API performance, data exposure, and database resource usage.\"},{\"slug\":\"SUPABASE_UPDATE_PROJECT_SUPAVISOR_CONFIG\",\"name\":\"Update database pooler config\",\"description\":\"Updates the Supavisor (database pooler) configuration, such as `default_pool_size`, for an existing Supabase project identified by `ref`; the `pool_mode` parameter in the request is deprecated and ignored.\"},{\"slug\":\"SUPABASE_UPDATE_SSL_ENFORCEMENT_CONFIG\",\"name\":\"Update SSL enforcement config\",\"description\":\"Updates the SSL enforcement configuration (enable/disable) for a specified Supabase project's database.\"},{\"slug\":\"SUPABASE_UPDATE_SSO_PROVIDER\",\"name\":\"Update an SSO provider by its UUID\",\"description\":\"Updates an existing SSO provider's SAML metadata, associated email domains, or attribute mappings for a Supabase project, identified by `ref` and `provider_id`.\"},{\"slug\":\"SUPABASE_UPSERT_MIGRATION\",\"name\":\"Upsert migration\",\"description\":\"Tool to upsert a database migration without applying it. Use when you need to track migration changes for a project. [Beta] This endpoint stores migration metadata without executing the SQL.\"},{\"slug\":\"SUPABASE_VERIFY_CUSTOM_HOSTNAME_DNS\",\"name\":\"Reverify custom hostname\",\"description\":\"Re-verifies DNS and SSL configurations for an existing custom hostname associated with a Supabase project.\"}]},{\"slug\":\"outlook\",\"name\":\"Outlook\",\"description\":\"Outlook is Microsoft's email and calendaring platform integrating contacts and scheduling, enabling users to manage communications and events in a unified workspace\",\"logo\":\"https://logos.composio.dev/api/outlook\",\"rank\":8,\"tools\":[{\"slug\":\"OUTLOOK_ACCEPT_EVENT\",\"name\":\"Accept calendar event invite\",\"description\":\"Accepts or tentatively accepts a calendar meeting invite on behalf of a user. Use this action when a user has received a meeting invitation and wants to indicate their attendance status (either confirmed or tentative). The organizer will receive a notification of the acceptance unless send_response is set to false.\"},{\"slug\":\"OUTLOOK_ADD_EVENT_ATTACHMENT\",\"name\":\"Add event attachment\",\"description\":\"Adds an attachment to a specific Outlook calendar event. Use when you need to attach a file or nested item to an existing event.\"},{\"slug\":\"OUTLOOK_ADD_MAIL_ATTACHMENT\",\"name\":\"Add mail attachment\",\"description\":\"Tool to add an attachment to an email message. Use when you have a message ID and need to attach a small (\u003c3 MB) file or reference.\"},{\"slug\":\"OUTLOOK_BATCH_MOVE_MESSAGES\",\"name\":\"Batch move messages\",\"description\":\"Batch-move up to 20 Outlook messages to a destination folder in a single Microsoft Graph $batch call. Use when moving multiple messages to avoid per-message move API calls.\"},{\"slug\":\"OUTLOOK_BATCH_UPDATE_MESSAGES\",\"name\":\"Batch update messages\",\"description\":\"Batch-update up to 20 Outlook messages per call using Microsoft Graph JSON batching. Use when marking multiple messages read/unread or updating other properties to avoid per-message PATCH calls.\"},{\"slug\":\"OUTLOOK_CALENDAR_CREATE_EVENT\",\"name\":\"Create Calendar Event\",\"description\":\"Creates a new Outlook calendar event, ensuring `start_datetime` is chronologically before `end_datetime`.\"},{\"slug\":\"OUTLOOK_CANCEL_CALENDAR_EVENT\",\"name\":\"Cancel user's calendar event\",\"description\":\"Tool to cancel an event in a specific calendar for a specified user and send cancellation notifications to all attendees. Use when you need to cancel a meeting or event in a specific calendar on behalf of a user.\"},{\"slug\":\"OUTLOOK_CANCEL_CALENDAR_GROUP_CALENDAR_EVENT\",\"name\":\"Cancel user calendar group event\",\"description\":\"Tool to cancel an event in a user's calendar within a calendar group and send cancellation notifications to all attendees. Use when canceling a meeting or event for a specific user in a calendar that belongs to a calendar group.\"},{\"slug\":\"OUTLOOK_CANCEL_EVENT\",\"name\":\"Cancel user calendar event\",\"description\":\"Tool to cancel a calendar event for a specified user and send cancellation notifications to all attendees. Use when you need to cancel a meeting or event on behalf of a specific user.\"},{\"slug\":\"OUTLOOK_COPY_MAIL_FOLDER\",\"name\":\"Copy user's mail folder\",\"description\":\"Tool to copy a user's mail folder and its contents to another folder. Use when you need to duplicate a folder structure for a specific user's mailbox.\"},{\"slug\":\"OUTLOOK_COPY_ME_MAIL_FOLDER\",\"name\":\"Copy child mail folder\",\"description\":\"Tool to copy a child mail folder to a destination folder. Use when you need to duplicate a folder structure.\"},{\"slug\":\"OUTLOOK_COPY_MESSAGE\",\"name\":\"Copy message to folder\",\"description\":\"Tool to copy an email message to another folder within the user's mailbox. Use when duplicating messages to multiple folders for organization.\"},{\"slug\":\"OUTLOOK_COPY_MESSAGE_FROM_CHILD_FOLDER\",\"name\":\"Copy message from child folder\",\"description\":\"Tool to copy an email message from a child folder (nested folder) to another folder within the user's mailbox. Use when duplicating messages from nested folder structures.\"},{\"slug\":\"OUTLOOK_COPY_MESSAGE_FROM_MAIL_FOLDER\",\"name\":\"Copy user message from folder\",\"description\":\"Tool to copy a message from a specific user's mail folder to another folder. Use when you need to duplicate a message from a known source folder to a destination folder for a specific user.\"},{\"slug\":\"OUTLOOK_CREATE_ATTACHMENT_UPLOAD_SESSION\",\"name\":\"Create attachment upload session\",\"description\":\"Tool to create an upload session for large (\u003e3 MB) message attachments. Use when you need to upload attachments in chunks.\"},{\"slug\":\"OUTLOOK_CREATE_ATTACHMENT_UPLOAD_SESSION_IN_CHILD_FOLDER\",\"name\":\"Create attachment upload session in child folder\",\"description\":\"Tool to create an upload session for large (\u003e3 MB) message attachments in child mail folders. Use when you need to upload attachments to messages in nested folder structures.\"},{\"slug\":\"OUTLOOK_CREATE_CALENDAR\",\"name\":\"Create calendar\",\"description\":\"Tool to create a new calendar in the signed-in user's mailbox. Use when organizing events into a separate calendar.\"},{\"slug\":\"OUTLOOK_CREATE_CALENDAR_EVENT\",\"name\":\"Create Event in Calendar (Deprecated)\",\"description\":\"DEPRECATED: Use OUTLOOK_CREATE_USER_CALENDAR_CALENDAR_EVENT instead. Tool to create a new event in a specific Outlook calendar. Use when you need to add an event to a particular calendar by its ID.\"},{\"slug\":\"OUTLOOK_CREATE_CALENDAR_EVENT_ATTACHMENT\",\"name\":\"Create calendar event attachment\",\"description\":\"Tool to create a new attachment for an event in a specific calendar. Use when you need to attach a file or item to an event within a particular calendar.\"},{\"slug\":\"OUTLOOK_CREATE_CALENDAR_EVENT_ATTACHMENT_UPLOAD_SESSION\",\"name\":\"Create calendar event attachment upload session\",\"description\":\"Tool to create an upload session for large calendar event attachments in a specific calendar. Use when attaching files larger than 3 MB to Outlook calendar events in a specific calendar.\"},{\"slug\":\"OUTLOOK_CREATE_CALENDAR_EVENT_IN_CALENDAR\",\"name\":\"Create event in specific calendar\",\"description\":\"Tool to create a new event in a specific calendar for a user. Use when you need to create events in a specific calendar (e.g., shared or secondary calendars).\"},{\"slug\":\"OUTLOOK_CREATE_CALENDAR_GROUP\",\"name\":\"Create calendar group\",\"description\":\"Tool to create a new calendar group for a user. Use when needing to organize calendars into groups.\"},{\"slug\":\"OUTLOOK_CREATE_CALENDAR_GROUP_CALENDAR_EVENT_ATTACHMENT\",\"name\":\"Create user calendar group event attachment\",\"description\":\"Tool to create a new attachment for an event in a calendar within a calendar group for a specific user. Use when you need to attach a file or item to an event in a user's calendar group.\"},{\"slug\":\"OUTLOOK_CREATE_CALENDAR_GROUP_CALENDAR_EVENT_EXTENSION\",\"name\":\"Create event extension\",\"description\":\"Tool to create a new open extension on a calendar event within a specific calendar group and calendar. Use when you need to store custom data with an event.\"},{\"slug\":\"OUTLOOK_CREATE_CALENDAR_PERMISSION\",\"name\":\"Create Calendar Permission\",\"description\":\"Tool to create a calendar permission for a specific calendar in a calendar group. Use when granting access to a calendar for another user.\"},{\"slug\":\"OUTLOOK_CREATE_CAL_GROUP_EVENT_ATTACH_UPLOAD\",\"name\":\"Create calendar group event attachment upload session\",\"description\":\"Tool to create an upload session for large calendar group event attachments. Use when attaching files larger than 3 MB to events in calendar groups.\"},{\"slug\":\"OUTLOOK_CREATE_CONTACT\",\"name\":\"Create contact\",\"description\":\"Creates a new contact in a Microsoft Outlook user's contacts folder.\"},{\"slug\":\"OUTLOOK_CREATE_CONTACT_FOLDER\",\"name\":\"Create contact folder\",\"description\":\"Tool to create a new contact folder in the user's mailbox. Use when needing to organize contacts into custom folders.\"},{\"slug\":\"OUTLOOK_CREATE_CONTACT_FOLDER_CHILD_FOLDER\",\"name\":\"Create user contact folder child folder\",\"description\":\"Tool to create a child contact folder within a parent contact folder for a specific user. Use when you need to organize contacts into nested folder hierarchies for a given user.\"},{\"slug\":\"OUTLOOK_CREATE_DRAFT\",\"name\":\"Create email draft\",\"description\":\"Creates a new Outlook email draft with subject, body, recipients, and an optional attachment. This action creates a standalone draft for new conversations. To create a draft reply to an existing conversation/message, use the OUTLOOK_CREATE_DRAFT_REPLY action instead.\"},{\"slug\":\"OUTLOOK_CREATE_DRAFT_REPLY\",\"name\":\"Create a draft reply\",\"description\":\"Creates a draft reply in the specified user's Outlook mailbox to an existing message (identified by a valid `message_id`), optionally including a `comment` and CC/BCC recipients.\"},{\"slug\":\"OUTLOOK_CREATE_EMAIL_RULE\",\"name\":\"Create Email Rule\",\"description\":\"Create email rule filter with conditions and actions\"},{\"slug\":\"OUTLOOK_CREATE_EVENT_ATTACHMENT\",\"name\":\"Create user calendar event attachment\",\"description\":\"Tool to create a new attachment for a user's calendar event. Use when you need to attach a file or item to an existing event in a specific user's calendar.\"},{\"slug\":\"OUTLOOK_CREATE_EVENT_ATTACHMENT_UPLOAD_SESSION\",\"name\":\"Create event attachment upload session\",\"description\":\"Tool to create an upload session for large calendar event attachments. Use when attaching files larger than 3 MB to Outlook calendar events.\"},{\"slug\":\"OUTLOOK_CREATE_FORWARD_DRAFT\",\"name\":\"Create user mail folder message forward draft\",\"description\":\"Tool to create a forward draft of an Outlook message for a specific user. Use when you need to prepare a forward email that can be edited before sending. The draft is created in the Drafts folder with the FW: prefix in the subject line.\"},{\"slug\":\"OUTLOOK_CREATE_MAIL_FOLDER\",\"name\":\"Create mail folder\",\"description\":\"Tool to create a new mail folder. Use when you need to organize email into a new folder.\"},{\"slug\":\"OUTLOOK_CREATE_MAIL_FOLDER_MESSAGE\",\"name\":\"Create message in mail folder\",\"description\":\"Tool to create a new message in a specific mail folder. Use when you need to create a draft message in a particular folder (e.g., drafts, custom folders).\"},{\"slug\":\"OUTLOOK_CREATE_MAIL_FOLDER_MESSAGE_ATTACHMENT\",\"name\":\"Create mail folder message attachment\",\"description\":\"Tool to add an attachment to a message in a specific mail folder. Use when you need to attach a file to a message located in a particular mail folder.\"},{\"slug\":\"OUTLOOK_CREATE_MAIL_FOLDER_MESSAGE_ATTACHMENT_UPLOAD_SESSION\",\"name\":\"Create mail folder message attachment upload session\",\"description\":\"Tool to create an upload session for large (\u003e3 MB) message attachments in a specific mail folder. Use when you need to upload attachments in chunks to a message located in a mail folder.\"},{\"slug\":\"OUTLOOK_CREATE_MAIL_FOLDER_MESSAGE_RULE\",\"name\":\"Create User Mail Folder Message Rule\",\"description\":\"Tool to create a message rule in a user's mail folder. Use when automating message processing with filters and actions.\"},{\"slug\":\"OUTLOOK_CREATE_MASTER_CATEGORY\",\"name\":\"Create master category (Deprecated)\",\"description\":\"DEPRECATED: Use OUTLOOK_CREATE_USER_MASTER_CATEGORY instead. Tool to create a new category in the user's master category list. Use after selecting a unique display name.\"},{\"slug\":\"OUTLOOK_CREATE_ME_CALENDAR_EVENT_EXTENSION\",\"name\":\"Create user calendar event extension\",\"description\":\"Tool to create a new open extension on a calendar event for a specific user. Use when you need to store custom data with an event.\"},{\"slug\":\"OUTLOOK_CREATE_ME_CALENDAR_PERMISSION\",\"name\":\"Create user calendar permission\",\"description\":\"Tool to create a new calendar permission for a specific user's calendar. Use when you need to share another user's calendar with someone or grant access with specific permission levels.\"},{\"slug\":\"OUTLOOK_CREATE_ME_CHILD_FOLDER_MESSAGE\",\"name\":\"Create message in user's child folder\",\"description\":\"Tool to create a new draft message in a child folder within a user's mail folder. Use when creating messages in nested folder structures for a specific user's mailbox.\"},{\"slug\":\"OUTLOOK_CREATE_ME_CONTACT_FOLDERS_CONTACTS\",\"name\":\"Create user contact in folder\",\"description\":\"Tool to create a new contact in a specific user's contact folder. Use when you need to add a contact to a particular folder for a specified user.\"},{\"slug\":\"OUTLOOK_CREATE_ME_CONTACT_FOLDERS_CONTACTS_EXTENSIONS\",\"name\":\"Create user contact extension\",\"description\":\"Tool to create a new open extension on a contact within a user's contact folder. Use when you need to store custom data with a contact.\"},{\"slug\":\"OUTLOOK_CREATE_ME_CONTACT_FOLDERS_EXTENSIONS\",\"name\":\"Create contact extension\",\"description\":\"Tool to create a new open extension on a contact within a child folder. Use when you need to store custom data with a contact.\"},{\"slug\":\"OUTLOOK_CREATE_ME_CONTACT_IN_CHILD_FOLDER\",\"name\":\"Create contact in child folder\",\"description\":\"Tool to create a new contact in a child folder within a contact folder. Use when you need to add a contact to a specific nested folder structure.\"},{\"slug\":\"OUTLOOK_CREATE_ME_EVENT\",\"name\":\"Create calendar event for user\",\"description\":\"Tool to create a new calendar event for a specific user. Use when you need to create events in a user's calendar.\"},{\"slug\":\"OUTLOOK_CREATE_ME_EVENT_ATTACHMENT_UPLOAD_SESSION\",\"name\":\"Create me event attachment upload session\",\"description\":\"Tool to create an upload session for large event attachments. Use when attaching files larger than 3 MB to the authenticated user's Outlook events.\"},{\"slug\":\"OUTLOOK_CREATE_ME_FORWARD_DRAFT\",\"name\":\"Create forward draft\",\"description\":\"Tool to create a draft forward of an existing message. Use when you need to prepare a forward that can be edited before sending. The draft can be updated with recipients and additional content before being sent.\"},{\"slug\":\"OUTLOOK_CREATE_ME_INFERENCE_CLASSIFICATION_OVERRIDE\",\"name\":\"Create user Focused Inbox override\",\"description\":\"Tool to create a Focused Inbox override for a sender identified by SMTP address for a specific user. Use when you need to configure messages from a specific sender to always be classified as focused or other for a particular user.\"},{\"slug\":\"OUTLOOK_CREATE_ME_MAIL_FOLDER_MESSAGE_REPLY_ALL_DRAFT\",\"name\":\"Create reply-all draft for mail folder message\",\"description\":\"Deprecated: Use OUTLOOK_CREATE_REPLY_ALL_DRAFT instead, which supports both /me and /users/{user_id} endpoints with timezone support.\"},{\"slug\":\"OUTLOOK_CREATE_ME_MESSAGE_REPLY_ALL_DRAFT\",\"name\":\"Create reply-all draft for user message\",\"description\":\"Tool to create a draft reply-all to a user's message. Use when you need to create a draft reply to the sender and all recipients of an email message in a user's mailbox.\"},{\"slug\":\"OUTLOOK_CREATE_ME_REPLY_ALL_DRAFT\",\"name\":\"Create reply-all draft for child folder message\",\"description\":\"Tool to create a draft reply-all to a message in a child folder. Use when you need to create a draft reply to the sender and all recipients of a message located in a subfolder within a mail folder.\"},{\"slug\":\"OUTLOOK_CREATE_ME_REPLY_DRAFT\",\"name\":\"Create reply draft\",\"description\":\"Deprecated: Use OUTLOOK_CREATE_DRAFT_REPLY instead, which adds comment, cc_emails, and bcc_emails support.\"},{\"slug\":\"OUTLOOK_CREATE_MESSAGE_ATTACHMENT\",\"name\":\"Create message attachment\",\"description\":\"Tool to create an attachment for a message. Use when you need to attach a file or item to an existing message. Supports file attachments, item attachments, and reference attachments.\"},{\"slug\":\"OUTLOOK_CREATE_REPLY_ALL_DRAFT\",\"name\":\"Create reply-all draft in folder\",\"description\":\"Tool to create a reply-all draft for a message in a mail folder. Use when you need to create a draft reply to all recipients of an email.\"},{\"slug\":\"OUTLOOK_CREATE_TASK\",\"name\":\"Create To Do task\",\"description\":\"Tool to create a new task in Microsoft To Do within a specified task list. Use when adding tasks with title, due dates, reminders, importance levels, descriptions, categories, and linked resources.\"},{\"slug\":\"OUTLOOK_CREATE_USER_CALENDAR_EVENT_ATTACHMENT\",\"name\":\"Create user calendar event attachment\",\"description\":\"Tool to create a new attachment for an event in a specific user's calendar. Use when you need to attach a file or item to an event within a particular user's calendar.\"},{\"slug\":\"OUTLOOK_CREATE_USER_CALENDAR_GROUP_CALENDAR\",\"name\":\"Create calendar in user's calendar group\",\"description\":\"Tool to create a new calendar in a calendar group for a specific user. Use when organizing events into a separate calendar within a specific calendar group for a user.\"},{\"slug\":\"OUTLOOK_CREATE_USER_CALENDAR_GROUP_EVENT\",\"name\":\"Create user calendar group event\",\"description\":\"Tool to create a new calendar event in a specific user's calendar within a calendar group. Use when creating events for a particular user in a calendar that belongs to a calendar group.\"},{\"slug\":\"OUTLOOK_CREATE_USER_CONTACTS_EXTENSIONS\",\"name\":\"Create user contact extension\",\"description\":\"Tool to create a new open extension on a specific user's contact. Use when you need to store custom data with a contact for a specific user.\"},{\"slug\":\"OUTLOOK_CREATE_USER_EVENT_ATTACHMENT_UPLOAD_SESSION\",\"name\":\"Create user event attachment upload session\",\"description\":\"Deprecated: Use OUTLOOK_CREATE_ME_EVENT_ATTACHMENT_UPLOAD_SESSION instead, which supports both /me and /users/{user_id} endpoints.\"},{\"slug\":\"OUTLOOK_CREATE_USER_EVENT_CALENDAR_PERMISSION\",\"name\":\"Create calendar permission via event\",\"description\":\"Tool to create a calendar permission via an event's calendar. Use when granting calendar access through an event by specifying the event ID and user email address.\"},{\"slug\":\"OUTLOOK_CREATE_USER_MAIL_CHILD_FOLDER_MSG_EXT\",\"name\":\"Create user message extension\",\"description\":\"Tool to create a new open extension on a message in a child mail folder for any user. Use when you need to store custom data with a message in a nested folder structure.\"},{\"slug\":\"OUTLOOK_CREATE_USER_MAIL_FOLDER_MESSAGE_EXTENSION\",\"name\":\"Create user mail folder message extension\",\"description\":\"Tool to create a new open extension on a message in a user's mail folder. Use when you need to store custom data with a specific message in a user's mailbox.\"},{\"slug\":\"OUTLOOK_CREATE_USER_MAIL_FOLDER_MESSAGE_REPLY_DRAFT\",\"name\":\"Create reply draft for user mail folder message\",\"description\":\"Tool to create a reply draft for a message in a user's mail folder. Use when you need to prepare a reply without sending it immediately. The draft is created in the Drafts folder and includes the RE: prefix in the subject line.\"},{\"slug\":\"OUTLOOK_CREATE_USER_MAIL_FOLDERS_CHILD_FOLDERS\",\"name\":\"Create user mail folders child folders\",\"description\":\"Tool to create a new child folder under a specified mail folder for a user. Use when organizing email into nested folder hierarchies within a specific user's mailbox.\"},{\"slug\":\"OUTLOOK_CREATE_USER_MASTER_CATEGORY\",\"name\":\"Create user master category\",\"description\":\"Tool to create a new category in a user's master category list. Use when you need to add a category to organize email and calendar items for a specific user.\"},{\"slug\":\"OUTLOOK_CREATE_USER_MESSAGE\",\"name\":\"Create user message\",\"description\":\"Tool to create a new draft message in a user's mailbox. Use when creating draft messages for a specific user or the authenticated user.\"},{\"slug\":\"OUTLOOK_CREATE_USER_MESSAGE_ATTACHMENT\",\"name\":\"Create user message attachment\",\"description\":\"Tool to create an attachment on a message in a user's mail folder. Use when you need to attach a file or item to an existing message in a specific user's mailbox.\"},{\"slug\":\"OUTLOOK_DECLINE_EVENT\",\"name\":\"Decline calendar event\",\"description\":\"Tool to decline an invitation to a calendar event. Use when the user wants to decline a meeting or event invitation. The API returns 202 Accepted with no content on success.\"},{\"slug\":\"OUTLOOK_DELETE_CALENDAR\",\"name\":\"Delete calendar\",\"description\":\"Tool to delete a calendar other than the default calendar from a user's mailbox. Use when removing calendars that are no longer needed.\"},{\"slug\":\"OUTLOOK_DELETE_CALENDAR_EVENT\",\"name\":\"Delete calendar event\",\"description\":\"Tool to delete a calendar event from a user's Outlook calendar. Use when removing events that are no longer needed or were created in error.\"},{\"slug\":\"OUTLOOK_DELETE_CALENDAR_EVENT_ATTACHMENT\",\"name\":\"Delete user calendar event attachment\",\"description\":\"Tool to delete an attachment from an event in a specific user's calendar. Use when you need to remove a file or item attachment from an event in a calendar.\"},{\"slug\":\"OUTLOOK_DELETE_CALENDAR_EVENT_FROM_SPECIFIC_CALENDAR\",\"name\":\"Delete event from specific calendar\",\"description\":\"Tool to delete an event from a specific calendar in Outlook. Use when removing events from secondary or shared calendars by providing both calendar ID and event ID.\"},{\"slug\":\"OUTLOOK_DELETE_CALENDAR_FROM_GROUP\",\"name\":\"Delete user calendar group calendar\",\"description\":\"Tool to delete a calendar from a specific user's calendar group in Microsoft Outlook. Use when removing a calendar that belongs to a user's calendar group.\"},{\"slug\":\"OUTLOOK_DELETE_CALENDAR_GROUP\",\"name\":\"Delete calendar group\",\"description\":\"Tool to delete a calendar group other than the default calendar group. Use when removing unused calendar groups from the mailbox.\"},{\"slug\":\"OUTLOOK_DELETE_CALENDAR_GROUP_CALENDAR_EVENT\",\"name\":\"Delete user calendar group calendar event\",\"description\":\"Tool to delete a calendar event from a specific user's calendar within a calendar group. Use when removing events from calendars organized under calendar groups for a specific user.\"},{\"slug\":\"OUTLOOK_DELETE_CALENDAR_GROUP_EVENT_ATTACHMENT\",\"name\":\"Delete calendar group event attachment\",\"description\":\"Tool to delete an attachment from an event in a calendar within a calendar group. Use when you need to remove a file or item attachment from an event in a specific calendar group.\"},{\"slug\":\"OUTLOOK_DELETE_CALENDAR_GROUP_EVENT_PERMANENTLY\",\"name\":\"Permanently Delete Calendar Group Event\",\"description\":\"Tool to permanently delete a calendar event from a calendar within a calendar group. Use when you need to ensure an event cannot be restored from deleted items.\"},{\"slug\":\"OUTLOOK_DELETE_CALENDAR_PERMANENTLY\",\"name\":\"Permanently Delete Calendar\",\"description\":\"Permanently deletes a calendar from a user's mailbox. Unlike standard DELETE, this action makes the calendar permanently unrecoverable. Use when you need to ensure a calendar cannot be restored from deleted items.\"},{\"slug\":\"OUTLOOK_DELETE_CALENDAR_PERMISSION\",\"name\":\"Delete User Calendar Group Calendar Permission\",\"description\":\"Tool to delete a calendar permission from a user's calendar within a calendar group. Use when revoking calendar sharing access for specific users.\"},{\"slug\":\"OUTLOOK_DELETE_CHILD_CONTACT_FOLDER_PERMANENTLY\",\"name\":\"Permanently Delete Child Contact Folder\",\"description\":\"Permanently deletes a child contact folder. Unlike standard DELETE, this action makes the folder permanently unrecoverable. Use when you need to ensure a child contact folder cannot be restored from deleted items.\"},{\"slug\":\"OUTLOOK_DELETE_CHILD_FOLDER_MESSAGE\",\"name\":\"Delete Child Folder Message\",\"description\":\"Tool to delete a message from a child mail folder in Outlook. Use when removing messages from nested folder structures or cleaning up messages in subfolders.\"},{\"slug\":\"OUTLOOK_DELETE_CONTACT\",\"name\":\"Delete Contact\",\"description\":\"Permanently deletes an existing contact, using its `contact_id` (obtainable via 'List User Contacts' or 'Get Contact'), from the Outlook contacts of the user specified by `user_id`.\"},{\"slug\":\"OUTLOOK_DELETE_CONTACT_FOLDER\",\"name\":\"Delete contact folder\",\"description\":\"Tool to delete a contact folder from the user's mailbox. Use when you need to remove an existing contact folder.\"},{\"slug\":\"OUTLOOK_DELETE_CONTACT_FOLDER_CHILD_FOLDER\",\"name\":\"Delete user contact folder child folder\",\"description\":\"Tool to delete a child contact folder from a parent contact folder for a specific user. Use when removing nested contact folders from a user's mailbox.\"},{\"slug\":\"OUTLOOK_DELETE_CONTACT_FOLDER_CONTACT\",\"name\":\"Delete Contact from Folder\",\"description\":\"Tool to permanently delete a contact from a specific contact folder. Use when removing contacts from organized folders in Outlook.\"},{\"slug\":\"OUTLOOK_DELETE_CONTACT_FOLDER_PERMANENTLY\",\"name\":\"Permanently Delete Contact Folder\",\"description\":\"Permanently deletes a contact folder. Unlike standard DELETE, this action makes the folder permanently unrecoverable. Use when you need to ensure a contact folder cannot be restored from deleted items.\"},{\"slug\":\"OUTLOOK_DELETE_CONTACT_FROM_CHILD_FOLDER_PERMANENTLY\",\"name\":\"Permanently Delete User Contact from Child Folder\",\"description\":\"Tool to permanently delete a contact from a child folder for a specific user. Use when you need to ensure a contact cannot be restored from deleted items.\"},{\"slug\":\"OUTLOOK_DELETE_CONTACT_FROM_FOLDER_PERMANENTLY\",\"name\":\"Permanently Delete Contact from Folder\",\"description\":\"Permanently deletes a contact from a specific contact folder. Unlike standard DELETE, this action makes the contact permanently unrecoverable. Use when you need to ensure a contact in a folder cannot be restored from deleted items.\"},{\"slug\":\"OUTLOOK_DELETE_CONTACT_PERMANENTLY\",\"name\":\"Permanently Delete Contact\",\"description\":\"Permanently deletes a contact. Unlike standard DELETE, this action makes the contact permanently unrecoverable. Use when you need to ensure a contact cannot be restored from deleted items.\"},{\"slug\":\"OUTLOOK_DELETE_CONTACTS_EXTENSIONS\",\"name\":\"Delete contact extension\",\"description\":\"Tool to delete a navigation property extension from a contact within a child folder. Use when removing custom extension data from a contact.\"},{\"slug\":\"OUTLOOK_DELETE_EMAIL_RULE\",\"name\":\"Delete Email Rule\",\"description\":\"Delete an email rule permanently; deletion is irreversible. Confirm rule details with the user before executing. Removing a rule may alter the firing order and stop-processing behavior of remaining rules.\"},{\"slug\":\"OUTLOOK_DELETE_EVENT\",\"name\":\"Delete calendar event (Deprecated)\",\"description\":\"DEPRECATED: Use OUTLOOK_DELETE_CALENDAR_EVENT instead. Tool to delete an event from the user's calendar. Use when removing calendar events. If this is a meeting, deleting it removes it from the organizer's calendar and sends a cancellation message to all attendees. Require explicit user confirmation before calling this action.\"},{\"slug\":\"OUTLOOK_DELETE_EVENT_ATTACHMENT\",\"name\":\"Delete event attachment\",\"description\":\"Tool to delete an attachment from an Outlook calendar event. Use when you need to remove a file or item attachment from an existing event.\"},{\"slug\":\"OUTLOOK_DELETE_EVENT_EXTENSION\",\"name\":\"Delete event extension\",\"description\":\"Tool to delete an open extension from a calendar event in a calendar group. Use when removing custom extension data that is no longer needed.\"},{\"slug\":\"OUTLOOK_DELETE_EVENT_PERMANENTLY\",\"name\":\"Permanently Delete Event\",\"description\":\"Permanently deletes a calendar event. Unlike standard DELETE, this action makes the event permanently unrecoverable. Use when you need to ensure an event cannot be restored from deleted items.\"},{\"slug\":\"OUTLOOK_DELETE_MAIL_FOLDER\",\"name\":\"Delete mail folder\",\"description\":\"Delete a mail folder from the user's mailbox. Use when you need to remove an existing mail folder.\"},{\"slug\":\"OUTLOOK_DELETE_MAIL_FOLDER_MESSAGE\",\"name\":\"Delete Mail Folder Message\",\"description\":\"Tool to delete a message from a specific mail folder in Outlook. Use when removing messages from a particular folder or cleaning up folder contents.\"},{\"slug\":\"OUTLOOK_DELETE_MASTER_CATEGORY\",\"name\":\"Delete master category\",\"description\":\"Tool to delete a category from the user's master category list. Use when removing unused or obsolete categories from the mailbox.\"},{\"slug\":\"OUTLOOK_DELETE_ME_CALENDAR_PERMISSION\",\"name\":\"Delete User Calendars Calendar Permission\",\"description\":\"Tool to delete a calendar permission from a specific user's calendar. Use when revoking access to a shared calendar.\"},{\"slug\":\"OUTLOOK_DELETE_ME_CONTACT_EXTENSION\",\"name\":\"Delete contact extension\",\"description\":\"Tool to delete an open extension from a contact. Use when removing custom data extensions that are no longer needed.\"},{\"slug\":\"OUTLOOK_DELETE_ME_CONTACT_FOLDER_CONTACT_EXTENSION\",\"name\":\"Delete user contact folder contact extension\",\"description\":\"Tool to delete an extension from a contact in a user's contact folder. Use when removing custom extension data from a contact.\"},{\"slug\":\"OUTLOOK_DELETE_ME_EVENT_EXTENSION\",\"name\":\"Delete user event extension\",\"description\":\"Tool to delete an open extension from a user's calendar event. Use when removing custom extension data that is no longer needed.\"},{\"slug\":\"OUTLOOK_DELETE_ME_EVENTS_ATTACHMENTS\",\"name\":\"Delete user event attachment\",\"description\":\"Tool to delete an attachment from a user's Outlook event. Use when you need to remove a file or item attachment from an existing event.\"},{\"slug\":\"OUTLOOK_DELETE_ME_INFERENCE_CLASSIFICATION_OVERRIDE\",\"name\":\"Delete inference classification override\",\"description\":\"Tool to delete an inference classification override for a specific sender. Use when removing custom Focused Inbox rules that were previously set.\"},{\"slug\":\"OUTLOOK_DELETE_ME_MAIL_FOLDER_CHILD_FOLDER\",\"name\":\"Delete mail folder child folder\",\"description\":\"Tool to delete a child mail folder from a parent mail folder. Use when removing nested mail folders from a user's mailbox.\"},{\"slug\":\"OUTLOOK_DELETE_ME_MAIL_FOLDER_CHILD_FOLDER_PERMANENTLY\",\"name\":\"Permanently Delete Child Mail Folder\",\"description\":\"Permanently deletes a child mail folder from a parent mail folder. Unlike standard DELETE, this action makes the folder permanently unrecoverable. Use when you need to ensure a child folder cannot be restored from deleted items.\"},{\"slug\":\"OUTLOOK_DELETE_ME_MAIL_FOLDER_MESSAGE_RULE\",\"name\":\"Delete mail folder message rule\",\"description\":\"Tool to delete a message rule from a specific mail folder. Use when you need to remove an email automation rule from a folder.\"},{\"slug\":\"OUTLOOK_DELETE_ME_MAIL_FOLDERS_CHILD_FOLDERS_MESSAGES_EXTENS\",\"name\":\"Delete user message extension\",\"description\":\"Delete user message extension\"},{\"slug\":\"OUTLOOK_DELETE_ME_MAIL_FOLDERS_MESSAGES_ATTACHMENTS\",\"name\":\"Delete Message Attachment (Deprecated)\",\"description\":\"DEPRECATED: Use OUTLOOK_DELETE_MESSAGE_ATTACHMENT instead. Tool to delete an attachment from a message in a mail folder. Use when removing file or item attachments from messages in Outlook mail folders.\"},{\"slug\":\"OUTLOOK_DELETE_ME_MAIL_FOLDERS_MESSAGES_EXTENSIONS\",\"name\":\"Delete message extension\",\"description\":\"Tool to delete a navigation property extension from a message within a mail folder. Use when removing custom extension data from a message.\"},{\"slug\":\"OUTLOOK_DELETE_ME_MESSAGES_ATTACHMENTS\",\"name\":\"Delete Message Attachment\",\"description\":\"Tool to delete an attachment from a message. Use when removing file or item attachments from messages in Outlook.\"},{\"slug\":\"OUTLOOK_DELETE_MESSAGE\",\"name\":\"Delete Message\",\"description\":\"Tool to permanently delete an Outlook email message by its message_id. Use when removing unwanted messages, cleaning up drafts, or performing mailbox maintenance.\"},{\"slug\":\"OUTLOOK_DELETE_MESSAGE_ATTACHMENT\",\"name\":\"Delete Message Attachment\",\"description\":\"Tool to delete an attachment from a message in a nested mail folder structure. Use when removing attachments from messages located in child folders within mail folders.\"},{\"slug\":\"OUTLOOK_DELETE_MESSAGE_EXTENSION\",\"name\":\"Delete message extension\",\"description\":\"Tool to delete an open extension from an Outlook message. Use when removing custom extension data that is no longer needed from a message.\"},{\"slug\":\"OUTLOOK_DELETE_MESSAGE_PERMANENTLY_FROM_FOLDER\",\"name\":\"Permanently Delete Message (Folder-Scoped) (Deprecated)\",\"description\":\"DEPRECATED: Use OUTLOOK_PERMANENT_DELETE_MESSAGE instead. Tool to permanently delete a message from a specific mail folder. Use when you need to irreversibly delete a message with explicit folder context. The message is moved to the Purges folder and cannot be recovered.\"},{\"slug\":\"OUTLOOK_DELETE_PRIMARY_CALENDAR_PERMISSION\",\"name\":\"Delete User Calendar Permission\",\"description\":\"Tool to delete a calendar permission from a specific user's calendar. Use when revoking calendar sharing access for a particular user.\"},{\"slug\":\"OUTLOOK_DELETE_TODO_TASK\",\"name\":\"Delete To Do task\",\"description\":\"Tool to permanently delete a task from a Microsoft To Do task list. Use when removing a task that is no longer needed. This action cannot be undone.\"},{\"slug\":\"OUTLOOK_DELETE_USER_CALENDAR_EVENT_PERMANENTLY\",\"name\":\"Permanently Delete User Calendar Event\",\"description\":\"Tool to permanently delete a calendar event from a specific user's calendar. Use when you need to ensure an event cannot be restored from deleted items.\"},{\"slug\":\"OUTLOOK_DELETE_USER_CHILD_FOLDER_CONTACT\",\"name\":\"Delete Contact from User's Child Folder\",\"description\":\"Tool to delete a contact from a child folder in a user's contact folder. Use when you need to remove a contact from a specific child folder within a contact folder.\"},{\"slug\":\"OUTLOOK_DELETE_USER_CHILD_FOLDER_MESSAGE_PERMANENTLY\",\"name\":\"Delete User Child Folder Message Permanently\",\"description\":\"Tool to permanently delete a message from a user's child mail folder in Outlook. Unlike standard DELETE, this action makes the message unrecoverable by moving it to the Purges folder in the dumpster. Use when you need to ensure a message in a nested folder cannot be restored from deleted items.\"},{\"slug\":\"OUTLOOK_DELETE_USER_CONTACT_EXTENSION\",\"name\":\"Delete user contact extension\",\"description\":\"Deprecated: Use OUTLOOK_DELETE_CONTACTS_EXTENSIONS instead, which supports both /me and /users/{user_id} endpoints.\"},{\"slug\":\"OUTLOOK_DELETE_USER_EVENT_PERMANENTLY\",\"name\":\"Permanently Delete User Event\",\"description\":\"Tool to permanently delete a calendar event for a specified user. Use when you need to ensure an event cannot be restored from deleted items.\"},{\"slug\":\"OUTLOOK_DELETE_USER_MAIL_FOLDER_PERMANENTLY\",\"name\":\"Permanently Delete User Mail Folder\",\"description\":\"Permanently deletes a mail folder for a specific user. Unlike standard DELETE, this action makes the folder permanently unrecoverable. Use when you need to ensure a user's folder cannot be restored from deleted items.\"},{\"slug\":\"OUTLOOK_DELETE_USER_MESSAGE_ATTACHMENT\",\"name\":\"Delete user message attachment\",\"description\":\"Deprecated: Use OUTLOOK_DELETE_ME_MESSAGES_ATTACHMENTS instead, which supports both /me and /users/{user_id} endpoints.\"},{\"slug\":\"OUTLOOK_DISMISS_CALENDAR_EVENT_REMINDER\",\"name\":\"Dismiss user calendar event reminder\",\"description\":\"Tool to dismiss a reminder for a specific event in a user's calendar. Use when you need to turn off or remove a reminder alert for an event in a specific user's calendar.\"},{\"slug\":\"OUTLOOK_DISMISS_EVENT_REMINDER\",\"name\":\"Dismiss event reminder\",\"description\":\"Tool to dismiss a reminder for a specific calendar event. Use when you need to turn off or remove a reminder alert for an event.\"},{\"slug\":\"OUTLOOK_DISMISS_EVENT_REMINDER_FROM_GROUP\",\"name\":\"Dismiss user calendar group event reminder\",\"description\":\"Tool to dismiss a reminder for an event in a user's calendar within a calendar group. Use when you need to turn off a reminder for an event in a specific user's calendar group.\"},{\"slug\":\"OUTLOOK_DISMISS_USER_EVENT_REMINDER\",\"name\":\"Dismiss user event reminder\",\"description\":\"Tool to dismiss a reminder for a specific user's calendar event. Use when you need to turn off or remove a reminder alert for an event in a user's calendar.\"},{\"slug\":\"OUTLOOK_DOWNLOAD_OUTLOOK_ATTACHMENT\",\"name\":\"Download Outlook attachment\",\"description\":\"Downloads a specific file attachment from an email message in a Microsoft Outlook mailbox; the attachment must contain 'contentBytes' (binary data) and not be a link or embedded item. High-volume parallel calls may trigger HTTP 429 responses; honor the Retry-After header and use exponential backoff.\"},{\"slug\":\"OUTLOOK_FIND_MEETING_TIMES\",\"name\":\"Find Meeting Times\",\"description\":\"Suggests meeting times based on organizer and attendee availability, time constraints, and duration requirements. Use when you need to find optimal meeting slots across multiple participants' schedules.\"},{\"slug\":\"OUTLOOK_FORWARD_MESSAGE\",\"name\":\"Forward message\",\"description\":\"Tool to forward a message. Use when you need to send an existing email to new recipients.\"},{\"slug\":\"OUTLOOK_FORWARD_USER_CALENDAR_EVENT\",\"name\":\"Forward user calendar event\",\"description\":\"Tool to forward a calendar event from a specific user's calendar to new recipients. Use when you need to share an event from a particular calendar with additional people.\"},{\"slug\":\"OUTLOOK_GET_CALENDAR\",\"name\":\"Get specific calendar\",\"description\":\"Deprecated: Use OUTLOOK_GET_USER_CALENDAR instead, which supports both /me and /users/{user_id} endpoints and adds $select field filtering.\"},{\"slug\":\"OUTLOOK_GET_CALENDAR_EVENT\",\"name\":\"Get event from calendar\",\"description\":\"Tool to retrieve a specific event from a specified calendar. Use when you need to get details of an event that belongs to a specific calendar in the user's mailbox.\"},{\"slug\":\"OUTLOOK_GET_CALENDAR_EVENT_ATTACHMENT\",\"name\":\"Get calendar event attachment\",\"description\":\"Tool to retrieve a specific attachment from an event within a calendar. Use when you need to access attachment content from a calendar event.\"},{\"slug\":\"OUTLOOK_GET_CALENDAR_FROM_EVENT\",\"name\":\"Get calendar from event\",\"description\":\"Tool to retrieve the parent calendar that contains a specific event. Use when you need to get calendar details for a specific event in a calendar.\"},{\"slug\":\"OUTLOOK_GET_CALENDAR_FROM_GROUP\",\"name\":\"Get calendar from calendar group\",\"description\":\"Tool to retrieve a specific calendar from a calendar group in Microsoft Outlook. Use when you need to get details of a calendar that belongs to a specific calendar group.\"},{\"slug\":\"OUTLOOK_GET_CALENDAR_GROUP\",\"name\":\"Get calendar group\",\"description\":\"Tool to retrieve the properties and relationships of a calendar group object. Use when you need to get details of a specific calendar group by its ID.\"},{\"slug\":\"OUTLOOK_GET_CALENDAR_GROUP_CALENDAR_EVENT_EXTENSION\",\"name\":\"Get event extension\",\"description\":\"Tool to retrieve an open extension from a calendar event within a specific calendar group and calendar. Use when you need to access custom data stored with an event.\"},{\"slug\":\"OUTLOOK_GET_CALENDAR_GROUP_EVENT_ATTACHMENT\",\"name\":\"Get calendar group event attachment\",\"description\":\"Deprecated: Use OUTLOOK_GET_USER_CALENDAR_GROUP_EVENT_ATTACHMENT instead, which supports both /me and /users/{user_id} endpoints.\"},{\"slug\":\"OUTLOOK_GET_CALENDAR_GROUP_SCHEDULE\",\"name\":\"Get User Calendar Group Schedule\",\"description\":\"Tool to retrieve free/busy schedule information for a specific user's calendar within a calendar group. Use when you need availability data from a particular user's calendar that belongs to a calendar group.\"},{\"slug\":\"OUTLOOK_GET_CALENDAR_PERMISSION\",\"name\":\"Get user calendar permission\",\"description\":\"Tool to retrieve a specific calendar permission for a user's calendar. Use when you need to check who has access to a specific user's calendar and their permission level.\"},{\"slug\":\"OUTLOOK_GET_CALENDAR_PERMISSION_FROM_CALENDAR\",\"name\":\"Get user calendar permission\",\"description\":\"Tool to retrieve a specific calendar permission from a user's calendar. Use when you need to check who has access to a specific user's calendar and their permission level.\"},{\"slug\":\"OUTLOOK_GET_CALENDAR_SCHEDULE\",\"name\":\"Get Calendar Schedule\",\"description\":\"Tool to get free/busy schedule information for users, distribution lists, or resources. Use when you need to check availability for specific people or resources during a time period.\"},{\"slug\":\"OUTLOOK_GET_CALENDAR_VIEW\",\"name\":\"Get Calendar View\",\"description\":\"Get events ACTIVE during a time window (includes multi-day events). Use for \\\"what's on my calendar today/this week\\\" or availability checks. Returns events overlapping the time range. For keyword search or filters by category, use OUTLOOK_LIST_EVENTS instead.\"},{\"slug\":\"OUTLOOK_GET_CHILD_FOLDER_MESSAGE\",\"name\":\"Get child folder message\",\"description\":\"Tool to retrieve a specific email message from a child mail folder. Use when you need to access a message in a nested folder hierarchy.\"},{\"slug\":\"OUTLOOK_GET_CHILD_FOLDER_MESSAGE_CONTENT\",\"name\":\"Get child folder message MIME content\",\"description\":\"Tool to get the MIME content of a message from a child mail folder. Use when you need to download the raw MIME format of an email message for analysis or archival.\"},{\"slug\":\"OUTLOOK_GET_CHILD_MAIL_FOLDER\",\"name\":\"Get child mail folder\",\"description\":\"Tool to retrieve a specific child mail folder from a parent mail folder. Use when you need details about a specific subfolder within a folder hierarchy.\"},{\"slug\":\"OUTLOOK_GET_CONTACT_EXTENSION\",\"name\":\"Get contact extension\",\"description\":\"Tool to retrieve an open extension from a contact in Microsoft Graph. Use when you need to access custom data stored with a contact.\"},{\"slug\":\"OUTLOOK_GET_CONTACT_FOLDER\",\"name\":\"Get contact folder\",\"description\":\"Tool to retrieve a specific contact folder by ID. Use when you need details about a particular contact folder in the user's mailbox.\"},{\"slug\":\"OUTLOOK_GET_CONTACT_FOLDERS\",\"name\":\"List user contact folders\",\"description\":\"Tool to retrieve contact folders from a specific user's mailbox. Use when you need to list or browse contact folders for a given user.\"},{\"slug\":\"OUTLOOK_GET_CONTACT_FROM_FOLDER\",\"name\":\"Get contact from folder\",\"description\":\"Tool to retrieve a specific contact from a contact folder by its ID. Use when you need to access contact details from a specific folder rather than the default contacts location.\"},{\"slug\":\"OUTLOOK_GET_DRAFTS_MAIL_FOLDER\",\"name\":\"Get drafts mail folder\",\"description\":\"Tool to get the drafts mail folder. Use when you need to retrieve details about the drafts folder such as item counts and folder ID.\"},{\"slug\":\"OUTLOOK_GET_EVENT\",\"name\":\"Get calendar event\",\"description\":\"Retrieves the full details of a specific calendar event by its ID from a user's Outlook calendar, provided the event exists.\"},{\"slug\":\"OUTLOOK_GET_EVENT_ATTACHMENT\",\"name\":\"Get event attachment\",\"description\":\"Tool to retrieve a specific attachment from an Outlook calendar event by attachment ID. Use when you need to download or access the content of a particular event attachment.\"},{\"slug\":\"OUTLOOK_GET_EVENT_CALENDAR_FROM_GROUP\",\"name\":\"Get event calendar from calendar group\",\"description\":\"Tool to retrieve the calendar that contains a specific event within a calendar group. Use when you need to get calendar details for an event in a calendar group.\"},{\"slug\":\"OUTLOOK_GET_INFERENCE_CLASSIFICATION\",\"name\":\"Get inference classification\",\"description\":\"Tool to get inference classification settings for the authenticated user. Use when you need to retrieve the Focused Inbox configuration and sender-specific overrides that determine message classification.\"},{\"slug\":\"OUTLOOK_GET_MAILBOX_SETTINGS\",\"name\":\"Get mailbox settings\",\"description\":\"Tool to retrieve mailbox settings. Use when you need to view settings such as automatic replies, time zone, and working hours for the signed-in or specified user.\"},{\"slug\":\"OUTLOOK_GET_MAIL_DELTA\",\"name\":\"Get mail delta\",\"description\":\"Retrieve incremental changes (delta) of messages in a mailbox. FIRST RUN: Returns ALL messages in folder (use top=50 to limit). Response has @odata.deltaLink. SUBSEQUENT: Pass stored deltaLink to get only NEW/UPDATED/DELETED messages since last sync. Properties available: id, subject, from, receivedDateTime, isRead, etc. NOT available: internetMessageHeaders, full body, attachment content (response size limits).\"},{\"slug\":\"OUTLOOK_GET_MAIL_FOLDER\",\"name\":\"Get mail folder\",\"description\":\"Tool to retrieve a mail folder by ID or well-known name. Use when you need to get details about a specific folder such as item counts, size, and folder properties.\"},{\"slug\":\"OUTLOOK_GET_MAIL_FOLDER_MESSAGE\",\"name\":\"Get mail folder message\",\"description\":\"Tool to retrieve a specific message from a mail folder by its ID. Use when you need to fetch full message details including subject, body, sender, recipients, timestamps, and other metadata from a specific mail folder.\"},{\"slug\":\"OUTLOOK_GET_MAIL_FOLDER_MESSAGE_RULE\",\"name\":\"Get user mail folder message rule\",\"description\":\"Tool to retrieve a specific message rule from a user's mail folder. Use when you need details about an email rule in a particular user's folder.\"},{\"slug\":\"OUTLOOK_GET_MAIL_TIPS\",\"name\":\"Get mail tips\",\"description\":\"Tool to retrieve mail tips such as automatic replies and mailbox full status. Use when you need to check recipient status before sending mail.\"},{\"slug\":\"OUTLOOK_GET_MASTER_CATEGORIES\",\"name\":\"Get master categories\",\"description\":\"Tool to retrieve the user's master category list. Use when you need to get all categories defined for the user.\"},{\"slug\":\"OUTLOOK_GET_MASTER_CATEGORY\",\"name\":\"Get master category\",\"description\":\"Tool to retrieve properties of a specific category from the user's master category list. Use when you need details about a specific category.\"},{\"slug\":\"OUTLOOK_GET_ME_CALENDAR\",\"name\":\"Get user's default calendar\",\"description\":\"Tool to get the properties and relationships of the signed-in user's default calendar. Use when you need to retrieve calendar details for the authenticated user.\"},{\"slug\":\"OUTLOOK_GET_ME_CONTACT_FOLDERS_CHILD_FOLDER\",\"name\":\"Get user child contact folder\",\"description\":\"Tool to retrieve a specific child contact folder for a user by ID. Use when you need details of a child folder nested within a parent contact folder for a specific user.\"},{\"slug\":\"OUTLOOK_GET_ME_CONTACT_FROM_CHILD_FOLDER\",\"name\":\"Get contact from child folder\",\"description\":\"Tool to retrieve a specific contact from a nested child folder within a contact folder. Use when you need contact details from a child folder.\"},{\"slug\":\"OUTLOOK_GET_ME_CONTACT_PHOTO\",\"name\":\"Get contact photo\",\"description\":\"Tool to get the binary media content of a contact's profile photo. Use when you need to download or retrieve a contact's picture.\"},{\"slug\":\"OUTLOOK_GET_ME_CONTACTS\",\"name\":\"Get contact\",\"description\":\"Retrieves a specific Outlook contact by its `contact_id` from the contacts of a specified `user_id` (defaults to 'me' for the authenticated user).\"},{\"slug\":\"OUTLOOK_GET_ME_CONTACTS_EXTENSIONS\",\"name\":\"Get user contact extension\",\"description\":\"Tool to retrieve a specific open extension from a user's contact. Use when you need to access custom data stored with a contact.\"},{\"slug\":\"OUTLOOK_GET_ME_EVENT_ATTACHMENT\",\"name\":\"Get user event attachment\",\"description\":\"Tool to retrieve a specific attachment from a user's calendar event. Use when you need to access attachment details including content from a specific user's event.\"},{\"slug\":\"OUTLOOK_GET_ME_EVENT_CALENDAR\",\"name\":\"Get event calendar\",\"description\":\"Tool to retrieve the calendar that contains a specific event. Use when you need to get calendar details for an event.\"},{\"slug\":\"OUTLOOK_GET_ME_MAIL_FOLDER_MESSAGE_ATTACHMENT\",\"name\":\"Get mail folder message attachment (Deprecated)\",\"description\":\"DEPRECATED: Use OUTLOOK_GET_USER_MESSAGES_ATTACHMENTS instead. Tool to get a specific attachment from a message in a mail folder. Use when you have the folder ID, message ID, and attachment ID.\"},{\"slug\":\"OUTLOOK_GET_ME_MAIL_FOLDERS_MESSAGES_EXTENSIONS\",\"name\":\"Get message extension\",\"description\":\"Tool to retrieve a specific extension from a message in a user's mailbox. Use when you need to read custom data stored in a message extension.\"},{\"slug\":\"OUTLOOK_GET_ME_MESSAGE_MIME_CONTENT\",\"name\":\"Get message MIME content\",\"description\":\"Tool to get the MIME content of a message. Use when you need to download the raw MIME format of an email message for analysis or archival.\"},{\"slug\":\"OUTLOOK_GET_ME_OUTLOOK\",\"name\":\"Get user outlook\",\"description\":\"Tool to retrieve the outlookUser object for a specified user. Use when you need to access the Outlook services entity for a user.\"},{\"slug\":\"OUTLOOK_GET_MESSAGE\",\"name\":\"Get email message\",\"description\":\"Retrieves a specific email message by its ID from the specified user's Outlook mailbox. Use the 'select' parameter to include specific fields like 'internetMessageHeaders' for filtering automated emails. Retries transient Microsoft Graph 404 responses with exponential backoff for up to 7.5 seconds because newly surfaced messages can be eventually consistent.\"},{\"slug\":\"OUTLOOK_GET_MESSAGE_EXTENSION\",\"name\":\"Get user message extension\",\"description\":\"Tool to retrieve a specific extension from a user's message. Use when you need to read custom data stored in a message extension.\"},{\"slug\":\"OUTLOOK_GET_NESTED_FOLDER_MESSAGE_ATTACHMENT\",\"name\":\"Get attachment from nested folder message\",\"description\":\"Tool to retrieve a specific attachment from a message located in a nested mail folder structure. Use when you need to get attachment details from messages in deeply nested folders.\"},{\"slug\":\"OUTLOOK_GET_PROFILE\",\"name\":\"Get Outlook profile\",\"description\":\"Retrieves the Microsoft Outlook profile for a specified user.\"},{\"slug\":\"OUTLOOK_GET_SCHEDULE\",\"name\":\"Get schedule\",\"description\":\"Retrieves free/busy schedule information for specified email addresses within a defined time window. Read-only; does not reserve time or prevent conflicts — verify availability before creating events.\"},{\"slug\":\"OUTLOOK_GET_SUPPORTED_LANGUAGES\",\"name\":\"Get supported languages\",\"description\":\"Tool to retrieve supported languages in the user's mailbox. Use when you need to display or select from available mailbox languages.\"},{\"slug\":\"OUTLOOK_GET_SUPPORTED_TIME_ZONES\",\"name\":\"Get supported time zones\",\"description\":\"Tool to get the list of time zones supported for a user as configured on their mailbox server. Use when setting up an Outlook client or configuring user time zone preferences.\"},{\"slug\":\"OUTLOOK_GET_USER_BY_EMAIL\",\"name\":\"Get user by email\",\"description\":\"Retrieves user details from Microsoft Graph by email address (userPrincipalName). Returns user properties including display name, job title, department, and contact information. Use this action when you need to look up a user's profile information using their email address.\"},{\"slug\":\"OUTLOOK_GET_USER_CALENDAR\",\"name\":\"Get user's calendar\",\"description\":\"Tool to get the properties and relationships of a specific calendar for a user. Use when you need to retrieve details for a particular calendar by its ID for any user.\"},{\"slug\":\"OUTLOOK_GET_USER_CALENDAR_ALLOWED_SHARING_ROLES\",\"name\":\"Get allowed calendar sharing roles for user calendar\",\"description\":\"Tool to retrieve allowed calendar sharing roles for a specific user on a given calendar. Use when you need to determine what permission levels can be granted to a user for sharing a specific calendar.\"},{\"slug\":\"OUTLOOK_GET_USER_CALENDAR_EVENT\",\"name\":\"Get user calendar event\",\"description\":\"Tool to retrieve a specific calendar event from a user's primary calendar. Use when you need detailed information about a particular event for a given user.\"},{\"slug\":\"OUTLOOK_GET_USER_CALENDAR_GROUP_CALENDAR_PERMISSION\",\"name\":\"Get user calendar group calendar permission\",\"description\":\"Tool to retrieve a specific calendar permission for a user's calendar within a calendar group. Use when you need to check access permissions for a specific calendar.\"},{\"slug\":\"OUTLOOK_GET_USER_CALENDAR_GROUP_EVENT\",\"name\":\"Get user calendar group event\",\"description\":\"Tool to retrieve a specific event from a user's calendar within a calendar group. Use when you need details of an event in a specific calendar group.\"},{\"slug\":\"OUTLOOK_GET_USER_CALENDAR_GROUP_EVENT_ATTACHMENT\",\"name\":\"Get user calendar group event attachment\",\"description\":\"Tool to retrieve a specific attachment from an event within a calendar group for a user. Use when you need to access attachment content from a calendar event in a user's calendar group.\"},{\"slug\":\"OUTLOOK_GET_USER_CHILD_FOLDER_MESSAGE\",\"name\":\"Get message from child folder\",\"description\":\"Tool to retrieve a specific message from a child folder within a user's mail folder hierarchy. Use when you need to access messages from nested folders where both parent and child folder IDs are known.\"},{\"slug\":\"OUTLOOK_GET_USER_EVENT_EXTENSION\",\"name\":\"Get event extension\",\"description\":\"Tool to retrieve a specific open type extension from a user's calendar event by its extension ID or name. Use when you need to access custom data stored in calendar event extensions.\"},{\"slug\":\"OUTLOOK_GET_USER_MESSAGES_ATTACHMENTS\",\"name\":\"Get user message attachment\",\"description\":\"Tool to retrieve a specific attachment from a message in a mail folder hierarchy. Use when you need to get attachment details including content from a specific folder path.\"},{\"slug\":\"OUTLOOK_LIST_CALENDAR_CALENDAR_VIEW\",\"name\":\"List Calendar Calendar View (Deprecated)\",\"description\":\"DEPRECATED: Use OUTLOOK_LIST_ME_CALENDARS_CALENDAR_VIEW instead. Tool to list calendar events within a specified date/time range. Use when you need to retrieve events from the user's primary calendar that fall within a time window.\"}]},{\"slug\":\"perplexityai\",\"name\":\"Perplexity AI\",\"description\":\"Perplexity AI provides conversational AI models for generating human-like text responses\",\"logo\":\"https://logos.composio.dev/api/perplexityai\",\"rank\":9,\"tools\":[{\"slug\":\"PERPLEXITYAI_CREATE_ASYNC_CHAT_COMPLETION\",\"name\":\"Create Async Chat Completion\",\"description\":\"Create Async Chat Completion (POST /v1/async/sonar). Submits an asynchronous chat completion request for long-running tasks. Returns immediately with a request ID that can be polled using the Get Async Chat Completion action. Only the 'sonar-deep-research' model is supported for async processing. Async jobs have a 7-day TTL. Deep research generates very long responses (10K-100K+ words) with exhaustive multi-source analysis. Use the idempotency_key to prevent duplicate submissions. Poll with Get Async Chat Completion using the returned request ID to retrieve results when status is COMPLETED.\"},{\"slug\":\"PERPLEXITYAI_CREATE_CHAT_COMPLETION\",\"name\":\"Create Chat Completion\",\"description\":\"Perplexity Sonar Chat Completions (POST /v1/sonar). Generates web-grounded conversational AI responses with citations. Supports multiple Sonar models optimized for different use cases: - sonar: Fast, cost-effective for simple queries - sonar-pro: Enhanced quality for complex questions - sonar-reasoning-pro: Chain-of-thought reasoning with \u003cthink\u003e blocks - sonar-deep-research: Exhaustive multi-source research (generates very long responses, 10K+ words; prefer the async endpoint for this model) Features: web search grounding, citations, images, structured JSON output, search filtering by domain/date/language/recency, and streaming. Important constraints: - search_recency_filter and date filters (search_after_date_filter, search_before_date_filter, etc.) are mutually exclusive. Use one or the other, not both. - Messages with the 'tool' role must alternate with 'assistant' messages. A valid pattern is: system -\u003e user -\u003e assistant -\u003e tool -\u003e user. - The 'stop' parameter is not currently supported by the API.\"},{\"slug\":\"PERPLEXITYAI_CREATE_CONTEXTUALIZED_EMBEDDINGS\",\"name\":\"Create Contextualized Embeddings\",\"description\":\"Create Contextualized Embeddings (POST /v1/contextualizedembeddings). Generates document-aware embeddings where chunks from the same document share context. Unlike standard embeddings, these recognize sequential relationships within documents, improving retrieval quality. Models: pplx-embed-context-v1-0.6b (1024 dims) and pplx-embed-context-v1-4b (2560 dims). Both support Matryoshka dimension reduction and INT8/binary quantization.\"},{\"slug\":\"PERPLEXITYAI_CREATE_EMBEDDINGS\",\"name\":\"CreateEmbeddings\",\"description\":\"Generate vector embeddings for independent texts (queries, sentences, documents). This action takes one or more input texts and generates vector embeddings using Perplexity AI's embedding models. Embeddings are useful for semantic search, similarity matching, and machine learning downstream tasks. Supported models: - pplx-embed-v1-0.6b: Smaller, faster model (1024 dimensions) - pplx-embed-v1-4b: Larger, more accurate model (2560 dimensions) The output embeddings are base64-encoded for efficient transmission. Use the dimensions parameter to reduce embedding size for faster processing when full precision is not required (Matryoshka representation).\"},{\"slug\":\"PERPLEXITYAI_EXECUTE_AGENT\",\"name\":\"Execute Agent\",\"description\":\"Create Agent Response (POST /v1/agent). Orchestrates multi-step agentic workflows with built-in tools (web search, URL fetching, function calling), reasoning, and multi-model support. Streaming is not supported by this action. At least one of 'model', 'models', or 'preset' must be provided. Available presets: 'fast-search', 'pro-search', 'deep-research'. The 'deep-research' preset generates very long responses (10K-100K+ words) with exhaustive multi-source analysis. Available models include Perplexity Sonar, OpenAI, Anthropic, Google, xAI, and NVIDIA models at direct provider rates. Use the List Models action to see available model identifiers.\"},{\"slug\":\"PERPLEXITYAI_GET_ASYNC_CHAT_COMPLETION\",\"name\":\"Get Async Chat Completion\",\"description\":\"Get Async Chat Completion (GET /v1/async/sonar/{id}). Retrieves the result of an asynchronous chat completion request by its ID. Use this to poll for the result after creating an async job. The response includes the status and, when completed, the full completion.\"},{\"slug\":\"PERPLEXITYAI_LIST_ASYNC_CHAT_COMPLETIONS\",\"name\":\"List Async Chat Completions\",\"description\":\"List Async Chat Completions (GET /v1/async/sonar). Retrieves a list of all asynchronous chat completion requests for the authenticated user. Use this to see the status of all your pending, completed, and failed async jobs.\"},{\"slug\":\"PERPLEXITYAI_LIST_MODELS\",\"name\":\"List Models\",\"description\":\"List Models (GET /v1/models). Lists models available for the Agent API. Returns model identifiers that can be used with the Agent endpoint. The response follows the OpenAI List Models format for compatibility. This is a public endpoint that does not require authentication.\"},{\"slug\":\"PERPLEXITYAI_SEARCH\",\"name\":\"Perplexity Search (Raw Results)\",\"description\":\"Search the Web (POST /search). Returns raw, ranked web search results directly from Perplexity's index without LLM processing. Faster and cheaper than chat completions when you need raw results. Supports filtering by domain, date, language, country, and recency. Max 20 results per request. Important: search_recency_filter and date filters (search_after_date_filter, search_before_date_filter, last_updated_after_filter, last_updated_before_filter) are mutually exclusive. Use one or the other, not both.\"}]},{\"slug\":\"twitter\",\"name\":\"Twitter\",\"description\":\"Twitter, Inc. was an American social media company based in San Francisco, California, which operated and was named for named for its flagship social media network prior to its rebrand as X.\",\"logo\":\"https://logos.composio.dev/api/twitter\",\"rank\":10,\"tools\":[{\"slug\":\"TWITTER_ADD_LIST_MEMBER\",\"name\":\"Add a list member\",\"description\":\"Adds a user to a specified Twitter List; the list must be owned by the authenticated user.\"},{\"slug\":\"TWITTER_ADD_POST_TO_BOOKMARKS\",\"name\":\"Add post to bookmarks\",\"description\":\"Adds a specified, existing, and accessible Tweet to a user's bookmarks, with success indicated by the 'bookmarked' field in the response.\"},{\"slug\":\"TWITTER_APPEND_MEDIA_UPLOAD\",\"name\":\"Append Media Upload\",\"description\":\"Append data chunk to an ongoing media upload session on X/Twitter. Use this action during chunked media uploads to append each segment of media data in sequence.\"},{\"slug\":\"TWITTER_BOOKMARKS_BY_USER\",\"name\":\"Get bookmarks by user\",\"description\":\"Retrieves Tweets bookmarked by the authenticated user, where the provided User ID must match the authenticated user's ID.\"},{\"slug\":\"TWITTER_CREATE_ACTIVITY_SUBSCRIPTION\",\"name\":\"Create activity subscription\",\"description\":\"Tool to create a subscription for an X activity event. Use when you need to monitor specific user activities like profile updates, follows, or spaces events.\"},{\"slug\":\"TWITTER_CREATE_COMPLIANCE_JOB\",\"name\":\"Create compliance job\",\"description\":\"Creates a new compliance job to check the status of Tweet or user IDs; upload IDs as a plain text file (one ID per line) to the `upload_url` received in the response.\"},{\"slug\":\"TWITTER_CREATE_DM_CONVERSATION\",\"name\":\"Create group DM conversation\",\"description\":\"Creates a new group Direct Message (DM) conversation on Twitter. REQUIRED PARAMETERS: - conversation_type: Must be 'Group' - participant_ids: List of Twitter user IDs to include in the conversation - message: JSON object with the initial message. Must contain 'text' field. To include media attachments, use message.attachments array with media_id (NOT media_url): {\\\"text\\\": \\\"...\\\", \\\"attachments\\\": [{\\\"media_id\\\": \\\"1234567890\\\"}]} Note: Media must be uploaded first using the upload_media action to obtain a media_id.\"},{\"slug\":\"TWITTER_CREATE_LIST\",\"name\":\"Create a list\",\"description\":\"Creates a new, empty List on X (formerly Twitter), for which the provided name must be unique for the authenticated user; accounts are added separately.\"},{\"slug\":\"TWITTER_CREATION_OF_A_POST\",\"name\":\"Create a post\",\"description\":\"Creates a Tweet on Twitter; `text` is required unless `card_uri`, `media_media_ids`, `poll_options`, or `quote_tweet_id` is provided. Example - Creating a tweet with media and location: { \\\"text\\\": \\\"Check out our latest product update! 🚀\\\", \\\"media_media_ids\\\": [\\\"1455952740635586573\\\"], \\\"geo_place_id\\\": \\\"df51dec6f4ee2b2c\\\" } Example - Quote tweet with commentary: { \\\"text\\\": \\\"This is a game-changer for the industry! Here's why... 🧵\\\", \\\"quote_tweet_id\\\": \\\"1453828617121234945\\\" } Example - Reply to a tweet: { \\\"text\\\": \\\"Great point! Here's my take on this...\\\", \\\"reply_in_reply_to_tweet_id\\\": \\\"1453828617121234945\\\" }\"},{\"slug\":\"TWITTER_DELETE_DM\",\"name\":\"Delete direct message\",\"description\":\"Permanently deletes a specific Twitter Direct Message (DM) event using its `event_id` if the authenticated user sent it; this action is irreversible and does not delete entire conversations.\"},{\"slug\":\"TWITTER_DELETE_LIST\",\"name\":\"Delete list\",\"description\":\"Permanently deletes a specified Twitter List using its ID, which must be owned by the authenticated user; this action is irreversible and the list must already exist.\"},{\"slug\":\"TWITTER_FOLLOWERS_BY_USER_ID\",\"name\":\"Get followers by user id\",\"description\":\"Retrieves a list of users who follow a specified public Twitter user ID.\"},{\"slug\":\"TWITTER_FOLLOWING_BY_USER_ID\",\"name\":\"Get following by user ID\",\"description\":\"Retrieves users followed by a specific Twitter user, allowing pagination and customization of returned user and tweet data fields via expansions.\"},{\"slug\":\"TWITTER_FOLLOW_LIST\",\"name\":\"Follow a list\",\"description\":\"Allows the authenticated user (`id`) to follow a specific Twitter List (`list_id`) they are permitted to access, subscribing them to the list's timeline; this does not automatically follow individual list members.\"},{\"slug\":\"TWITTER_FOLLOW_USER\",\"name\":\"Follow a user\",\"description\":\"Allows an authenticated user (path `id`) to follow another user (`target_user_id`), which results in a pending request if the target user's tweets are protected.\"},{\"slug\":\"TWITTER_FULL_ARCHIVE_SEARCH\",\"name\":\"Search full archive of tweets\",\"description\":\"Searches the full archive of public Tweets from March 2006 onwards; use 'start_time' and 'end_time' together for a defined time window.\"},{\"slug\":\"TWITTER_GET_BLOCKED_USERS\",\"name\":\"Get users blocked by user ID\",\"description\":\"Retrieves the authenticated user's own block list. IMPORTANT: You can only retrieve YOUR OWN block list - the `id` parameter must be the authenticated user's ID. Use the 'Get authenticated user' action first to obtain your user ID.\"},{\"slug\":\"TWITTER_GET_COMPLIANCE_JOB\",\"name\":\"Retrieve compliance job by id\",\"description\":\"Retrieves status, download/upload URLs, and other details for an existing Twitter compliance job specified by its unique ID.\"},{\"slug\":\"TWITTER_GET_COMPLIANCE_JOBS\",\"name\":\"Retrieve compliance jobs\",\"description\":\"Returns a list of recent compliance jobs, filtered by type (tweets or users) and optionally by status.\"},{\"slug\":\"TWITTER_GET_DM_CONVERSATION_EVENTS\",\"name\":\"Get DM events for a DM conversation\",\"description\":\"Fetches Direct Message (DM) events for a one-on-one conversation with a specified participant ID, ordered chronologically newest to oldest; does not support group DMs.\"},{\"slug\":\"TWITTER_GET_DM_EVENT\",\"name\":\"Get DM events by ID\",\"description\":\"Fetches a specific Direct Message (DM) event by its unique ID, allowing optional expansion of related data like users or tweets; ensure the `event_id` refers to an existing DM event accessible to the authenticated user.\"},{\"slug\":\"TWITTER_GET_LIST\",\"name\":\"Lookup list by ID\",\"description\":\"Returns metadata for a specific Twitter List, identified by its ID; does not return list members but can expand the owner's User object via the `expansions` parameter.\"},{\"slug\":\"TWITTER_GET_LIST_FOLLOWERS\",\"name\":\"Get list followers\",\"description\":\"Fetches a list of users who follow a specific Twitter List, identified by its ID; ensure the authenticated user has access if the list is private.\"},{\"slug\":\"TWITTER_GET_LIST_MEMBERS\",\"name\":\"Fetch list members by id\",\"description\":\"Fetches members of a specific Twitter List, identified by its unique ID.\"},{\"slug\":\"TWITTER_GET_MEDIA_UPLOAD_STATUS\",\"name\":\"Get Media Upload Status\",\"description\":\"Get the processing status of uploaded media (videos/GIFs) on X/Twitter. Only call this when the FINALIZE command returned a processing_info field. Poll every 3–5 seconds with a 60–120 second maximum timeout to avoid HTTP 429 errors. Response state cycles through 'pending', 'in_progress', 'succeeded', and 'failed'. Only attach media_id to a tweet when state is 'succeeded'. State 'failed' is terminal — requires a completely new upload via TWITTER_UPLOAD_MEDIA or TWITTER_UPLOAD_LARGE_MEDIA. Video/GIF processing takes 30–120 seconds; posting before 'succeeded' results in non-playable media.\"},{\"slug\":\"TWITTER_GET_MUTED_USERS\",\"name\":\"Get muted users\",\"description\":\"Returns user objects muted by the X user identified by the `id` path parameter.\"},{\"slug\":\"TWITTER_GET_OPENAPI_SPEC\",\"name\":\"Fetch OpenAPI specification\",\"description\":\"Fetches the OpenAPI specification (JSON) for Twitter's API v2, used to programmatically understand the API's structure for developing client libraries or tools.\"},{\"slug\":\"TWITTER_GET_POST_ANALYTICS\",\"name\":\"Get Post analytics\",\"description\":\"Tool to retrieve analytics data for specified Posts within a defined time range. Use when you need engagement metrics, impressions, or other analytics for one or more Posts. Requires OAuth 2.0 with tweet.read and users.read scopes. Requires an X Enterprise API plan. Accounts on Free, Basic, Pro, or Pay-Per-Use tiers will receive a 403 Forbidden on every call, regardless of scopes or request correctness - this is not something a connected account's OAuth grant can unlock.\"},{\"slug\":\"TWITTER_GET_POST_RETWEETERS_ACTION\",\"name\":\"Get post retweeters\",\"description\":\"Retrieves users who publicly retweeted a specified public Post ID, excluding Quote Tweets and retweets from private accounts.\"},{\"slug\":\"TWITTER_GET_POST_RETWEETS\",\"name\":\"Retrieve retweets of a post\",\"description\":\"Retrieves Tweets that Retweeted a specified public or authenticated-user-accessible Tweet ID, optionally customizing the response with fields and expansions.\"},{\"slug\":\"TWITTER_GET_POST_USAGE\",\"name\":\"Fetch tweet usage data\",\"description\":\"Fetches Tweet usage statistics for a Project (e.g., consumption, caps, daily breakdowns for Project \u0026 Client Apps) to monitor API limits; data can be retrieved for 1 to 90 days.\"},{\"slug\":\"TWITTER_GET_RECENT_DM_EVENTS\",\"name\":\"Get recent direct message events\",\"description\":\"Returns recent Direct Message events for the authenticated user, such as new messages or changes in conversation participants.\"},{\"slug\":\"TWITTER_GET_SPACE_BY_ID\",\"name\":\"Look up space by ID\",\"description\":\"Retrieves details for a Twitter Space by its ID, allowing for customization and expansion of related data, provided the Space ID is valid and accessible.\"},{\"slug\":\"TWITTER_GET_SPACE_POSTS\",\"name\":\"Retrieve posts from a space\",\"description\":\"Retrieves Tweets that were shared/posted during a Twitter Space broadcast. IMPORTANT: This endpoint returns Tweets that participants explicitly shared during the Space session, NOT audio transcripts, comments, or reactions. Most Spaces have zero associated Tweets, so empty results (result_count=0) are normal and expected. Twitter Spaces are primarily audio conversations - this endpoint only returns text Tweets that were shared alongside the audio.\"},{\"slug\":\"TWITTER_GET_SPACES_BY_CREATORS\",\"name\":\"Get spaces by creator IDs\",\"description\":\"Retrieves Twitter Spaces created by a list of specified User IDs, with options to customize returned data fields.\"},{\"slug\":\"TWITTER_GET_SPACES_BY_IDS\",\"name\":\"Get space information by IDs\",\"description\":\"Fetches detailed information for one or more Twitter Spaces (live, scheduled, or ended) by their unique IDs; at least one Space ID must be provided.\"},{\"slug\":\"TWITTER_GET_SPACE_TICKET_BUYERS\",\"name\":\"Fetch space ticket buyers list\",\"description\":\"Retrieves a list of users who purchased tickets for a specific, valid, and ticketed Twitter Space.\"},{\"slug\":\"TWITTER_GET_USER_BY_ID\",\"name\":\"Look up user by ID\",\"description\":\"Retrieves detailed public information for a Twitter user by their ID, optionally expanding related data (e.g., pinned tweets) and specifying particular user or tweet fields to return.\"},{\"slug\":\"TWITTER_GET_USER_FOLLOWED_LISTS\",\"name\":\"Get user's followed lists\",\"description\":\"Returns metadata (not Tweets) for lists a specific Twitter user follows, optionally including expanded owner details.\"},{\"slug\":\"TWITTER_GET_USER_LIST_MEMBERSHIPS\",\"name\":\"Get a user's list memberships\",\"description\":\"Retrieves all Twitter Lists a specified user is a member of, including public Lists and private Lists the authenticated user is authorized to view.\"},{\"slug\":\"TWITTER_GET_USER_OWNED_LISTS\",\"name\":\"Get a user's owned lists\",\"description\":\"Call this action to retrieve Lists created (owned) by a specific Twitter user, not Lists they follow or are subscribed to.\"},{\"slug\":\"TWITTER_GET_USER_PINNED_LISTS\",\"name\":\"Get a user's pinned lists\",\"description\":\"Retrieves the Lists a specific, existing Twitter user has pinned to their profile to highlight them.\"},{\"slug\":\"TWITTER_GET_USERS_BY_IDS\",\"name\":\"Look up users by IDs\",\"description\":\"Retrieves detailed information for specified X (formerly Twitter) user IDs, optionally customizing returned fields and expanding related entities.\"},{\"slug\":\"TWITTER_HIDE_REPLIES\",\"name\":\"Set reply visibility\",\"description\":\"Hides or unhides an existing reply Tweet. This action allows the authenticated user to hide or unhide a reply to a conversation they own (started). You can only hide replies to posts you authored. Note: Requires the tweet.moderate.write OAuth scope.\"},{\"slug\":\"TWITTER_INITIALIZE_MEDIA_UPLOAD\",\"name\":\"Initialize Media Upload\",\"description\":\"Initialize a media upload session for X/Twitter. Use this to start a chunked media upload process, which returns a media_id for subsequent APPEND and FINALIZE commands. Required for uploading large files or when using the chunked upload workflow.\"},{\"slug\":\"TWITTER_LIST_POST_LIKERS\",\"name\":\"List post likers\",\"description\":\"Retrieves users who have liked the Post (Tweet) identified by the provided ID.\"},{\"slug\":\"TWITTER_LIST_POSTS_TIMELINE_BY_LIST_ID\",\"name\":\"List posts timeline by list ID\",\"description\":\"Fetches the most recent Tweets posted by members of a specified Twitter List.\"},{\"slug\":\"TWITTER_MUTE_USER\",\"name\":\"Mute user by ID\",\"description\":\"Mutes a target user on behalf of an authenticated user, preventing the target's Tweets and Retweets from appearing in the authenticated user's home timeline without notifying the target.\"},{\"slug\":\"TWITTER_PIN_LIST\",\"name\":\"Pin a list\",\"description\":\"Pins a specified List to the authenticated user's profile, provided the List exists, the user has access rights, and the pin limit (typically 5 Lists) is not exceeded.\"},{\"slug\":\"TWITTER_POST_DELETE_BY_POST_ID\",\"name\":\"Delete tweet\",\"description\":\"Irreversibly deletes a specific Tweet by its ID; the Tweet may persist in third-party caches after deletion.\"},{\"slug\":\"TWITTER_POST_LOOKUP_BY_POST_ID\",\"name\":\"Look up post by id\",\"description\":\"Fetches comprehensive details for a single Tweet by its unique ID, provided the Tweet exists and is accessible.\"},{\"slug\":\"TWITTER_POST_LOOKUP_BY_POST_IDS\",\"name\":\"Get tweets by IDs\",\"description\":\"Retrieves detailed information for one or more Posts (Tweets) identified by their unique IDs, allowing selection of specific fields and expansions.\"},{\"slug\":\"TWITTER_RECENT_SEARCH\",\"name\":\"Search recent tweets\",\"description\":\"Searches Tweets from the last 7 days matching a query (using X's search syntax), ideal for real-time analysis, trend monitoring, or retrieving posts from specific users (e.g., `from:username`) DEFAULT FIELDS: Tweet objects always return 'id' and 'text' by default. User objects always return 'id', 'name', and 'username' by default when expanded. Do not request these default fields in field parameters. IMPORTANT LIMITATION - Impression Counts: The public_metrics.impression_count field returns 0 for search results from other users. Impression data is a non-public metric only available for tweets owned by the authenticated user. To filter by engagement, use retweet_count, like_count, or quote_count instead. Example - Get original tweets from Elon Musk since Sept 20, 2025: { \\\"query\\\": \\\"from:elonmusk -is:retweet -is:reply\\\", \\\"start_time\\\": \\\"2025-09-20T00:00:00Z\\\", \\\"max_results\\\": 50, \\\"tweet_fields\\\": [\\\"created_at\\\",\\\"public_metrics\\\",\\\"text\\\"], \\\"expansions\\\": [\\\"author_id\\\",\\\"attachments.media_keys\\\",\\\"referenced_tweets.id\\\"] }\"},{\"slug\":\"TWITTER_REMOVE_LIST_MEMBER\",\"name\":\"Remove a list member\",\"description\":\"Removes a user from a Twitter List; the response `is_member` field will be `false` if removal was successful or the user was not a member, and the updated list of members is not returned.\"},{\"slug\":\"TWITTER_REMOVE_POST_FROM_BOOKMARKS\",\"name\":\"Remove a bookmarked post\",\"description\":\"Removes a Tweet, specified by `tweet_id`, from the authenticated user's bookmarks; the Tweet must have been previously bookmarked by the user for the action to have an effect.\"},{\"slug\":\"TWITTER_RETRIEVE_DM_CONVERSATION_EVENTS\",\"name\":\"Retrieve DM conversation events\",\"description\":\"Retrieves Direct Message (DM) events for a specific conversation ID on Twitter, useful for analyzing messages and participant activities.\"},{\"slug\":\"TWITTER_RETRIEVE_POSTS_THAT_QUOTE_A_POST\",\"name\":\"Retrieve posts that quote a post\",\"description\":\"Retrieves Tweets that quote a specified Tweet, requiring a valid Tweet ID.\"},{\"slug\":\"TWITTER_RETURNS_POST_OBJECTS_LIKED_BY_THE_PROVIDED_USER_ID\",\"name\":\"Retrieve liked tweets by user ID\",\"description\":\"Retrieves Tweets liked by a specified Twitter user, provided their liked tweets are public or accessible.\"},{\"slug\":\"TWITTER_RETWEET_POST\",\"name\":\"Retweet post\",\"description\":\"Retweets a Tweet for the authenticated user. The user ID is automatically fetched from the authenticated session - you only need to provide the tweet_id to retweet.\"},{\"slug\":\"TWITTER_SEARCH_FULL_ARCHIVE_COUNTS\",\"name\":\"Get full archive search counts\",\"description\":\"Returns a count of Tweets from the full archive that match a specified query, aggregated by day, hour, or minute; `start_time` must be before `end_time` if both are provided, and `since_id`/`until_id` cannot be used with `start_time`/`end_time`.\"},{\"slug\":\"TWITTER_SEARCH_RECENT_COUNTS\",\"name\":\"Fetch recent tweet counts\",\"description\":\"Retrieves the count of Tweets matching a specified search query within the last 7 days, aggregated by 'minute', 'hour', or 'day'.\"},{\"slug\":\"TWITTER_SEARCH_SPACES\",\"name\":\"Search for spaces\",\"description\":\"Searches for Twitter Spaces by a textual query, optionally filtering by state (live, scheduled, all) to discover audio conversations.\"},{\"slug\":\"TWITTER_SEND_A_NEW_MESSAGE_TO_A_USER\",\"name\":\"Send a new message to a user\",\"description\":\"Sends a new Direct Message with text and/or media (media_id for attachments must be pre-uploaded) to a specified Twitter user; this creates a new DM and does not modify existing messages.\"},{\"slug\":\"TWITTER_SEND_DM_TO_CONVERSATION\",\"name\":\"Send a new message to a DM conversation\",\"description\":\"Sends a message, with optional text and/or media attachments (using pre-uploaded `media_id`s), to a specified Twitter Direct Message conversation.\"},{\"slug\":\"TWITTER_STREAM_POST_LABELS\",\"name\":\"Get tweets label stream\",\"description\":\"Stream real-time Tweet label events (apply/remove). Requires Enterprise access and App-Only OAuth 2.0 auth. Returns PublicTweetNotice or PublicTweetUnviewable events. 403 errors indicate missing Enterprise access or wrong auth type.\"},{\"slug\":\"TWITTER_UNFOLLOW_LIST\",\"name\":\"Unfollow a list\",\"description\":\"Enables a user (via `id`) to unfollow a specific Twitter List (via `list_id`), which removes its tweets from their timeline and stops related notifications; the action reports `following: false` on success, even if the user was not initially following the list.\"},{\"slug\":\"TWITTER_UNFOLLOW_USER\",\"name\":\"Unfollow user\",\"description\":\"Allows the authenticated user to unfollow an existing Twitter user (`target_user_id`), which removes the follow relationship. The source user ID is automatically determined from the authenticated session.\"},{\"slug\":\"TWITTER_UNLIKE_POST\",\"name\":\"Unlike post\",\"description\":\"Allows an authenticated user (`id`) to remove their like from a specific post (`tweet_id`); the action is idempotent and completes successfully even if the post was not liked.\"},{\"slug\":\"TWITTER_UNMUTE_USER\",\"name\":\"Unmute a user by user ID\",\"description\":\"Unmutes a target user for the authenticated user, allowing them to see Tweets and notifications from the target user again. The source_user_id is automatically populated from the authenticated user's credentials.\"},{\"slug\":\"TWITTER_UNPIN_LIST\",\"name\":\"Unpin a list\",\"description\":\"Unpins a List (specified by list_id) from the authenticated user's profile. The user ID is automatically retrieved if not provided.\"},{\"slug\":\"TWITTER_UNRETWEET_POST\",\"name\":\"Unretweet post\",\"description\":\"Removes a user's retweet of a specified Post, if the user had previously retweeted it.\"},{\"slug\":\"TWITTER_UPDATE_LIST\",\"name\":\"Update list attributes\",\"description\":\"Updates an existing Twitter List's name, description, or privacy status, requiring the List ID and at least one mutable property.\"},{\"slug\":\"TWITTER_UPLOAD_LARGE_MEDIA\",\"name\":\"Upload Large Media\",\"description\":\"Use this to upload a single media file to X/Twitter. Automatically uses chunked upload for GIFs, videos, and images larger than 5 MB. Max file size: 512 MB; max video duration: 140 seconds. After upload, poll TWITTER_GET_MEDIA_UPLOAD_STATUS until processing_info.state=='succeeded' before attaching the media_id to a tweet — GIFs and videos take 30–120 seconds to process. A terminal 'failed' state means the media_id is unusable and the file must be re-uploaded. For small images (\u003c5MB, no GIF/video), TWITTER_UPLOAD_MEDIA is simpler. For GIFs, videos, or files over 5MB, this action is currently the only working option - TWITTER_UPLOAD_MEDIA explicitly rejects those file types, so it is not a full replacement for this action's primary use case, despite what an earlier deprecation notice here claimed.\"},{\"slug\":\"TWITTER_UPLOAD_MEDIA\",\"name\":\"Upload Media\",\"description\":\"Upload media (images only) to X/Twitter using the v2 API. Supports tweet_image, dm_image, and subtitles media categories only. One file per call; the returned media_id expires (see expires_after_secs in response), so upload immediately before creating the tweet. For GIFs, videos, or any file larger than ~5 MB, use TWITTER_UPLOAD_LARGE_MEDIA instead.\"},{\"slug\":\"TWITTER_USER_HOME_TIMELINE_BY_USER_ID\",\"name\":\"Get user reverse chronological timeline\",\"description\":\"Retrieves the home timeline (reverse chronological feed) for the authenticated Twitter user. Returns tweets from accounts the user follows as well as the user's own tweets, in reverse chronological order. Useful for displaying the personalized feed without algorithmic sorting. CRITICAL: The 'id' parameter MUST be the authenticated user's own numeric Twitter user ID - use TWITTER_USER_LOOKUP_ME to get your ID first. This endpoint cannot fetch another user's home timeline, and passing any ID that doesn't match the authenticating user (including phone numbers or other user IDs) will result in an error. DEFAULT FIELDS: Tweet objects always return 'id' and 'text' by default. User objects always return 'id', 'name', and 'username' by default when expanded. Do not request these default fields in field parameters.\"},{\"slug\":\"TWITTER_USER_LIKE_POST\",\"name\":\"Like a tweet\",\"description\":\"Allows the authenticated user to like a specific, accessible Tweet, provided neither user has blocked the other and the authenticated user is not restricted from liking. The authenticated user's ID is automatically determined from the OAuth token - you only need to provide the tweet_id.\"},{\"slug\":\"TWITTER_USER_LOOKUP_BY_USERNAME\",\"name\":\"Look up user by username\",\"description\":\"Fetches public profile information for a valid and existing Twitter user by their username, optionally expanding related data like pinned Tweets; results may be limited for protected profiles not followed by the authenticated user.\"},{\"slug\":\"TWITTER_USER_LOOKUP_BY_USERNAMES\",\"name\":\"Look up users by username\",\"description\":\"Retrieves detailed information for 1 to 100 Twitter users by their usernames (each 1-15 alphanumeric characters/underscores), allowing customizable user/tweet fields and expansion of related data like pinned tweets.\"},{\"slug\":\"TWITTER_USER_LOOKUP_ME\",\"name\":\"Get authenticated user\",\"description\":\"Returns profile information for the currently authenticated X user, customizable via request fields.\"}]},{\"slug\":\"googledrive\",\"name\":\"Google Drive\",\"description\":\"Google Drive is a cloud storage solution for uploading, sharing, and collaborating on files across devices, with robust search and offline access\",\"logo\":\"https://logos.composio.dev/api/googledrive\",\"rank\":11,\"tools\":[{\"slug\":\"GOOGLEDRIVE_ADD_FILE_SHARING_PREFERENCE\",\"name\":\"Add file sharing preference (Deprecated)\",\"description\":\"DEPRECATED: Use GOOGLEDRIVE_CREATE_PERMISSION instead; use GOOGLEDRIVE_UPDATE_PERMISSION to modify existing permissions (avoids duplicate entries). Modifies sharing permissions for an existing Google Drive file, granting a specified role to a user, group, domain, or 'anyone'. Bulk calls may trigger 403 rateLimitExceeded (~100 req/100s/user); use jittered exponential backoff.\"},{\"slug\":\"GOOGLEDRIVE_ADD_PARENT\",\"name\":\"Insert File Parent (v2)\",\"description\":\"Tool to add a parent folder for a file using Google Drive API v2. Use when you need to add a file to an additional folder.\"},{\"slug\":\"GOOGLEDRIVE_ADD_PROPERTY\",\"name\":\"Insert Property (v2 API)\",\"description\":\"Tool to add a property to a file, or update it if it already exists (v2 API). Use when you need to attach custom key-value metadata to a Google Drive file.\"},{\"slug\":\"GOOGLEDRIVE_COPY_FILE\",\"name\":\"Copy file (Deprecated)\",\"description\":\"DEPRECATED: Use GOOGLEDRIVE_COPY_FILE_ADVANCED instead. Duplicates an existing file (not folders) in Google Drive by `file_id`; copy lands in same folder as original — use GOOGLEDRIVE_MOVE_FILE afterward for precise placement. Copy receives a new `file_id`; update stored references accordingly. For shared drives, requires organizer/manager rights.\"},{\"slug\":\"GOOGLEDRIVE_COPY_FILE_ADVANCED\",\"name\":\"Copy file with advanced options\",\"description\":\"Creates a copy of a file and applies any requested updates with patch semantics. Use when you need to duplicate a file with advanced options like label inclusion, visibility settings, or custom metadata.\"},{\"slug\":\"GOOGLEDRIVE_CREATE_COMMENT\",\"name\":\"Create Comment\",\"description\":\"Tool to create a comment on a file in Google Drive. Returns a nested `data` object; extract `data.id` for the resulting comment identifier. Omit `anchor` and `quoted_file_content_*` for general file-level comments.\"},{\"slug\":\"GOOGLEDRIVE_CREATE_DRIVE\",\"name\":\"Create Shared Drive\",\"description\":\"Tool to create a new shared drive. Use when you need to programmatically create a new shared drive for collaboration or storage.\"},{\"slug\":\"GOOGLEDRIVE_CREATE_FILE\",\"name\":\"Create File or Folder\",\"description\":\"Creates a new file or folder in Google Drive. Supports both metadata-only creation (for folders and empty documents) and file upload with content. When file_to_upload is provided, uploads the actual file bytes; otherwise creates an empty file. Native Google file types (Docs, Sheets, Forms, etc.) and folders are created as empty shells when no content is provided; content must be added manually afterward. Newly created files are private by default — set sharing permissions afterward for collaboration. For shared-drive folders, use this tool with the target folder ID in `parents` rather than GOOGLEDRIVE_CREATE_FOLDER.\"},{\"slug\":\"GOOGLEDRIVE_CREATE_FILE_FROM_TEXT\",\"name\":\"Create a File from Text\",\"description\":\"Creates a new file in Google Drive from provided text content (up to 10MB), supporting various formats including automatic conversion to Google Workspace types. Returns flat metadata fields (`id`, `mimeType`, `name`) at the top level — not nested under a `file` object. Created files are private by default; use a sharing tool afterward for collaborative access. Rapid successive calls may trigger `403 rateLimitExceeded` or `429 userRateLimitExceeded`; apply exponential backoff between retries. Does not support shared-drive targets in all cases.\"},{\"slug\":\"GOOGLEDRIVE_CREATE_FOLDER\",\"name\":\"Create a folder\",\"description\":\"Creates a new folder in Google Drive, optionally within an EXISTING parent folder specified by its ID or name. The parent folder MUST already exist - use GOOGLEDRIVE_FIND_FOLDER first to verify the parent exists or find its ID. Google Drive permits duplicate folder names, so always store and reuse the folder ID returned by this action rather than relying on names for future lookups.\"},{\"slug\":\"GOOGLEDRIVE_CREATE_PERMISSION\",\"name\":\"Create Permission\",\"description\":\"Tool to create a permission for a file or shared drive. Use when you need to share a file or folder with users, groups, domains, or make it publicly accessible. **Warning:** Concurrent permissions operations on the same file are not supported; only the last update is applied.\"},{\"slug\":\"GOOGLEDRIVE_CREATE_PERMISSIONS_BATCH\",\"name\":\"Create Permissions Batch\",\"description\":\"Creates multiple permissions for files or shared drives in a single batch request. Use this action when you need to share multiple files with users, or share a single file with multiple users or groups simultaneously. Each permission in the batch can target a different file and specify different access levels. Batch operations are more efficient than creating permissions individually, with a maximum of 100 permissions per batch.\"},{\"slug\":\"GOOGLEDRIVE_CREATE_REPLY\",\"name\":\"Create Reply\",\"description\":\"Tool to create a reply to a comment in Google Drive. Use when you need to respond to an existing comment on a file.\"},{\"slug\":\"GOOGLEDRIVE_CREATE_SHORTCUT_TO_FILE\",\"name\":\"Create Shortcut to File/Folder\",\"description\":\"Tool to create a shortcut to a file or folder in Google Drive. Use when you need to link to an existing Drive item from another location without duplicating it. The shortcut receives its own distinct file ID (capture from response). No parent folder parameter exists; use GOOGLEDRIVE_MOVE_FILE after creation to place the shortcut in the desired location.\"},{\"slug\":\"GOOGLEDRIVE_CREATE_TEAM_DRIVE\",\"name\":\"Create Team Drive (Deprecated)\",\"description\":\"Tool to create a Team Drive. Deprecated: Use drives.create instead. Use when you need to create a Team Drive for collaboration.\"},{\"slug\":\"GOOGLEDRIVE_DELETE_CHILD\",\"name\":\"Delete Child (v2)\",\"description\":\"Tool to remove a child from a folder using Google Drive API v2. Use when you need to remove a file from a specific folder.\"},{\"slug\":\"GOOGLEDRIVE_DELETE_COMMENT\",\"name\":\"Delete Comment\",\"description\":\"Permanently deletes a comment thread (and all its replies) from a Google Drive file — this action is irreversible. To remove only a single reply within a thread, use GOOGLEDRIVE_DELETE_REPLY instead. Verify the exact comment content and comment_id before calling.\"},{\"slug\":\"GOOGLEDRIVE_DELETE_DRIVE\",\"name\":\"Delete Shared Drive\",\"description\":\"Tool to permanently delete a shared drive. Use when you need to remove a shared drive and its contents (if specified).\"},{\"slug\":\"GOOGLEDRIVE_DELETE_FILE\",\"name\":\"Delete file\",\"description\":\"DEPRECATED: Use GOOGLEDRIVE_GOOGLE_DRIVE_DELETE_FOLDER_OR_FILE_ACTION instead. Tool to permanently delete a file owned by the user without moving it to trash. Use when permanent deletion is required. If the file belongs to a shared drive, the user must be an organizer on the parent folder.\"},{\"slug\":\"GOOGLEDRIVE_DELETE_PARENT\",\"name\":\"Delete Parent (v2)\",\"description\":\"Tool to remove a parent from a file using Google Drive API v2. Use when you need to remove a file from a specific folder.\"},{\"slug\":\"GOOGLEDRIVE_DELETE_PERMISSION\",\"name\":\"Delete Permission\",\"description\":\"Deletes a permission from a file by permission ID. Deletion is irreversible — confirm the target user, group, or permission type before executing. IMPORTANT: You must first call GOOGLEDRIVE_LIST_PERMISSIONS to get valid permission IDs. To fully revoke public access, the type='anyone' (link-sharing) permission must be explicitly deleted; revoking other permissions leaves the file publicly accessible via link. Use when you need to revoke access for a specific user or group from a file.\"},{\"slug\":\"GOOGLEDRIVE_DELETE_PROPERTY\",\"name\":\"Delete Property (v2 API)\",\"description\":\"Tool to delete a property from a file using Google Drive API v2. Use when you need to remove custom key-value metadata from a file.\"},{\"slug\":\"GOOGLEDRIVE_DELETE_REPLY\",\"name\":\"Delete Reply\",\"description\":\"Tool to delete a specific reply by reply ID. Deletion is irreversible; obtain explicit user confirmation before calling. Removes only the targeted reply, not the full comment thread — use GOOGLEDRIVE_DELETE_COMMENT to remove the entire thread.\"},{\"slug\":\"GOOGLEDRIVE_DELETE_REVISION\",\"name\":\"Delete Revision\",\"description\":\"Tool to permanently delete a file revision. Use when you need to remove a specific version of a binary file (images, videos, etc.). Cannot delete revisions for Google Docs/Sheets or the last remaining revision.\"},{\"slug\":\"GOOGLEDRIVE_DELETE_TEAM_DRIVE\",\"name\":\"Delete Team Drive (Deprecated)\",\"description\":\"Tool to permanently delete a Team Drive. Deprecated: Use drives.delete instead. Use when you need to remove a Team Drive using the legacy endpoint.\"},{\"slug\":\"GOOGLEDRIVE_DOWNLOAD_FILE\",\"name\":\"Download a file from Google Drive\",\"description\":\"Downloads a file from Google Drive by its ID. For Google Workspace documents (Docs, Sheets, Slides), optionally exports to a specified `mime_type`. For other file types, downloads in their native format regardless of mime_type. Examples: Export a Google Doc to plain text: {\\\"file_id\\\": \\\"1N2o5xQWmAbCdEfGhIJKlmnOPq\\\", \\\"mime_type\\\": \\\"text/plain\\\"} Download a Google Sheet as CSV: {\\\"file_id\\\": \\\"1ZyXwVuTsRqPoNmLkJiHgFeDcB\\\", \\\"mime_type\\\": \\\"text/csv\\\"}\"},{\"slug\":\"GOOGLEDRIVE_DOWNLOAD_FILE2\",\"name\":\"Download file content (Deprecated)\",\"description\":\"DEPRECATED: Use GOOGLEDRIVE_DOWNLOAD_FILE_OPERATION instead. Tool to download file content as a long-running operation. Use when you need to download files from Google Drive. Operations are valid for 24 hours from the time of creation.\"},{\"slug\":\"GOOGLEDRIVE_DOWNLOAD_FILE_OPERATION\",\"name\":\"Download file via operation\",\"description\":\"Tool to download file content using long-running operations. Use when you need to download Google Vids files or export Google Workspace documents as part of a long-running operation. Operations are valid for 24 hours from creation. Returns a response containing `downloaded_file_content.s3url` — a short-lived S3 URL; fetch the actual file bytes from that URL promptly after the call.\"},{\"slug\":\"GOOGLEDRIVE_EDIT_FILE\",\"name\":\"Edit File\",\"description\":\"Updates an existing Google Drive file with binary content by overwriting its entire content with new text (max 10MB). IMPORTANT: This action only works with files that have binary content (text files, PDFs, images, etc.). It does NOT support editing Google Workspace native files (Google Docs, Sheets, Slides, etc.). For Google Workspace files, use the Google Docs API, Google Sheets API, or Google Slides API directly. Preserves the original file_id (unlike GOOGLEDRIVE_UPLOAD_FILE which creates a new ID).\"},{\"slug\":\"GOOGLEDRIVE_EMPTY_TRASH\",\"name\":\"Empty Trash\",\"description\":\"Tool to permanently and irreversibly delete ALL trashed files in the user's Google Drive or a specified shared drive. Recovery is impossible after execution — no Drive tool can restore items once trash is emptied. Affects every item in trash across the entire account or shared drive, not just files from the current workflow. Always obtain explicit user confirmation and clarify that recovery is impossible before executing. Provide driveId to target a specific shared drive's trash; omit to empty the user's root trash.\"},{\"slug\":\"GOOGLEDRIVE_EXPORT_GOOGLE_WORKSPACE_FILE\",\"name\":\"Export Google Workspace file\",\"description\":\"Exports a Google Workspace document to the requested MIME type and returns exported file content. Use when you need to export Google Docs, Sheets, Slides, Drawings, or Apps Script files to a specific format. Note: The exported content is limited to 10MB by Google Drive API.\"},{\"slug\":\"GOOGLEDRIVE_FIND_FILE\",\"name\":\"Find file\",\"description\":\"The comprehensive Google Drive search tool that handles all file and folder discovery needs. Use this for any file finding task - from simple name searches to complex queries with date filters, MIME types, permissions, custom properties, folder scoping, and more. Searches across My Drive and shared drives with full metadata support. Examples: - Find PDFs: q=\\\"mimeType = 'application/pdf'\\\" - Find recent files: q=\\\"modifiedTime \u003e '2024-01-01T00:00:00'\\\" - Search by name: q=\\\"name contains 'report'\\\" - Files in folder: folderId=\\\"abc123\\\" or q=\\\"'FOLDER_ID' in parents\\\"\"},{\"slug\":\"GOOGLEDRIVE_FIND_FOLDER\",\"name\":\"Find folder\",\"description\":\"Tool to find a folder in Google Drive by its name and optionally a parent folder. Use when you need to locate a specific folder to perform further actions like creating files in it or listing its contents.\"},{\"slug\":\"GOOGLEDRIVE_GENERATE_IDS\",\"name\":\"Generate File IDs\",\"description\":\"Generates a set of file IDs which can be provided in create or copy requests. Use when you need to pre-allocate IDs for new files or copies.\"},{\"slug\":\"GOOGLEDRIVE_GET_ABOUT\",\"name\":\"Get about\",\"description\":\"Tool to retrieve information about the user, the user's Drive, and system capabilities. Use when you need to check storage quotas, user details, or supported import/export formats. Note: storageQuota reflects My Drive (personal) storage only — it does not cover shared drives; use GOOGLEDRIVE_LIST_SHARED_DRIVES and GOOGLEDRIVE_GET_DRIVE for shared drive quotas. A successful response confirms base Drive read access only; write access and shared drive access must be verified separately.\"},{\"slug\":\"GOOGLEDRIVE_GET_APP\",\"name\":\"Get App\",\"description\":\"Tool to get information about a specific Drive app by ID. Use 'self' as the app ID to get information about the calling app.\"},{\"slug\":\"GOOGLEDRIVE_GET_CHANGE\",\"name\":\"Get Change (v2 - Deprecated)\",\"description\":\"Tool to get a specific change by ID from Google Drive v2 API. Deprecated: Use changes.getStartPageToken and changes.list to retrieve recent changes instead.\"},{\"slug\":\"GOOGLEDRIVE_GET_CHANGES_START_PAGE_TOKEN\",\"name\":\"Get Changes Start Page Token\",\"description\":\"Tool to get the starting pageToken for listing future changes in Google Drive. Returns only a token — pass it to GOOGLEDRIVE_LIST_CHANGES to retrieve actual changes. Persist this token; losing it requires a full rescan. The token is forward-looking: GOOGLEDRIVE_LIST_CHANGES may return no results if no changes have occurred since issuance. For simple recent-file lookups, prefer GOOGLEDRIVE_FIND_FILE; use this tool only for incremental change-feed workflows.\"},{\"slug\":\"GOOGLEDRIVE_GET_CHILD\",\"name\":\"Get Child Reference (v2)\",\"description\":\"Tool to get a specific child reference for a folder using Drive API v2. Use when you need to verify a specific file exists as a child of a folder.\"},{\"slug\":\"GOOGLEDRIVE_GET_COMMENT\",\"name\":\"Get Comment\",\"description\":\"Tool to get a comment by ID. Use when you need to retrieve a specific comment from a Google Drive file and have both the file ID and comment ID.\"},{\"slug\":\"GOOGLEDRIVE_GET_DRIVE\",\"name\":\"Get Shared Drive\",\"description\":\"Tool to get a shared drive by ID. Use when you need to retrieve information about a specific shared drive. To discover drive_ids, use GOOGLEDRIVE_LIST_SHARED_DRIVES first; GOOGLEDRIVE_GET_ABOUT reflects overall user storage, not individual shared drive details. Permission changes may have a brief propagation delay before appearing in results.\"},{\"slug\":\"GOOGLEDRIVE_GET_FILE_METADATA\",\"name\":\"Get File Metadata\",\"description\":\"Tool to get a file's metadata by ID. Use to verify `mimeType`, `parents`, and `trashed` status before destructive operations (delete/move/export), or to confirm `mimeType='application/vnd.google-apps.document'` before calling GOOGLEDOCS_* tools (non-native files require GOOGLEDRIVE_DOWNLOAD_FILE). Only returns metadata visible to the connected account; public access requires GOOGLEDRIVE_ADD_FILE_SHARING_PREFERENCE. High-frequency calls risk `403 rateLimitExceeded`; apply exponential backoff.\"},{\"slug\":\"GOOGLEDRIVE_GET_FILE_PROPERTY\",\"name\":\"Get Property (v2)\",\"description\":\"Tool to get a property by its key using Google Drive API v2. Use when you need to retrieve a specific custom property attached to a file.\"},{\"slug\":\"GOOGLEDRIVE_GET_FILE_V2\",\"name\":\"Get File (v2 API) (Deprecated)\",\"description\":\"DEPRECATED: Use GetFileMetadata instead. Tool to get a file's metadata or content by ID from Google Drive API v2. Use when you need file metadata with alt=json, or file content with alt=media.\"},{\"slug\":\"GOOGLEDRIVE_GET_PARENT\",\"name\":\"Get Parent Reference (v2)\",\"description\":\"Tool to get a specific parent reference for a file using Drive API v2. Use when you need to retrieve information about a specific parent folder of a file.\"},{\"slug\":\"GOOGLEDRIVE_GET_PERMISSION\",\"name\":\"Get Permission\",\"description\":\"Gets a permission by ID. Use this tool to retrieve a specific permission for a file or shared drive. Newly created or updated permissions on shared drives may have a brief propagation delay before appearing.\"},{\"slug\":\"GOOGLEDRIVE_GET_PERMISSION_ID_FOR_EMAIL\",\"name\":\"Get Permission ID for Email\",\"description\":\"Tool to get the permission ID for an email address using the Drive API v2. Use when you need to convert an email address to its corresponding permission ID.\"},{\"slug\":\"GOOGLEDRIVE_GET_REPLY\",\"name\":\"Get Reply\",\"description\":\"Tool to get a specific reply to a comment on a file. Use when you need to retrieve the details of a particular reply.\"},{\"slug\":\"GOOGLEDRIVE_GET_REVISION\",\"name\":\"Get Revision\",\"description\":\"Tool to get a specific revision's metadata (name, modifiedTime, keepForever, etc.) by revision ID. Returns metadata only — not file content. Use a separate download tool to retrieve file content or restore a revision.\"},{\"slug\":\"GOOGLEDRIVE_GET_TEAM_DRIVE\",\"name\":\"Get Team Drive (Deprecated)\",\"description\":\"Tool to get metadata about a Team Drive by ID. Deprecated: Use the drives.get endpoint instead.\"},{\"slug\":\"GOOGLEDRIVE_GOOGLE_DRIVE_DELETE_FOLDER_OR_FILE_ACTION\",\"name\":\"Delete folder or file\",\"description\":\"Tool to delete a file or folder in Google Drive. Use when you need to permanently remove a specific file or folder using its ID. Note: This action is irreversible. Deleting a folder permanently removes all nested files and subfolders.\"},{\"slug\":\"GOOGLEDRIVE_HIDE_DRIVE\",\"name\":\"Hide Shared Drive\",\"description\":\"Tool to hide a shared drive from the default view. Use when you want to remove a shared drive from the user's main Google Drive interface without deleting it.\"},{\"slug\":\"GOOGLEDRIVE_INSERT_CHILD\",\"name\":\"Insert Child Into Folder (v2)\",\"description\":\"Tool to insert a file into a folder using Drive API v2. Use when you need to add an existing file to a folder.\"},{\"slug\":\"GOOGLEDRIVE_LIST_ACCESS_PROPOSALS\",\"name\":\"List Access Proposals\",\"description\":\"Tool to list pending access proposals on a file. Use when you need to retrieve access proposals for a specific file. Note: Only approvers can list access proposals; non-approvers will receive a 403 error.\"},{\"slug\":\"GOOGLEDRIVE_LIST_APPROVALS\",\"name\":\"List Approvals\",\"description\":\"Tool to list approvals on a file for workflow-based access control. Use when you need to retrieve all approvals associated with a specific file in Google Drive.\"},{\"slug\":\"GOOGLEDRIVE_LIST_CHANGES\",\"name\":\"List Changes\",\"description\":\"Tool to list the changes for a user or shared drive. Use when a full incremental change feed is needed (for simple recent-file lookups, prefer GOOGLEDRIVE_FIND_FILE instead). Tracks modifications such as creations, deletions, or permission changes. The pageToken is optional - if not provided, the current start page token will be automatically fetched; an empty result is valid if no recent activity has occurred. Example usage: ```json { \\\"pageToken\\\": \\\"22633\\\", \\\"pageSize\\\": 100, \\\"includeRemoved\\\": true } ``` Returns changes with timestamps, file IDs, and modification details. Paginate by following `nextPageToken` until it is absent — stopping early will silently omit changes. Save `newStartPageToken` to monitor future changes efficiently.\"},{\"slug\":\"GOOGLEDRIVE_LIST_CHILDREN_V2\",\"name\":\"List Folder Children (v2)\",\"description\":\"Tool to list a folder's children using Google Drive API v2. Use when you need to retrieve all files and folders within a specific folder.\"},{\"slug\":\"GOOGLEDRIVE_LIST_COMMENTS\",\"name\":\"List Comments\",\"description\":\"Tool to list all comments for a file in Google Drive. Results are paginated; iterate using nextPageToken until absent to retrieve all comments. Filtering by author, content, or other criteria must be done client-side. Use commentId, createdTime, and author from results to uniquely identify comments before acting on them.\"},{\"slug\":\"GOOGLEDRIVE_LIST_FILE_LABELS\",\"name\":\"List File Labels\",\"description\":\"Tool to list the labels already applied to a file in Google Drive. An empty labels array is a valid response indicating no labels are applied, not an error. This tool shows only applied labels; label_id and field_id values required by other Drive label tools must be obtained from admin configuration.\"},{\"slug\":\"GOOGLEDRIVE_LIST_FILE_PROPERTIES\",\"name\":\"List Properties (v2 API)\",\"description\":\"Tool to list a file's properties in Google Drive API v2. Use when you need to retrieve custom properties (key-value pairs) attached to a file.\"},{\"slug\":\"GOOGLEDRIVE_LIST_FILES\",\"name\":\"List Files and Folders (Deprecated)\",\"description\":\"DEPRECATED: Use GOOGLEDRIVE_FIND_FILE instead. Tool to list a user's files and folders in Google Drive. Use this to search or browse for files and folders based on various criteria.\"},{\"slug\":\"GOOGLEDRIVE_LIST_PERMISSIONS\",\"name\":\"List Permissions\",\"description\":\"Tool to list a file's permissions. Use when you need to retrieve all permissions associated with a specific file or shared drive.\"},{\"slug\":\"GOOGLEDRIVE_LIST_REPLIES\",\"name\":\"List Replies to Comment\",\"description\":\"Tool to list replies to a comment in Google Drive. Use this when you need to retrieve all replies associated with a specific comment on a file.\"},{\"slug\":\"GOOGLEDRIVE_LIST_REVISIONS\",\"name\":\"List File Revisions\",\"description\":\"Tool to list a file's revision metadata (not content) in Google Drive. Drive may prune old revisions, so history may be incomplete for frequently edited files. Filter client-side for specific revisionIds; do not assume the last entry is the active version.\"},{\"slug\":\"GOOGLEDRIVE_LIST_SHARED_DRIVES\",\"name\":\"List Shared Drives\",\"description\":\"Tool to list the user's shared drives. Use when you need to get a list of all shared drives accessible to the authenticated user. Results may differ from the web UI due to admin policies; listing a drive does not guarantee access to its contents. Paginated calls may trigger 403 rateLimitExceeded or 429 tooManyRequests; apply exponential backoff when iterating many pages.\"},{\"slug\":\"GOOGLEDRIVE_LIST_TEAM_DRIVES\",\"name\":\"List Team Drives (Deprecated)\",\"description\":\"Tool to list Team Drives (deprecated, use List Shared Drives instead). Use when you need to retrieve Team Drives using the legacy endpoint.\"},{\"slug\":\"GOOGLEDRIVE_MODIFY_FILE_LABELS\",\"name\":\"Modify File Labels\",\"description\":\"Modifies the set of labels applied to a file. Returns a list of the labels that were added or modified. Use when you need to programmatically change labels on a Google Drive file, such as adding, updating, or removing them.\"},{\"slug\":\"GOOGLEDRIVE_MOVE_FILE\",\"name\":\"Move File\",\"description\":\"Tool to move a file from one folder to another in Google Drive. To truly move (not just copy the parent), always provide both `add_parents` (destination folder ID) and `remove_parents` (source folder ID); omitting `remove_parents` leaves the file in multiple folders. Useful for reorganizing files, including newly created Google Docs/Sheets that default to Drive root.\"},{\"slug\":\"GOOGLEDRIVE_PARSE_FILE\",\"name\":\"Export or download a file\",\"description\":\"DEPRECATED: Exports Google Workspace files (max 10MB) to a specified format using `mime_type`, or downloads other file types; use `GOOGLEDRIVE_DOWNLOAD_FILE` instead.\"},{\"slug\":\"GOOGLEDRIVE_PATCH_PERMISSION\",\"name\":\"Patch Permission\",\"description\":\"Tool to update a permission using patch semantics. Use when you need to modify specific fields of an existing permission without affecting other fields. **Warning:** Concurrent permissions operations on the same file are not supported; only the last update is applied.\"},{\"slug\":\"GOOGLEDRIVE_PATCH_PROPERTY\",\"name\":\"Patch Property (v2 API)\",\"description\":\"Tool to update a property on a file using PATCH semantics (v2 API). Use when you need to partially update custom key-value metadata attached to a Google Drive file.\"},{\"slug\":\"GOOGLEDRIVE_RESUMABLE_UPLOAD\",\"name\":\"Resumable Upload\",\"description\":\"Tool to start and complete a Google Drive resumable upload session. Use for files larger than ~5 MB to avoid timeouts or size-limit failures. HTTP 308 means continue the session from the correct byte offset; HTTP 410 means the session expired and a full restart with a new session is required.\"},{\"slug\":\"GOOGLEDRIVE_STOP_WATCH_CHANNEL\",\"name\":\"Stop Watch Channel\",\"description\":\"Tool to stop watching resources through a specified channel. Use this when you want to stop receiving notifications for a previously established watch. Both `id` and `resourceId` must be saved from the original watch response — they cannot be retrieved after the fact.\"},{\"slug\":\"GOOGLEDRIVE_TRASH_FILE\",\"name\":\"Trash File\",\"description\":\"Tool to move a file or folder to trash (soft delete). Use when you need to delete a file but want to allow recovery via UNTRASH_FILE. This action is distinct from permanent deletion and provides a safer cleanup workflow.\"},{\"slug\":\"GOOGLEDRIVE_UNHIDE_DRIVE\",\"name\":\"Unhide Shared Drive\",\"description\":\"Tool to unhide a shared drive. Use when you need to restore a shared drive to the default view.\"},{\"slug\":\"GOOGLEDRIVE_UNTRASH_FILE\",\"name\":\"Untrash File\",\"description\":\"Tool to restore a file from the trash. Use when you need to recover a deleted file. This action updates the file's metadata to set the 'trashed' property to false. Only works while the file remains in trash — recovery is impossible after trash is emptied via GOOGLEDRIVE_EMPTY_TRASH or auto-purged by policy.\"},{\"slug\":\"GOOGLEDRIVE_UPDATE_COMMENT\",\"name\":\"Update Comment\",\"description\":\"Tool to update an existing comment on a Google Drive file. Use when you need to change the content of a comment. NOTE: The 'resolved' field is read-only in the Google Drive API. To resolve or reopen a comment, use CREATE_REPLY with action='resolve' or action='reopen'.\"},{\"slug\":\"GOOGLEDRIVE_UPDATE_DRIVE\",\"name\":\"Update Shared Drive\",\"description\":\"Tool to update the metadata for a shared drive. Use when you need to modify properties like the name, theme, background image, or restrictions of a shared drive.\"},{\"slug\":\"GOOGLEDRIVE_UPDATE_FILE_METADATA_PATCH\",\"name\":\"Update File Metadata (PATCH v2)\",\"description\":\"Tool to update file metadata using the Drive API v2 PATCH method. Use when you need to modify file properties like title, description, or labels using patch semantics.\"},{\"slug\":\"GOOGLEDRIVE_UPDATE_FILE_PROPERTY\",\"name\":\"Update Property (v2 API)\",\"description\":\"Tool to update a property on a file using Google Drive API v2. Use when you need to modify an existing custom property attached to a file.\"},{\"slug\":\"GOOGLEDRIVE_UPDATE_FILE_PUT\",\"name\":\"Update File (Metadata)\",\"description\":\"Updates file metadata. Uses PATCH semantics (partial update) as per Google Drive API v3 — only explicitly provided fields are updated, so omit fields you do not intend to overwrite. Use this tool to modify attributes of an existing file like its name, description, or parent folders. To move a file, supply add_parents and remove_parents together; omitting remove_parents creates multiple parents, omitting add_parents can orphan the file. Bulk updates may trigger 429 Too Many Requests; apply exponential backoff. Note: supports metadata updates only; file content updates are not yet implemented.\"},{\"slug\":\"GOOGLEDRIVE_UPDATE_FILE_REVISION_METADATA\",\"name\":\"Update File Revision Metadata\",\"description\":\"Updates ONLY the metadata properties of a specific file revision (keepForever, published, publishAuto, publishedOutsideDomain). IMPORTANT: This action does NOT update file content. To update file content, use EDIT_FILE or UPDATE_FILE_PUT instead. This action requires BOTH file_id AND revision_id parameters. Use LIST_REVISIONS to get available revision IDs for a file. Valid parameters: file_id (required), revision_id (required), keep_forever, published, publish_auto, published_outside_domain. Invalid parameters (use other actions): file_contents, mime_type, content, name - these are NOT supported by this action.\"},{\"slug\":\"GOOGLEDRIVE_UPDATE_PERMISSION\",\"name\":\"Update Permission\",\"description\":\"Tool to update a permission with patch semantics. Use when you need to modify an existing permission for a file or shared drive. Inherited or domain-managed permissions may not be editable; verify editability with GOOGLEDRIVE_LIST_PERMISSIONS before updating.\"},{\"slug\":\"GOOGLEDRIVE_UPDATE_REPLY\",\"name\":\"Update Reply\",\"description\":\"Tool to update a reply to a comment on a Google Drive file. Use when you need to modify the content of an existing reply.\"},{\"slug\":\"GOOGLEDRIVE_UPDATE_TEAM_DRIVE\",\"name\":\"Update Team Drive (Deprecated)\",\"description\":\"Tool to update a Team Drive's metadata. Deprecated: Use the drives.update endpoint instead. Use when you need to modify Team Drive properties.\"},{\"slug\":\"GOOGLEDRIVE_UPLOAD_FILE\",\"name\":\"Upload File\",\"description\":\"Uploads a file (max 5MB) to Google Drive, placing it in the specified folder or root if no valid folder ID is provided. Always creates a new file (never updates existing); use GOOGLEDRIVE_EDIT_FILE to update with a stable file_id. Uploaded files are private by default; configure sharing via GOOGLEDRIVE_ADD_FILE_SHARING_PREFERENCE.\"},{\"slug\":\"GOOGLEDRIVE_UPLOAD_FROM_URL\",\"name\":\"Upload File from URL to Drive\",\"description\":\"Tool to fetch a file from a provided URL server-side and upload it into Google Drive. Use when you need to reliably persist externally hosted files into Drive without client-side downloads or temporary storage.\"},{\"slug\":\"GOOGLEDRIVE_UPLOAD_UPDATE_FILE\",\"name\":\"Upload/Update File Content\",\"description\":\"Tool to update file content in Google Drive by uploading new binary content. Use when you need to replace the contents of an existing file with new file data.\"},{\"slug\":\"GOOGLEDRIVE_WATCH_CHANGES\",\"name\":\"Watch Drive Changes\",\"description\":\"Tool to subscribe to changes for a user or shared drive in Google Drive. Use when you need to monitor a Google Drive for modifications and receive notifications at a specified webhook URL. Notifications may be batched rather than per-change; design handlers to be idempotent and fetch all changes since the last known page_token on each notification.\"},{\"slug\":\"GOOGLEDRIVE_WATCH_FILE\",\"name\":\"Watch File for Changes\",\"description\":\"Tool to subscribe to push notifications for changes to a specific file. Use when you need to monitor a file for modifications and receive real-time notifications at a webhook URL.\"}]},{\"slug\":\"googledocs\",\"name\":\"Google Docs\",\"description\":\"Google Docs is a cloud-based word processor with real-time collaboration, version history, and integration with other Google Workspace apps\",\"logo\":\"https://logos.composio.dev/api/googledocs\",\"rank\":12,\"tools\":[{\"slug\":\"GOOGLEDOCS_COPY_DOCUMENT\",\"name\":\"Copy Google Document\",\"description\":\"Tool to create a copy of an existing Google Document. Use this to duplicate a document, for example, when using an existing document as a template. The copied document will have a default title (e.g., 'Copy of [original title]') if no new title is provided, and will be placed in the user's root Google Drive folder.\"},{\"slug\":\"GOOGLEDOCS_CREATE_AND_POPULATE_TABLE\",\"name\":\"Create and Populate Table in Google Doc\",\"description\":\"Creates a new table in a Google Document and populates its cells with provided text data in a single operation. Use this action when you need to insert a structured table with predefined content into a document. The action handles both table creation and cell population automatically, eliminating the need for separate operations.\"},{\"slug\":\"GOOGLEDOCS_CREATE_DOCUMENT\",\"name\":\"Create a document\",\"description\":\"Creates a new Google Docs document using the provided title as filename and inserts the initial text at the beginning if non-empty, returning the document's ID and metadata (excluding body content).\"},{\"slug\":\"GOOGLEDOCS_CREATE_DOCUMENT2\",\"name\":\"Create blank document (Deprecated)\",\"description\":\"DEPRECATED: Use GOOGLEDOCS_CREATE_DOCUMENT instead. Tool to create a blank Google Docs document with a specified title. Use when you need to create a new, empty document.\"},{\"slug\":\"GOOGLEDOCS_CREATE_DOCUMENT_MARKDOWN\",\"name\":\"Create Document Markdown\",\"description\":\"Creates a new Google Docs document, optionally initializing it with a title and content provided as Markdown text.\"},{\"slug\":\"GOOGLEDOCS_CREATE_FOOTER\",\"name\":\"Create Footer\",\"description\":\"Tool to create a new footer in a Google Document. Use when you need to add a footer, optionally specifying its type and the section it applies to.\"},{\"slug\":\"GOOGLEDOCS_CREATE_FOOTNOTE\",\"name\":\"Create Footnote\",\"description\":\"Tool to create a new footnote in a Google Document. Use this when you need to add a footnote at a specific location or at the end of the document body.\"},{\"slug\":\"GOOGLEDOCS_CREATE_HEADER\",\"name\":\"Create Header\",\"description\":\"Tool to create a new header in a Google Document, optionally with text content. Use this tool when you need to add a header to a document. You can provide: - document_id: The ID of the document (required) - type: The header type (DEFAULT is the standard header) - text: Optional text content to add to the header - section_break_location: Optional location for section-specific headers\"},{\"slug\":\"GOOGLEDOCS_CREATE_NAMED_RANGE\",\"name\":\"Create Named Range\",\"description\":\"Tool to create a new named range in a Google Document. Use this to assign a name to a specific part of the document for easier reference or programmatic manipulation.\"},{\"slug\":\"GOOGLEDOCS_CREATE_PARAGRAPH_BULLETS\",\"name\":\"Create Paragraph Bullets\",\"description\":\"Tool to add bullets to paragraphs within a specified range in a Google Document. Use when you need to format a list or a set of paragraphs as bullet points.\"},{\"slug\":\"GOOGLEDOCS_CREATE_TAB\",\"name\":\"Create Document Tab\",\"description\":\"Creates a new tab in a Google Docs document. Tabs allow you to organize document content into separate sections within a single document. Use this action when you need to add a new organizational tab to a document. When a tab is added at a specified index, all subsequent tabs' indexes are automatically incremented.\"},{\"slug\":\"GOOGLEDOCS_DELETE_CONTENT_RANGE\",\"name\":\"Delete Content Range in Document\",\"description\":\"Tool to delete a range of content from a Google Document. Use when you need to remove a specific portion of text or other structural elements within a document. Note: Every segment (body, header, footer, footnote) in Google Docs ends with a final newline character that cannot be deleted. Ensure the endIndex does not include this trailing newline.\"},{\"slug\":\"GOOGLEDOCS_DELETE_FOOTER\",\"name\":\"Delete Footer\",\"description\":\"Tool to delete a footer from a Google Document. Use when you need to remove a footer from a specific section or the default footer.\"},{\"slug\":\"GOOGLEDOCS_DELETE_HEADER\",\"name\":\"Delete Header\",\"description\":\"Deletes the header from the specified section or the default header if no section is specified. Use this tool to remove a header from a Google Document.\"},{\"slug\":\"GOOGLEDOCS_DELETE_NAMED_RANGE\",\"name\":\"Delete Named Range\",\"description\":\"Tool to delete a named range from a Google Document. Use when you need to remove a previously defined named range by its ID or name.\"},{\"slug\":\"GOOGLEDOCS_DELETE_PARAGRAPH_BULLETS\",\"name\":\"Delete Paragraph Bullets\",\"description\":\"Tool to remove bullets from paragraphs within a specified range in a Google Document. Use when you need to clear bullet formatting from a section of a document.\"},{\"slug\":\"GOOGLEDOCS_DELETE_TAB\",\"name\":\"Delete Tab\",\"description\":\"Deletes a tab from a Google Document. This action is irreversible — the tab cannot be recovered once removed. Use when you need to remove a tab and all its child tabs from a document's tab structure.\"},{\"slug\":\"GOOGLEDOCS_DELETE_TABLE_COLUMN\",\"name\":\"Delete Table Column\",\"description\":\"Tool to delete a column from a table in a Google Document. Use this tool when you need to remove a specific column from an existing table within a document.\"},{\"slug\":\"GOOGLEDOCS_DELETE_TABLE_ROW\",\"name\":\"Delete Table Row\",\"description\":\"Tool to delete a row from a table in a Google Document. Use when you need to remove a specific row from an existing table.\"},{\"slug\":\"GOOGLEDOCS_EXPORT_DOCUMENT_AS_PDF\",\"name\":\"Export Google Doc as PDF\",\"description\":\"Tool to export a Google Docs file as PDF using the Google Drive API. Use when you need to generate a PDF version of a Google Docs document for download or distribution. Note: Google Drive enforces a 10MB limit on export content.\"},{\"slug\":\"GOOGLEDOCS_GET_DOCUMENT_BY_ID\",\"name\":\"Get document by id\",\"description\":\"Retrieves an existing Google Document by its ID; will error if the document is not found.\"},{\"slug\":\"GOOGLEDOCS_GET_DOCUMENT_END_INDEX\",\"name\":\"Get Document End Index\",\"description\":\"Retrieves the end index and paragraph structure of a Google Document or specific segment. Use this action when you need to determine valid insertion points for text operations, especially before using insertText requests. The end index represents the maximum boundary of the document body or specified segment (header, footer, footnote, or tab).\"},{\"slug\":\"GOOGLEDOCS_GET_DOCUMENT_PLAINTEXT\",\"name\":\"Get document plain text\",\"description\":\"Retrieve a Google Doc by ID and return a best-effort plain-text rendering. Converts document structure into plain text including paragraphs, lists, and tables without requiring clients to traverse complex Docs API JSON.\"},{\"slug\":\"GOOGLEDOCS_INSERT_IMAGE_IN_TABLE_CELL\",\"name\":\"Insert Image in Table Cell\",\"description\":\"Inserts an image from a given URI into a specific table cell in a Google Document. Use this action when you need to add an image to a particular cell within a table. The action identifies the target cell by table start index, row index, and column index, then inserts the image at the specified position within that cell's content.\"},{\"slug\":\"GOOGLEDOCS_INSERT_INLINE_IMAGE\",\"name\":\"Insert Inline Image\",\"description\":\"Tool to insert an image from a given URI at a specified location in a Google Document as an inline image. Use when you need to add an image to a document programmatically.\"},{\"slug\":\"GOOGLEDOCS_INSERT_PAGE_BREAK\",\"name\":\"Insert Page Break\",\"description\":\"Tool to insert a page break into a Google Document. Use when you need to start new content on a fresh page, such as at the end of a chapter or section.\"},{\"slug\":\"GOOGLEDOCS_INSERT_TABLE_ACTION\",\"name\":\"Insert Table in Google Doc\",\"description\":\"Tool to insert a table into a Google Document. Use when you need to add a new table at a specific location or at the end of a segment (like document body, header, or footer) in a document.\"},{\"slug\":\"GOOGLEDOCS_INSERT_TABLE_COLUMN\",\"name\":\"Insert Table Column\",\"description\":\"Tool to insert a new column into a table in a Google Document. Use this tool when you need to add a column to an existing table at a specific location.\"},{\"slug\":\"GOOGLEDOCS_INSERT_TABLE_ROW\",\"name\":\"Insert Table Row\",\"description\":\"Inserts a new row into a table in a Google Document at a specified location. Use this action when you need to add a row to an existing table, either above or below a reference cell location.\"},{\"slug\":\"GOOGLEDOCS_INSERT_TEXT_ACTION\",\"name\":\"Insert Text into Document\",\"description\":\"Tool to insert a string of text at a specified location within a Google Document. Use when you need to add new text content to an existing document. IMPORTANT: Two ways to specify insertion location: 1. Use 'insertion_index' to insert at a specific position (index 1 is safe for document start) 2. Use 'append_to_end=true' to append text to the end of the document (recommended for appending) CRITICAL CONSTRAINT: When using insertion_index, the index MUST fall within the bounds of an EXISTING paragraph. You cannot insert text at arbitrary indices or at structural boundaries (e.g., table starts). The index must also be strictly less than the document's end index. To safely append text without index concerns, use append_to_end=true.\"},{\"slug\":\"GOOGLEDOCS_INSERT_TEXT_IN_TABLE_CELL\",\"name\":\"Insert Text in Table Cell\",\"description\":\"Inserts text into a specific cell of a table in a Google Document by row and column position. Use this action when you need to add or update text content in a table cell at a known row and column index. To use this action, you must first retrieve the document structure using GOOGLEDOCS_GET_DOCUMENT_BY_ID to find the table's start index. Then specify the target cell by its zero-based row and column indices (e.g., row_index=0, column_index=0 for the top-left cell).\"},{\"slug\":\"GOOGLEDOCS_LIST_SPREADSHEET_CHARTS\",\"name\":\"Get Charts from Spreadsheet\",\"description\":\"Tool to retrieve a list of all charts from a specified Google Sheets spreadsheet. Use when you need to get chart IDs and their specifications for embedding or referencing elsewhere, such as in Google Docs.\"},{\"slug\":\"GOOGLEDOCS_REPLACE_ALL_TEXT\",\"name\":\"Replace All Text in Document\",\"description\":\"Tool to replace all occurrences of a specified text string with another text string throughout a Google Document. Use when you need to perform a global find and replace operation within a document.\"},{\"slug\":\"GOOGLEDOCS_REPLACE_IMAGE\",\"name\":\"Replace Image in Document\",\"description\":\"Tool to replace a specific image in a document with a new image from a URI. Use when you need to update an existing image within a Google Doc.\"},{\"slug\":\"GOOGLEDOCS_SEARCH_DOCUMENTS\",\"name\":\"Search Documents\",\"description\":\"Search for Google Documents using various filters including name, content, date ranges, and more.\"},{\"slug\":\"GOOGLEDOCS_UNMERGE_TABLE_CELLS\",\"name\":\"Unmerge Table Cells\",\"description\":\"Tool to unmerge previously merged cells in a table. Use this when you need to revert merged cells in a Google Document table back to their individual cell states.\"},{\"slug\":\"GOOGLEDOCS_UPDATE_DOCUMENT_BATCH\",\"name\":\"Update Document Batch (Deprecated)\",\"description\":\"DEPRECATED: Use UpdateExistingDocument instead. Tool to apply one or more updates to a Google Document. Use when you need to perform batch operations on a document, such as inserting text, updating styles, or modifying document structure. Supports 35+ request types including insertText, replaceAllText, updateTextStyle, createParagraphBullets, insertTable, createHeader/Footer, and more. Each request is validated before being applied. If any request is invalid, the entire operation fails and nothing is applied.\"},{\"slug\":\"GOOGLEDOCS_UPDATE_DOCUMENT_MARKDOWN\",\"name\":\"Update Document Markdown\",\"description\":\"Replaces the entire content of an existing Google Docs document with new Markdown text; requires edit permissions for the document.\"},{\"slug\":\"GOOGLEDOCS_UPDATE_DOCUMENT_SECTION_MARKDOWN\",\"name\":\"Update Document Section Markdown\",\"description\":\"Tool to insert or replace a section of a Google Docs document with Markdown content. Use when you need to update only a section of a document by specifying start and optional end indices. Supports full Markdown formatting.\"},{\"slug\":\"GOOGLEDOCS_UPDATE_DOCUMENT_STYLE\",\"name\":\"Update Document Style\",\"description\":\"Tool to update the overall document style, such as page size, margins, and default text direction. Use when you need to modify the global style settings of a Google Document.\"},{\"slug\":\"GOOGLEDOCS_UPDATE_EXISTING_DOCUMENT\",\"name\":\"Update existing document\",\"description\":\"Applies programmatic edits, such as text insertion, deletion, or formatting, to a specified Google Doc using the `batchUpdate` API method.\"},{\"slug\":\"GOOGLEDOCS_UPDATE_TABLE_ROW_STYLE\",\"name\":\"Update Table Row Style\",\"description\":\"Tool to update the style of a table row in a Google Document. Use when you need to modify the appearance of specific rows within a table, such as setting minimum row height or marking rows as headers.\"},{\"slug\":\"GOOGLEDOCS_UPDATE_TAB_PROPERTIES\",\"name\":\"Update Tab Properties\",\"description\":\"Updates properties of a document tab such as title, parent tab, index, and icon emoji. Use this action when you need to rename a tab, change its emoji icon, move it within the tab hierarchy, or reorganize tab structure.\"}]},{\"slug\":\"hubspot\",\"name\":\"HubSpot\",\"description\":\"HubSpot is an inbound marketing, sales, and customer service platform integrating CRM, email automation, and analytics to facilitate lead nurturing and seamless customer experiences\",\"logo\":\"https://logos.composio.dev/api/hubspot\",\"rank\":13,\"tools\":[{\"slug\":\"HUBSPOT_ADD_ASSET_ASSOCIATION\",\"name\":\"Add asset association\",\"description\":\"Associates an existing asset ('FORM', 'OBJECT_LIST', or 'EXTERNAL_WEB_URL') with a specified HubSpot marketing campaign.\"},{\"slug\":\"HUBSPOT_ADD_TOKEN_TO_EVENT_TEMPLATE\",\"name\":\"Add token to event template\",\"description\":\"Adds a new custom data token to an existing event template for a specified HubSpot application, optionally populating a CRM object property if objectPropertyName is provided.\"},{\"slug\":\"HUBSPOT_ARCHIVE_BATCH_OF_FEEDBACK_SUBMISSIONS\",\"name\":\"Archive batch of feedback submissions by id\",\"description\":\"Asynchronously archives a batch of HubSpot feedback submissions using their unique IDs, which must correspond to valid and existing submissions; the operation is queued, and submissions are moved from active views without being deleted.\"},{\"slug\":\"HUBSPOT_ARCHIVE_BATCH_OF_LINE_ITEMS\",\"name\":\"Archive batch of line items by id\",\"description\":\"Archives a batch of existing line items by their unique IDs in HubSpot CRM; this operation is irreversible via the API.\"},{\"slug\":\"HUBSPOT_ARCHIVE_BATCH_OF_OBJECTS\",\"name\":\"Archive batch of objects by id\",\"description\":\"Archives a batch of existing, non-archived CRM objects of a specified `objectType` by their IDs, effectively hiding them from active use.\"},{\"slug\":\"HUBSPOT_ARCHIVE_BATCH_OF_PROPERTIES\",\"name\":\"Archive batch of properties\",\"description\":\"Archives a batch of properties by their internal names for a specified HubSpot CRM object type; this operation is idempotent and safe to retry.\"},{\"slug\":\"HUBSPOT_ARCHIVE_BATCH_OF_QUOTES\",\"name\":\"Archive a batch of quotes by id\",\"description\":\"Archives a batch of existing quotes by their IDs, removing them from active views while keeping them accessible in your HubSpot account for viewing, downloading, cloning, or deletion; note that archived quotes cannot be restored to active status.\"},{\"slug\":\"HUBSPOT_ARCHIVE_COMPANIES\",\"name\":\"Archive companies\",\"description\":\"Archives multiple HubSpot companies by their IDs.\"},{\"slug\":\"HUBSPOT_ARCHIVE_COMPANY\",\"name\":\"Archive company\",\"description\":\"Archives an existing company in HubSpot CRM by its `companyId`, moving it to a recycling bin from which it can be restored, rather than permanently deleting it.\"},{\"slug\":\"HUBSPOT_ARCHIVE_CONTACT\",\"name\":\"Archive contact\",\"description\":\"Archives a HubSpot contact by its ID.\"},{\"slug\":\"HUBSPOT_ARCHIVE_CONTACTS\",\"name\":\"Archive contacts\",\"description\":\"Archives multiple HubSpot contacts by their IDs.\"},{\"slug\":\"HUBSPOT_ARCHIVE_CRM_OBJECT_BY_ID\",\"name\":\"Archive a CRM object by ID\",\"description\":\"Archives a specific HubSpot CRM object by its type and ID, moving it to the recycling bin; this action is irreversible via the API but objects can often be restored via the HubSpot UI.\"},{\"slug\":\"HUBSPOT_ARCHIVE_DEALS\",\"name\":\"Archive deals\",\"description\":\"Archives multiple HubSpot deals by their IDs.\"},{\"slug\":\"HUBSPOT_ARCHIVE_EMAIL\",\"name\":\"ArchiveEmail email\",\"description\":\"Archives the HubSpot email specified by `emailId` by moving it to the recycling bin, making it inaccessible unless restored.\"},{\"slug\":\"HUBSPOT_ARCHIVE_EMAILS\",\"name\":\"Archive emails\",\"description\":\"Archives multiple HubSpot emails by their IDs.\"},{\"slug\":\"HUBSPOT_ARCHIVE_FEEDBACK_SUBMISSION\",\"name\":\"Archive feedback submission\",\"description\":\"Archives an existing, non-archived Feedback Submission in HubSpot CRM by its ID, moving it to the recycling bin (not permanently deleting it).\"},{\"slug\":\"HUBSPOT_ARCHIVE_LINE_ITEM\",\"name\":\"Archive line item by id\",\"description\":\"Archives a specific HubSpot line item by its ID, moving it to a recoverable state.\"},{\"slug\":\"HUBSPOT_ARCHIVE_PRODUCT\",\"name\":\"Archive product\",\"description\":\"Archives a HubSpot product by its ID.\"},{\"slug\":\"HUBSPOT_ARCHIVE_PRODUCTS\",\"name\":\"Archive products\",\"description\":\"Archives multiple HubSpot products by their IDs.\"},{\"slug\":\"HUBSPOT_ARCHIVE_PROPERTY_BY_OBJECT_TYPE_AND_NAME\",\"name\":\"Archive property by object type and name\",\"description\":\"Archives a specified CRM property by its object type and name, moving it to the recycling bin; note that some default HubSpot properties cannot be archived.\"},{\"slug\":\"HUBSPOT_ARCHIVE_PROPERTY_GROUP\",\"name\":\"Archive property group\",\"description\":\"Archives a HubSpot property group, making it inactive and hidden (not permanently deleted, allowing potential restoration) with immediate effect on its CRM visibility and usability.\"},{\"slug\":\"HUBSPOT_ARCHIVE_QUOTE\",\"name\":\"Archive quote object by id\",\"description\":\"Archives a HubSpot Quote object by ID, moving it to the recycling bin where it can be restored within 90 days.\"},{\"slug\":\"HUBSPOT_ARCHIVE_TICKET\",\"name\":\"Archive ticket\",\"description\":\"Archives a HubSpot ticket by its ID.\"},{\"slug\":\"HUBSPOT_ARCHIVE_TICKETS\",\"name\":\"Archive tickets\",\"description\":\"Archives multiple HubSpot tickets by their IDs.\"},{\"slug\":\"HUBSPOT_AUDIT_PIPELINE_CHANGES\",\"name\":\"Audit pipeline changes by id\",\"description\":\"Retrieves a reverse chronological audit log of all changes for a specific, existing HubSpot CRM pipeline, which is identified by its `pipelineId` and a valid `objectType` that supports pipelines (e.g., 'deals', 'tickets').\"},{\"slug\":\"HUBSPOT_BATCH_READ_COMPANIES_BY_PROPERTIES\",\"name\":\"Batch read companies by properties\",\"description\":\"Batch-retrieves up to 100 HubSpot company records by their IDs in a single request. Supports custom ID properties (e.g., domain), selective property retrieval, and historical property values.\"},{\"slug\":\"HUBSPOT_BATCH_UPDATE_QUOTES\",\"name\":\"Batch update quotes\",\"description\":\"Updates multiple existing HubSpot quotes in a batch; each quote is identified by its object ID or a custom unique property (via `idProperty`), and only writable properties are modified.\"},{\"slug\":\"HUBSPOT_CANCEL_IMPORT\",\"name\":\"Cancel active import\",\"description\":\"Cancels an active HubSpot data import job using its `importId`; this action is irreversible, and any data already processed will remain.\"},{\"slug\":\"HUBSPOT_CLONE_MARKETING_EMAIL\",\"name\":\"Clone marketing email\",\"description\":\"Duplicates an existing HubSpot marketing email, identified by its `id`, into a new draft; an optional `cloneName` can be assigned to this new email copy.\"},{\"slug\":\"HUBSPOT_CONFIGURE_CALLING_EXTENSION_SETTINGS\",\"name\":\"Configure calling extension settings\",\"description\":\"Configures or updates settings for a HubSpot app's calling extension, including its name, UI URL, iframe dimensions, `isReady` status, and `supportsCustomObjects` flag, for the specified `appId`.\"},{\"slug\":\"HUBSPOT_CREATE_AB_TEST_VARIATION\",\"name\":\"Create A/B test variation\",\"description\":\"Creates a new A/B test variation for an existing HubSpot marketing email, using its `contentId`; the new variation is created as a draft that can be edited before publishing. This action only creates the variation—it does not start the A/B test or send emails. Note: If an active variation already exists for the email, a new one will not be created. Requires Marketing Hub Professional or Enterprise subscription.\"},{\"slug\":\"HUBSPOT_CREATE_AND_RETURN_A_NEW_PROPERTY_GROUP\",\"name\":\"Create a new property group\",\"description\":\"Creates a new, empty property group for a specified CRM object type in HubSpot, requiring a unique group name for that object type; properties must be added separately.\"},{\"slug\":\"HUBSPOT_CREATE_A_NEW_MARKETING_EMAIL\",\"name\":\"Create a new marketing email\",\"description\":\"Creates a new marketing email in HubSpot, allowing comprehensive configuration of content, recipients, sender details, A/B testing, scheduling, web version, and other settings; the internal `name` for the email is required.\"},{\"slug\":\"HUBSPOT_CREATE_ASSOCIATION\",\"name\":\"Create association for object type\",\"description\":\"Creates a new custom association definition (schema) for a custom object in HubSpot, specifying how this object type can relate to another object type; this defines the association type itself, not actual record-to-record links. Note: This endpoint requires crm.schemas.custom.write scope and only works with custom objects (not standard HubSpot objects like contacts or companies).\"},{\"slug\":\"HUBSPOT_CREATE_BATCH_OF_FEEDBACK_SUBMISSIONS\",\"name\":\"Create batch of feedback submissions\",\"description\":\"Creates a batch of feedback submissions in HubSpot, ideal for bulk imports; all property names, `associationTypeId`s, and association `to_id`s must reference existing entities in HubSpot.\"},{\"slug\":\"HUBSPOT_CREATE_BATCH_OF_OBJECTS\",\"name\":\"Create batch of objects\",\"description\":\"Creates multiple CRM objects of a specified `objectType` (e.g., contacts, companies, deals) in a single batch operation, where each object can have its own set of properties and associations.\"},{\"slug\":\"HUBSPOT_CREATE_BATCH_OF_PROPERTIES\",\"name\":\"Create batch of properties\",\"description\":\"Efficiently creates multiple CRM properties in a single batch for a specified HubSpot object type (e.g., 'contacts', 'companies', custom object ID), ideal for schema setup or updates.\"},{\"slug\":\"HUBSPOT_CREATE_BATCH_OF_QUOTES\",\"name\":\"Create batch of quotes\",\"description\":\"Creates multiple HubSpot CRM quotes in a batch, ideal for bulk operations; provide meaningful quote details in `inputs` as property requirements can vary, and inspect response for individual quote statuses as partial success is possible.\"},{\"slug\":\"HUBSPOT_CREATE_CAMPAIGN\",\"name\":\"Create campaign\",\"description\":\"Creates a new HubSpot campaign.\"},{\"slug\":\"HUBSPOT_CREATE_CAMPAIGNS\",\"name\":\"Create campaigns\",\"description\":\"Creates multiple HubSpot campaigns by calling the single campaign creation endpoint for each campaign. Note: HubSpot does not provide a native batch create endpoint for campaigns. This action creates multiple campaigns by making individual API calls for each campaign in the batch.\"},{\"slug\":\"HUBSPOT_CREATE_COMPANIES\",\"name\":\"Create companies\",\"description\":\"Creates multiple new HubSpot companies in a single batch operation.\"},{\"slug\":\"HUBSPOT_CREATE_COMPANY\",\"name\":\"Create company\",\"description\":\"Creates a new HubSpot company.\"},{\"slug\":\"HUBSPOT_CREATE_CONTACT\",\"name\":\"Create contact\",\"description\":\"Creates a new HubSpot contact.\"},{\"slug\":\"HUBSPOT_CREATE_CONTACT_FROM_NL\",\"name\":\"Create Contact From Natural Language\",\"description\":\"Creates a new contact in HubSpot from a natural language description. Fetches the contact property schema at runtime, uses an LLM to generate the correct property payload, and creates the contact.\"},{\"slug\":\"HUBSPOT_CREATE_CONTACTS\",\"name\":\"Create contacts\",\"description\":\"Creates multiple new HubSpot contacts in a single batch operation.\"},{\"slug\":\"HUBSPOT_CREATE_CRM_OBJECT_FROM_NL\",\"name\":\"Create CRM Object From Natural Language\",\"description\":\"Creates a new CRM object (contact, deal, company, ticket, or custom object) in HubSpot from a natural language description. Fetches the object's property schema at runtime, uses an LLM to generate the correct property payload, and creates the object.\"},{\"slug\":\"HUBSPOT_CREATE_CRM_OBJECT_WITH_PROPERTIES\",\"name\":\"Create CRM object with properties\",\"description\":\"Creates a new HubSpot CRM object (e.g., contact, company, custom object) with specified `properties` (using valid internal names) and `associations` (to existing objects via valid type IDs).\"},{\"slug\":\"HUBSPOT_CREATE_DEAL\",\"name\":\"Create deal\",\"description\":\"Creates a new HubSpot deal.\"},{\"slug\":\"HUBSPOT_CREATE_DEAL_FROM_NL\",\"name\":\"Create Deal From Natural Language\",\"description\":\"Creates a new deal in HubSpot from a natural language description. Fetches the deal property schema and pipeline stages at runtime, uses an LLM to generate the correct property payload, and creates the deal.\"},{\"slug\":\"HUBSPOT_CREATE_DEALS\",\"name\":\"Create deals\",\"description\":\"Creates multiple deals in HubSpot CRM; ensure any associated object IDs, deal stages, and pipeline IDs specified are valid and exist within the HubSpot account.\"},{\"slug\":\"HUBSPOT_CREATE_EMAIL\",\"name\":\"Create email\",\"description\":\"Creates a new HubSpot email engagement record. REQUIRED FIELDS in properties dict: - hs_email_subject: Subject line - hs_email_html: HTML content - hs_timestamp: Unix timestamp in milliseconds - hs_email_direction: One of 'EMAIL', 'INCOMING_EMAIL', 'FORWARDED_EMAIL', 'DRAFT_EMAIL' This creates an email engagement/activity record in HubSpot CRM, not a marketing email.\"},{\"slug\":\"HUBSPOT_CREATE_EMAILS\",\"name\":\"Create emails\",\"description\":\"Creates multiple HubSpot emails in a single batch operation.\"},{\"slug\":\"HUBSPOT_CREATE_EVENT_TEMPLATE_FOR_APP\",\"name\":\"Create event template for app\",\"description\":\"Creates a new event template for a HubSpot app, defining structure, custom properties (tokens), and appearance (Markdown with Handlebars) of custom timeline events for CRM objects; this template must exist before logging corresponding events.\"},{\"slug\":\"HUBSPOT_CREATE_FEEDBACK_SUBMISSION\",\"name\":\"Create feedback submission\",\"description\":\"Creates a new HubSpot feedback submission to record customer feedback (e.g., survey responses, support interactions), optionally associating it with CRM objects.\"},{\"slug\":\"HUBSPOT_CREATE_LINE_ITEM\",\"name\":\"Create line item\",\"description\":\"Creates a new HubSpot line item.\"},{\"slug\":\"HUBSPOT_CREATE_LINE_ITEMS\",\"name\":\"Create line items\",\"description\":\"Creates multiple HubSpot line items in a single batch operation.\"},{\"slug\":\"HUBSPOT_CREATE_MEETING\",\"name\":\"Create meeting\",\"description\":\"Creates a new meeting engagement in HubSpot CRM. Use this action when you need to log a meeting that occurred or schedule a future meeting with contacts, companies, or other CRM records. The meeting will appear on the timeline of associated records and can include details like title, time, location, notes, and outcome.\"},{\"slug\":\"HUBSPOT_CREATE_NOTE\",\"name\":\"Create note\",\"description\":\"Creates a new HubSpot CRM note. Use when you need to add a timestamped note with optional attachments and associations to contacts, companies, deals, or tickets.\"},{\"slug\":\"HUBSPOT_CREATE_OBJECT_ASSOCIATION\",\"name\":\"Create object association\",\"description\":\"Tool to create or label an association between two CRM records using HubSpot Associations v4 API. Use when you need to link records (e.g., contact to company, deal to contact) with explicit association labels.\"},{\"slug\":\"HUBSPOT_CREATE_OBJECT_SCHEMA\",\"name\":\"Create new object schema with custom properties\",\"description\":\"Creates a new custom object schema in HubSpot CRM with unique naming for schema and properties, defined display/required/searchable properties within the 'properties' list, provided immutable labels, and correctly configured 'enumeration' type properties (options/referencedObjectType).\"},{\"slug\":\"HUBSPOT_CREATE_OR_UPDATE_DRAFT_VERSION\",\"name\":\"Create or update draft version\",\"description\":\"Creates or updates the draft version of a marketing email identified by `emailId`; if no draft exists, a new one is created from the current live version to prepare changes or A/B tests before publishing.\"},{\"slug\":\"HUBSPOT_CREATE_PIPELINE\",\"name\":\"Create pipeline for object type\",\"description\":\"Creates a new HubSpot pipeline for a specified CRM `objectType` (e.g., 'deals', 'tickets'), requiring the pipeline `label` be unique for that `objectType` and each stage `label` be unique within the pipeline.\"},{\"slug\":\"HUBSPOT_CREATE_PIPELINE_STAGE\",\"name\":\"Create pipeline stage\",\"description\":\"Creates a new stage in a specified HubSpot CRM pipeline for a given object type, such as 'deals' or 'tickets'.\"},{\"slug\":\"HUBSPOT_CREATE_PRODUCT\",\"name\":\"Create product\",\"description\":\"Creates a new HubSpot product. Note: Products are catalog items and cannot be directly associated with deals, contacts, or companies. To connect product information to a deal or quote, create a line item using HUBSPOT_CREATE_LINE_ITEM that references this product's ID via hs_product_id.\"},{\"slug\":\"HUBSPOT_CREATE_PRODUCTS\",\"name\":\"Create products\",\"description\":\"Creates multiple HubSpot products in a single batch operation.\"},{\"slug\":\"HUBSPOT_CREATE_PROPERTY_FOR_SPECIFIED_OBJECT_TYPE\",\"name\":\"Create property for specified object type\",\"description\":\"Creates a new custom property for a specified HubSpot CRM object type; ensure `groupName` refers to an existing property group for the `objectType`.\"},{\"slug\":\"HUBSPOT_CREATE_QUOTE_OBJECT\",\"name\":\"Create quote object\",\"description\":\"Creates a new quote object in HubSpot CRM with specified properties and associations.\"},{\"slug\":\"HUBSPOT_CREATE_TASK\",\"name\":\"Create task\",\"description\":\"Creates a new CRM task record. Use when adding a task with properties and optional associations.\"},{\"slug\":\"HUBSPOT_CREATE_TICKET\",\"name\":\"Create ticket\",\"description\":\"Creates a new HubSpot ticket.\"},{\"slug\":\"HUBSPOT_CREATE_TICKETS\",\"name\":\"Create tickets\",\"description\":\"Creates multiple HubSpot tickets in a batch, each with its own properties and associations; `inputs` list must not be empty, each item needs `properties`, and associations/custom properties must be validly defined using internal names for custom fields and ISO 8601 for dates.\"},{\"slug\":\"HUBSPOT_CREATE_TIMELINE_EVENT\",\"name\":\"Create timeline event based on template\",\"description\":\"Creates an immutable custom timeline event on a CRM object's record using a specified, existing event template (identified by `eventTemplateId`), optionally updating CRM object properties if defined in the template; requires `email`, `utk`, or `objectId` for association.\"},{\"slug\":\"HUBSPOT_CREATE_TIMELINE_EVENTS_BATCH\",\"name\":\"Create multiple timeline events batch\",\"description\":\"Creates multiple immutable timeline events in a batch, ideal for bulk data imports or real-time synchronizations, using a valid event template; may update CRM properties if the template is so configured.\"},{\"slug\":\"HUBSPOT_CREATE_WORKFLOW\",\"name\":\"Create workflow\",\"description\":\"Creates a new HubSpot workflow to automate processes; ensure `enrollmentCriteria` and `actions` use properties relevant to the specified `objectTypeId`.\"},{\"slug\":\"HUBSPOT_DELETE_CALL\",\"name\":\"Delete call\",\"description\":\"Permanently deletes a HubSpot call record by its ID. This action removes a call engagement from the CRM. Use this action when you need to remove a specific call record that is no longer needed or was created in error. This action is irreversible - the call record cannot be recovered once deleted.\"},{\"slug\":\"HUBSPOT_DELETE_CALLING_EXTENSION_SETTINGS\",\"name\":\"Delete calling extension settings\",\"description\":\"Permanently deletes the settings for a calling extension app, specified by its `appId`, rendering it unusable for all connected HubSpot accounts; this operation is irreversible.\"},{\"slug\":\"HUBSPOT_DELETE_CAMPAIGN\",\"name\":\"Delete campaign\",\"description\":\"Permanently deletes a marketing campaign from HubSpot using its `campaignGuid`; returns a 204 No Content status even if the campaign does not exist.\"},{\"slug\":\"HUBSPOT_DELETE_CAMPAIGNS_BATCH\",\"name\":\"Archive a batch of campaigns\",\"description\":\"Archives a batch of up to 50 marketing campaigns, hiding them from active views rather than permanently deleting them.\"},{\"slug\":\"HUBSPOT_DELETE_COMPANY_GDPR\",\"name\":\"Permanently delete company for GDPR compliance\",\"description\":\"Permanently deletes a company (identified by objectId) and its associated data from HubSpot for GDPR compliance; this action is irreversible and requires the company to exist.\"},{\"slug\":\"HUBSPOT_DELETE_CONTACT_GDPR\",\"name\":\"Permanently delete contact for GDPR compliance\",\"description\":\"Irreversibly erases a HubSpot contact and associated data per a GDPR request; if an email is given for a non-existent contact, it's blocklisted.\"},{\"slug\":\"HUBSPOT_DELETE_DEAL_GDPR\",\"name\":\"Archive deal (GDPR permanent delete not supported for deals)\",\"description\":\"Archives a HubSpot deal by its ID. Note: HubSpot's GDPR permanent deletion API only supports contacts, not deals. This action archives the deal (moves to recycling bin for 90 days) as the closest available functionality.\"},{\"slug\":\"HUBSPOT_DELETE_LINE_ITEMS_GDPR\",\"name\":\"Permanently delete line items for gdpr\",\"description\":\"Permanently deletes a specified line item and its associated content for GDPR compliance; this action is irreversible and cannot be undone.\"},{\"slug\":\"HUBSPOT_DELETE_MARKETING_EMAIL\",\"name\":\"Delete a marketing email\",\"description\":\"Permanently deletes a marketing email from your HubSpot account. This action cannot be undone.\"},{\"slug\":\"HUBSPOT_DELETE_MEETING\",\"name\":\"Delete meeting\",\"description\":\"Permanently deletes (archives) a HubSpot meeting by its ID, moving it to the recycling bin where it can be restored within 90 days. Use this action when you need to remove a meeting engagement from HubSpot's CRM. This action is irreversible via the API — the meeting cannot be recovered programmatically once deleted.\"},{\"slug\":\"HUBSPOT_DELETE_NOTE\",\"name\":\"Delete note\",\"description\":\"Archives a HubSpot note by its ID, removing it from active view. The note is archived rather than permanently deleted and can be restored within 90 days. Use this action when you need to remove a note from the CRM without permanently deleting it. This action is irreversible through the API - archived notes cannot be restored programmatically.\"},{\"slug\":\"HUBSPOT_DELETE_PIPELINE\",\"name\":\"Delete pipeline by id\",\"description\":\"Permanently deletes a HubSpot pipeline and all its stages by `pipelineId` and `objectType`; this is irreversible, so use validation flags to avoid errors if the pipeline is not empty.\"},{\"slug\":\"HUBSPOT_DELETE_PIPELINE_STAGE\",\"name\":\"Delete pipeline stage by id\",\"description\":\"Permanently deletes a specific pipeline stage for an `objectType` (e.g., 'deals', 'tickets') that supports pipelines; this operation is irreversible, so ensure no active CRM records are associated with the stage to prevent data issues.\"},{\"slug\":\"HUBSPOT_DELETE_SCHEMA\",\"name\":\"Delete schema by object type\",\"description\":\"Deletes a HubSpot custom object schema by `objectType`. With `archived=false` (default), it archives the schema (soft delete). With `archived=true`, it permanently deletes an already-archived schema (hard delete). Prerequisites: All object instances, associations, and properties must be deleted first.\"},{\"slug\":\"HUBSPOT_DELETE_TASK\",\"name\":\"Delete task\",\"description\":\"Archives a HubSpot task by its ID, removing it from active task lists. Use this action when you need to delete or remove a task from HubSpot CRM. The task is archived rather than permanently deleted and may be recoverable. This action is irreversible from the API perspective — the task cannot be directly unarchived via this action.\"},{\"slug\":\"HUBSPOT_DELETE_TIMELINE_EVENT_TEMPLATE\",\"name\":\"Delete timeline event template\",\"description\":\"Permanently and irreversibly deletes a specific timeline event template, identified by its `eventTemplateId`, from the application `appId`.\"},{\"slug\":\"HUBSPOT_DELETE_VIDEO_CONFERENCING_APP_SETTINGS\",\"name\":\"Delete video conferencing app settings\",\"description\":\"Irreversibly deletes all settings for a video conferencing application identified by its `appId` in HubSpot, removing its configuration and preventing it from functioning until reconfigured; existing meetings and historical data are unaffected. Note: This API requires developer API key (hapikey) authentication from your HubSpot developer account, not OAuth tokens.\"},{\"slug\":\"HUBSPOT_DELETE_WORKFLOW\",\"name\":\"Delete workflow\",\"description\":\"Permanently deletes a HubSpot workflow by its ID; deleted workflows cannot be restored via the API and the ID must exist.\"},{\"slug\":\"HUBSPOT_FETCH_IMPORT_ERROR_DETAILS\",\"name\":\"Fetch import error details\",\"description\":\"Fetches a paginated list of read-only error details for a specific HubSpot CRM import, requiring a valid `importId` for a processed import.\"},{\"slug\":\"HUBSPOT_FETCH_RECORDING_SETTINGS\",\"name\":\"Fetch recording settings by app ID\",\"description\":\"Fetches call recording settings for a specified, existing HubSpot calling extension app.\"},{\"slug\":\"HUBSPOT_FETCH_REVENUE\",\"name\":\"Fetch revenue\",\"description\":\"Fetches a revenue attribution report for a specified, existing marketing campaign, optionally using a specific attribution model and date range; if both start and end dates are given, `endDate` must not be earlier than `startDate`.\"},{\"slug\":\"HUBSPOT_GET_AB_EMAIL_VARIATION\",\"name\":\"Get the variation of an A/B marketing email\",\"description\":\"Retrieves the alternate variation of a specified A/B marketing email; the `emailId` must identify an email currently in an A/B test. Requires Marketing Hub Professional or Enterprise subscription.\"},{\"slug\":\"HUBSPOT_GET_ACCOUNT_INFO\",\"name\":\"Get Account Information\",\"description\":\"Gets current HubSpot account info (email, hubId, user details) using access-token lookup.\"},{\"slug\":\"HUBSPOT_GET_ACTIVE_IMPORTS_LIST\",\"name\":\"Get active imports list\",\"description\":\"Retrieves a list of currently active import jobs in HubSpot for monitoring ongoing data operations.\"},{\"slug\":\"HUBSPOT_GET_AGGREGATED_STATISTIC_INTERVALS\",\"name\":\"Get aggregated statistic intervals\",\"description\":\"Retrieves aggregated statistics for marketing emails (e.g., send counts), grouped by specified time intervals within a defined time range.\"},{\"slug\":\"HUBSPOT_GET_AGGREGATED_STATISTICS\",\"name\":\"Get aggregated statistics\",\"description\":\"Retrieves aggregated statistics for marketing emails, optionally within an ISO8601 formatted time range, by email IDs, or specific email properties.\"},{\"slug\":\"HUBSPOT_GET_ALL_MARKETING_EMAILS_FOR_A_HUBSPOT_ACCOUNT\",\"name\":\"Get all marketing emails for a HubSpot account\",\"description\":\"Fetches a list of marketing emails from a HubSpot account, with options for filtering, sorting, pagination, and including performance statistics.\"},{\"slug\":\"HUBSPOT_GET_CAMPAIGN\",\"name\":\"Get campaign\",\"description\":\"Retrieves a HubSpot campaign by its ID.\"},{\"slug\":\"HUBSPOT_GET_CAMPAIGN_METRICS\",\"name\":\"Get campaign metrics\",\"description\":\"Retrieves key attribution metrics for an existing marketing campaign, identified by its `campaignGuid`, within an optional date range.\"},{\"slug\":\"HUBSPOT_GET_CAMPAIGNS\",\"name\":\"Get campaigns\",\"description\":\"Retrieves multiple HubSpot campaigns.\"},{\"slug\":\"HUBSPOT_GET_COMPANY\",\"name\":\"Get company\",\"description\":\"Retrieves a HubSpot company by its ID.\"},{\"slug\":\"HUBSPOT_GET_CONTACT_IDS\",\"name\":\"Get contact IDs\",\"description\":\"Fetches a list of contact IDs for a specific HubSpot campaign based on interaction type.\"},{\"slug\":\"HUBSPOT_GET_DEAL\",\"name\":\"Get deal\",\"description\":\"Retrieves a HubSpot deal by its ID.\"},{\"slug\":\"HUBSPOT_GET_DEALS\",\"name\":\"Get deals\",\"description\":\"Retrieves multiple HubSpot deals by their IDs in a single batch request.\"},{\"slug\":\"HUBSPOT_GET_EMAILS\",\"name\":\"Get emails\",\"description\":\"Retrieves multiple HubSpot email engagement records by their IDs in a single batch request.\"},{\"slug\":\"HUBSPOT_GET_EVENT_TEMPLATE\",\"name\":\"Get specific event template for app\",\"description\":\"Retrieves detailed information about a specific event template for a given application in HubSpot's CRM timeline.\"},{\"slug\":\"HUBSPOT_GET_IMPORT_RECORD_INFORMATION\",\"name\":\"Get import record information\",\"description\":\"Retrieves a comprehensive summary of a specific HubSpot CRM import record by its `importId`, including status, progress, updates, results, and errors; useful for monitoring and troubleshooting data imports.\"},{\"slug\":\"HUBSPOT_GET_MARKETING_EMAIL_DRAFT\",\"name\":\"Get draft version of a marketing email\",\"description\":\"Retrieves the draft version of a marketing email by its `emailId`; if no draft exists, returns the published version.\"},{\"slug\":\"HUBSPOT_GET_MARKETING_EMAIL_REVISION\",\"name\":\"Get a revision of a marketing email\",\"description\":\"Retrieves a specific, previously saved revision of a marketing email using its unique email ID and revision ID.\"},{\"slug\":\"HUBSPOT_GET_MARKETING_EMAIL_REVISIONS\",\"name\":\"Get revisions of a marketing email\",\"description\":\"Retrieves a paginated list of all historical versions (including full state like content, settings, metadata) for a specified, existing marketing email; revision ID -1 identifies the current version.\"},{\"slug\":\"HUBSPOT_GET_PIPELINE_BY_ID\",\"name\":\"Return pipeline by id\",\"description\":\"Retrieves a specific pipeline by its ID and CRM object type, detailing its stages and properties.\"},{\"slug\":\"HUBSPOT_GET_PIPELINE_STAGE_AUDIT\",\"name\":\"Get pipeline stage audit\",\"description\":\"Retrieves a reverse chronological list of all mutations (changes) for a specific pipeline stage, including CREATE and UPDATE events with timestamps and details.\"},{\"slug\":\"HUBSPOT_GET_PRODUCT\",\"name\":\"Get product\",\"description\":\"Retrieves a HubSpot product by its ID.\"},{\"slug\":\"HUBSPOT_GET_PRODUCTS\",\"name\":\"Get products\",\"description\":\"Retrieves multiple HubSpot products by their IDs.\"},{\"slug\":\"HUBSPOT_GET_QUOTE\",\"name\":\"Get quote by id\",\"description\":\"Retrieves a specific HubSpot quote by its unique identifier.\"},{\"slug\":\"HUBSPOT_GET_SEGMENT_MEMBERS\",\"name\":\"Get segment members\",\"description\":\"Tool to retrieve segment (list) members ordered by join timestamp. Use when you need to page through list membership data.\"},{\"slug\":\"HUBSPOT_GET_THE_DETAILS_OF_A_SPECIFIED_MARKETING_EMAIL\",\"name\":\"Get the details of a specified marketing email\",\"description\":\"Retrieves detailed information for a specific marketing email in HubSpot using its unique email ID, optionally including performance statistics and specific properties.\"},{\"slug\":\"HUBSPOT_GET_TICKET\",\"name\":\"Get ticket\",\"description\":\"Retrieves a HubSpot ticket by its ID.\"},{\"slug\":\"HUBSPOT_GET_TICKETS\",\"name\":\"Get tickets\",\"description\":\"Retrieves multiple HubSpot tickets by their IDs.\"},{\"slug\":\"HUBSPOT_GET_WORKFLOW_BY_ID\",\"name\":\"Get workflow by ID\",\"description\":\"Retrieves comprehensive details for an existing HubSpot workflow by its unique ID; unsupported actions are designated 'UNSUPPORTED_ACTION' in the response.\"},{\"slug\":\"HUBSPOT_GET_WORKFLOWS\",\"name\":\"Get all workflows\",\"description\":\"Retrieves a list of workflow summaries (ID, name, type, status) from HubSpot, using the 'limit' parameter for pagination.\"},{\"slug\":\"HUBSPOT_LIST_ASSETS\",\"name\":\"List assets\",\"description\":\"Lists assets of a specific `assetType` for a given HubSpot marketing `campaignGuid`, optionally including performance metrics for a date range.\"},{\"slug\":\"HUBSPOT_LIST_ASSOCIATION_TYPES\",\"name\":\"List association types\",\"description\":\"Lists all valid association types between two specified HubSpot CRM object types.\"},{\"slug\":\"HUBSPOT_LIST_COMPANIES\",\"name\":\"List companies\",\"description\":\"Retrieves a paginated list of HubSpot companies.\"},{\"slug\":\"HUBSPOT_LIST_COMPANY_ACTIVITIES\",\"name\":\"List company activities\",\"description\":\"List all activity/engagement associations from a company to a specified activity type (calls, emails, meetings, notes, or tasks). Returns the IDs of associated engagement records. Use this action when you need to retrieve all activities of a specific type for a company to build a timeline or activity history.\"},{\"slug\":\"HUBSPOT_LIST_COMPANY_CALLS\",\"name\":\"List company calls\",\"description\":\"Lists all calls associated with a specific HubSpot company. Returns call IDs and their association types with the company. Use this action when you need to retrieve all call activity records linked to a company without fetching full call details. For full call properties, use the returned call IDs with a call read action.\"},{\"slug\":\"HUBSPOT_LIST_COMPANY_MEETINGS\",\"name\":\"List company meetings\",\"description\":\"List all meetings associated with a specific company in HubSpot. Returns meeting IDs and association metadata for meetings linked to the company record. Use this action when you need to retrieve all meetings scheduled with or related to a particular company.\"},{\"slug\":\"HUBSPOT_LIST_CONTACT_NOTES\",\"name\":\"List contact notes\",\"description\":\"List all notes associated with a specific HubSpot contact. Returns note IDs and association metadata. Use this action when you need to retrieve all notes linked to a contact record. To get full note details (body, timestamp, etc.), use the note IDs with a batch read action.\"},{\"slug\":\"HUBSPOT_LIST_CONTACT_PROPERTIES\",\"name\":\"List contact properties\",\"description\":\"Lists all contact properties in your HubSpot account, including custom properties you've created. Use this action to discover: - Available property names for updating contacts - Custom properties specific to your HubSpot account - Property types and valid options for enumeration fields - Which properties are read-only vs writable\"},{\"slug\":\"HUBSPOT_LIST_CONTACTS\",\"name\":\"List contacts\",\"description\":\"Retrieves a paginated list of HubSpot contacts.\"},{\"slug\":\"HUBSPOT_LIST_CONTACT_TASKS\",\"name\":\"List contact tasks\",\"description\":\"List all tasks associated with a specific contact. Returns task IDs and association metadata for tasks linked to the given contact. Use this action when you need to retrieve all tasks related to a contact, such as viewing pending action items or following up on contact-related to-dos.\"},{\"slug\":\"HUBSPOT_LIST_DEAL_ACTIVITIES\",\"name\":\"List deal activities\",\"description\":\"Retrieves activities (notes, calls, emails, meetings, tasks) associated with a specific HubSpot deal. Use this action when you need to view the complete activity timeline for a deal, including all engagement types. This provides a comprehensive view of interactions and communications related to the deal, which is useful for understanding deal history and next steps.\"},{\"slug\":\"HUBSPOT_LIST_DEAL_MEETINGS\",\"name\":\"List deal meetings\",\"description\":\"List all meetings associated with a specific deal in HubSpot. Returns meeting IDs and association metadata. Use this action when you need to retrieve meetings linked to a deal without fetching full meeting details. This is useful for understanding deal activity, tracking customer interactions, or building reports of engagement touchpoints.\"},{\"slug\":\"HUBSPOT_LIST_DEALS\",\"name\":\"List deals\",\"description\":\"Retrieves a paginated list of HubSpot deals.\"},{\"slug\":\"HUBSPOT_LIST_EMAILS\",\"name\":\"List Emails\",\"description\":\"Retrieves a paginated list of HubSpot emails, allowing selection of specific properties (with or without history), associated object IDs, and filtering by archive status.\"},{\"slug\":\"HUBSPOT_LIST_EVENT_TEMPLATES\",\"name\":\"List all event templates for app\",\"description\":\"Retrieves all event templates associated with a valid `appId` for an existing application in HubSpot's CRM Timeline.\"},{\"slug\":\"HUBSPOT_LIST_FEEDBACK_SUBMISSIONS\",\"name\":\"List feedback submissions page\",\"description\":\"Retrieves a paginated list of feedback submissions from HubSpot, allowing specification of properties (including history), associated object IDs, and filtering by archive status.\"},{\"slug\":\"HUBSPOT_LIST_GRANTED_SCOPES\",\"name\":\"List granted OAuth scopes\",\"description\":\"Tool to introspect the current OAuth access token and return its granted scopes and metadata. Use when you need to check which permissions are available before calling an endpoint (e.g., workflows, automation) to proactively detect missing scopes and provide clear remediation guidance.\"},{\"slug\":\"HUBSPOT_LIST_OBJECT_ASSOCIATIONS\",\"name\":\"List object associations\",\"description\":\"List all associations from a single CRM record to a specified target object type. Use when you need to expand associations for a single record without fetching the full CRM object.\"},{\"slug\":\"HUBSPOT_LIST_PRODUCTS\",\"name\":\"List products\",\"description\":\"Retrieves a paginated list of HubSpot products.\"},{\"slug\":\"HUBSPOT_LIST_QUOTES\",\"name\":\"List quotes page\",\"description\":\"Retrieves a paginated list of quotes, allowing selection of specific properties, property history, associated object IDs, and filtering by archived status.\"},{\"slug\":\"HUBSPOT_LIST_TICKETS\",\"name\":\"List tickets\",\"description\":\"Retrieves a paginated list of HubSpot tickets.\"},{\"slug\":\"HUBSPOT_MERGE_COMPANIES\",\"name\":\"Merge two companies of same type\",\"description\":\"Merges two existing company records of the same type in HubSpot CRM, where `objectIdToMerge` is absorbed into `primaryObjectId`; this operation is irreversible.\"},{\"slug\":\"HUBSPOT_MERGE_CONTACTS\",\"name\":\"Merge contacts\",\"description\":\"Merges two HubSpot contacts into one.\"},{\"slug\":\"HUBSPOT_MERGE_DEALS\",\"name\":\"Merge deals\",\"description\":\"Merges two HubSpot deals into one.\"},{\"slug\":\"HUBSPOT_MERGE_EMAILS\",\"name\":\"Merge emails\",\"description\":\"Merges two HubSpot emails into one.\"},{\"slug\":\"HUBSPOT_MERGE_FEEDBACK_SUBMISSIONS\",\"name\":\"Merge two feedback submissions\",\"description\":\"Merges two existing feedback submissions by ID, primarily for consolidating duplicates or related feedback; this operation is irreversible, and `primaryObjectId` values take precedence in conflicts.\"},{\"slug\":\"HUBSPOT_MERGE_LINE_ITEMS\",\"name\":\"Merge two line items of same type\",\"description\":\"Merges two line items, `objectIdToMerge` into `primaryObjectId`, which must be of the same type; `objectIdToMerge` is absorbed and the operation is irreversible.\"},{\"slug\":\"HUBSPOT_MERGE_OBJECTS\",\"name\":\"Merge two objects of same type\",\"description\":\"Merges two distinct HubSpot CRM objects of the same `objectType`, consolidating data into `primaryObjectId` (which is preserved) and deleting `objectIdToMerge`; this operation is permanent and irreversible.\"},{\"slug\":\"HUBSPOT_MERGE_PRODUCTS\",\"name\":\"Merge products\",\"description\":\"Merges two HubSpot products into one.\"},{\"slug\":\"HUBSPOT_MERGE_QUOTES\",\"name\":\"Merge two quotes of same type\",\"description\":\"Merges two distinct quotes of the same type by consolidating `objectIdToMerge` into `primaryObjectId` (e.g., for combining information or updating terms); this operation is irreversible.\"},{\"slug\":\"HUBSPOT_MERGE_TICKETS\",\"name\":\"Merge tickets\",\"description\":\"Merges two HubSpot tickets into one.\"},{\"slug\":\"HUBSPOT_PARTIALLY_UPDATE_CRM_OBJECT_BY_ID\",\"name\":\"Partially update CRM object by ID\",\"description\":\"Partially updates specified properties of a CRM object (e.g., contact, company, deal) identified by its type and ID, or optionally by a unique property value if `idProperty` is specified.\"},{\"slug\":\"HUBSPOT_PERMANENTLY_DELETE_CONTACT_VIA_GDPR\",\"name\":\"Permanently delete contact via GDPR\",\"description\":\"Permanently deletes a HubSpot contact and all its associated data for GDPR compliance, identifying the contact by its ID or another unique property.\"},{\"slug\":\"HUBSPOT_PUBLISH_MARKETING_EMAIL\",\"name\":\"Publish or send a marketing email\",\"description\":\"Publishes or sends a specified HubSpot marketing email that is valid and ready for sending; requires Marketing Hub Enterprise or the transactional email add-on.\"},{\"slug\":\"HUBSPOT_PURGE_SCHEMA\",\"name\":\"Purge schema by object type\",\"description\":\"Permanently and irreversibly deletes the schema for an existing `objectType` in HubSpot CRM; this deprecated endpoint should be used with extreme caution.\"},{\"slug\":\"HUBSPOT_READ_A_CRM_PROPERTY_BY_NAME\",\"name\":\"Read a CRM property by name\",\"description\":\"Reads a specific CRM property definition for a given HubSpot object type by its internal name.\"},{\"slug\":\"HUBSPOT_READ_ALL_PROPERTIES_FOR_OBJECT_TYPE\",\"name\":\"Read all properties for object type\",\"description\":\"Retrieves definitions and metadata (not actual values) for properties of a specified HubSpot CRM object type (e.g., 'contacts', 'companies', 'deals', or custom objects).\"},{\"slug\":\"HUBSPOT_READ_APAGE_OF_OBJECTS_BY_TYPE\",\"name\":\"Read a page of objects by type\",\"description\":\"Retrieves a paginated list of objects for a specified and valid HubSpot CRM object type (e.g., 'contacts', 'companies', 'deals', or custom ID).\"},{\"slug\":\"HUBSPOT_READ_ASSOCIATIONS_BATCH\",\"name\":\"Batch read associations\",\"description\":\"Tool to batch-read CRM associations (e.g., deals→contacts, deals→companies) for up to 1,000 source record IDs in one request. Use when you need to retrieve associated target IDs and association type metadata for multiple records efficiently, avoiding rate-limit issues from per-record GET calls.\"},{\"slug\":\"HUBSPOT_READ_BATCH_CRM_OBJECT_PROPERTIES\",\"name\":\"Read a batch of CRM object properties\",\"description\":\"Retrieves property definitions (metadata) for a batch of CRM object properties for a specified object type. Returns detailed information about property structure, data types, options, and configuration—not the actual property values of CRM records.\"},{\"slug\":\"HUBSPOT_READ_BATCH_FEEDBACK_SUBMISSIONS_BY_ID_OR_PROPERTY\",\"name\":\"Read batch feedback submissions by id or property\",\"description\":\"Retrieves up to 100 feedback submissions in a batch using their IDs or a specified unique `idProperty`, optionally including specified properties and their history.\"},{\"slug\":\"HUBSPOT_READ_BATCH_OF_CRM_OBJECTS_BY_ID_OR_PROPERTY_VALUES\",\"name\":\"Read batch of crm objects by id or property values\",\"description\":\"Reads a batch of CRM objects of a specified `objectType` using their HubSpot IDs or unique property values from the `inputs` list, allowing retrieval of specific `properties`, their historical values (`propertiesWithHistory`), and filtering by `archived` status.\"},{\"slug\":\"HUBSPOT_READ_BATCH_OF_LINE_ITEMS_BY_ID_OR_PROPERTY_VALUES\",\"name\":\"Read batch of line items by id or property values\",\"description\":\"Retrieves a batch of HubSpot CRM line items by their IDs, or optionally by values of a custom unique property defined in `idProperty`.\"},{\"slug\":\"HUBSPOT_READ_BATCH_OF_QUOTES_BY_PROPERTY_VALUES\",\"name\":\"Read batch of quotes by property values\",\"description\":\"Efficiently retrieves a batch of HubSpot CRM quotes by their IDs (or a specified unique property), optionally including archived quotes, specific properties, and property history.\"},{\"slug\":\"HUBSPOT_READ_BUDGET\",\"name\":\"Read budget\",\"description\":\"Fetches detailed budget (total, spent, remaining) and spend information for a marketing campaign, including an 'order' field for sequencing budget/spend items (0 is oldest).\"},{\"slug\":\"HUBSPOT_READ_CONTACT\",\"name\":\"Read contact\",\"description\":\"Retrieves a HubSpot contact by its ID.\"},{\"slug\":\"HUBSPOT_READ_CONTACTS\",\"name\":\"Read contacts\",\"description\":\"Batch read multiple HubSpot contacts by their IDs or custom identifier property. This action retrieves up to 100 contacts per request using the HubSpot CRM batch read API. You can specify which contact properties to return and optionally include historical values for properties.\"},{\"slug\":\"HUBSPOT_READ_CRM_OBJECT_BY_ID\",\"name\":\"Read crm object by id\",\"description\":\"Retrieves a specific CRM object (e.g., contact, company, deal, ticket) by its ID or a unique property, optionally including specific properties, history, and associations.\"},{\"slug\":\"HUBSPOT_READ_EMAIL\",\"name\":\"ReadEmail Email\",\"description\":\"Call this to retrieve an existing HubSpot email by its `emailId` or an alternative unique `idProperty`.\"},{\"slug\":\"HUBSPOT_READ_FEEDBACK_SUBMISSION_BY_ID\",\"name\":\"Read feedback submission by id\",\"description\":\"Reads a HubSpot feedback submission by its ID, optionally using a custom unique 'idProperty', and allows specifying properties to return including history and associations.\"},{\"slug\":\"HUBSPOT_READ_PROPERTY_GROUP\",\"name\":\"Read a property group\",\"description\":\"Retrieves metadata for a specific property group of a given CRM object type, detailing its structure and attributes, but not the actual property values of CRM objects.\"},{\"slug\":\"HUBSPOT_READ_PROPERTY_GROUPS_FOR_OBJECT_TYPE\",\"name\":\"Read property groups for object type\",\"description\":\"Retrieves all property groups in a single call for a specified HubSpot CRM object type (e.g., 'contacts', 'companies'), returning only the groups themselves, not the individual properties within them.\"},{\"slug\":\"HUBSPOT_REMOVE_ASSET_ASSOCIATION\",\"name\":\"Remove asset association\",\"description\":\"Disassociates an asset from a HubSpot marketing campaign. Supports a wide range of asset types including forms, landing pages, emails, blog posts, workflows, static lists, and more.\"},{\"slug\":\"HUBSPOT_REMOVE_ASSOCIATION\",\"name\":\"Remove association between CRM records\",\"description\":\"Tool to remove all associations between two CRM records using the v4 associations endpoint. Use when unlinking records or cleaning up incorrect associations.\"},{\"slug\":\"HUBSPOT_REMOVE_ASSOCIATION_FROM_SCHEMA\",\"name\":\"Remove association from schema\",\"description\":\"Permanently removes a specified association definition (type) from a HubSpot object's schema, preventing future creations of this association type without affecting existing instances.\"},{\"slug\":\"HUBSPOT_REMOVE_DEAL\",\"name\":\"Remove deal\",\"description\":\"Removes a HubSpot deal by its ID.\"},{\"slug\":\"HUBSPOT_REMOVE_TOKEN_FROM_EVENT_TEMPLATE\",\"name\":\"Remove token from event template\",\"description\":\"Removes a token from a HubSpot event template, preventing its inclusion in new events created from that template.\"},{\"slug\":\"HUBSPOT_RENDER_EVENT_DETAIL_TEMPLATE\",\"name\":\"Render event detail template\",\"description\":\"Renders detailed information for a specific HubSpot CRM timeline event using a predefined event template, ignoring `extraData` references in the template not present in event data.\"},{\"slug\":\"HUBSPOT_RENDER_EVENT_HEADER_OR_DETAIL_AS_HTML\",\"name\":\"Render event header or detail as html\",\"description\":\"Renders an event's header or detail template as HTML for a specified event on the HubSpot CRM timeline, using a given event template ID and event ID.\"},{\"slug\":\"HUBSPOT_REPLACE_ALL_PROPERTIES_OF_PIPELINE\",\"name\":\"Replace all properties of pipeline\",\"description\":\"Overwrites an entire CRM pipeline (specified by `objectType` and `pipelineId`) and all its stages with a new definition, returning the updated pipeline.\"},{\"slug\":\"HUBSPOT_REPLACE_PIPELINE_STAGE_PROPERTIES\",\"name\":\"Replace pipeline stage properties\",\"description\":\"Replaces all properties of a specified pipeline stage; the new `label` must be unique within the pipeline, and if `objectType` is 'deals', the `metadata` must include a 'probability' key.\"},{\"slug\":\"HUBSPOT_RESET_DRAFT\",\"name\":\"Reset draft\",\"description\":\"Resets a marketing email's draft to its currently published (live) version, discarding all unpublished changes; the email must have a live version to revert to.\"},{\"slug\":\"HUBSPOT_RESTORE_EMAIL_REVISION\",\"name\":\"Restore a revision of a marketing email to draft state\",\"description\":\"Restores a specific revision of a marketing email to a DRAFT state, overwriting any existing draft.\"},{\"slug\":\"HUBSPOT_RESTORE_MARKETING_EMAIL_REVISION\",\"name\":\"Restore a revision of a marketing email\",\"description\":\"Restores a specific, existing, non-active revision of a marketing email to become the new live version for that email.\"},{\"slug\":\"HUBSPOT_RETRIEVE_ALL_OBJECT_SCHEMAS\",\"name\":\"Retrieve all object schemas\",\"description\":\"Retrieves all object schema definitions (not data records) for a HubSpot account, supporting retrieval of either active or archived schemas.\"},{\"slug\":\"HUBSPOT_RETRIEVE_ALL_PIPELINES_FOR_SPECIFIED_OBJECT_TYPE\",\"name\":\"Retrieve all pipelines for specified object type\",\"description\":\"Retrieves all pipelines in HubSpot for a specified CRM object type, such as deals or tickets.\"},{\"slug\":\"HUBSPOT_RETRIEVE_CALLING_SETTINGS_FOR_APP\",\"name\":\"Retrieve calling settings for app\",\"description\":\"Retrieves the read-only calling extension settings for a specific HubSpot app; the app must exist and have calling extensions configured.\"},{\"slug\":\"HUBSPOT_RETRIEVE_LINE_ITEM_BY_ID\",\"name\":\"Retrieve line item by id\",\"description\":\"Retrieves a HubSpot CRM line item by its ID or a specified unique property (`idProperty`).\"},{\"slug\":\"HUBSPOT_RETRIEVE_LINE_ITEMS\",\"name\":\"Retrieve line items list\",\"description\":\"Fetches a paginated list of HubSpot CRM line items, allowing selection of specific properties (including history), associated object IDs, and filtering by archive status; ensure property and association names are valid HubSpot internal names.\"},{\"slug\":\"HUBSPOT_RETRIEVE_OBJECT_SCHEMA\",\"name\":\"Retrieve existing object schema\",\"description\":\"Fetches the detailed schema definition for a specified, existing standard or custom HubSpot CRM object type; this action is read-only and does not create or modify schemas.\"},{\"slug\":\"HUBSPOT_RETRIEVE_OWNER_BY_ID_OR_USER_ID\",\"name\":\"Retrieve owner by ID or user ID\",\"description\":\"Retrieves a specific HubSpot CRM owner by their ID, with options to specify ID type (owner or user) and to include archived records.\"},{\"slug\":\"HUBSPOT_RETRIEVE_OWNERS\",\"name\":\"Retrieve owners\",\"description\":\"Retrieves a list of all owners in the HubSpot CRM, including their ID, first name, last name, email, and user ID.\"},{\"slug\":\"HUBSPOT_RETRIEVE_PAGE_OF_CRM_OWNERS\",\"name\":\"Retrieve page of crm owners\",\"description\":\"Retrieves a paginated list of CRM owners from HubSpot, optionally filtering by email or archived status.\"},{\"slug\":\"HUBSPOT_RETRIEVE_PIPELINE_STAGE_BY_ID\",\"name\":\"Retrieve pipeline stage by id\",\"description\":\"Fetches detailed properties and metadata (e.g., label, display order, custom properties) for a specific stage within a HubSpot CRM pipeline, identified by its `objectType`, `pipelineId`, and `stageId`.\"},{\"slug\":\"HUBSPOT_RETRIEVE_PIPELINE_STAGES\",\"name\":\"Retrieve pipeline stages\",\"description\":\"Fetches all stages for a specified HubSpot CRM object type and pipeline ID.\"},{\"slug\":\"HUBSPOT_RETRIEVE_TIMELINE_EVENT_BY_IDS\",\"name\":\"Retrieve timeline event by ids\",\"description\":\"Retrieves a specific HubSpot CRM timeline event by its application ID, event template ID, and event ID, returning event details including timestamp, tokens, and associated object information.\"}]},{\"slug\":\"linear\",\"name\":\"Linear\",\"description\":\"Linear is a streamlined issue tracking and project planning tool for modern teams, featuring fast workflows, keyboard shortcuts, and GitHub integrations\",\"logo\":\"https://logos.composio.dev/api/linear\",\"rank\":14,\"tools\":[{\"slug\":\"LINEAR_ARCHIVE_ISSUE\",\"name\":\"Archive issue\",\"description\":\"Archives an existing Linear issue by its ID, removing it from active views while preserving its data for future reference. Use this action when you need to remove an issue from active work without permanently deleting it — for example, when an issue is no longer relevant, was created by mistake, or has been superseded by another issue. Archiving is reversible via the unarchive mutation, unlike permanent deletion. This action is irreversible through the API once completed, though issues can be manually unarchived in the Linear UI or via the issueUnarchive mutation.\"},{\"slug\":\"LINEAR_ARCHIVE_PROJECT\",\"name\":\"Archive Project\",\"description\":\"Archives an existing Linear project by its UUID, removing it from active views. Use this action when you need to mark a completed or obsolete project as archived. Archiving is reversible (projects can be unarchived later), but confirm the project name with the user before executing, especially in bulk operations.\"},{\"slug\":\"LINEAR_ARCHIVE_PROJECT_UPDATE\",\"name\":\"Archive Project Update\",\"description\":\"Archives a project update in Linear, hiding it from the default view while preserving its data. Use this action when you need to clean up old or obsolete project status updates without permanently deleting them. Archived updates can be unarchived later if needed. This action is irreversible only in the sense that the project update will be hidden from active views until explicitly unarchived.\"},{\"slug\":\"LINEAR_CREATE_ATTACHMENT\",\"name\":\"Create attachment\",\"description\":\"Creates a new attachment and associates it with a specific, existing Linear issue.\"},{\"slug\":\"LINEAR_CREATE_COMMENT_REACTION\",\"name\":\"Add reaction to comment\",\"description\":\"Tool to add a reaction to an existing Linear comment. Use when you want to programmatically react to a comment on an issue.\"},{\"slug\":\"LINEAR_CREATE_LINEAR_COMMENT\",\"name\":\"Create a comment\",\"description\":\"Creates a new comment on a specified Linear issue. This action modifies shared workspace data and is not reversible — confirm the target issue and comment content before executing.\"},{\"slug\":\"LINEAR_CREATE_LINEAR_ISSUE\",\"name\":\"Create linear issue\",\"description\":\"Creates a new issue in a specified Linear project and team, requiring team_id and title, and allowing optional properties like description, assignee, state, priority, cycle, and due date. All UUID parameters (state_id, assignee_id, cycle_id, label_ids, project_id) must belong to the same team as team_id. The created issue's id is returned in data.id — capture it for use as parent_id in sub-issues or follow-up operations. No template_id field exists; expand templates manually into title and description before calling.\"},{\"slug\":\"LINEAR_CREATE_LINEAR_ISSUE_RELATION\",\"name\":\"Create issue relation\",\"description\":\"Create a relationship between two Linear issues using the issueRelationCreate mutation. Use this to establish connections like 'blocks', 'duplicate', or 'related' between issues.\"},{\"slug\":\"LINEAR_CREATE_LINEAR_LABEL\",\"name\":\"Create a label\",\"description\":\"Creates a new label in Linear for a specified team, used to categorize and organize issues. Label names must be unique within each team. If a label with the same name already exists, the existing label will be returned. Both new and existing labels return the same object structure; check the label's `createdAt` or compare IDs to determine if creation occurred.\"},{\"slug\":\"LINEAR_CREATE_LINEAR_PROJECT\",\"name\":\"Create Project\",\"description\":\"Creates a new Linear project with specified name and team associations.\"},{\"slug\":\"LINEAR_CREATE_PROJECT_MILESTONE\",\"name\":\"Create Project Milestone\",\"description\":\"Tool to create a project milestone in Linear with a name and optional target date and sort order. Use when you need to add milestones to track progress within a project.\"},{\"slug\":\"LINEAR_CREATE_PROJECT_UPDATE\",\"name\":\"Create Project Update\",\"description\":\"Tool to create a project status update post for a Linear project. Use when you need to post progress updates, status reports, or announcements for a project.\"},{\"slug\":\"LINEAR_CREATE_TEAM\",\"name\":\"Create Team\",\"description\":\"Creates a new team in Linear with the specified name and key. Use this action when you need to create a new organizational unit or work group in a Linear workspace. Teams are fundamental organizational structures in Linear that group issues, projects, and members together. Once created, the team's key becomes the prefix for all issues created within that team (e.g., 'ENG-123'). IMPORTANT: The key must be unique across the workspace and cannot be changed after creation.\"},{\"slug\":\"LINEAR_DELETE_LINEAR_ISSUE\",\"name\":\"Delete issue\",\"description\":\"Archives an existing Linear issue by its ID, which is Linear's standard way of deleting issues; the operation is idempotent. Archiving is permanent with no built-in undo — confirm the issue identifier and title with the user before executing, especially in bulk operations.\"},{\"slug\":\"LINEAR_GET_ALL_LINEAR_TEAMS\",\"name\":\"Get all teams (Deprecated)\",\"description\":\"DEPRECATED: Use ListLinearTeams instead (returns paginated payloads with members and projects); this tool returns simpler id/name-level data for all teams visible to the connected workspace with no server-side filtering. Match teams on stable team id, not display name, as names are not guaranteed unique. Partial results reflect workspace permission scope, not tool failure. Skip this call if team_id values are already known.\"},{\"slug\":\"LINEAR_GET_ATTACHMENT\",\"name\":\"Download issue attachments\",\"description\":\"Downloads a specific attachment from a Linear issue; the `file_name` must include the correct file extension.\"},{\"slug\":\"LINEAR_GET_COMMENT\",\"name\":\"Get a comment\",\"description\":\"Retrieves a single Linear comment by its unique ID. Returns comprehensive details including the comment body, author, timestamps, associated issue, and thread information. Use this action when you need to fetch details about a specific comment, such as when displaying comment information, checking comment status, or retrieving comment content for processing. The comment ID can be obtained from issue queries, comment lists, or comment creation responses.\"},{\"slug\":\"LINEAR_GET_CURRENT_USER\",\"name\":\"Get current user\",\"description\":\"Gets the currently authenticated user's ID, name, email, and other profile information — this is the account behind the API token, which may be a bot or service account rather than a human user. Use the returned `id` field (nested under `data.viewer`) for downstream Linear operations requiring user ID filtering. To search or compare other workspace members, use LINEAR_LIST_LINEAR_USERS instead.\"},{\"slug\":\"LINEAR_GET_CYCLES_BY_TEAM_ID\",\"name\":\"Get cycles by team ID\",\"description\":\"Retrieves all cycles for a specified Linear team ID; cycles are time-boxed work periods (like sprints). Results are team-scoped to the given team_id. To identify the active cycle, check that the current date (in UTC) falls between a cycle's startAt and endAt fields; either field may be null. Results may be paginated — follow page_info cursors to retrieve all cycles.\"},{\"slug\":\"LINEAR_GET_ISSUE_DEFAULTS\",\"name\":\"Get create issue default params\",\"description\":\"Fetches a Linear team's default issue estimate and state, useful for pre-filling new issue forms.\"},{\"slug\":\"LINEAR_GET_LINEAR_ISSUE\",\"name\":\"Get Linear issue\",\"description\":\"Retrieves an existing Linear issue's comprehensive details, including id, identifier, title, description, timestamps, state, team, creator, attachments, comments (with user info and timestamps, use issue.comments.nodes for comment IDs), subscribers, and due date. Does not include parent, milestone, cycle, or relation graphs—use LINEAR_RUN_QUERY_OR_MUTATION for those. Optional fields (labels, project, state, assignee, cycle) may be null; guard against null when accessing nested properties. Returns null or 'Entity not found' for invalid IDs, cross-workspace IDs, or restricted teams. Rate limit: ~60 req/min; HTTP 429 on excess—apply exponential backoff and respect Retry-After headers.\"},{\"slug\":\"LINEAR_GET_LINEAR_PROJECT\",\"name\":\"Get Linear project\",\"description\":\"Retrieves a single Linear project by its unique identifier. Use when verifying a newly created or updated project, or when fetching detailed project information by ID.\"},{\"slug\":\"LINEAR_GET_PROJECT_UPDATE\",\"name\":\"Get Project Update\",\"description\":\"Retrieves a specific project update by its unique identifier. Use when you need to fetch details about a specific project status update, including the update content, health status, timestamps, and associated project information. This action is useful when verifying a newly created project update or retrieving historical project update information.\"},{\"slug\":\"LINEAR_LIST_COMMENTS\",\"name\":\"List comments\",\"description\":\"Lists comments from Linear workspace accessible to the authenticated user. Use this action when you need to retrieve comments for analysis, reporting, or tracking discussions across issues. The response includes comment content, timestamps, author information, and associated issue details. Supports pagination for large result sets.\"},{\"slug\":\"LINEAR_LIST_ISSUE_DRAFTS\",\"name\":\"List issue drafts\",\"description\":\"Tool to list issue drafts. Use when you need to fetch draft issues for review or further editing. Check `pageInfo.hasNextPage` in the response to determine if additional drafts exist beyond the current page.\"},{\"slug\":\"LINEAR_LIST_ISSUES_BY_TEAM_ID\",\"name\":\"List issues by team ID\",\"description\":\"Tool to list all issues for a specific Linear team, scoped by team ID. Use when you need to retrieve issues belonging to a particular team without fetching workspace-wide issues. This is more efficient than workspace-wide listing followed by client-side filtering.\"},{\"slug\":\"LINEAR_LIST_LINEAR_CYCLES\",\"name\":\"Get all cycles\",\"description\":\"Retrieves all cycles (time-boxed sprint iterations) org-wide from the Linear account; no filters applied. In large multi-team workspaces this produces heavy responses — filter client-side by team ID and date range using each cycle's startsAt/endsAt fields. Cycles are team-scoped; always group by team ID to avoid mixing sprints across teams. To identify the active sprint, verify the current UTC timestamp falls between startsAt and endsAt, and handle null startsAt/endsAt defensively. Timestamps are UTC. Results may be paginated; follow pageInfo.endCursor and hasNextPage until hasNextPage is false to avoid truncated lists.\"},{\"slug\":\"LINEAR_LIST_LINEAR_ISSUES\",\"name\":\"List Linear issues\",\"description\":\"Lists non-archived Linear issues; if project_id is not specified, issues from all accessible projects are returned. Can filter by assignee_id. Only project_id and assignee_id server-side filters are supported; label, state, team, cycle, or date filters must be done client-side or via LINEAR_RUN_QUERY_OR_MUTATION. Response is a flat issues array plus page_info object (not GraphQL nodes/pageInfo). Fields like cycle membership, dueDate, completedAt, comments, and attachments are absent; use LINEAR_GET_LINEAR_ISSUE for enrichment. state and labels are nested objects (labels as labels.nodes array). Response order is not guaranteed; sort client-side after collecting all pages. No team_id filter; scope by project_id or use LINEAR_RUN_QUERY_OR_MUTATION.\"},{\"slug\":\"LINEAR_LIST_LINEAR_LABELS\",\"name\":\"Get labels\",\"description\":\"Retrieves labels from Linear. If team_id is provided, returns labels for that specific team; if omitted, returns all labels across the workspace. Label names are not unique across teams — always use returned IDs, not names, and track each label ID with its team ID. In large workspaces, results may paginate; follow pageInfo.hasNextPage and pageInfo.endCursor to retrieve all labels.\"},{\"slug\":\"LINEAR_LIST_LINEAR_PROJECTS\",\"name\":\"List linear projects\",\"description\":\"Retrieves all projects from the Linear account. Returns a flat array (not a GraphQL connection) with fields id and name; use LINEAR_RUN_QUERY_OR_MUTATION for progress, state, issues, or team linkage. No server-side filtering: all workspace projects are returned regardless of team or name — filter client-side. Multiple projects can share identical names; always confirm project_id before downstream use. Results are permission-scoped to the connected user. Pagination: loop while page_info.hasNextPage is true, passing page_info.endCursor as after, or results will be silently truncated. HTTP 429 may occur in large workspaces; apply exponential backoff between calls.\"},{\"slug\":\"LINEAR_LIST_LINEAR_STATES\",\"name\":\"List Linear states\",\"description\":\"Retrieves all workflow states for a specified team in Linear, representing the stages an issue progresses through in that team's workflow. Returned state IDs are team-scoped — never reuse a stateId across different teams, as this causes validation errors or 'Entity not found' failures in tools like LINEAR_UPDATE_ISSUE. State names (e.g., 'Done', 'In Progress') are non-unique across teams; always resolve names to IDs via this tool for the specific team_id before using them in filters or mutations. Uses cursor-based pagination via pageInfo.hasNextPage and endCursor; iterate until hasNextPage is false to avoid missing states in large workspaces. Always fetch fresh state IDs rather than hardcoding or reusing stale values.\"},{\"slug\":\"LINEAR_LIST_LINEAR_TEAMS\",\"name\":\"Get teams\",\"description\":\"Retrieves all teams with their members and projects. Use stable team IDs or keys (not display names) for subsequent operations — names are non-unique. Results reflect only teams visible to the authenticated token scope; missing teams or members indicate permission limits. Large workspaces paginate via pageInfo.hasNextPage/endCursor — incomplete pagination silently drops teams or members. Members may belong to multiple teams; deduplicate user IDs when aggregating. Use LINEAR_GET_ALL_LINEAR_TEAMS instead when only identifiers are needed.\"},{\"slug\":\"LINEAR_LIST_LINEAR_USERS\",\"name\":\"List Linear users\",\"description\":\"Lists all workspace users (not team-scoped) with their IDs, names, emails, and active status. Display names are non-unique — use email to disambiguate before extracting an ID. Only assign users with `active: true`. Returned IDs are UUID strings; pass them as-is to fields like `assignee_id` — never substitute names, emails, or tokens. When joining with other tools, always join on IDs.\"},{\"slug\":\"LINEAR_LIST_PROJECT_UPDATES\",\"name\":\"List project updates\",\"description\":\"Retrieves all project updates from the Linear workspace. Project updates are status posts written by team members to communicate project progress, blockers, and health. Use when you need to fetch project update history, track project health over time, or review team communication. Returns a paginated list with fields including id, body, health, createdAt, url, user, and project. Results are permission-scoped to the connected user — only updates from accessible projects are returned. Pagination: loop while page_info.hasNextPage is true, passing page_info.endCursor as after, or results will be silently truncated. HTTP 429 may occur in large workspaces; apply exponential backoff between calls.\"},{\"slug\":\"LINEAR_REMOVE_ISSUE_LABEL\",\"name\":\"Remove label from Linear issue\",\"description\":\"Removes a specified label from an existing Linear issue using their IDs; successful even if the label isn't on the issue. Operation is irreversible — obtain explicit user approval before executing. Use this tool instead of LINEAR_UPDATE_ISSUE to avoid replacing the entire label set.\"},{\"slug\":\"LINEAR_REMOVE_REACTION\",\"name\":\"Remove reaction from comment\",\"description\":\"Tool to remove a reaction on a comment. Use when you have a reaction ID and need to delete it.\"},{\"slug\":\"LINEAR_RESOLVE_COMMENT\",\"name\":\"Resolve comment\",\"description\":\"Marks a Linear comment as resolved. This action is used when a comment thread or discussion has been addressed and should be marked as complete. Use this action when you need to resolve a comment after addressing the feedback or discussion it represents. The comment remains visible but is marked as resolved with a timestamp and the resolving user's information.\"},{\"slug\":\"LINEAR_RUN_QUERY_OR_MUTATION\",\"name\":\"Run Query or Mutation\",\"description\":\"Execute any GraphQL query or mutation against Linear's API. USE WHEN: No dedicated action exists, need complex filtering, custom fields, or schema discovery. *** INTROSPECTION FIRST - NEVER GUESS FIELD NAMES *** Run introspection before unknown operations: - query { __type(name: \\\"Issue\\\") { fields { name } } } - query { __type(name: \\\"Mutation\\\") { fields { name } } } Linear uses nested objects (project { id }), NOT scalar IDs (projectId). KEY: All IDs are UUIDs. Filter: { field: { eq: value } }. Pagination: nodes[] + pageInfo.\"},{\"slug\":\"LINEAR_SEARCH_ISSUES\",\"name\":\"Search Linear issues\",\"description\":\"Search Linear issues using full-text search across identifier, title, and description. Use when you need to find issues by keywords or specific identifiers. Note: This endpoint only supports full-text search; for structured filtering by team, project, assignee, state, or labels, use LIST_ISSUES_BY_TEAM_ID instead.\"},{\"slug\":\"LINEAR_UNARCHIVE_PROJECT_UPDATE\",\"name\":\"Unarchive Project Update\",\"description\":\"Unarchive a previously archived project update in Linear. Use this action when you need to restore an archived project update to make it visible and active again. Archived project updates are hidden from normal views but can be restored using this action. Use when a project update was archived by mistake or needs to be brought back into active use.\"},{\"slug\":\"LINEAR_UNRESOLVE_COMMENT\",\"name\":\"Unresolve a comment\",\"description\":\"Unresolves a previously resolved Linear comment, marking it as requiring attention again. Use this action when you need to reopen a comment thread that was previously marked as resolved. This is useful when additional discussion is needed or the resolution was premature.\"},{\"slug\":\"LINEAR_UPDATE_ISSUE\",\"name\":\"Update issue\",\"description\":\"Updates an existing Linear issue using its `issue_id`; requires at least one other attribute for modification, and all provided entity IDs (for state, assignee, labels, etc.) must be valid UUIDs — only `issueId` accepts key format (e.g., 'ENG-123'). All updated fields are fully overwritten, not merged; omit any field you do not intend to change.\"},{\"slug\":\"LINEAR_UPDATE_LINEAR_COMMENT\",\"name\":\"Update a comment\",\"description\":\"Tool to update an existing Linear comment's body text. Use when you need to edit or modify the content of a previously created comment.\"},{\"slug\":\"LINEAR_UPDATE_LINEAR_PROJECT\",\"name\":\"Update Project\",\"description\":\"Tool to update an existing Linear project. Use when you need to modify project properties like name, description, state, dates, or lead. All fields except project_id are optional - only provide the fields you want to update.\"},{\"slug\":\"LINEAR_UPDATE_PROJECT_UPDATE\",\"name\":\"Update Project Update\",\"description\":\"Tool to update an existing Linear project update post. Use this action when you need to modify a project update's content, health status, or diff visibility settings. All fields except the update ID are optional - only provide the fields you want to update. Changes are immediately visible to all team members viewing the project.\"},{\"slug\":\"LINEAR_UPDATE_TEAM\",\"name\":\"Update Team\",\"description\":\"Updates an existing Linear team's settings and configuration. Use when you need to modify team properties like name, description, key, cycle settings, workflow states, or other team-level configurations. All fields except team_id are optional - only provide the fields you want to update.\"},{\"slug\":\"LINEAR_VALIDATE_CREDENTIAL\",\"name\":\"Validate credential\",\"description\":\"Validates the Linear API credentials by checking if the authentication token can successfully query the current user. Use this action when you need to verify that API credentials are valid before performing other operations, or to confirm that authentication is working correctly. This is particularly useful for connection testing, credential verification flows, or troubleshooting authentication issues.\"}]},{\"slug\":\"airtable\",\"name\":\"Airtable\",\"description\":\"Airtable merges spreadsheet functionality with database power, enabling teams to organize projects, track tasks, and collaborate through customizable views, automation, and integrations for data management\",\"logo\":\"https://logos.composio.dev/api/airtable\",\"rank\":15,\"tools\":[{\"slug\":\"AIRTABLE_CREATE_BASE\",\"name\":\"Create base\",\"description\":\"Creates a new Airtable base with specified tables and fields within a workspace.\"},{\"slug\":\"AIRTABLE_CREATE_COMMENT\",\"name\":\"Create Comment\",\"description\":\"Tool to create a comment on a specific Airtable record. Use when adding comments to records, mentioning collaborators using @[userId] syntax, or creating threaded comment replies. Supports optional parentCommentId for threaded conversations.\"},{\"slug\":\"AIRTABLE_CREATE_FIELD\",\"name\":\"Create Field\",\"description\":\"Creates a new field within a specified table in an Airtable base.\"},{\"slug\":\"AIRTABLE_CREATE_MULTIPLE_RECORDS\",\"name\":\"Create multiple records (Deprecated)\",\"description\":\"DEPRECATED: Use AIRTABLE_CREATE_RECORDS instead. Creates multiple new records in a specified Airtable table.\"},{\"slug\":\"AIRTABLE_CREATE_RECORD\",\"name\":\"Create a record (Deprecated)\",\"description\":\"DEPRECATED: Use CreateRecords instead. Creates a new record in a specified Airtable table; field values must conform to the table's column types.\"},{\"slug\":\"AIRTABLE_CREATE_RECORD_FROM_NATURAL_LANGUAGE\",\"name\":\"Create Record From Natural Language\",\"description\":\"Creates a new record in an Airtable table from a natural language description. Fetches the table schema, uses an LLM to generate the correct field payload, and creates the record with typecast enabled for automatic type conversion.\"},{\"slug\":\"AIRTABLE_CREATE_RECORDS\",\"name\":\"Create records\",\"description\":\"Tool to create multiple records (up to 10) in a specified Airtable table. Use when you need to add new rows to a table with field values. Rate limit: 5 requests per second per base.\"},{\"slug\":\"AIRTABLE_CREATE_TABLE\",\"name\":\"Create table\",\"description\":\"Creates a new table within a specified existing Airtable base, allowing definition of its name, description, and field structure.\"},{\"slug\":\"AIRTABLE_DELETE_COMMENT\",\"name\":\"Delete Comment\",\"description\":\"Tool to delete a comment from a record in an Airtable table. Use when you need to remove an existing comment. Non-admin users can only delete their own comments; Enterprise Admins can delete any comment.\"},{\"slug\":\"AIRTABLE_DELETE_MULTIPLE_RECORDS\",\"name\":\"Delete multiple records\",\"description\":\"Tool to delete up to 10 specified records from a table within an Airtable base. Use when you need to remove multiple records in a single operation.\"},{\"slug\":\"AIRTABLE_DELETE_RECORD\",\"name\":\"Delete Record\",\"description\":\"Permanently deletes a specific record from an existing table within an existing Airtable base.\"},{\"slug\":\"AIRTABLE_GET_ATTACHMENT_INFO\",\"name\":\"Get Attachment Info\",\"description\":\"Retrieves attachment information from a specific field in an Airtable record. Returns metadata including file URLs, sizes, types, and thumbnails for all attachments in the specified field. Use this action when you need to access file metadata or download URLs for attachments stored in Airtable. Note that attachment URLs expire 2 hours after being retrieved from the API.\"},{\"slug\":\"AIRTABLE_GET_BASE_SCHEMA\",\"name\":\"Get Base Schema\",\"description\":\"Retrieves the detailed schema for a specified Airtable base, including its tables, fields, field types, and configurations, using the `baseId`.\"},{\"slug\":\"AIRTABLE_GET_RECORD\",\"name\":\"Get Record\",\"description\":\"Retrieves a specific record from an Airtable table by its record ID. Requires a known, valid record ID obtained from listing records or another API call - this tool cannot search or list records. Use the list records tool to find record IDs. Empty field values are not returned in the response.\"},{\"slug\":\"AIRTABLE_GET_USER_INFO\",\"name\":\"Get user information\",\"description\":\"Retrieves information, such as ID and permission scopes, for the currently authenticated Airtable user from the `/meta/whoami` endpoint.\"},{\"slug\":\"AIRTABLE_LIST_BASES\",\"name\":\"List bases\",\"description\":\"Retrieves all Airtable bases accessible to the authenticated user, which may include an 'offset' for pagination.\"},{\"slug\":\"AIRTABLE_LIST_COMMENTS\",\"name\":\"List Comments\",\"description\":\"Tool to list comments on a specific Airtable record. Use when retrieving comments for a record, with optional pagination support for large comment threads.\"},{\"slug\":\"AIRTABLE_LIST_RECORDS\",\"name\":\"List records\",\"description\":\"Tool to list records from an Airtable table with filtering, sorting, and pagination. Use when you need to retrieve multiple records from a table with optional query parameters.\"},{\"slug\":\"AIRTABLE_UPDATE_COMMENT\",\"name\":\"Update Comment\",\"description\":\"Tool to update an existing comment on a specific Airtable record. Use when modifying comment text or updating user mentions using @[userId] syntax. API users can only update comments they have created.\"},{\"slug\":\"AIRTABLE_UPDATE_FIELD\",\"name\":\"Update Field\",\"description\":\"Updates a field's name or description in an Airtable table. Use this action to modify field metadata without changing the field's type or options. At least one of 'name' or 'description' must be provided.\"},{\"slug\":\"AIRTABLE_UPDATE_MULTIPLE_RECORDS\",\"name\":\"Update multiple records\",\"description\":\"Tool to update up to 10 records in an Airtable table with selective field modifications. Use when you need to modify multiple existing records or perform upsert operations. Updates are not performed atomically.\"},{\"slug\":\"AIRTABLE_UPDATE_MULTIPLE_RECORDS_PUT\",\"name\":\"Update multiple records (PUT)\",\"description\":\"Tool to destructively update multiple records in Airtable using PUT, clearing unspecified fields. Use when you need to fully replace record data or perform upsert operations. Supports up to 10 records per request.\"},{\"slug\":\"AIRTABLE_UPDATE_RECORD\",\"name\":\"Update record\",\"description\":\"Modifies specified fields of an existing record in an Airtable base and table; the base, table, and record must exist.\"},{\"slug\":\"AIRTABLE_UPDATE_RECORD_PUT\",\"name\":\"Update record (PUT)\",\"description\":\"Updates an existing record in an Airtable base using PUT method. Use when you want to replace all field values, clearing any unspecified fields. For partial updates that preserve unspecified fields, use the PATCH-based update action instead.\"},{\"slug\":\"AIRTABLE_UPDATE_TABLE\",\"name\":\"Update Table\",\"description\":\"Updates the name, description, and/or date dependency settings of a table in Airtable. Use this action to modify table metadata without changing the table's fields or views. At least one of 'name', 'description', or 'dateDependencySettings' must be provided.\"},{\"slug\":\"AIRTABLE_UPLOAD_ATTACHMENT\",\"name\":\"Upload attachment\",\"description\":\"Uploads a file attachment to a specified field in an Airtable record. Use when you need to add a file to an attachment field. The file must be provided as a base64-encoded string.\"}]},{\"slug\":\"codeinterpreter\",\"name\":\"Code Interpreter\",\"description\":\"CodeInterpreter extends Python-based coding environments with integrated data analysis, enabling developers to run scripts, visualize results, and prototype solutions inside supported platforms\",\"logo\":\"https://logos.composio.dev/api/codeinterpreter\",\"rank\":16,\"tools\":[{\"slug\":\"CODEINTERPRETER_CREATE_SANDBOX\",\"name\":\"Create Sandbox\",\"description\":\"Create a sandbox to execute python code in a Jupyter notebook cell. This is useful for agents to communicate, execute code, see output, read files, write files, etc. It's like you own personal computer, but in the cloud. Use /home/user folder to write/read files.\"},{\"slug\":\"CODEINTERPRETER_EXECUTE_CODE\",\"name\":\"Execute Code\",\"description\":\"Execute python code in a sandbox and return any result, stdout, stderr, and error. Use /home/user folder to write/read files. Try to not use plt.show() as the code is executed remotely. Use files for image/chart output instead.\"},{\"slug\":\"CODEINTERPRETER_GET_FILE_CMD\",\"name\":\"Get File\",\"description\":\"Get a file from the sandbox and returns the file. The files should be read from /home/user folder.\"},{\"slug\":\"CODEINTERPRETER_RUN_TERMINAL_CMD\",\"name\":\"Run Terminal Command\",\"description\":\"Run a command in the terminal and returns the stdout, stderr, and error code. Use /home/user folder to write/read files.\"},{\"slug\":\"CODEINTERPRETER_UPLOAD_FILE_CMD\",\"name\":\"Upload File\",\"description\":\"Upload a file to the sandbox environment. The files should be uploaded to the /home/user folder.\"}]},{\"slug\":\"serpapi\",\"name\":\"SerpApi\",\"description\":\"SerpApi provides a real-time API for structured search engine results, allowing developers to scrape, parse, and analyze SERP data for SEO and research\",\"logo\":\"https://logos.composio.dev/api/serpapi\",\"rank\":17,\"tools\":[{\"slug\":\"SERPAPI_BAIDU_SEARCH\",\"name\":\"Search Baidu with Query\",\"description\":\"Search Baidu (Chinese search engine) and retrieve search results. Requires a search query string in the 'q' parameter. Returns organic search results, answer boxes, and pagination info in JSON format.\"},{\"slug\":\"SERPAPI_BING_MAPS\",\"name\":\"Bing Maps Search\",\"description\":\"Tool to scrape Bing Maps results using SerpApi. Use when you need to find local businesses, places, or get detailed location information including addresses, phone numbers, ratings, reviews, and more. Supports searching by query or specific place ID.\"},{\"slug\":\"SERPAPI_BING_SEARCH\",\"name\":\"Bing Search\",\"description\":\"Retrieve Bing Search Engine Results via SerpAPI (requires active SerpAPI connection; if unavailable, use COMPOSIO_SEARCH_WEB or COMPOSIO_SEARCH_NEWS). Consumes SerpAPI credits per call; throttle to ~1–2 calls/second and apply exponential backoff on HTTP 429. Supports query, location, language, and device parameters. Set `location`, `mkt`, or `cc` explicitly when local relevance matters — result ranking is highly sensitive to localization.\"},{\"slug\":\"SERPAPI_DUCK_DUCK_GO_LIGHT_SEARCH\",\"name\":\"DuckDuckGo Light Search\",\"description\":\"Tool to access the world's fastest DuckDuckGo Search API via SerpApi. Scrapes DuckDuckGo search results in JSON format with critical data for faster response times, without extra-rich results. Use when you need quick DuckDuckGo search results with essential information. Supports location-based searches, date filtering, and pagination (15 results per page).\"},{\"slug\":\"SERPAPI_DUCK_DUCK_GO_MAPS\",\"name\":\"DuckDuckGo Maps search\",\"description\":\"Scrapes DuckDuckGo Maps results via SerpApi. Use when searching for location-based information like businesses, restaurants, or services in a specific geographic area. Returns structured data including ratings, reviews, addresses, operating hours, and contact information.\"},{\"slug\":\"SERPAPI_DUCK_DUCK_GO_SEARCH\",\"name\":\"DuckDuckGo search\",\"description\":\"Performs a DuckDuckGo search via SerpApi to retrieve SERP data, including organic results, ads, and structured information. Requires a valid SerpApi connection configured in Composio. Results may be localized by region by default.\"},{\"slug\":\"SERPAPI_EBAY_SEARCH\",\"name\":\"eBay Search\",\"description\":\"Retrieve eBay Search Results via SerpApi (requires active SerpApi connected account). Supports parameters like nkw (query), location, etc. Returns product SERP data in JSON format. Listing prices and fees may be incomplete or inconsistent; verify total cost on the source page before comparing results.\"},{\"slug\":\"SERPAPI_EVENT_SEARCH\",\"name\":\"Search Google Events\",\"description\":\"Searches for events (e.g., concerts, festivals, conferences) by query, retrieving structured data from Google's event search results via the SerpApi Google Events engine.\"},{\"slug\":\"SERPAPI_FINANCE_SEARCH\",\"name\":\"Search finance\",\"description\":\"Retrieves structured financial information (e.g., company data, stock details, market trends, news) from Google Finance via SERP API based on a query. Requires active SerpApi credentials. Empty results for delisted, illiquid, or newly listed assets are valid 'no data' responses. High query volumes may trigger HTTP 429 rate limits; apply backoff on retries.\"},{\"slug\":\"SERPAPI_GET_AVAILABLE_LOCATION_OPTIONS_FOR_GOOGLE_SEARCHES\",\"name\":\"Get Location Options\",\"description\":\"Tool to get available location options for Google searches. Returns location names, codes, and identifiers that can be used in the location parameter. Use when you need to find valid location values for search queries.\"},{\"slug\":\"SERPAPI_GET_FACEBOOK_PROFILE\",\"name\":\"Get Facebook profile information\",\"description\":\"Tool to retrieve public information from a Facebook profile or page using SerpAPI. Use when you need to fetch profile details, bio, photos, followers, ratings, or contact information.\"},{\"slug\":\"SERPAPI_GET_GOOGLE_ABOUT_THIS_RESULT\",\"name\":\"Get Google About This Result\",\"description\":\"Tool to get Google 'About this result' information for a website. Use when you need detailed information about a specific URL including company details, social profiles, web citations, and reviews.\"},{\"slug\":\"SERPAPI_GET_GOOGLE_HOTELS_AUTOCOMPLETE_SUGGESTIONS\",\"name\":\"Get Google Hotels Autocomplete\",\"description\":\"Tool to get autocomplete suggestions for Google Hotels destination searches. Use when users need to search for hotel destinations, properties, or locations before performing a full hotel search.\"},{\"slug\":\"SERPAPI_GET_GOOGLE_IMAGES_RELATED_CONTENT\",\"name\":\"Get Google Images Related Content\",\"description\":\"Get related content for a specific Google Images result. Requires a related_content_id obtained from a Google Images search. Use when you need to find similar images or related visual content for a particular image.\"},{\"slug\":\"SERPAPI_GET_GOOGLE_PATENT_DETAILS\",\"name\":\"Get Google Patent Details\",\"description\":\"Tool to retrieve detailed information about a specific patent or scholar document from Google Patents via SerpApi. Use when you need patent details, claims, citations, inventors, assignees, legal events, or scholar publication information.\"},{\"slug\":\"SERPAPI_GET_SEARCH_ARCHIVE\",\"name\":\"Get Search Archive\",\"description\":\"Tool to retrieve results from a previous async search using its search ID. Use when you need to fetch results from searches submitted with async=true. Searches can be retrieved up to 31 days after completion.\"},{\"slug\":\"SERPAPI_GOOGLE_DOMAINS_LIST\",\"name\":\"Google Domains List\",\"description\":\"Retrieve the list of supported Google domains for search queries.\"},{\"slug\":\"SERPAPI_GOOGLE_FORUMS_SEARCH\",\"name\":\"Google Forums Search\",\"description\":\"Tool to scrape forum results from Google's Forums Platform using SerpApi. Use when you need to search forum discussions, get forum titles, dates, links, answers with voting data, and related searches.\"},{\"slug\":\"SERPAPI_GOOGLE_JOBS_SEARCH\",\"name\":\"Google Jobs Search\",\"description\":\"Retrieve Google Jobs Search Results via SerpApi. Returns job SERP data in JSON; key attributes like `work_from_home`, `posted_at`, `salary`, and `schedule_type` are nested under `detected_extensions` per job object and are often absent — treat as optional. Results may include stale postings; verify recency via `detected_extensions.posted_at`. Supports pagination, location filtering, and remote-job filtering.\"},{\"slug\":\"SERPAPI_GOOGLE_LENS_SEARCH\",\"name\":\"Google Lens search\",\"description\":\"Performs reverse image search using Google Lens to find visually similar images, products, and related content. Use when you need to identify objects, find similar products, or get information about images. Requires a publicly accessible image URL.\"},{\"slug\":\"SERPAPI_GOOGLE_LIGHT_SEARCH\",\"name\":\"Google Light Search\",\"description\":\"Retrieve Google Light Search Results via SerpApi. Requires an active SerpApi connection. Supports q, location, gl, hl, and other SERP parameters. Returns lightweight JSON SERP data; results are in organic_results (handle missing/empty gracefully). Snippets are shallow — follow citation URLs with BROWSER_TOOL_FETCH_WEBPAGE for full content. Rate limit: HTTP 429 under heavy use; keep to ~1–2 requests/sec with exponential backoff on retry.\"},{\"slug\":\"SERPAPI_GOOGLE_MAPS_POSTS\",\"name\":\"Google Maps Posts\",\"description\":\"Scrapes Google Maps Posts for a business location via SerpApi. Extracts local posts published by business owners including titles, descriptions, links, images, and publication dates. Returns 10 posts per page with pagination support.\"},{\"slug\":\"SERPAPI_GOOGLE_MAPS_SEARCH\",\"name\":\"Google maps search\",\"description\":\"Performs a Google Maps search via SERP API. Takes a query, optionally using specific GPS coordinates and pagination, returning structured location data.\"},{\"slug\":\"SERPAPI_GOOGLE_PLAY_PRODUCT\",\"name\":\"Google Play Product Search\",\"description\":\"Tool to retrieve detailed Google Play product information using SerpApi. Supports apps, movies, TV shows, audiobooks, and books. Use when you need product details, ratings, reviews, or media for Google Play Store items.\"},{\"slug\":\"SERPAPI_GOOGLE_SCHOLAR_AUTHOR\",\"name\":\"Google Scholar Author Profile\",\"description\":\"Scrapes full Google Scholar Author page including articles, citations, metrics, and co-authors. Use when you need detailed information about a specific researcher's publications and academic profile.\"},{\"slug\":\"SERPAPI_GOOGLE_SCHOLAR_CITE\",\"name\":\"Google Scholar Cite\",\"description\":\"Scrapes full Google Scholar Citations with multiple citation formats. Retrieves MLA, APA, Chicago, Harvard, and Vancouver style citations along with download links for BibTeX, EndNote, RefMan, and RefWorks. Use when you need formatted citations for a specific research paper identified by its Google Scholar ID.\"},{\"slug\":\"SERPAPI_GOOGLE_VIDEOS_LIGHT\",\"name\":\"Google Videos Light Search\",\"description\":\"Tool to scrape Google Videos results using SerpApi's ultra-fast Google Videos Light API. Use when you need video titles, links, thumbnails, snippets, upload dates, and durations from Google Videos search. This lighter version excludes rich results for faster response times.\"},{\"slug\":\"SERPAPI_HOTEL_SEARCH\",\"name\":\"Hotel Search\",\"description\":\"Retrieve Google Hotel Search Results. Supports parameters like q (query), location, etc. Returns hotel SERP data in JSON format.\"},{\"slug\":\"SERPAPI_IMAGE_SEARCH\",\"name\":\"Image search\",\"description\":\"Searches Google Images via SERP API for a given query, returning structured image results. Requires a valid SerpAPI authenticated connection. The number of results can be controlled using the 'num' parameter (1-100). If not specified, it defaults to 20 results.\"},{\"slug\":\"SERPAPI_NAVER_SEARCH\",\"name\":\"Naver Search\",\"description\":\"Tool to search Naver (South Korea's leading search engine) for Korean web results and content. Use when searching for Korean-language content, news, videos, images, or shopping results. Supports various search categories and filtering options including time periods and sorting.\"},{\"slug\":\"SERPAPI_NEWS_SEARCH\",\"name\":\"Search for news articles\",\"description\":\"Searches Google News (via SerpApi, `tbm=nws`) for articles matching a query; precise key-phrase queries yield best results. Auth is handled via SerpApi connection — do not pass api_key as a parameter. Results returned under `news_results` field (~10 items/page). Rate-limited: throttle to ~1 req/s; HTTP 429 on bursts — apply exponential backoff (1s, 2s, 4s). Covers news content only; pair with SERPAPI_SEARCH for broader web sources. Headlines/snippets only — use EXA_GET_CONTENTS_ACTION for full article text.\"},{\"slug\":\"SERPAPI_OPEN_TABLE_REVIEWS\",\"name\":\"OpenTable Reviews Search\",\"description\":\"Tool to scrape OpenTable restaurant reviews using SerpApi. Retrieves user reviews, ratings, restaurant responses, images, and AI-generated summaries. Use when you need detailed review data for OpenTable restaurants.\"},{\"slug\":\"SERPAPI_PLAY_SEARCH\",\"name\":\"Google Play Search\",\"description\":\"Retrieve Google Play Store Search Results. Supports parameters like q (query), gl, hl, etc. Returns app SERP data in JSON format.\"},{\"slug\":\"SERPAPI_SCHOLAR_SEARCH\",\"name\":\"Search Google Scholar\",\"description\":\"Searches Google Scholar via SerpApi for academic literature, papers, articles, and citations based on a query. Response results may include `inline_links.cited_by` and `resources` (PDF links), but these fields are not guaranteed; check for their existence and type before accessing.\"},{\"slug\":\"SERPAPI_SEARCH\",\"name\":\"Serp API search\",\"description\":\"Performs a real-time Google search via the SerpAPI connection (must be active; if unavailable, use COMPOSIO_SEARCH_WEB or other COMPOSIO_SEARCH_* tools). Returns ~10 organic results per page nested under results.organic_results — not a flat list; handle missing/empty arrays. Paginate via start offset or serpapi_pagination.next; max num=100; stop when domains plateau to avoid quota exhaustion. Rate-limited: throttle to 1–2 req/s; HTTP 429 on bursts — apply exponential backoff (1s, 2s, 4s). Derive result rank from array index (absolute rank = start + index; no explicit rank field). Lacks date-bound controls — embed recency terms in query or use SERPAPI_NEWS_SEARCH for time-sensitive queries. Results may include ads and sponsored content; prefer authoritative domains. Use vertical tools (SERPAPI_IMAGE_SEARCH, SERPAPI_NEWS_SEARCH, SERPAPI_YOU_TUBE_SEARCH, SERPAPI_GOOGLE_JOBS_SEARCH) for specialized query types.\"},{\"slug\":\"SERPAPI_SEARCH_APPLE_APP_STORE\",\"name\":\"Search Apple App Store\",\"description\":\"Tool to search Apple App Store for iOS and Mac apps. Returns app details including ratings, reviews, descriptions, and developer information. Use when you need to find apps on the Apple App Store or get information about specific apps.\"},{\"slug\":\"SERPAPI_SEARCH_GOOGLE_IMAGES_LIGHT\",\"name\":\"Google Images Light Search\",\"description\":\"Tool to scrape Google Images results using SerpApi's Google Images Light API. Use when you need fast image search with thumbnails, titles, sources, and original image URLs from Google Images. This lightweight version provides faster response times compared to the full Google Images API.\"},{\"slug\":\"SERPAPI_SEARCH_GOOGLE_LOCAL_SERVICES\",\"name\":\"Search Google Local Services\",\"description\":\"Search Google Local Services for service providers like electricians, plumbers, HVAC technicians, and more. Use when you need to find local service professionals with Google's guaranteed badge and verified business information.\"},{\"slug\":\"SERPAPI_SEARCH_YELP\",\"name\":\"Search Yelp businesses\",\"description\":\"Tool to search Yelp for businesses and places using SerpApi. Returns business listings with ratings, reviews, hours, contact information, and location details. Use when you need to find local businesses, restaurants, services, or read customer reviews.\"},{\"slug\":\"SERPAPI_SHOPPING_SEARCH\",\"name\":\"Shopping search\",\"description\":\"Searches Google Shopping via SerpAPI for a specific product, returning structured listings in results.shopping_results. Requires an active SerpAPI connection. Response fields such as rating, review_count, extracted_price, and extracted_old_price may be absent; null-check before ranking or computing discounts. Discount percentages in listings may reflect aggregate promotional claims, not per-item pricing.\"},{\"slug\":\"SERPAPI_TRENDS_SEARCH\",\"name\":\"Google Trends search\",\"description\":\"Fetches Google Trends data; returns relative 0–100 interest indices (not absolute volumes) meaningful only when comparing queries within the same request. The `query`'s format (single/multiple terms) must comply with the selected `data_type`.\"},{\"slug\":\"SERPAPI_WALMART_PRODUCT_REVIEWS\",\"name\":\"Walmart Product Reviews\",\"description\":\"Tool to scrape full Walmart product reviews using SerpApi's Walmart Product Reviews API. Retrieves ratings, review text, user information, and helpful votes for a specific product. Use when you need detailed customer feedback and sentiment analysis for Walmart products.\"},{\"slug\":\"SERPAPI_WALMART_SEARCH\",\"name\":\"Walmart Search\",\"description\":\"Retrieve Walmart Search Results. Supports parameters like query, location, store ID, etc. Returns product SERP data in JSON format.\"},{\"slug\":\"SERPAPI_YAHOO_SEARCH\",\"name\":\"Yahoo Search\",\"description\":\"Retrieve Yahoo! Search Engine Results. Supports query, location, language, and device parameters.\"},{\"slug\":\"SERPAPI_YAHOO_VIDEOS\",\"name\":\"Yahoo Videos Search\",\"description\":\"Scrape Yahoo! Videos results with position, title, thumbnail, link, preview, source, duration, date and more. Use when you need to search for video content on Yahoo! Videos.\"},{\"slug\":\"SERPAPI_YANDEX_IMAGES_SEARCH\",\"name\":\"Yandex Images Search\",\"description\":\"Tool to search Yandex Images for image results with advanced filters. Use when searching for images on Yandex with filters like size, color, type, or performing reverse image search.\"},{\"slug\":\"SERPAPI_YANDEX_SEARCH\",\"name\":\"Yandex Search\",\"description\":\"Retrieve Yandex Search Results. Supports parameters like text (query), location, etc. Returns SERP data in JSON format.\"},{\"slug\":\"SERPAPI_YOU_TUBE_SEARCH\",\"name\":\"YouTube Search\",\"description\":\"Retrieve YouTube Search Results. Supports parameters like search_query, location, etc. Returns video SERP data in JSON format.\"}]},{\"slug\":\"jira\",\"name\":\"Jira\",\"description\":\"A tool for bug tracking, issue tracking, and agile project management.\",\"logo\":\"https://logos.composio.dev/api/jira\",\"rank\":18,\"tools\":[{\"slug\":\"JIRA_ADD_ATTACHMENT\",\"name\":\"Add Attachment\",\"description\":\"Uploads and attaches a file to a Jira issue.\"},{\"slug\":\"JIRA_ADD_COMMENT\",\"name\":\"Add Comment\",\"description\":\"Adds a comment using Atlassian Document Format (ADF) for rich text to an existing Jira issue.\"},{\"slug\":\"JIRA_ADD_USERS_TO_PROJECT_ROLE\",\"name\":\"Add Users to Project Role\",\"description\":\"Adds users and optionally groups to a project role.\"},{\"slug\":\"JIRA_ADD_USER_TO_GROUP\",\"name\":\"Add User to Group\",\"description\":\"Adds a user to a Jira group.\"},{\"slug\":\"JIRA_ADD_WATCHER_TO_ISSUE\",\"name\":\"Add Watcher to Issue\",\"description\":\"Adds a user to an issue's watcher list by account ID. Requires the authenticated user to have permission to view the issue and manage watchers; insufficient permissions may result in silent failure or an error response.\"},{\"slug\":\"JIRA_ADD_WORKLOG\",\"name\":\"Add Worklog\",\"description\":\"Tool to add a worklog entry to a Jira issue. Use when logging time spent on an issue.\"},{\"slug\":\"JIRA_ANALYSE_EXPRESSION\",\"name\":\"Analyse Jira Expression\",\"description\":\"Analyses Jira expressions for syntax validation, type checking, and complexity analysis. Use when you need to validate Jira expression syntax before using it in automation rules, custom fields, or workflows.\"},{\"slug\":\"JIRA_ASSIGN_ISSUE\",\"name\":\"Assign Issue\",\"description\":\"Assigns a Jira issue to a user, default assignee, or unassigns; supports email/name lookup.\"},{\"slug\":\"JIRA_BULK_CREATE_ISSUE\",\"name\":\"Bulk Create Issues\",\"description\":\"Creates multiple Jira issues (up to 50 per call) with full feature support including markdown, assignee resolution, and priority handling.\"},{\"slug\":\"JIRA_CHECK_PERMISSIONS\",\"name\":\"Check User Permissions\",\"description\":\"Check user permissions for global and project-level operations in Jira. Use this action to verify whether a user has specific permissions at the system level or within projects. Useful for authorization checks before performing operations, or for auditing user access rights.\"},{\"slug\":\"JIRA_CREATE_BOARD\",\"name\":\"Create Board\",\"description\":\"Creates a new Jira board (kanban, scrum, or agility) with optional filter and location configuration. Use this action when you need to set up a new board for a project or create a personal board for tracking work. The board will organize and visualize issues based on the specified filter or project context.\"},{\"slug\":\"JIRA_CREATE_GROUP\",\"name\":\"Create Group\",\"description\":\"Creates a new group in Jira with the specified name.\"},{\"slug\":\"JIRA_CREATE_ISSUE\",\"name\":\"Create Issue\",\"description\":\"Creates a new Jira issue (e.g., bug, task, story) in a specified project. IMPORTANT: Different Jira projects may have custom required fields beyond the standard ones (summary, project_key, issue_type). If issue creation fails with 'field X is required', use JIRA_GET_CREATE_METADATA_ISSUE_TYPE_FIELDS (requires projectIdOrKey and issueTypeId parameters) to discover available fields for your project, or check your Jira project's configuration. Custom fields can be provided via the 'additional_properties' parameter as a JSON string (e.g., '{\\\"customfield_12345\\\": \\\"value\\\"}'). Rapid bulk creation may trigger HTTP 429 rate limiting; throttle calls and use exponential backoff on 429 responses.\"},{\"slug\":\"JIRA_CREATE_ISSUE_LINK\",\"name\":\"Link Issues\",\"description\":\"Links two Jira issues using a specified link type with optional comment.\"},{\"slug\":\"JIRA_CREATE_JQL_AUTOCOMPLETEDATA\",\"name\":\"Get JQL Autocomplete Data\",\"description\":\"Retrieves JQL autocomplete reference data including reserved words, field names, and function names. Use when building JQL query editors or validating JQL syntax.\"},{\"slug\":\"JIRA_CREATE_PROJECT\",\"name\":\"Create Project\",\"description\":\"Creates a new Jira project with required lead, template, and type configuration.\"},{\"slug\":\"JIRA_CREATE_SPRINT\",\"name\":\"Create Sprint\",\"description\":\"Creates a new sprint on a Jira board with optional start/end dates and goal.\"},{\"slug\":\"JIRA_CREATE_VERSION\",\"name\":\"Create Version\",\"description\":\"Creates a new version for releases or milestones in a Jira project.\"},{\"slug\":\"JIRA_DELETE_ATTACHMENT\",\"name\":\"Delete Attachment\",\"description\":\"Permanently deletes an attachment from Jira by its ID. This action is irreversible — the attachment cannot be recovered once removed. Use this action when you need to remove an unwanted file from a Jira issue.\"},{\"slug\":\"JIRA_DELETE_COMMENT\",\"name\":\"Delete Comment\",\"description\":\"Deletes a specific comment from a Jira issue using its ID and the issue's ID/key; requires user permission to delete comments on the issue.\"},{\"slug\":\"JIRA_DELETE_ISSUE\",\"name\":\"Delete Issue\",\"description\":\"Permanently and irreversibly deletes a Jira issue by its ID or key. Obtain explicit user confirmation before calling.\"},{\"slug\":\"JIRA_DELETE_VERSION\",\"name\":\"Delete Version\",\"description\":\"Deletes a Jira version and optionally reassigns its issues.\"},{\"slug\":\"JIRA_DELETE_WORKLOG\",\"name\":\"Delete Worklog\",\"description\":\"Deletes a worklog from a Jira issue with estimate adjustment options.\"},{\"slug\":\"JIRA_EDIT_ISSUE\",\"name\":\"Edit Issue\",\"description\":\"Updates an existing Jira issue with field values and operations. Supports direct field parameters (summary, description, assignee, priority, etc.) that are merged with the fields parameter. Direct parameters take precedence.\"},{\"slug\":\"JIRA_EVALUATE_JIRA_EXPRESSION\",\"name\":\"Evaluate Jira Expression\",\"description\":\"Tool to evaluate Jira expressions using the enhanced search API. Use when you need to extract or transform data from Jira using Jira expression language. Useful for complex data queries, transformations, and building custom objects from Jira data.\"},{\"slug\":\"JIRA_FETCH_BULK_ISSUES\",\"name\":\"Bulk Fetch Issues\",\"description\":\"Tool to bulk fetch multiple Jira issues by their IDs or keys (max 100 per call). Use when you need to retrieve details for multiple issues efficiently in a single API call.\"},{\"slug\":\"JIRA_FIND_USERS\",\"name\":\"Find Users (Deprecated)\",\"description\":\"DEPRECATED: Use JIRA_FIND_USERS2 instead. Searches for Jira users by email or display name to find account IDs; essential for assigning issues, adding watchers, and other user-related operations. Broad queries may return multiple matches — always disambiguate using full email before selecting an account_id. Results may include app/bot accounts; verify account_type is a human user before use in downstream operations.\"},{\"slug\":\"JIRA_FIND_USERS2\",\"name\":\"Find Users 2\",\"description\":\"Tool to find users in Jira by query string, account ID, or property search. Use when you need to search for users to assign to issues, add as watchers, or perform other user-related operations.\"},{\"slug\":\"JIRA_FIND_USERS_FOR_PICKER\",\"name\":\"Find Users For Picker\",\"description\":\"Find users for picker components by matching query against user attributes like display name and email.\"},{\"slug\":\"JIRA_GET_ALL_GROUPS\",\"name\":\"Get All Groups\",\"description\":\"Retrieves a page of groups from the Jira instance. Useful for resolving correct group names or IDs before passing them to other tools. Some returned groups are system-managed and may be inaccessible via other group operations. Use `start_at`/`max_results` to page through results.\"},{\"slug\":\"JIRA_GET_ALL_ISSUE_TYPE_SCHEMES\",\"name\":\"Get All Issue Type Schemes\",\"description\":\"Retrieves all Jira issue type schemes with optional filtering and pagination.\"},{\"slug\":\"JIRA_GET_ALL_PROJECTS\",\"name\":\"Get all projects\",\"description\":\"Retrieves all visible projects using the modern paginated Jira API with server-side filtering and pagination support. Results reflect only projects the authenticated user can access — small or empty result sets may indicate permission restrictions, not absence of projects. An empty `values` array means no projects matched the filters; relax `query`, `status`, or `categoryId` if unexpected. Project keys are mutable; prefer the stable numeric project ID for durable references in follow-up calls.\"},{\"slug\":\"JIRA_GET_ALL_STATUSES\",\"name\":\"Get Issue Statuses\",\"description\":\"Retrieves all issue statuses associated with workflows from Jira. Returns global statuses that may not be valid for every project or workflow scheme; verify a returned status is applicable to the specific project before use.\"},{\"slug\":\"JIRA_GET_ALL_USERS\",\"name\":\"Get All Users\",\"description\":\"Retrieves all users from the Jira instance including active, inactive, app accounts, and system accounts, with pagination support. On Jira Cloud, fields like `email_address` may be redacted due to privacy settings — never treat them as guaranteed present. Successful responses may silently omit users due to permission restrictions; a smaller-than-expected result set may reflect access limits, not absence of users.\"},{\"slug\":\"JIRA_GET_ATTACHMENT\",\"name\":\"Get Attachment\",\"description\":\"Retrieves the binary content of a Jira attachment by ID. Use when you need to download a specific file attached to an issue.\"},{\"slug\":\"JIRA_GET_ATTACHMENT_META\",\"name\":\"Get Attachment Meta\",\"description\":\"Tool to retrieve Jira attachment settings including upload limits and enabled status. Use when you need to check if attachments are enabled or determine the maximum file size allowed.\"},{\"slug\":\"JIRA_GET_COMMENT\",\"name\":\"Get Comment\",\"description\":\"Retrieves a specific comment by ID from a Jira issue with optional expansions.\"},{\"slug\":\"JIRA_GET_COMPONENTS\",\"name\":\"Get Component\",\"description\":\"Tool to retrieve components from Jira projects with search and filtering. Use when you need to list or find components across projects, optionally filtered by project IDs/keys or search query.\"},{\"slug\":\"JIRA_GET_CREATE_METADATA_ISSUE_TYPE_FIELDS\",\"name\":\"Get Create Field Metadata for Issue Type\",\"description\":\"Tool to retrieve field metadata for a specific issue type in a project. Use this to discover required fields, allowed values, and field configurations before creating issues of a specific type.\"},{\"slug\":\"JIRA_GET_CURRENT_USER\",\"name\":\"Get Current User\",\"description\":\"Retrieves detailed information about the currently authenticated Jira user. The returned `accountId` is the correct identifier for fields like `lead_account_id` in JIRA_CREATE_PROJECT, JIRA_ADD_WATCHER_TO_ISSUE, and JIRA_REMOVE_WATCHER_FROM_ISSUE — never use email or username in those fields.\"},{\"slug\":\"JIRA_GET_DASHBOARDS\",\"name\":\"Get Dashboards\",\"description\":\"Tool to list and search Jira dashboards visible to the current user. Use when you need to discover available dashboards, filter by ownership or favorites, or retrieve dashboard details including permissions and popularity.\"},{\"slug\":\"JIRA_GET_FAVORITE_FILTERS\",\"name\":\"Get Favorite Filters\",\"description\":\"Tool to retrieve favorite filters for the current user. Use when you need to discover which saved filters the user has marked as favorites.\"},{\"slug\":\"JIRA_GET_FIELDS\",\"name\":\"Get fields\",\"description\":\"Tool to retrieve Jira issue fields metadata. Use before editing an issue to discover custom field IDs and names. Custom fields are addressed as customfield_XXXXX in API calls and cf[XXXXX] in JQL; using display names instead causes 400 Unknown field errors. Returns global metadata — cross-reference with JIRA_GET_ISSUE_EDIT_META before editing, as globally visible fields not listed there will also cause 400 errors when sent to JIRA_EDIT_ISSUE. Results are scoped to the authenticated user's permissions, so field sets may differ between users.\"},{\"slug\":\"JIRA_GET_FIELDS_PAGINATED\",\"name\":\"Get custom fields paginated\",\"description\":\"Tool to retrieve Jira fields in pages. Use when you need to filter or page through custom and system fields.\"},{\"slug\":\"JIRA_GET_FILTER\",\"name\":\"Get Filter\",\"description\":\"Retrieves a specific Jira saved filter by ID, including its JQL and sharing metadata, to reuse in subsequent searches. Use when you need to fetch filter details or extract the JQL query to run searches.\"},{\"slug\":\"JIRA_GET_GROUP\",\"name\":\"Get Group\",\"description\":\"Retrieves details of a specific Jira group by name or ID. Use JIRA_GET_ALL_GROUPS to discover valid group names/IDs first. Some system-managed groups may be inaccessible due to permission restrictions even when name/ID is known.\"},{\"slug\":\"JIRA_GET_INFO\",\"name\":\"Get Service Management Info\",\"description\":\"Retrieves runtime information for the Jira Service Management instance. Use when you need to check the version, build date, or license status.\"},{\"slug\":\"JIRA_GET_ISSUE\",\"name\":\"Get Issue\",\"description\":\"Retrieves a Jira issue by ID or key with customizable fields and expansions. Request only needed fields and expansions to avoid large responses. Use specific `customfield_*` keys in `fields` to verify updated values programmatically.\"},{\"slug\":\"JIRA_GET_ISSUE_CREATE_METADATA\",\"name\":\"Get Create Issue Metadata (Deprecated)\",\"description\":\"DEPRECATED: Use JIRA_GET_CREATE_METADATA_ISSUE_TYPE_FIELDS instead. This action wraps the deprecated query-based GET /issue/createmeta endpoint. Tool to retrieve issue creation metadata for Jira projects (available projects, issue types, and required fields).\"},{\"slug\":\"JIRA_GET_ISSUE_EDIT_METADATA\",\"name\":\"Get Issue Edit Meta\",\"description\":\"Tool to retrieve editable fields for a Jira issue. Use before running an edit action to fetch custom field metadata and required fields.\"},{\"slug\":\"JIRA_GET_ISSUE_LINK_TYPES\",\"name\":\"Get Issue Link Types\",\"description\":\"Retrieves all configured issue link types from Jira.\"},{\"slug\":\"JIRA_GET_ISSUE_PICKER_SUGGESTIONS\",\"name\":\"Get issue picker\",\"description\":\"Tool to get issue picker suggestions from Jira. Use when you need to search for issues and get auto-completion suggestions.\"},{\"slug\":\"JIRA_GET_ISSUE_PROPERTY\",\"name\":\"Get Issue Property\",\"description\":\"Retrieves a custom property from a Jira issue by key.\"},{\"slug\":\"JIRA_GET_ISSUE_RESOLUTIONS\",\"name\":\"Get Issue Resolutions\",\"description\":\"Retrieves all available issue resolution types from Jira.\"},{\"slug\":\"JIRA_GET_ISSUE_TYPES\",\"name\":\"Get issue types\",\"description\":\"Retrieves all Jira issue types available to the user using the modern API v3 endpoint; results vary based on 'Administer Jira' global or 'Browse projects' project permissions. Response includes two shapes: global issue types (no scope field) and project-scoped types (include scope.project.id); deduplicate by id, not name. Always use issuetype.id (not display name) when referencing issue types in other API calls to avoid validation errors.\"},{\"slug\":\"JIRA_GET_ISSUE_WATCHERS\",\"name\":\"Get Issue Watchers\",\"description\":\"Retrieves users watching a Jira issue for update notifications. Watcher data access may be restricted by Jira permissions. Returns all watchers; filter client-side by `accountId` to check if a specific user is watching.\"},{\"slug\":\"JIRA_GET_ISSUE_WORKLOGS\",\"name\":\"Get Issue Worklogs (Deprecated)\",\"description\":\"DEPRECATED: Use JIRA_GET_WORKLOG instead. This action is deprecated because it lacks the expand parameter for worklog properties. Use JIRA_GET_WORKLOG which provides the same functionality plus the ability to expand worklog properties using the 'expand' parameter. Legacy description: Retrieves worklogs for a Jira issue with user permission checks.\"},{\"slug\":\"JIRA_GET_JQL_AUTOCOMPLETEDATA\",\"name\":\"Get JQL autocomplete reference data\",\"description\":\"Tool to retrieve JQL autocomplete reference data. Use when you need to discover available JQL fields, functions, and reserved words for building queries.\"},{\"slug\":\"JIRA_GET_JQL_AUTOCOMPLETEDATA_SUGGESTIONS\",\"name\":\"Get JQL autocomplete suggestions\",\"description\":\"Tool to get JQL field auto-complete suggestions. Use when building JQL queries to discover valid field values or predicate options.\"},{\"slug\":\"JIRA_GET_MY_PERMISSIONS\",\"name\":\"Get My Permissions\",\"description\":\"Tool to retrieve the user's permissions in Jira. Use when checking what actions the authenticated user can perform in a specific context (project, issue, or comment).\"},{\"slug\":\"JIRA_GET_MYPREFERENCES_LOCALE\",\"name\":\"Get User Locale Preference\",\"description\":\"Tool to retrieve the locale preference of the currently authenticated Jira user. Use when you need to know the user's language and regional settings.\"},{\"slug\":\"JIRA_GET_PERMISSIONS\",\"name\":\"Get Permissions\",\"description\":\"Tool to retrieve all available Jira permissions. Use when you need to list all permission types that exist in Jira, including project and global permissions.\"},{\"slug\":\"JIRA_GET_PERMITTED_PROJECTS\",\"name\":\"Get Permitted Projects\",\"description\":\"Tool to retrieve projects where the current user has specific permissions. Use when you need to find which projects a user can access with certain permission levels.\"},{\"slug\":\"JIRA_GET_PROJECT\",\"name\":\"Get Project\",\"description\":\"Retrieves details of a Jira project by its ID or key.\"},{\"slug\":\"JIRA_GET_PROJECT_ROLES\",\"name\":\"Get Project Roles\",\"description\":\"Retrieves all available roles for a Jira project. Role IDs are project-specific and must not be reused across projects; call this action per project to obtain correct role IDs.\"},{\"slug\":\"JIRA_GET_PROJECT_TEMPLATES\",\"name\":\"Get Project Templates\",\"description\":\"Retrieves available Jira project templates for creating projects. Returns template keys that can be used with the Create Project action. Use this action when you need to discover valid project template keys before creating a project.\"},{\"slug\":\"JIRA_GET_PROJECT_TYPE\",\"name\":\"Get Project Type\",\"description\":\"Retrieves detailed information about a specific Jira project type by its key. Use when you need to get metadata about project types like software, service desk, business, or product discovery projects.\"},{\"slug\":\"JIRA_GET_PROJECT_VERSIONS\",\"name\":\"Get Project Versions\",\"description\":\"Retrieves all versions for a Jira project with optional expansion. Use version IDs from the response (not names) when setting fixVersions or affectedVersions on issues — submitting names alone causes 400 validation errors.\"},{\"slug\":\"JIRA_GET_RECENT_PROJECTS\",\"name\":\"Get Recent Projects\",\"description\":\"Retrieves a list of projects recently accessed by the authenticated user.\"},{\"slug\":\"JIRA_GET_REMOTE_ISSUE_LINKS\",\"name\":\"Get Issue Remote Links\",\"description\":\"Retrieves links from a Jira issue to external resources.\"},{\"slug\":\"JIRA_GET_SERVER_INFO\",\"name\":\"Get Server Info\",\"description\":\"Tool to retrieve Jira instance server information. Use when you need details about the Jira version, build, deployment type, or server configuration.\"},{\"slug\":\"JIRA_GET_SERVICE_DESK_REQUEST_TYPE_FIELDS\",\"name\":\"Get Service Desk Request Type Fields\",\"description\":\"Tool to retrieve JSM request type field metadata for filling out portal requests. Use when you need to know which fields are required and their valid values.\"},{\"slug\":\"JIRA_GET_SPRINT\",\"name\":\"Get Sprint\",\"description\":\"Retrieves detailed information about a specific sprint by its ID. Use this action when you need to fetch a single sprint's details directly by ID, such as checking sprint status, dates, goal, or metadata. For finding sprint IDs, use JIRA_LIST_SPRINTS first.\"},{\"slug\":\"JIRA_GET_SYSTEM_AVATARS\",\"name\":\"Get System Avatars\",\"description\":\"Tool to retrieve all system avatars for a specific type (issuetype, project, user, or priority). Use when you need to get a list of available default avatars that can be assigned to Jira entities.\"},{\"slug\":\"JIRA_GET_TRANSITIONS\",\"name\":\"Get Transitions\",\"description\":\"Retrieves available workflow transitions for a Jira issue. Always use the numeric `id` from the response when calling JIRA_TRANSITION_ISSUE — transition IDs are project/workflow-specific and must not be hardcoded or reused across different issues or projects. When multiple transitions share similar names, use `id` to disambiguate.\"},{\"slug\":\"JIRA_GET_UNIVERSAL_AVATAR_TYPE_OWNER\",\"name\":\"Get Universal Avatar Type Owner\",\"description\":\"Tool to retrieve all avatars (system and custom) for a specific type and entity in Jira. Use when you need to view available avatar options for projects, issue types, or priorities.\"},{\"slug\":\"JIRA_GET_UNIVERSAL_AVATAR_VIEW_TYPE\",\"name\":\"Get Universal Avatar View Type\",\"description\":\"Tool to retrieve the default avatar image for a specific type (project, issuetype, or priority) from Jira. Use when you need to download the default avatar for a type.\"},{\"slug\":\"JIRA_GET_USER_GROUPS\",\"name\":\"Get User Groups\",\"description\":\"Retrieves all groups for a specific Jira user by account ID. Use this action when you need to check group membership for a particular user, verify permissions, or audit user access. Essential for understanding which groups a user belongs to before performing group-related operations.\"},{\"slug\":\"JIRA_GET_VIEW_TYPE_AVATAR\",\"name\":\"Get Avatar Image\",\"description\":\"Tool to retrieve a specific avatar image by type and ID from Jira. Use when you need to download avatar images for projects, issue types, or priorities.\"},{\"slug\":\"JIRA_GET_VOTES\",\"name\":\"Get Issue Votes\",\"description\":\"Fetches voting details for a Jira issue; requires voting to be enabled in Jira's general settings.\"},{\"slug\":\"JIRA_GET_WORKLOG\",\"name\":\"Get Worklogs\",\"description\":\"Retrieves worklogs for a specified Jira issue.\"},{\"slug\":\"JIRA_LIST_ALL_PROJECTS\",\"name\":\"List All Projects (Deprecated)\",\"description\":\"DEPRECATED: Use JIRA_GET_ALL_PROJECTS instead. Tool to list all projects accessible to the user. Wraps the deprecated GET /project endpoint; prefer the paginated JIRA_GET_ALL_PROJECTS (GET /project/search).\"},{\"slug\":\"JIRA_LIST_BOARDS\",\"name\":\"List Boards\",\"description\":\"Retrieves paginated Jira boards with filtering and sorting options. Use `start_at` and `max_results` together, looping through pages to retrieve all results.\"},{\"slug\":\"JIRA_LIST_COMMENTS\",\"name\":\"List Comments by IDs\",\"description\":\"Tool to retrieve multiple comments by their IDs in a single request. Use when you need to fetch specific comments efficiently. Supports up to 1000 comment IDs per request with optional expansion for rendered HTML and properties.\"},{\"slug\":\"JIRA_LIST_FILTERS\",\"name\":\"List Jira Filters\",\"description\":\"Tool to search and list Jira saved filters (saved searches) visible to the current user. Use when you need to discover existing filters, find filters by name or owner, or get filter details including JQL queries and sharing permissions.\"},{\"slug\":\"JIRA_LIST_GROUPS_PICKER\",\"name\":\"List Groups (Picker)\",\"description\":\"Tool to search and list groups using Jira's picker endpoint. Use when you need to find groups by name or get a filtered list of groups.\"},{\"slug\":\"JIRA_LIST_ISSUE_COMMENTS\",\"name\":\"List Issue Comments\",\"description\":\"Retrieves paginated comments from a Jira issue with optional ordering. Paginate by incrementing `start_at` by `max_results` until the cumulative count reaches the `total` field in the response. A response with `total=0` and an empty comments array means the issue has no comments.\"},{\"slug\":\"JIRA_LIST_PROJECT_TYPES\",\"name\":\"List Project Types\",\"description\":\"Retrieves all Jira project types available in the instance. Use when you need to discover available project types or list all types without filtering by a specific key.\"},{\"slug\":\"JIRA_LIST_SPRINTS\",\"name\":\"List Sprints\",\"description\":\"Retrieves paginated sprints from a Jira board with optional state filtering.\"},{\"slug\":\"JIRA_MOVE_ISSUE_TO_SPRINT\",\"name\":\"Move Issues to Sprint\",\"description\":\"Moves one or more Jira issues to a specified active sprint.\"},{\"slug\":\"JIRA_PARSE_JQL_QUERIES\",\"name\":\"Parse JQL Queries\",\"description\":\"Parse and validate JQL queries, returning their abstract syntax tree structure along with any errors or warnings. Use when you need to validate JQL syntax or understand query structure before execution.\"},{\"slug\":\"JIRA_REMOVE_USER_FROM_GROUP\",\"name\":\"Remove User from Group\",\"description\":\"Removes a user from a Jira group. This is a destructive operation that revokes group-based permissions; confirm intent before calling.\"},{\"slug\":\"JIRA_REMOVE_USER_FROM_PROJECT_ROLE\",\"name\":\"Remove User from Project Role\",\"description\":\"Removes a user or group from a project role.\"},{\"slug\":\"JIRA_REMOVE_WATCHER_FROM_ISSUE\",\"name\":\"Remove Watcher from Issue\",\"description\":\"Removes a user from an issue's watcher list by account ID.\"},{\"slug\":\"JIRA_SEARCH_APPROXIMATE_COUNT\",\"name\":\"Search Approximate Count\",\"description\":\"Count issues matching a JQL query using approximate count endpoint. Use when you need a fast count of issues without retrieving full issue details. The JQL query must be bounded (include at least one search restriction).\"},{\"slug\":\"JIRA_SEARCH_DASHBOARDS\",\"name\":\"Search Dashboards\",\"description\":\"Tool to search for Jira dashboards with filtering, sorting, and pagination support. Use when you need to find dashboards by name, owner, sharing permissions, or status. Supports filtering by owner account ID, group, project, and dashboard name.\"},{\"slug\":\"JIRA_SEARCH_FOR_ISSUES_USING_JQL_GET\",\"name\":\"Search Issues Using JQL (GET)\",\"description\":\"Searches for Jira issues using JQL with pagination and field selection.\"},{\"slug\":\"JIRA_SEARCH_FOR_ISSUES_USING_JQL_POST\",\"name\":\"Search Issues Using JQL Enhanced (POST)\",\"description\":\"DEPRECATED: Use JIRA_SEARCH_ISSUES instead. Searches for Jira Cloud issues using Enhanced JQL via POST request; supports eventual consistency and token-based pagination. Use this POST endpoint for long/complex JQL to avoid HTTP 414 errors on GET-based search. IMPORTANT: This action is for Jira Cloud only and will not work with Jira Server or Data Center instances.\"},{\"slug\":\"JIRA_SEARCH_ISSUES\",\"name\":\"Search issues\",\"description\":\"Advanced Jira issue search supporting structured filters and raw JQL. At least one filter parameter (e.g., jql, project_key, updated_after) is required; calls with no parameters will be rejected.\"},{\"slug\":\"JIRA_SEND_NOTIFICATION_FOR_ISSUE\",\"name\":\"Send Notification for Issue\",\"description\":\"Sends a customized email notification for a Jira issue.\"},{\"slug\":\"JIRA_TRANSITION_ISSUE\",\"name\":\"Transition Issue\",\"description\":\"Transitions a Jira issue to a different workflow state, with support for transition name lookup and user assignment by email. IMPORTANT: Only fields that are on the transition's screen can be set during the transition. Which fields are available depends on the Jira workflow configuration and varies per project. Use JIRA_GET_TRANSITIONS with expand='transitions.fields' to check which fields a transition supports. If a field (e.g., assignee) is not on the transition screen, use a JIRA_EDIT_ISSUE action after the transition to set other fields.\"},{\"slug\":\"JIRA_UPDATE_COMMENT\",\"name\":\"Update Comment\",\"description\":\"Updates text content or visibility of an existing Jira comment.\"}]},{\"slug\":\"firecrawl\",\"name\":\"Firecrawl\",\"description\":\"Firecrawl automates web crawling and data extraction, enabling organizations to gather content, index sites, and gain insights from online sources at scale\",\"logo\":\"https://logos.composio.dev/api/firecrawl\",\"rank\":19,\"tools\":[{\"slug\":\"FIRECRAWL_AGENT_CANCEL\",\"name\":\"Cancel an agent job\",\"description\":\"Tool to cancel an in-progress agent job by its ID. Use when you need to terminate an active agent operation. The API returns a success boolean upon cancellation.\"},{\"slug\":\"FIRECRAWL_BATCH_SCRAPE\",\"name\":\"Batch scrape multiple URLs\",\"description\":\"Tool to scrape multiple URLs in batch with concurrent processing. Use when you need to scrape multiple web pages efficiently with customizable formats and content filtering.\"},{\"slug\":\"FIRECRAWL_BATCH_SCRAPE_CANCEL\",\"name\":\"Cancel a batch scrape job\",\"description\":\"Tool to cancel a running batch scrape job using its unique identifier. Use when you need to terminate an in-progress batch scrape operation.\"},{\"slug\":\"FIRECRAWL_BATCH_SCRAPE_GET\",\"name\":\"Get batch scrape status\",\"description\":\"Retrieves the current status and results of a batch scrape job using the job ID. Use this to check batch scrape progress and retrieve scraped data.\"},{\"slug\":\"FIRECRAWL_BATCH_SCRAPE_GET_ERRORS\",\"name\":\"Get errors from batch scrape job\",\"description\":\"Tool to retrieve error details from a batch scrape job, including failed URLs and URLs blocked by robots.txt. Use when you need to debug or understand why certain pages failed to scrape in a batch operation.\"},{\"slug\":\"FIRECRAWL_CRAWL\",\"name\":\"Start a web crawl\",\"description\":\"Initiates a Firecrawl web crawl from a given URL, applying various filtering and content extraction rules, and polls until the job is complete; ensure the URL is accessible and any regex patterns for paths are valid.\"},{\"slug\":\"FIRECRAWL_CRAWL_CANCEL\",\"name\":\"Cancel a crawl job\",\"description\":\"Cancels an active or queued web crawl job using its ID; attempting to cancel completed, failed, or previously canceled jobs will not change their state.\"},{\"slug\":\"FIRECRAWL_CRAWL_DELETE\",\"name\":\"Cancel a crawl job\",\"description\":\"Tool to cancel a running crawl job by its ID. Use when you need to stop an active crawl operation. The API returns a status of 'cancelled' upon successful cancellation.\"},{\"slug\":\"FIRECRAWL_CRAWL_GET\",\"name\":\"Get crawl job status\",\"description\":\"Tool to retrieve the status and results of a Firecrawl crawl job. Use when you need to check the progress or get data from an ongoing or completed crawl operation. Returns crawl status, progress metrics, credits used, and the crawled page data.\"},{\"slug\":\"FIRECRAWL_CRAWL_GET_ERRORS\",\"name\":\"Get errors from a crawl job\",\"description\":\"Tool to retrieve errors from a Firecrawl crawl job. Use when you need to understand why certain pages failed to scrape or which URLs were blocked by robots.txt during a crawl operation.\"},{\"slug\":\"FIRECRAWL_CRAWL_LIST_ACTIVE\",\"name\":\"Get all active crawl jobs\",\"description\":\"Tool to retrieve all active crawl jobs for the authenticated team. Use when you need to see which crawl operations are currently running.\"},{\"slug\":\"FIRECRAWL_CRAWL_PARAMS_PREVIEW\",\"name\":\"Preview crawl parameters\",\"description\":\"Preview crawl parameters before starting a crawl by generating optimal configuration from natural language instructions. Use this tool to understand what crawl settings will be applied based on your requirements before executing a full crawl operation. The endpoint intelligently interprets natural language prompts to configure crawl parameters like include/exclude paths, depth limits, and domain scope.\"},{\"slug\":\"FIRECRAWL_CRAWL_V2\",\"name\":\"Start a web crawl (v2) [NEW]\",\"description\":\"[NEW v2 API] Initiates a Firecrawl v2 web crawl with enhanced features over v1: natural language prompts for automatic crawler configuration, crawlEntireDomain for sibling/parent page discovery, better depth control with maxDiscoveryDepth, subdomain support, and full webhook configuration. Polls until crawl is complete.\"},{\"slug\":\"FIRECRAWL_CREDIT_USAGE_GET\",\"name\":\"Get team credit usage\",\"description\":\"Tool to get current team credit usage information. Use when you need to check remaining credits or billing period details.\"},{\"slug\":\"FIRECRAWL_CREDIT_USAGE_GET_HISTORICAL\",\"name\":\"Get historical team credit usage\",\"description\":\"Tool to retrieve historical team credit usage on a monthly basis. Use when you need to analyze credit consumption patterns over time, optionally segmented by API key.\"},{\"slug\":\"FIRECRAWL_DEEP_RESEARCH\",\"name\":\"Perform deep research\",\"description\":\"Initiates an AI-powered deep research operation that autonomously explores the web to investigate any topic and synthesizes findings from multiple sources. Requires an active Firecrawl connection. The research process iteratively searches, analyzes, and synthesizes information across multiple web sources, providing comprehensive insights with source citations. Results include a final analysis, detailed activity timeline, and curated source list. Billing: 1 credit per URL analyzed. Control costs with the maxUrls parameter. Note: This API is in Alpha and being deprecated after June 30, 2025; prefer FIRECRAWL_SEARCH + FIRECRAWL_EXTRACT or COMPOSIO_SEARCH_WEB for durable workflows. Reserve this tool for cases requiring synthesized multi-source analysis — it is slower and more resource-intensive than FIRECRAWL_SEARCH.\"},{\"slug\":\"FIRECRAWL_EXTRACT\",\"name\":\"Extract structured data\",\"description\":\"Extracts structured data from web pages by initiating an extraction job and polling for completion; requires a natural language `prompt` or a JSON `schema` (one must be provided).\"},{\"slug\":\"FIRECRAWL_EXTRACT_GET\",\"name\":\"Get extract job status\",\"description\":\"Tool to retrieve the status and results of a previously submitted extract job. Use when you need to check the progress or get the final results of an extraction operation.\"},{\"slug\":\"FIRECRAWL_GET_AGENT_STATUS\",\"name\":\"Get agent job status\",\"description\":\"Tool to get the status and results of an agent job. Use when you need to check if an agent job has completed and retrieve the collected data. Agent jobs autonomously search, navigate, and extract data from the web.\"},{\"slug\":\"FIRECRAWL_GET_DEEP_RESEARCH_STATUS\",\"name\":\"Get deep research status\",\"description\":\"Retrieves the status and results of a deep research job by its ID. Use when you need to check the progress or retrieve the final analysis of a deep research operation.\"},{\"slug\":\"FIRECRAWL_GET_THE_STATUS_OF_A_CRAWL_JOB\",\"name\":\"Get the status of a crawl job\",\"description\":\"Retrieves the current status, progress, and details of a web crawl job, using the job ID obtained when the crawl was initiated.\"},{\"slug\":\"FIRECRAWL_LLMS_TXT_GENERATE\",\"name\":\"Generate LLMs.txt for a website\",\"description\":\"Initiates an async job to generate an LLMs.txt file for a website, converting web content into LLM-friendly format. Returns a job ID to check status and retrieve results. Use when you need to create a standardized, machine-readable representation of website content for language models.\"},{\"slug\":\"FIRECRAWL_LLMS_TXT_GET\",\"name\":\"Get LLMs.txt generation job status\",\"description\":\"Tool to get the status and results of an LLMs.txt generation job. Use when you need to check if a job has completed and retrieve the generated content.\"},{\"slug\":\"FIRECRAWL_MAP_MULTIPLE_URLS_BASED_ON_OPTIONS\",\"name\":\"Map multiple URLs\",\"description\":\"Maps a website by discovering URLs from a starting base URL, with options to customize the crawl via search query, subdomain inclusion, sitemap handling, and result limits; search effectiveness is site-dependent.\"},{\"slug\":\"FIRECRAWL_QUEUE_GET\",\"name\":\"Get team queue status\",\"description\":\"Tool to retrieve metrics about the team's scrape queue. Use when you need to check queue status, job counts, or concurrency limits.\"},{\"slug\":\"FIRECRAWL_SCRAPE\",\"name\":\"Scrape URL\",\"description\":\"Scrapes a publicly accessible URL, optionally performing pre-scrape browser actions or extracting structured JSON using an LLM, to retrieve content in specified formats.\"},{\"slug\":\"FIRECRAWL_SEARCH\",\"name\":\"Search\",\"description\":\"Performs a web search for a query, scrapes content from the top search results using Firecrawl, and returns details in specified formats.\"},{\"slug\":\"FIRECRAWL_START_AGENT\",\"name\":\"Start an agent job\",\"description\":\"Tool to start an agent job for agentic web extraction with multi-page navigation and interaction capabilities. Use when you need to autonomously gather data from the web with complex navigation requirements. The agent can search, navigate, and extract information across multiple pages based on your natural language prompt.\"},{\"slug\":\"FIRECRAWL_TOKEN_USAGE_GET\",\"name\":\"Get team token usage\",\"description\":\"Tool to retrieve the current team's token usage and balance information for Firecrawl's Extract feature. Use when you need to check remaining token credits, plan allocation, or billing period details.\"},{\"slug\":\"FIRECRAWL_TOKEN_USAGE_GET_HISTORICAL\",\"name\":\"Get historical team token usage\",\"description\":\"Tool to retrieve historical team token usage on a monthly basis. Use when you need to analyze token consumption patterns over time, optionally segmented by API key.\"}]},{\"slug\":\"tavily\",\"name\":\"Tavily\",\"description\":\"Tavily offers search and data retrieval solutions, helping teams quickly locate and filter relevant information from documents, databases, or web sources\",\"logo\":\"https://logos.composio.dev/api/tavily\",\"rank\":20,\"tools\":[{\"slug\":\"TAVILY_CRAWL\",\"name\":\"Tavily crawl\",\"description\":\"Tool to perform intelligent graph-based website crawling with parallel path exploration and content extraction. Use when you need to traverse and extract content from multiple pages of a website following specific patterns or instructions. Supports depth/breadth controls, domain filtering, and natural language instructions for guided crawling.\"},{\"slug\":\"TAVILY_EXTRACT\",\"name\":\"Tavily extract\",\"description\":\"Tool to extract and parse web page content from specified URLs using Tavily's extract endpoint. Use when you need to retrieve clean, structured content from web pages with optional image extraction and content reranking based on query relevance.\"},{\"slug\":\"TAVILY_GET_USAGE\",\"name\":\"Get Tavily usage\",\"description\":\"Tool to retrieve API key and account usage statistics from Tavily. Use when you need to check credit consumption, limits, and per-endpoint usage for search, extract, crawl, map, and research operations.\"},{\"slug\":\"TAVILY_MAP\",\"name\":\"Tavily map website\",\"description\":\"Tool to map a website and discover its pages. Use when you need to scan a website and get a structured list of URLs/pages it contains without extracting full content.\"},{\"slug\":\"TAVILY_SEARCH\",\"name\":\"Tavily search\",\"description\":\"Use this to perform a web search via the Tavily API; offers controls for search depth, content types, result count, and domain filtering. Requires an active Tavily connection (401 = auth failure). Rate limit: ~2 req/s; apply exponential backoff on HTTP 429. Results are nested under response_data.results (not a flat list). Subject to HTTP 429 on rapid bursts.\"}]},{\"slug\":\"youtube\",\"name\":\"YouTube\",\"description\":\"YouTube is a video-sharing platform with user-generated content, live streaming, and monetization opportunities, widely used for marketing, education, and entertainment\",\"logo\":\"https://logos.composio.dev/api/youtube\",\"rank\":21,\"tools\":[{\"slug\":\"YOUTUBE_ADD_VIDEO_TO_PLAYLIST\",\"name\":\"Add Video to Playlist\",\"description\":\"Tool to add a video to a playlist by inserting a playlist item. Use when organizing videos into playlists or building curated collections.\"},{\"slug\":\"YOUTUBE_CREATE_CHANNEL_SECTION\",\"name\":\"Insert Channel Section\",\"description\":\"Tool to create a new channel section for the authenticated user's YouTube channel. Use when organizing channel content into sections like featured playlists, recent uploads, or featured channels.\"},{\"slug\":\"YOUTUBE_CREATE_COMMENT_REPLY\",\"name\":\"Insert Comment Reply\",\"description\":\"Tool to create a reply to an existing YouTube comment. Use when responding to user comments or engaging in conversations on videos.\"},{\"slug\":\"YOUTUBE_CREATE_PLAYLIST\",\"name\":\"Create Playlist\",\"description\":\"Tool to create a new YouTube playlist on the authenticated user's channel. Use when organizing videos into collections or building curated playlists.\"},{\"slug\":\"YOUTUBE_DELETE_CHANNEL_SECTION\",\"name\":\"Delete Channel Section\",\"description\":\"Tool to delete a YouTube channel section. Use when you need to remove a channel section from a channel. The channel section must exist and the authenticated user must have permission to delete it.\"},{\"slug\":\"YOUTUBE_DELETE_COMMENT\",\"name\":\"Delete Comment\",\"description\":\"Tool to delete a YouTube comment owned by the authenticated user or channel. Use when you need to remove a comment from a video. The comment must exist and be owned by the authenticated channel.\"},{\"slug\":\"YOUTUBE_DELETE_PLAYLIST\",\"name\":\"Delete Playlist\",\"description\":\"Tool to delete a YouTube playlist owned by the authenticated user/channel. Use when you need to permanently remove a playlist from YouTube. Requires explicit confirmation via `confirmDelete: true` to prevent accidental deletions.\"},{\"slug\":\"YOUTUBE_DELETE_PLAYLIST_ITEM\",\"name\":\"Delete Playlist Item\",\"description\":\"Tool to delete a playlist item (remove a video from a playlist). Use when removing specific videos from playlists.\"},{\"slug\":\"YOUTUBE_DELETE_VIDEO\",\"name\":\"Delete Video\",\"description\":\"Tool to delete a YouTube video owned by the authenticated user/channel. Use when you need to permanently remove a video from YouTube. Requires explicit confirmation via `confirmDelete: true` to prevent accidental deletions. The video must exist and be owned by the authenticated channel.\"},{\"slug\":\"YOUTUBE_GET_CHANNEL_ACTIVITIES\",\"name\":\"Get Channel Activities\",\"description\":\"Gets recent activities from a YouTube channel including video uploads, playlist additions, likes, and other channel events.\"},{\"slug\":\"YOUTUBE_GET_CHANNEL_ID_BY_HANDLE\",\"name\":\"Get channel ID by handle\",\"description\":\"Retrieves the YouTube Channel ID for a specific YouTube channel handle.\"},{\"slug\":\"YOUTUBE_GET_CHANNEL_STATISTICS\",\"name\":\"Get Channel Statistics\",\"description\":\"Gets detailed statistics for YouTube channels including subscriber counts, view counts, and video counts. Channels can be identified using their ID, handle (e.g., @Google), or username.\"},{\"slug\":\"YOUTUBE_GET_VIDEO_DETAILS_BATCH\",\"name\":\"Video Details Batch\",\"description\":\"Retrieves multiple YouTube video resource parts in a single batch call. Use when you need cohort-level metrics for many videos to reduce quota usage and latency.\"},{\"slug\":\"YOUTUBE_GET_VIDEO_RATING\",\"name\":\"Get Video Rating\",\"description\":\"Retrieves the ratings that the authorized user gave to a list of specified videos. Use when you need to check if a user has liked or disliked specific videos.\"},{\"slug\":\"YOUTUBE_LIST_CAPTION_TRACK\",\"name\":\"List captions\",\"description\":\"Retrieves a list of caption tracks for a YouTube video. Returns an empty items list if no captions are available. Raises ExecutionFailed if the video ID is invalid or not found.\"},{\"slug\":\"YOUTUBE_LIST_CHANNELS\",\"name\":\"List Channels\",\"description\":\"Lists YouTube channels by ID, handle, username, or ownership status, returning detailed channel information including metadata, statistics, and content details. Use this action when you need to retrieve comprehensive channel information by channel ID, handle (e.g., @username), or to list channels owned by or managed by the authenticated user. For finding channels by search query, use the search action instead.\"},{\"slug\":\"YOUTUBE_LIST_CHANNEL_SECTIONS\",\"name\":\"List Channel Sections\",\"description\":\"Tool to retrieve channel sections from YouTube. Use when you need to get the layout sections of a channel's homepage. Channel sections organize content into categories like playlists, uploads, or featured channels.\"},{\"slug\":\"YOUTUBE_LIST_CHANNEL_VIDEOS\",\"name\":\"List channel videos\",\"description\":\"Lists videos from a specified YouTube channel. This action primarily uses the playlistItems.list endpoint with the channel's uploads playlist, which is the recommended approach by YouTube. The uploads playlist ID is obtained by fetching the channel resource via the Channels API and extracting the playlist ID from contentDetails.relatedPlaylists.uploads field. If the uploads playlist returns a 404 error (which can happen due to a known YouTube API bug where the returned playlist ID doesn't actually exist), the action automatically falls back to the search.list endpoint to retrieve channel videos. Note that the search fallback has higher quota cost (100 units vs 1 unit) and is limited to 500 results. If a channel exists but has no uploads playlist (e.g., brand accounts, channels with all videos deleted, or channels that haven't uploaded any public content), an empty result set is returned instead of an error.\"},{\"slug\":\"YOUTUBE_LIST_COMMENTS\",\"name\":\"List Comments\",\"description\":\"List individual comments from YouTube videos. Returns comment details including author, text, timestamps, and engagement metrics. Use 'id' parameter to retrieve specific comments or 'parentId' to retrieve all replies to a top-level comment.\"},{\"slug\":\"YOUTUBE_LIST_COMMENT_THREADS\",\"name\":\"List Comment Threads (Deprecated)\",\"description\":\"DEPRECATED: Use YOUTUBE_LIST_COMMENT_THREADS2 instead. List comment threads from YouTube videos or channels for qualitative analysis and reporting. Returns top-level comments with optional replies (up to 5 per thread). Use the 'videoId' parameter to retrieve comments on a specific video (most common use case).\"},{\"slug\":\"YOUTUBE_LIST_COMMENT_THREADS2\",\"name\":\"List Comment Threads\",\"description\":\"Tool to retrieve comment threads from YouTube videos or channels matching API request parameters. Use when you need to fetch comments with filtering by video, channel, or specific thread IDs.\"},{\"slug\":\"YOUTUBE_LIST_I18N_LANGUAGES\",\"name\":\"List I18n Languages\",\"description\":\"Returns a list of application languages that the YouTube website supports. Use this when you need to retrieve all available language options for YouTube's interface or to localize content.\"},{\"slug\":\"YOUTUBE_LIST_I18N_REGIONS\",\"name\":\"List I18n Regions\",\"description\":\"Tool to retrieve a list of content regions that the YouTube website supports. Returns region codes (ISO 3166-1 alpha-2) and localized region names. Use when you need to identify available geographic regions for content filtering or display.\"},{\"slug\":\"YOUTUBE_LIST_LIVE_CHAT_MESSAGES\",\"name\":\"List Live Chat Messages\",\"description\":\"Tool to list live chat messages for a specific chat. Use for monitoring live chat during broadcasts or retrieving chat history. Returns messages with author details, timestamps, and message types (text, Super Chat, moderation events).\"},{\"slug\":\"YOUTUBE_LIST_MOST_POPULAR_VIDEOS\",\"name\":\"List Most Popular Videos\",\"description\":\"DEPRECATED: Use YOUTUBE_UPDATE_VIDEO instead. Tool to list the current most-popular (charts/trending) YouTube videos for a region and/or category via videos.list(chart=mostPopular). Use when you need to retrieve YouTube's official trending or most popular videos, not keyword-search approximations.\"},{\"slug\":\"YOUTUBE_LIST_PLAYLIST_IMAGES\",\"name\":\"List Playlist Images\",\"description\":\"Tool to retrieve playlist images associated with a specific playlist. Use when fetching custom thumbnail images for playlists.\"},{\"slug\":\"YOUTUBE_LIST_PLAYLIST_ITEMS\",\"name\":\"List Playlist Items\",\"description\":\"Tool to list videos in a playlist, with pagination support. Use when walking through a channel's uploads playlist to enumerate all videos.\"},{\"slug\":\"YOUTUBE_LIST_SUPER_CHAT_EVENTS\",\"name\":\"List Super Chat Events\",\"description\":\"Lists Super Chat events for a channel, showing supporter purchases during live streams. Returns Super Chat and Super Sticker events from the past 30 days. Use to track and acknowledge supporter contributions.\"},{\"slug\":\"YOUTUBE_LIST_USER_PLAYLISTS\",\"name\":\"List user playlists\",\"description\":\"Retrieves playlists owned by the authenticated user, implicitly using mine=True.\"},{\"slug\":\"YOUTUBE_LIST_USER_SUBSCRIPTIONS\",\"name\":\"List user subscriptions\",\"description\":\"Retrieves the authenticated user's YouTube channel subscriptions, allowing specification of response parts and pagination.\"},{\"slug\":\"YOUTUBE_LIST_VIDEO_ABUSE_REPORT_REASONS\",\"name\":\"List Video Abuse Report Reasons\",\"description\":\"Tool to retrieve a list of abuse report reasons that can be used to report abusive videos on YouTube. Use when you need to display available reporting categories or before calling videos.reportAbuse. Returns localized reason labels and optional secondary categorizations.\"},{\"slug\":\"YOUTUBE_LIST_VIDEO_CATEGORIES\",\"name\":\"List Video Categories\",\"description\":\"Tool to list YouTube video categories that can be associated with videos. Use when you need to retrieve available video categories for a specific region or get details about specific category IDs.\"},{\"slug\":\"YOUTUBE_LOAD_CAPTIONS\",\"name\":\"Download YouTube caption track\",\"description\":\"Downloads a specific YouTube caption track, which must be owned by the authenticated user, and returns its content as text. Note: This action requires you to own the video (YouTube Data API v3 restriction). Non-owned videos will return 403 Forbidden errors, including many auto-generated caption tracks.\"},{\"slug\":\"YOUTUBE_MARK_COMMENT_AS_SPAM\",\"name\":\"Mark Comment as Spam\",\"description\":\"Tool to mark one or more YouTube comments as spam. Use when moderating comments to flag spam content. Note: This endpoint is deprecated but still functional according to YouTube API documentation.\"},{\"slug\":\"YOUTUBE_MULTIPART_UPLOAD_VIDEO\",\"name\":\"Multipart upload video\",\"description\":\"Uploads a video to YouTube using multipart upload in a single request. Use when you want to upload both metadata and video file together. This action uploads the video file and metadata in one request, unlike resumable upload which requires two steps.\"},{\"slug\":\"YOUTUBE_POST_COMMENT\",\"name\":\"Post Comment on Video\",\"description\":\"Tool to post a new top-level comment on a YouTube video. Use when creating comments to engage with video content or respond to user requests.\"},{\"slug\":\"YOUTUBE_RATE_VIDEO\",\"name\":\"Rate Video\",\"description\":\"Tool to add a like or dislike rating to a YouTube video, or remove an existing rating. Use when you need to rate videos on behalf of the authenticated user.\"},{\"slug\":\"YOUTUBE_REPORT_VIDEO_ABUSE\",\"name\":\"Report Video for Abuse\",\"description\":\"Tool to report a YouTube video for containing abusive content. Use when you need to flag videos that violate YouTube's community guidelines or contain harmful content.\"},{\"slug\":\"YOUTUBE_SEARCH_YOU_TUBE\",\"name\":\"Search YouTube\",\"description\":\"Searches YouTube for videos, channels, or playlists using a query term, returning the raw API response.\"},{\"slug\":\"YOUTUBE_SET_COMMENT_MODERATION_STATUS\",\"name\":\"Set Comment Moderation Status\",\"description\":\"Tool to set the moderation status of one or more YouTube comments. Use when moderating comments to hold for review, publish, or reject them. Optionally ban the comment author when rejecting.\"},{\"slug\":\"YOUTUBE_SUBSCRIBE_CHANNEL\",\"name\":\"Subscribe to channel\",\"description\":\"Subscribes the authenticated user to a specified YouTube channel, identified by its unique `channelId` which must be valid and existing.\"},{\"slug\":\"YOUTUBE_UNSUBSCRIBE_CHANNEL\",\"name\":\"Unsubscribe from channel\",\"description\":\"Tool to unsubscribe the authenticated user from a YouTube channel by deleting a subscription. Use when you need to remove an existing subscription. The subscription ID can be obtained from the `YOUTUBE_LIST_USER_SUBSCRIPTIONS` tool.\"},{\"slug\":\"YOUTUBE_UPDATE_CAPTION\",\"name\":\"Update caption track\",\"description\":\"Updates a YouTube caption track's metadata such as name, language, or draft status. Use this to modify existing caption track properties without uploading new caption content. Note: Only properties specified in the snippet will be updated; unspecified properties retain their current values.\"},{\"slug\":\"YOUTUBE_UPDATE_CHANNEL\",\"name\":\"Update channel\",\"description\":\"Updates a channel's metadata including branding settings and localizations. Only brandingSettings, invideoPromotion, and localizations properties can be updated. Requires the channel to be owned by the authenticated user.\"},{\"slug\":\"YOUTUBE_UPDATE_CHANNEL_SECTION\",\"name\":\"Update Channel Section\",\"description\":\"Tool to update an existing YouTube channel section by ID. Use when modifying section properties like title, position, or featured content.\"},{\"slug\":\"YOUTUBE_UPDATE_COMMENT\",\"name\":\"Update Comment\",\"description\":\"Tool to modify the text of an existing YouTube comment. Use when updating or correcting a previously posted comment.\"},{\"slug\":\"YOUTUBE_UPDATE_PLAYLIST\",\"name\":\"Update Playlist\",\"description\":\"Tool to modify an existing YouTube playlist's metadata (title, description, privacy status). Use when updating playlist information for the authenticated user's channel.\"},{\"slug\":\"YOUTUBE_UPDATE_PLAYLIST_ITEM\",\"name\":\"Update Playlist Item\",\"description\":\"Tool to modify a playlist item's properties such as position or note. Use when reordering videos in a playlist or updating item metadata.\"},{\"slug\":\"YOUTUBE_UPDATE_THUMBNAIL\",\"name\":\"Update thumbnail\",\"description\":\"Sets the custom thumbnail for a YouTube video using an image from a URL. Requirements: - The authenticated user must own the video or have permission to edit it - The YouTube channel must be verified (phone verification required) to upload custom thumbnails - Image must be JPG, PNG, or GIF; under 2MB; recommended 1280x720 resolution (16:9 aspect ratio)\"},{\"slug\":\"YOUTUBE_UPDATE_VIDEO\",\"name\":\"Update video\",\"description\":\"Updates metadata for a YouTube video identified by videoId, which must exist; an empty list for tags removes all existing tags.\"},{\"slug\":\"YOUTUBE_UPLOAD_VIDEO\",\"name\":\"Upload video\",\"description\":\"Uploads a video file to a YouTube channel; the video file must be in a YouTube-supported format.\"}]},{\"slug\":\"slackbot\",\"name\":\"Slackbot\",\"description\":\"Slackbot gives agents workspace-wide read access to a Slack workspace on behalf of the installing user - search messages and files, browse channel and thread history, and look up users and channels - while continuing to post and react as the bot. Includes direct messages and user email addresses so agents can search across DMs and resolve users by email.\",\"logo\":\"https://logos.composio.dev/api/slackbot\",\"rank\":22,\"tools\":[{\"slug\":\"SLACKBOT_ADD_CALL_PARTICIPANTS\",\"name\":\"Add call participants\",\"description\":\"Registers new participants added to a Slack call.\"},{\"slug\":\"SLACKBOT_ADD_REACTION_TO_AN_ITEM\",\"name\":\"Add reaction to message\",\"description\":\"Adds a specified emoji reaction to an existing message in a Slack channel, identified by its timestamp; does not remove or retrieve reactions.\"},{\"slug\":\"SLACKBOT_ADD_REMOTE_FILE\",\"name\":\"Add a remote file\",\"description\":\"Adds a reference to an external file (e.g., Google Drive, Dropbox) to Slack for discovery and sharing, requiring a unique `external_id` and an `external_url` accessible by Slack.\"},{\"slug\":\"SLACKBOT_ARCHIVE_CONVERSATION\",\"name\":\"Archive a Slack conversation\",\"description\":\"Archives a Slack conversation by its ID, rendering it read-only and hidden while retaining history, ideal for cleaning up inactive channels; be aware that some channels (like #general or certain DMs) cannot be archived and this may impact connected integrations.\"},{\"slug\":\"SLACKBOT_CLOSE_DM\",\"name\":\"Close conversation channel\",\"description\":\"Closes a Slack direct message (DM) or multi-person direct message (MPDM) channel, removing it from the user's sidebar without deleting history; this action affects only the calling user's view.\"},{\"slug\":\"SLACKBOT_CREATE_A_REMINDER\",\"name\":\"Create a reminder\",\"description\":\"Creates a Slack reminder with specified text and time; time accepts Unix timestamps, seconds from now, or natural language (e.g., 'in 15 minutes', 'every Thursday at 2pm').\"},{\"slug\":\"SLACKBOT_CREATE_CANVAS\",\"name\":\"Create Slack Canvas\",\"description\":\"Creates a new Slack Canvas with the specified title and optional content.\"},{\"slug\":\"SLACKBOT_CREATE_CHANNEL\",\"name\":\"Create channel\",\"description\":\"Initiates a public or private channel-based conversation in a Slack workspace. Immediately creates the channel; invoke only after explicit user confirmation.\"},{\"slug\":\"SLACKBOT_CREATE_LIST\",\"name\":\"Create Slack List\",\"description\":\"Creates a new Slack List via `slackLists.create`. Provide a `name` and, optionally, a `description_blocks` description and a `schema` of typed columns. You can instead copy an existing List's structure with `copy_from_list_id` (and its rows via `include_copied_list_records`), or enable task-tracking columns with `todo_mode`. Returns the new List's `list_id`. Requires a user token with the `lists:write` scope.\"},{\"slug\":\"SLACKBOT_CREATE_LIST_ITEM\",\"name\":\"Create Slack List item\",\"description\":\"Creates a new item (row) in a Slack List via `slackLists.items.create`. Set initial cell values with `initial_fields`; text columns require Block Kit `rich_text` (a plain string is wrapped automatically). Optionally duplicate an existing row with `duplicated_item_id` or create a subtask with `parent_item_id`. Requires a user token with the `lists:write` scope.\"},{\"slug\":\"SLACKBOT_CREATE_USER_GROUP\",\"name\":\"Create a Slack user group\",\"description\":\"Creates a new User Group (often referred to as a subteam) in a Slack workspace.\"},{\"slug\":\"SLACKBOT_CUSTOMIZE_URL_UNFURL\",\"name\":\"Customize URL unfurl\",\"description\":\"Customizes URL previews (unfurling) in a specific Slack message using a URL-encoded JSON in `unfurls` to define custom content or remove existing previews.\"},{\"slug\":\"SLACKBOT_DELETE_CANVAS\",\"name\":\"Delete Slack Canvas\",\"description\":\"Deletes a Slack Canvas permanently and irreversibly. Always confirm with the user before calling this tool.\"},{\"slug\":\"SLACKBOT_DELETE_FILE\",\"name\":\"Delete a file by ID\",\"description\":\"Permanently deletes an existing file from a Slack workspace using its unique file ID; this action is irreversible and also removes any associated comments or shares.\"},{\"slug\":\"SLACKBOT_DELETE_FILE_COMMENT\",\"name\":\"Delete file comment\",\"description\":\"Deletes a specific comment from a file in Slack; this action is irreversible.\"},{\"slug\":\"SLACKBOT_DELETE_LIST_ACCESS\",\"name\":\"Delete Slack List access\",\"description\":\"Revokes sharing access on a Slack List via `slackLists.access.delete`. Provide the `list_id` and EXACTLY ONE of `channel_ids` or `user_ids` (they are mutually exclusive) to remove access for those channels or users. Requires a user token with the `lists:write` scope.\"},{\"slug\":\"SLACKBOT_DELETE_LIST_ITEM\",\"name\":\"Delete Slack List item\",\"description\":\"Deletes an item (row) from a Slack List via `slackLists.items.delete`. Identify the List with `list_id` and the row to remove with `id`. Deletion is permanent and cannot be undone. Requires a user token with the `lists:write` scope.\"},{\"slug\":\"SLACKBOT_DELETE_MULTIPLE_LIST_ITEMS\",\"name\":\"Delete multiple Slack List items\",\"description\":\"Deletes several items (rows) from a Slack List in one call via `slackLists.items.deleteMultiple`. This operation is ALL-OR-NOTHING: Slack returns a single `{\\\"ok\\\": true}` on success or `{\\\"ok\\\": false, \\\"error\\\": ...}` on failure, with NO per-item result array, so partial state cannot be reported. On failure, treat the whole batch as not deleted and retry the entire batch. Requires a user token with the `lists:write` scope.\"},{\"slug\":\"SLACKBOT_DELETE_REMINDER\",\"name\":\"Delete a Slack reminder\",\"description\":\"Deletes an existing Slack reminder, typically when it is no longer relevant or a task is completed; this operation is irreversible.\"},{\"slug\":\"SLACKBOT_DELETES_A_MESSAGE_FROM_A_CHAT\",\"name\":\"Delete a message from a chat\",\"description\":\"Deletes a message, identified by its channel ID and timestamp, from a Slack channel, private group, or direct message conversation; the authenticated user or bot must be the original poster.\"},{\"slug\":\"SLACKBOT_DELETE_SCHEDULED_MESSAGE\",\"name\":\"Delete scheduled chat message\",\"description\":\"Deletes a pending, unsent scheduled message from the specified Slack channel, identified by its `scheduled_message_id`.\"},{\"slug\":\"SLACKBOT_DISABLE_USER_GROUP\",\"name\":\"Disable a Slack user group\",\"description\":\"Disables a specified, currently enabled Slack User Group by its unique ID, effectively archiving it by setting its 'date_delete' timestamp; the group is not permanently deleted and can be re-enabled.\"},{\"slug\":\"SLACKBOT_DOWNLOAD_FILE\",\"name\":\"Download Slack file\",\"description\":\"Tool to download Slack file content and convert it to a publicly accessible URL. Use when you need to retrieve and download files that have been shared in Slack channels or conversations.\"},{\"slug\":\"SLACKBOT_EDIT_CANVAS\",\"name\":\"Edit Slack Canvas\",\"description\":\"Edits a Slack Canvas with granular control over content placement. Supports replace, insert (before/after/start/end) operations for flexible content management.\"},{\"slug\":\"SLACKBOT_ENABLE_PUBLIC_SHARING_OF_A_FILE\",\"name\":\"Share file public url\",\"description\":\"Enables public sharing for an existing Slack file by generating a publicly accessible URL; this action does not create new files. Once enabled, the file is accessible to anyone with the URL — verify intent before sharing sensitive or confidential files.\"},{\"slug\":\"SLACKBOT_ENABLE_USER_GROUP\",\"name\":\"Enable a user group\",\"description\":\"Enables a disabled User Group in Slack using its ID, reactivating it for mentions and permissions; this action only changes the enabled status and cannot create new groups or modify other properties.\"},{\"slug\":\"SLACKBOT_END_CALL\",\"name\":\"End a call\",\"description\":\"Ends an ongoing Slack call, identified by its ID (obtained from `calls.add`), optionally specifying the call's duration.\"},{\"slug\":\"SLACKBOT_FETCH_CONVERSATION_HISTORY\",\"name\":\"Fetch conversation history\",\"description\":\"Fetches a chronological list of messages and events from a specified Slack conversation, accessible by the authenticated user/bot, with options for pagination and time range filtering. IMPORTANT LIMITATION: This action only returns messages from the main channel timeline. Threaded replies are NOT returned by this endpoint. To retrieve threaded replies, use the SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION action (conversations.replies API) instead. The oldest/latest timestamp filters work reliably for filtering the main channel timeline, but cannot be used to retrieve individual threaded replies - even if you know the exact reply timestamp, setting oldest=latest to that timestamp will return an empty messages array. To get threaded replies: 1. Use this action to get parent messages (which include thread_ts, reply_count, latest_reply fields) 2. Use SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION with the parent's thread_ts to fetch all replies in that thread\"},{\"slug\":\"SLACKBOT_FETCH_ITEM_REACTIONS\",\"name\":\"Fetch item reactions\",\"description\":\"Fetches reactions for a Slack message, file, or file comment. Exactly one identifier path must be provided: `channel`+`timestamp`, `file`, or `file_comment`. Mixing identifiers (e.g., providing both `channel`+`timestamp` and `file`) causes errors. If the response omits the `reactions` field, the item has zero reactions.\"},{\"slug\":\"SLACKBOT_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION\",\"name\":\"Retrieve conversation replies\",\"description\":\"Retrieves replies to a specific parent message in a Slack conversation, using the channel ID and the parent message's timestamp (`ts`). Note: The parent message in the response contains metadata (reply_count, reply_users, latest_reply) that indicates expected thread activity. If the returned messages array contains fewer replies than reply_count indicates, check: (1) has_more=true means pagination is needed, (2) recently posted replies may have timing delays, (3) some replies may be filtered by permissions or deleted. The composio_execution_message field will warn about any detected mismatches.\"},{\"slug\":\"SLACKBOT_FETCH_TEAM_INFO\",\"name\":\"Fetch team info\",\"description\":\"Fetches comprehensive metadata about the current Slack team, or a specified team if the provided ID is accessible.\"},{\"slug\":\"SLACKBOT_FIND_CHANNELS\",\"name\":\"Find channels\",\"description\":\"Find channels in a Slack workspace by any criteria - name, topic, purpose, or description. Returns channel IDs (C*/G* prefixed) required by most Slack tools — always resolve names to IDs here before passing to other tools. NOTE: This action searches channels and conversations visible to the authenticated user. Empty results may indicate: - No channels match the search query in name, topic, or purpose - The target private channel or DM is not accessible to the authenticated user because they are not a member - The connection lacks required read scopes (channels:read, groups:read, im:read, mpim:read). If empty, retry with exact_match=false or exclude_archived=false to avoid false negatives. In large workspaces, paginate using next_cursor to avoid missing matches. Check 'composio_execution_message' and 'total_channels_searched' in the response for details.\"},{\"slug\":\"SLACKBOT_FIND_USER_BY_EMAIL_ADDRESS\",\"name\":\"Lookup users by email\",\"description\":\"Retrieves the Slack user object for an active user by their registered email address; requires the users:read.email OAuth scope. Fails with 'users_not_found' if the email is unregistered, the user is inactive, the account is a guest, or the email is hidden by workspace privacy settings.\"},{\"slug\":\"SLACKBOT_FIND_USERS\",\"name\":\"Find users\",\"description\":\"Find users in a Slack workspace by any criteria - email, name, display name, or other text. Includes optimized email lookup for exact email matches. Zero results may reflect email visibility restrictions or workspace policies, not global absence. Repeated calls may trigger HTTP 429; honor the Retry-After header.\"},{\"slug\":\"SLACKBOT_GET_BOT_USER\",\"name\":\"Fetch bot user information\",\"description\":\"Fetches information for a specified, existing Slack bot user; will not work for regular user accounts or other integration types.\"},{\"slug\":\"SLACKBOT_GET_CALL_INFO\",\"name\":\"Retrieve call information\",\"description\":\"Retrieves a point-in-time snapshot of a specific Slack call's information.\"},{\"slug\":\"SLACKBOT_GET_CANVAS\",\"name\":\"Get Slack Canvas (Deprecated)\",\"description\":\"DEPRECATED: Use SLACK_RETRIEVE_DETAILED_INFORMATION_ABOUT_A_FILE instead. Retrieves a specific Slack Canvas by its ID, including its content and metadata.\"},{\"slug\":\"SLACKBOT_GET_LIST_ITEM\",\"name\":\"Get Slack List item\",\"description\":\"Fetches a single item (row) from a Slack List via `slackLists.items.info`. Returns the row's `column_id`-keyed typed values along with metadata about the parent List. Set `include_is_subscribed` to also report whether the calling user is subscribed to the row. Requires a user token with the `lists:read` scope.\"},{\"slug\":\"SLACKBOT_GET_REMINDER\",\"name\":\"Get reminder information\",\"description\":\"Retrieves detailed information for an existing Slack reminder specified by its ID; this is a read-only operation.\"},{\"slug\":\"SLACKBOT_GET_REMOTE_FILE\",\"name\":\"Get remote file\",\"description\":\"Retrieve information about a remote file added to Slack via the files.remote API. Does not work for standard Slack-hosted file uploads.\"},{\"slug\":\"SLACKBOT_GET_TEAM_PROFILE\",\"name\":\"Retrieve team profile details\",\"description\":\"Retrieves all profile field definitions for a Slack team, optionally filtered by visibility, to understand the team's profile structure.\"},{\"slug\":\"SLACKBOT_GET_UNREAD_MESSAGES_FROM_USER\",\"name\":\"Get unread messages from user\",\"description\":\"Retrieves unread direct messages from a specific user by opening their DM conversation, checking for unread messages, and fetching message history since the last read timestamp. Use this action when you need to check if a specific user has sent unread direct messages to the authenticated user, or when monitoring incoming DMs from particular users. Returns an empty messages array if there are no unread messages from the specified user. Note: This action only works for direct messages (DMs), not channel messages or group conversations.\"},{\"slug\":\"SLACKBOT_GET_USER_DND_STATUS\",\"name\":\"Get team DND status\",\"description\":\"Retrieves a user's current Do Not Disturb status.\"},{\"slug\":\"SLACKBOT_GET_USER_PRESENCE\",\"name\":\"Retrieve user presence\",\"description\":\"Retrieves a Slack user's current real-time presence (e.g., 'active', 'away') to determine their availability, noting this action does not provide historical data or status reasons.\"},{\"slug\":\"SLACKBOT_INVITE_USERS_TO_A_CHANNEL\",\"name\":\"Invite users to a Slack channel\",\"description\":\"Invites users to an existing Slack channel using their valid Slack User IDs. Response is always HTTP 200; inspect `ok`, `error`, and `errors` fields to confirm users were added.\"},{\"slug\":\"SLACKBOT_JOIN_AN_EXISTING_CONVERSATION\",\"name\":\"Join conversation by channel id\",\"description\":\"Joins an existing Slack conversation (public channel, private channel, or multi-person direct message) by its ID, if the authenticated user has permission. Joining an already-joined channel returns a non-fatal no-op response. Private or restricted channel joins may fail with a permission error.\"},{\"slug\":\"SLACKBOT_LEAVE_CONVERSATION\",\"name\":\"Leave conversation channel\",\"description\":\"Leaves a Slack conversation given its channel ID; fails if leaving as the last member of a private channel or if used on a Slack Connect channel.\"},{\"slug\":\"SLACKBOT_LIST_ALL_CHANNELS\",\"name\":\"List all channels\",\"description\":\"Lists conversations available to the user with various filters and search options. Always use resolved `channel_id` (not display names) for downstream operations, as names may be non-unique. The `created` field in results is a Unix epoch timestamp (UTC). Pagination across large workspaces may return HTTP 429 with a `Retry-After` header; honor the delay and resume from the last successful cursor.\"},{\"slug\":\"SLACKBOT_LIST_ALL_USERS\",\"name\":\"List all users\",\"description\":\"Retrieves a paginated list of all users with profile details, status, and team memberships in a Slack workspace; data may not be real-time. Filter response fields `is_bot`, `is_app_user`, and `deleted` to build human-only rosters. Profile fields like `email` and `phone` may be absent depending on OAuth scopes and workspace privacy settings. Guest/restricted accounts may be omitted based on scopes—do not treat results as a complete directory. High-frequency calls risk HTTP 429; honor the `Retry-After` header and throttle to ~1–2 requests/second. Use stable user IDs rather than display names for mapping. Prefer SLACK_FIND_USERS for targeted lookups; cache results to avoid full-workspace fetches.\"},{\"slug\":\"SLACKBOT_LIST_AVAILABLE_WORKSPACES\",\"name\":\"List available workspaces\",\"description\":\"List Slack workspaces where both the connection and target user have access. Returns each workspace's team_id and name. Use this when: (1) the user references a workspace by name, (2) a user-specific tool requires team_id and you don't have one, or (3) a user-specific call fails with a team/workspace access error. Match the user's workspace name to a team_id from the results and pass that team_id to subsequent tools. If the name matches zero or multiple workspaces, ask the user to clarify. Only meaningful for org-level installs; single-workspace connections return the workspace only if the specified user's membership is visible to this token.\"},{\"slug\":\"SLACKBOT_LIST_CANVASES\",\"name\":\"List Slack Canvases (Deprecated)\",\"description\":\"DEPRECATED: Use SLACK_LIST_FILES_WITH_FILTERS_IN_SLACK instead (pass types=\\\"canvas\\\" for equivalent behavior). Lists Slack Canvases with filtering by channel, user, timestamp, and page-based pagination. Uses Slack's files.list API with types=canvas filter. Only canvases accessible to the authenticated app are returned; missing canvases indicate permissions restrictions, not empty data. Use `paging.pages` in the response to determine total pages; iterate `page` with `count` to retrieve all results. Known limitations: - The 'user' filter may return canvases accessible to the specified user, not just canvases they created. - The 'ts_from' and 'ts_to' timestamp filters may not work reliably for canvas types. Consider client-side filtering on the 'created' field in the response if precise date filtering is required.\"},{\"slug\":\"SLACKBOT_LIST_CONVERSATIONS\",\"name\":\"List conversations\",\"description\":\"List conversations (channels/DMs) accessible to a specified user (or the authenticated user if no user ID is provided), respecting shared membership for non-public channels. Returns conversation IDs (C* for channels, G* for group DMs), not display names. Absence of private channels, DMs, or MPIMs from results indicates token scope or membership limits, not that the conversation is nonexistent.\"},{\"slug\":\"SLACKBOT_LIST_CUSTOM_EMOJIS\",\"name\":\"List team custom emojis\",\"description\":\"Retrieves all custom emojis for the Slack workspace (image URLs or aliases), not standard Unicode emojis; does not include usage statistics or creation dates.\"},{\"slug\":\"SLACKBOT_LIST_FILES_WITH_FILTERS_IN_SLACK\",\"name\":\"List Slack files\",\"description\":\"Lists files and their metadata within a Slack workspace, filterable by user, channel, timestamp, or type; returns metadata only, not file content. Results are limited to files visible to the authenticated user — files in private channels or restricted to certain members require appropriate membership and permissions. For large workspaces, check `paging.pages` in the response to determine total pages when paginating.\"},{\"slug\":\"SLACKBOT_LIST_LIST_ITEMS\",\"name\":\"List Slack List items\",\"description\":\"Lists the rows (items) in a Slack List via `slackLists.items.list`. Each row exposes `column_id`-keyed typed values (e.g. `rich_text`, `select`, `user`, `date`, `number`); the legacy `key`/`value` fields are deprecated. Results are cursor-paginated—you must paginate using `response_metadata.next_cursor` until it is empty, or rows are silently truncated to the first page. Set `archived=true` to return archived rows instead of active ones. Requires a user token with the `lists:read` scope.\"},{\"slug\":\"SLACKBOT_LIST_PINNED_ITEMS\",\"name\":\"List pinned items in a channel\",\"description\":\"Retrieves all messages and files pinned to a specified channel; the caller must have access to this channel.\"},{\"slug\":\"SLACKBOT_LIST_REMINDERS\",\"name\":\"List reminders\",\"description\":\"Lists all reminders with their details for the authenticated Slack user; returns an empty array if no reminders exist (valid state, not an error). Reminder text is not unique—perform client-side matching on returned objects before extracting a reminder ID for use with SLACK_DELETE_A_SLACK_REMINDER.\"},{\"slug\":\"SLACKBOT_LIST_REMOTE_FILES\",\"name\":\"List remote files\",\"description\":\"Retrieve information about a team's remote files.\"},{\"slug\":\"SLACKBOT_LIST_UNREAD_CHANNEL_MESSAGES\",\"name\":\"List unread channel messages\",\"description\":\"Lists all unread messages in a specified Slack channel for the authenticated user. This action fetches messages that have been posted since the user's last read position in the channel. Use this action when you need to retrieve messages the user hasn't seen yet. The action determines the user's read position and returns all messages posted after that timestamp. Note: This only returns messages from the main channel timeline, not threaded replies. For threaded replies, use SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION.\"},{\"slug\":\"SLACKBOT_LIST_USER_GROUP_MEMBERS\",\"name\":\"List all users in a user group\",\"description\":\"Retrieves a list of all user IDs within a specified Slack user group, with an option to include users from disabled groups.\"},{\"slug\":\"SLACKBOT_LIST_USER_GROUPS\",\"name\":\"List user groups\",\"description\":\"Lists user groups in a Slack workspace, including user-created and default groups; results for large workspaces may be paginated.\"},{\"slug\":\"SLACKBOT_LIST_USER_REACTIONS\",\"name\":\"List user reactions\",\"description\":\"Lists all reactions added by a specific user to messages, files, or file comments in Slack, useful for engagement analysis when the item content itself is not required. Results are paginated; check `response_metadata.next_cursor` and iterate with the `cursor` parameter to retrieve complete reaction history.\"},{\"slug\":\"SLACKBOT_LOOKUP_CANVAS_SECTIONS\",\"name\":\"Lookup Canvas Sections\",\"description\":\"Looks up section IDs in a Slack Canvas for use with targeted edit operations. Section IDs are needed for insert_after, insert_before, delete, and section-specific replace operations.\"},{\"slug\":\"SLACKBOT_OPEN_DM\",\"name\":\"Open DM\",\"description\":\"Opens or resumes a Slack direct message (DM) or multi-person direct message (MPIM) by providing either user IDs or an existing channel ID. Returns `already_open=true` when the DM exists — treat as success and reuse the returned `channel.id` (starts with 'D') for subsequent SLACK_SEND_MESSAGE calls; passing a username, email, or user ID directly to SLACK_SEND_MESSAGE causes `channel_not_found`. Avoid redundant calls when an existing DM channel ID is available.\"},{\"slug\":\"SLACKBOT_PIN_ITEM\",\"name\":\"Pin an item to a channel\",\"description\":\"Pins a message to a specified Slack channel; the message must not already be pinned.\"},{\"slug\":\"SLACKBOT_REMOVE_CALL_PARTICIPANTS\",\"name\":\"Remove call participants\",\"description\":\"Registers participants removed from a Slack call.\"},{\"slug\":\"SLACKBOT_REMOVE_REACTION_FROM_ITEM\",\"name\":\"Remove reaction from item\",\"description\":\"Removes an emoji reaction from a message, file, or file comment in Slack. Provide exactly one targeting method: channel+timestamp together, file, or file_comment. Mixing methods or omitting all returns invalid_arguments.\"},{\"slug\":\"SLACKBOT_REMOVE_REMOTE_FILE\",\"name\":\"Remove remote file\",\"description\":\"Removes the Slack reference to an external file (which must have been previously added via the remote files API), specified by either its `external_id` or `file` ID (one of which is required), without deleting the actual external file.\"},{\"slug\":\"SLACKBOT_REMOVE_USER_FROM_CONVERSATION\",\"name\":\"Remove user from conversation\",\"description\":\"Removes a specified user from a Slack conversation (channel); the caller must have permissions to remove users and cannot remove themselves using this action.\"},{\"slug\":\"SLACKBOT_RENAME_CONVERSATION\",\"name\":\"Rename a conversation\",\"description\":\"Renames a Slack channel, automatically adjusting the new name to meet naming conventions (e.g., converting to lowercase), which may affect integrations using the old name.\"},{\"slug\":\"SLACKBOT_RETRIEVE_CONVERSATION_INFORMATION\",\"name\":\"Retrieve conversation information\",\"description\":\"Retrieves metadata for a Slack conversation by ID (e.g., name, purpose, creation date, with options for member count/locale), excluding message content. The `channel` parameter is effectively required. Private channels, DMs, or channels where the app lacks membership may return restricted data; check `is_archived` and `is_member` fields in the response to diagnose access issues. Bulk lookups may trigger HTTP 429 rate limiting; honor the `Retry-After` response header.\"},{\"slug\":\"SLACKBOT_RETRIEVE_CONVERSATION_MEMBERS_LIST\",\"name\":\"Get conversation members\",\"description\":\"Retrieves a paginated list of active member IDs (not names, emails, or presence) for a specified Slack public channel, private channel, DM, or MPIM. Returns only user IDs; use a user-lookup tool to enrich member data.\"},{\"slug\":\"SLACKBOT_RETRIEVE_CURRENT_USER_DND_STATUS\",\"name\":\"Retrieve user DND status\",\"description\":\"Retrieves a Slack user's current Do Not Disturb (DND) status to determine their availability before interaction; any specified user ID must be a valid Slack user ID.\"},{\"slug\":\"SLACKBOT_RETRIEVE_DETAILED_INFORMATION_ABOUT_A_FILE\",\"name\":\"Retrieve detailed file information\",\"description\":\"Retrieves detailed metadata and paginated comments for a specific Slack file ID; does not download file content.\"},{\"slug\":\"SLACKBOT_RETRIEVE_DETAILED_USER_INFORMATION\",\"name\":\"Retrieve detailed user information\",\"description\":\"Retrieves comprehensive information for a valid Slack user ID, excluding message history and channel memberships. Sensitive fields like `email` and `phone` require the `users:read.email` scope and may be silently omitted based on workspace privacy policies.\"},{\"slug\":\"SLACKBOT_RETRIEVE_USER_PROFILE_INFORMATION\",\"name\":\"Retrieve user profile information\",\"description\":\"Retrieves profile information for a specified Slack user (defaults to the authenticated user if `user` ID is omitted); a provided `user` ID must be valid. Sensitive fields like email and phone may be silently omitted if required scopes (e.g., `users:read.email`) are not granted or workspace privacy policies restrict access.\"},{\"slug\":\"SLACKBOT_REVOKE_FILE_PUBLIC_SHARING\",\"name\":\"Revoke a file's public url\",\"description\":\"Revokes a Slack file's public URL, making it private; this is a no-op if not already public and is irreversible.\"},{\"slug\":\"SLACKBOT_SCHEDULE_MESSAGE\",\"name\":\"Schedule message\",\"description\":\"Schedules a message to a Slack channel, DM, or private group for a future time (`post_at`), requiring `text`, `blocks`, or `attachments` for content; scheduling is limited to 120 days in advance.\"},{\"slug\":\"SLACKBOT_SEARCH_ALL\",\"name\":\"Search all content\",\"description\":\"Tool to search all messages and files. Use when you need unified content search across channels and files in one call. Results are scoped to content visible to the authenticated token; missing hits in private or restricted channels reflect permission/membership gaps. Response separates messages and files into distinct sections — explicitly read the files section for document results. Results are index-based and may lag several minutes behind real-time; use SLACK_FETCH_CONVERSATION_HISTORY for near-real-time per-channel coverage. Paginated searches exceeding ~1 req/sec may return HTTP 429 too_many_requests; honor the Retry-After header and resume from the last page.\"},{\"slug\":\"SLACKBOT_SEARCH_MESSAGES\",\"name\":\"Search messages\",\"description\":\"Workspace‑wide Slack message search with date ranges and filters. Use `query` modifiers (e.g., in:#channel, from:@user, before/after:YYYY-MM-DD), sorting (score/timestamp), and pagination.\"},{\"slug\":\"SLACKBOT_SEND_EPHEMERAL_MESSAGE\",\"name\":\"Send ephemeral message\",\"description\":\"Sends an ephemeral message visible only to the specified `user` in a channel; other channel members cannot see it. Both the bot and the target user must be members of the specified channel.\"},{\"slug\":\"SLACKBOT_SEND_ME_MESSAGE\",\"name\":\"Share a me message in a channel\",\"description\":\"Sends a 'me message' (e.g., '/me is typing') to a Slack channel, where it's displayed as a third-person user action; messages are plain text and the channel must exist and be accessible.\"},{\"slug\":\"SLACKBOT_SEND_MESSAGE\",\"name\":\"Send message\",\"description\":\"Posts a message to a Slack channel, DM, or private group. Provide exactly one visible content mode: `markdown_text` for normal Markdown content, or `blocks` for raw Slack Block Kit layouts. Use `fallback_text` only with `blocks`; it maps to Slack's top-level `text` fallback. Fails with `not_in_channel`, `channel_not_found`, or `channel_is_archived` if the bot lacks access. Rate-limited at ~1 req/sec (HTTP 429, honor `Retry-After`). Not idempotent — duplicate calls post duplicate messages.\"},{\"slug\":\"SLACKBOT_SET_CONVERSATION_PURPOSE\",\"name\":\"Set a conversation's purpose\",\"description\":\"Sets the purpose (a short description of its topic/goal, displayed in the header) for a Slack conversation; the calling user must be a member.\"},{\"slug\":\"SLACKBOT_SET_LIST_ACCESS\",\"name\":\"Set Slack List access\",\"description\":\"Grants or sets sharing access on a Slack List via `slackLists.access.set`. Grant `read`, `write`, or `owner` access to either channels (`channel_ids`) or users (`user_ids`) — exactly one of the two is required. The `owner` level is user-only and subject to additional server-side rules. Requires a user token with the `lists:write` scope.\"},{\"slug\":\"SLACKBOT_SET_READ_CURSOR_IN_A_CONVERSATION\",\"name\":\"Set conversation read cursor\",\"description\":\"Marks a message, specified by its timestamp (`ts`), as the most recently read for the authenticated user in the given `channel`, provided the user is a member of the channel and the message exists within it.\"},{\"slug\":\"SLACKBOT_SET_THE_TOPIC_OF_A_CONVERSATION\",\"name\":\"Set conversation topic\",\"description\":\"Sets or updates the topic for a specified Slack conversation.\"},{\"slug\":\"SLACKBOT_SET_USER_ACTIVE\",\"name\":\"Mark user as active\",\"description\":\"Tool to mark a user as active in Slack. Note: This endpoint is deprecated and non-functional - it exists for backwards compatibility but does not perform any action.\"},{\"slug\":\"SLACKBOT_SET_USER_PRESENCE\",\"name\":\"Set user presence\",\"description\":\"Manually sets a user's Slack presence, overriding automatic detection; this setting persists across connections but can be overridden by user actions or Slack's auto-away (e.g., after 10 mins of inactivity).\"},{\"slug\":\"SLACKBOT_SHARE_REMOTE_FILE\",\"name\":\"Share a remote file in channels\",\"description\":\"Shares a remote file, which must already be registered with Slack, into specified Slack channels or direct message conversations.\"},{\"slug\":\"SLACKBOT_START_CALL\",\"name\":\"Start call\",\"description\":\"Registers a new call in Slack using `calls.add` for third-party call integration; `created_by` is required if not using a user-specific token.\"},{\"slug\":\"SLACKBOT_UNARCHIVE_CHANNEL\",\"name\":\"Unarchive channel\",\"description\":\"Reverses conversation archival.\"},{\"slug\":\"SLACKBOT_UNPIN_ITEM\",\"name\":\"Unpin message from channel\",\"description\":\"Unpins a message, identified by its timestamp, from a specified channel if the message is currently pinned there; this operation is destructive.\"},{\"slug\":\"SLACKBOT_UPDATE_CALL_INFO\",\"name\":\"Update call information\",\"description\":\"Updates the title, join URL, or desktop app join URL for an existing Slack call identified by its ID.\"},{\"slug\":\"SLACKBOT_UPDATE_LIST\",\"name\":\"Update Slack List\",\"description\":\"Updates a Slack List's metadata via `slackLists.update`. Only the List's `name`, `description_blocks`, and `todo_mode` are editable here. The List to update is identified by its `id` (not `list_id`). Descriptions are rich text — a plain string is wrapped into a `rich_text` block automatically. Requires a user token with the `lists:write` scope.\"},{\"slug\":\"SLACKBOT_UPDATE_LIST_ITEM\",\"name\":\"Update Slack List item\",\"description\":\"Updates one or more cells in an EXISTING Slack List row via `slackLists.items.update`. Each cell is identified by `row_id` (an existing row ID matching `^Rec[A-Z0-9]{8,}$`) and `column_id` and carries a typed value; text columns require Block Kit `rich_text` (a plain string is wrapped automatically), and `select` takes the column's choice values (e.g. `[\\\"todo\\\"]`). Use it to UPDATE existing rows; the live API rejects `row_id_to_create` inside a cell (despite Slack's inline example), so to ADD a row use `create_slack_list_item`. Requires a user token with the `lists:write` scope.\"},{\"slug\":\"SLACKBOT_UPDATE_REMOTE_FILE\",\"name\":\"Update an existing remote file\",\"description\":\"Updates metadata or content details for an existing remote file in Slack; this action cannot upload new files or change the fundamental file type.\"},{\"slug\":\"SLACKBOT_UPDATES_A_MESSAGE\",\"name\":\"Update a Slack message\",\"description\":\"Updates a Slack message by timestamp. Provide exactly one visible content mode: `markdown_text` for normal Markdown content, or `blocks` for raw Slack Block Kit layouts. Use `fallback_text` only with `blocks`; it maps to Slack's top-level `text` fallback.\"},{\"slug\":\"SLACKBOT_UPDATE_USER_GROUP\",\"name\":\"Update Slack user group\",\"description\":\"Updates an existing Slack User Group, which must be specified by an existing `usergroup` ID, with new optional details such as its name, description, handle, or default channels.\"},{\"slug\":\"SLACKBOT_UPDATE_USER_GROUP_MEMBERS\",\"name\":\"Update user group members\",\"description\":\"Replaces all members of an existing Slack User Group with a new list of valid user IDs.\"},{\"slug\":\"SLACKBOT_UPLOAD_OR_CREATE_A_FILE_IN_SLACK\",\"name\":\"Upload or create a file in Slack\",\"description\":\"Upload files, images, screenshots, documents, or any media to Slack channels or threads. Supports all file types including images (PNG, JPG, JPEG, GIF), documents (PDF, DOCX, TXT), code files, and more. Can share files publicly in channels or as thread replies with optional comments. Large files may fail with `upload_too_large`; use SLACK_ADD_A_REMOTE_FILE_FROM_A_SERVICE for large uploads. If the API returns `ok=false` with `method_deprecated`, fall back to SLACK_ADD_A_REMOTE_FILE_FROM_A_SERVICE or SLACK_SEND_MESSAGE with a URL.\"}]},{\"slug\":\"canvas\",\"name\":\"Canvas\",\"description\":\"Canvas is a learning management system supporting online courses, assignments, grading, and collaboration, widely used by schools and universities for virtual classrooms\",\"logo\":\"https://logos.composio.dev/api/canvas\",\"rank\":23,\"tools\":[{\"slug\":\"CANVAS_ABORT_QUIZ_REPORT_GENERATION\",\"name\":\"Abort Quiz Report Generation\",\"description\":\"Aborts the generation of a quiz report or removes a previously generated one. Use when you need to cancel a report generation request or clean up an old report.\"},{\"slug\":\"CANVAS_ADD_CONVERSATION_MESSAGE\",\"name\":\"Add conversation message\",\"description\":\"Tool to add a message to an existing Canvas conversation. Use when sending a follow-up message to a conversation thread with specified recipients.\"},{\"slug\":\"CANVAS_ADD_COURSE_TO_FAVORITES\",\"name\":\"Add course to favorites\",\"description\":\"Tool to add a course to the current user's favorites. Use when you need to favorite a course for the authenticated user. If the course is already in the user's favorites, nothing happens.\"},{\"slug\":\"CANVAS_ADD_GROUP_TO_FAVORITES\",\"name\":\"Add group to favorites\",\"description\":\"Tool to add a group to the current user's favorites. Use when you need to mark a group as favorite for the authenticated user. If the group is already in the user's favorites, nothing happens.\"},{\"slug\":\"CANVAS_ADD_LAST_ATTENDED_DATE\",\"name\":\"Add last attended date\",\"description\":\"Tool to add or update the last attended date for a student enrollment in a course. Use when tracking student attendance by recording the last date a student attended the course.\"},{\"slug\":\"CANVAS_ADD_RECIPIENTS_TO_CONVERSATION\",\"name\":\"Add recipients to conversation\",\"description\":\"Tool to add recipients to an existing group conversation. Use when you need to add new participants to an ongoing conversation. Response includes the latest message showing who was added.\"},{\"slug\":\"CANVAS_ADD_USERS_TO_CONTENT_SHARE\",\"name\":\"Add users to content share\",\"description\":\"Tool to send a previously created content share to additional users. Use when you need to add more recipients to an existing content share.\"},{\"slug\":\"CANVAS_ANSWER_QUIZ_QUESTIONS\",\"name\":\"Answer quiz questions\",\"description\":\"Tool to provide or update answers to quiz questions for a quiz submission. Use when submitting answers for a quiz attempt. Requires a valid validation_token from quiz submission creation and the latest attempt number.\"},{\"slug\":\"CANVAS_ASSIGN_UNASSIGNED_MEMBERS_TO_GROUP_CATEGORY\",\"name\":\"Assign unassigned members to group category\",\"description\":\"Tool to assign unassigned members to groups within a group category. Use when you need to distribute users who are not yet in any group within the category. Returns a Progress object for async tracking by default, or group memberships when sync=true.\"},{\"slug\":\"CANVAS_CLEAR_COURSE_NICKNAMES\",\"name\":\"Clear Course Nicknames\",\"description\":\"Tool to remove all stored course nicknames for the current user. Use when you need to clear all custom course name preferences.\"},{\"slug\":\"CANVAS_CLOSE_NOTIFICATION_FOR_USER\",\"name\":\"Close notification for user\",\"description\":\"Tool to excuse/close an account notification for the current user. Use when the current user no longer wants to see a specific notification. If the `remove` parameter is set to true, the notification is permanently destroyed for all users (admin action).\"},{\"slug\":\"CANVAS_CONCLUDE_DEACTIVATE_OR_DELETE_ENROLLMENT\",\"name\":\"Conclude, deactivate, or delete an enrollment\",\"description\":\"Tool to conclude, deactivate, or delete an enrollment in a Canvas course. Use when you need to end or remove a user's enrollment. If the task argument isn't given, the enrollment will be concluded.\"},{\"slug\":\"CANVAS_COPY_FILE_TO_FOLDER\",\"name\":\"Copy File to Folder\",\"description\":\"Copies an existing Canvas file to a specified destination folder. Use when you need to duplicate a file to another location.\"},{\"slug\":\"CANVAS_COPY_FOLDER\",\"name\":\"Copy Folder\",\"description\":\"Tool to copy a folder to another folder in Canvas. Use when you need to duplicate a folder structure with its contents to a destination folder.\"},{\"slug\":\"CANVAS_CREATE_ACCOUNT_NOTIFICATION\",\"name\":\"Create account notification\",\"description\":\"Creates a global notification within a Canvas account, ensuring `end_at` is after `start_at` and any specified `notification_roles` are valid.\"},{\"slug\":\"CANVAS_CREATE_A_CONTENT_MIGRATION4\",\"name\":\"Create a user content migration\",\"description\":\"Tool to create a content migration for a Canvas user. Use when you need to import content into a user's files from various sources (zip files, cartridges, etc.). If the migration requires a file upload, the actual processing starts once the file upload completes.\"},{\"slug\":\"CANVAS_CREATE_APPOINTMENT_GROUP\",\"name\":\"Create appointment group\",\"description\":\"Creates a new appointment group in Canvas for schedulable time slots within specified course or group contexts.\"},{\"slug\":\"CANVAS_CREATE_ASSIGNMENT\",\"name\":\"Create an assignment\",\"description\":\"Creates a new assignment within a specified course in Canvas LMS.\"},{\"slug\":\"CANVAS_CREATE_ASSIGNMENT_GRAPH_QL\",\"name\":\"Create assignment via GraphQL\",\"description\":\"Tool to create a new assignment in a Canvas course using the GraphQL API. Use when you need to create assignments with detailed configuration options including peer reviews, moderated grading, or assignment overrides.\"},{\"slug\":\"CANVAS_CREATE_ASSIGNMENT_GROUP\",\"name\":\"Create assignment group\",\"description\":\"Create a new assignment group for a course. Use when you need to add a new assignment group to organize assignments in a Canvas course.\"},{\"slug\":\"CANVAS_CREATE_ASSIGNMENT_OVERRIDE\",\"name\":\"Create assignment override\",\"description\":\"Creates an assignment override to adjust due/unlock/lock dates for an assignment in a course, targeting specific students (requires `title`), a group, or a course section; at least one target (`student_ids`, `group_id`, or `course_section_id`) is required.\"},{\"slug\":\"CANVAS_CREATE_BATCH_OVERRIDES_IN_A_COURSE\",\"name\":\"Batch create overrides in a course\",\"description\":\"Tool to batch create assignment overrides for multiple assignments in a course. Use when creating multiple overrides at once in a transactional manner (all succeed or none are created). Each override requires assignment_id and one of student_ids, group_id, or course_section_id.\"},{\"slug\":\"CANVAS_CREATE_BLACKOUT_DATE_FOR_COURSE\",\"name\":\"Create blackout date for course\",\"description\":\"Tool to create a blackout date for the given course context. Use when you need to define a period during which certain activities are restricted or unavailable for a specific course.\"},{\"slug\":\"CANVAS_CREATE_BOOKMARK\",\"name\":\"Create Bookmark\",\"description\":\"Creates a new bookmark for the authenticated user. Use when you need to save a shortcut link to a Canvas page or external resource for quick access.\"},{\"slug\":\"CANVAS_CREATE_CALENDAR_EVENT\",\"name\":\"Create Calendar Event\",\"description\":\"Creates a calendar event with options for recurrence (finite `rrule` series only), section-specific timings, and blackout dates within a specified context.\"},{\"slug\":\"CANVAS_CREATE_COMMUNICATION_CHANNEL\",\"name\":\"Create communication channel\",\"description\":\"Creates a new communication channel (e.g., email, SMS, push) for an existing Canvas user to receive notifications.\"},{\"slug\":\"CANVAS_CREATE_CONTENT_SHARE\",\"name\":\"Create content share\",\"description\":\"Shares a Canvas content item to specified users, if the sender has necessary permissions and receiver IDs are valid.\"},{\"slug\":\"CANVAS_CREATE_CONVERSATION\",\"name\":\"Create conversation\",\"description\":\"Use to send messages in Canvas by creating a new conversation or adding to an existing one; an existing conversation with the same recipients (and matching scope/filter, if specified) may be reused unless `force_new` is true.\"},{\"slug\":\"CANVAS_CREATE_CONVERSATION_GRAPH_QL\",\"name\":\"Create conversation via GraphQL\",\"description\":\"Tool to create a new conversation (message) between users in Canvas via GraphQL. Use when initiating a new conversation thread with specified recipients.\"},{\"slug\":\"CANVAS_CREATE_COURSE\",\"name\":\"Create a course\",\"description\":\"Creates a new course in Canvas within a specified account, with comprehensive configuration options. Returns a course object including `id` (course_id); retain this for subsequent module, page, and upload calls.\"},{\"slug\":\"CANVAS_CREATE_COURSE_GRADING_STANDARD\",\"name\":\"Create Course Grading Standard\",\"description\":\"Tool to create a new grading standard in a Canvas course. Use when you need to define a custom grading scale with grade labels and percentage thresholds for a specific course.\"},{\"slug\":\"CANVAS_CREATE_CUSTOM_GRADEBOOK_COLUMN\",\"name\":\"Create a custom gradebook column\",\"description\":\"Creates a new custom gradebook column in a course. Use when you need to add custom tracking fields like participation scores or extra credit to the gradebook.\"},{\"slug\":\"CANVAS_CREATE_DISCUSSION_ENTRY\",\"name\":\"Create discussion entry\",\"description\":\"Tool to create a new entry in a Canvas discussion topic. Use when posting a message with optional attachments to a discussion topic.\"},{\"slug\":\"CANVAS_CREATE_DISCUSSION_ENTRY_GRAPH_QL\",\"name\":\"Create discussion entry (GraphQL)\",\"description\":\"Tool to create a new entry in a Canvas discussion topic via GraphQL. Use when posting a message or reply to a discussion topic with optional file attachments.\"},{\"slug\":\"CANVAS_CREATE_DISCUSSION_TOPIC\",\"name\":\"Create discussion topic\",\"description\":\"Creates a new discussion topic in a specified Canvas course, allowing comprehensive configuration of its content, type, publication settings, engagement features, and associations.\"},{\"slug\":\"CANVAS_CREATE_DISCUSSION_TOPIC_GRAPH_QL\",\"name\":\"Create discussion topic (GraphQL)\",\"description\":\"Tool to create a new discussion topic in a course or group using the Canvas GraphQL API. Use when creating discussion topics with the GraphQL interface.\"},{\"slug\":\"CANVAS_CREATE_ENROLLMENT\",\"name\":\"Create enrollment\",\"description\":\"Enrolls a user in a Canvas course with a specified role and status; `associated_user_id` is required if `enrollment_type` is 'ObserverEnrollment'.\"},{\"slug\":\"CANVAS_CREATE_EPUB_EXPORT\",\"name\":\"Create ePub export\",\"description\":\"Tool to initiate an ePub export for a course. Use when you need to export course content in ePub format. Track progress using the Progress API URL returned in the response.\"},{\"slug\":\"CANVAS_CREATE_EXTERNAL_FEED\",\"name\":\"Create External Feed\",\"description\":\"Creates a new external RSS or Atom feed for a Canvas course. Use when you need to import external content into a course feed.\"},{\"slug\":\"CANVAS_CREATE_EXTERNAL_FEED_FOR_GROUP\",\"name\":\"Create External Feed for Group\",\"description\":\"Tool to create a new external RSS or Atom feed for a Canvas group. Use when you need to import external content into a group feed.\"},{\"slug\":\"CANVAS_CREATE_EXTERNAL_TOOL\",\"name\":\"Create external tool\",\"description\":\"Tool to create an external tool in a Canvas account. Use when you need to integrate an LTI tool or external application. If a client_id is supplied, Canvas will attempt to create a context external tool using the LTI 1.3 standard.\"},{\"slug\":\"CANVAS_CREATE_EXTERNAL_TOOL_IN_COURSE\",\"name\":\"Create external tool in course\",\"description\":\"Tool to create an external tool in the specified course. Use when you need to integrate an LTI tool or external application within a course context. If a client_id is supplied, Canvas will attempt to create a context external tool using the LTI 1.3 standard.\"},{\"slug\":\"CANVAS_CREATE_FILES\",\"name\":\"Create Files\",\"description\":\"Tool to initiate file upload to Canvas (Step 1 of 3-step process). Use when you need to upload a file to a course, user folder, group, or account. This action returns upload_url and upload_params needed for the actual file upload. After calling this, POST the file data to the upload_url with the returned parameters, then follow any redirect to complete the upload.\"},{\"slug\":\"CANVAS_CREATE_FOLDER\",\"name\":\"Create folder\",\"description\":\"Tool to create a folder in the specified context. Use when you need to create a new folder for organizing files in Canvas for a user.\"},{\"slug\":\"CANVAS_CREATE_FOLDER_IN_GROUP\",\"name\":\"Create Folder in Group\",\"description\":\"Tool to create a folder within a Canvas group. Use when you need to organize files in a group context.\"},{\"slug\":\"CANVAS_CREATE_GROUP\",\"name\":\"Create a group\",\"description\":\"Tool to create a new community group directly. Use when you need to create a group without specifying a group category. Groups created using this endpoint will be community groups.\"},{\"slug\":\"CANVAS_CREATE_GROUP_CATEGORY_COURSES\",\"name\":\"Create a group category in a course\",\"description\":\"Creates a new group category within a specified Canvas course. Use when you need to organize student groups for projects, study sessions, or collaborative activities within a course.\"},{\"slug\":\"CANVAS_CREATE_GROUP_CONTENT_MIGRATION\",\"name\":\"Create a content migration for group\",\"description\":\"Tool to create a content migration in a Canvas group. Use when you need to import content into a group from various sources. If the migration requires a file upload, the actual processing starts once the file upload completes.\"},{\"slug\":\"CANVAS_CREATE_GROUP_DISCUSSION_TOPIC\",\"name\":\"Create group discussion topic\",\"description\":\"Tool to create a new discussion topic in a Canvas group. Use when creating a discussion for group collaboration or communication.\"},{\"slug\":\"CANVAS_CREATE_GROUP_IN_SET\",\"name\":\"Create group in set\",\"description\":\"Tool to create a new group within a Canvas group set. Use when adding a new group to an existing group category.\"},{\"slug\":\"CANVAS_CREATE_GROUP_SET\",\"name\":\"Create a group set\",\"description\":\"Tool to create a new group set (group category) in a Canvas course or account. Use when organizing students into project teams or study groups.\"},{\"slug\":\"CANVAS_CREATE_LEARNING_OUTCOME\",\"name\":\"Create Learning Outcome\",\"description\":\"Tool to create a new learning outcome in Canvas using GraphQL. Use when you need to define a new learning objective or competency within an outcome group.\"},{\"slug\":\"CANVAS_CREATE_LINK_OUTCOME_COURSES\",\"name\":\"Create/Link an outcome in course\",\"description\":\"Tool to link an existing outcome or create a new outcome within a course outcome group. Use when associating outcomes with outcome groups in a Canvas course context. If outcome_id is provided, links the existing outcome; otherwise creates a new outcome with the provided details (title, description, ratings, mastery_points).\"},{\"slug\":\"CANVAS_CREATE_LTI_RESOURCE_LINK\",\"name\":\"Create an LTI resource link\",\"description\":\"Creates a new LTI Resource Link in a Canvas course. Use when integrating LTI 1.3 external tools that can be launched or embedded in rich content.\"},{\"slug\":\"CANVAS_CREATE_MEMBERSHIP\",\"name\":\"Create a membership\",\"description\":\"Tool to join or request to join a group, depending on the join level of the group. Use when you need to add a user to a Canvas group. If the membership or join request already exists, it is simply returned.\"},{\"slug\":\"CANVAS_CREATE_MODULE\",\"name\":\"Create Module\",\"description\":\"Creates a new organizational module within a specified Canvas LMS course, with options for availability, sequencing, and prerequisites.\"},{\"slug\":\"CANVAS_CREATE_MODULE_GRAPH_QL\",\"name\":\"Create module (GraphQL)\",\"description\":\"Tool to create a new module in a Canvas course via GraphQL. Use when creating a module with basic settings (name) through the GraphQL API.\"},{\"slug\":\"CANVAS_CREATE_MODULE_ITEM\",\"name\":\"Create Module Item\",\"description\":\"Create and return a new module item within a Canvas course module. Use when you need to add content (assignments, pages, quizzes, files, discussions, external links, or subheaders) to an existing module.\"},{\"slug\":\"CANVAS_CREATE_OR_UPDATE_TIMETABLE_EVENTS\",\"name\":\"Create or Update Timetable Events\",\"description\":\"Tool to create or update timetable events for a course or course section. Use when you need to set up a complete schedule of events directly, rather than generating them from a timetable pattern. If a code is provided for an event, existing events with that code will be updated; otherwise, new events are created.\"},{\"slug\":\"CANVAS_CREATE_PAGE_FOR_COURSE\",\"name\":\"Create a page for a course\",\"description\":\"Creates a new wiki page in a specified Canvas course, with options for title, HTML body, editing permissions, publication, and designation as front page (which also requires publication).\"},{\"slug\":\"CANVAS_CREATE_PAGE_FOR_GROUP\",\"name\":\"Create a page for a group\",\"description\":\"Creates a new wiki page in a specified Canvas group. Use when you need to create documentation, notes, or collaborative content for a group.\"},{\"slug\":\"CANVAS_CREATE_PLANNER_NOTE\",\"name\":\"Create a planner note\",\"description\":\"Create a planner note for the current user. Use when adding a personal to-do item or reminder to the Canvas planner.\"},{\"slug\":\"CANVAS_CREATE_PLANNER_OVERRIDE\",\"name\":\"Create a planner override\",\"description\":\"Tool to create a planner override for the current user. Use when marking planner items as complete or dismissing them from the opportunities list.\"},{\"slug\":\"CANVAS_CREATE_QUESTION_GROUP\",\"name\":\"Create Question Group\",\"description\":\"Tool to create one or more question groups for a quiz. Use when you need to organize quiz questions into groups for random selection.\"},{\"slug\":\"CANVAS_CREATE_QUIZ\",\"name\":\"Create Quiz\",\"description\":\"Creates a new quiz with various settings in a specified existing Canvas course; `assignment_group_id` applies only to graded quiz types.\"},{\"slug\":\"CANVAS_CREATE_QUIZ_QUESTION\",\"name\":\"Create a quiz question\",\"description\":\"Creates a new question for an existing quiz within a course; if `answers` are provided, their structure must align with `question_type`, and any `quiz_group_id` must be valid for an existing group in the quiz.\"},{\"slug\":\"CANVAS_CREATE_QUIZ_REPORT\",\"name\":\"Create Quiz Report\",\"description\":\"Tool to create a quiz report in Canvas. Generates either a student analysis or item analysis report for a quiz. If a matching report already exists and is current, it will be returned instead.\"},{\"slug\":\"CANVAS_CREATE_QUIZ_SUBMISSION\",\"name\":\"Create quiz submission (start quiz)\",\"description\":\"Tool to start taking a quiz by creating a quiz submission. Use when a student needs to begin a quiz-taking session. Returns the quiz submission with workflow_state indicating the session status (e.g., 'preview' for teacher previews).\"},{\"slug\":\"CANVAS_CREATE_RUBRIC\",\"name\":\"Create Rubric\",\"description\":\"Tool to create a rubric in a Canvas course. Use when you need structured assessment criteria and optional association after confirming course context.\"},{\"slug\":\"CANVAS_CREATE_SINGLE_POLL\",\"name\":\"Create Single Poll\",\"description\":\"Tool to create a new poll for the current user in Canvas. Use when you need to create a poll with a question and optional description.\"},{\"slug\":\"CANVAS_CREATE_SINGLE_POLL_CHOICE\",\"name\":\"Create a single poll choice\",\"description\":\"Tool to create one or more poll choices for an existing poll in Canvas. Use when you need to add answer options to a poll.\"},{\"slug\":\"CANVAS_CREATE_SINGLE_POLL_SESSION\",\"name\":\"Create Single Poll Session\",\"description\":\"Tool to create a new poll session for a poll in Canvas. Use when you need to create a poll session associated with a specific course or course section.\"},{\"slug\":\"CANVAS_CREATE_SINGLE_POLL_SUBMISSION\",\"name\":\"Create a single poll submission\",\"description\":\"Tool to create a new poll submission for a poll session. Use when submitting a user's choice(s) for an active poll. The poll session must be published before submissions can be created.\"},{\"slug\":\"CANVAS_CREATE_SUBGROUP_COURSES\",\"name\":\"Create Subgroup in Course\",\"description\":\"Creates a new empty subgroup under the outcome group with the given title and description. Use when you need to add a new subgroup to organize outcomes within a course's outcome group hierarchy.\"},{\"slug\":\"CANVAS_CREATE_SUBMISSION_DRAFT\",\"name\":\"Create submission draft\",\"description\":\"Tool to create a draft submission for an assignment in Canvas via GraphQL. Use when a student needs to save work in progress before final submission, or when pre-populating submission content.\"},{\"slug\":\"CANVAS_CREATE_USER_INBOX_LABEL\",\"name\":\"Create user inbox label\",\"description\":\"Tool to create new user inbox labels in Canvas. Use when organizing inbox messages with custom labels.\"},{\"slug\":\"CANVAS_CREATE_USERS_CUSTOM_DATA\",\"name\":\"Create Users Custom Data\",\"description\":\"Tool to create or update custom data for a Canvas user within a specified namespace. Use when you need to store application-specific JSON data for a user. The namespace parameter (ns) is required to prevent data collisions between different applications.\"},{\"slug\":\"CANVAS_CREATE_USERS_TOKENS\",\"name\":\"Create User Token\",\"description\":\"Tool to create a new access token for a Canvas user. Use when you need to generate an API access token for authentication purposes.\"},{\"slug\":\"CANVAS_DELETE_ACCESS_TOKEN\",\"name\":\"Delete an access token\",\"description\":\"Tool to delete an access token for a Canvas user. Use when you need to revoke or remove an API access token. The ID can be the actual database ID of the token, or the 'token_hint' value.\"},{\"slug\":\"CANVAS_DELETE_A_MESSAGE\",\"name\":\"Delete messages from conversation\",\"description\":\"Tool to delete messages from a Canvas conversation. Note that this only affects this user's view of the conversation. If all messages are deleted, the conversation will be removed as well.\"},{\"slug\":\"CANVAS_DELETE_AN_ENTRY\",\"name\":\"Delete a discussion entry\",\"description\":\"Tool to delete a discussion entry. The entry must have been created by the current user, or the current user must have admin rights to the discussion. Use when removing an entry from a discussion topic. The entry will be marked deleted, and user_id and message will be cleared.\"},{\"slug\":\"CANVAS_DELETE_AN_ENTRY2\",\"name\":\"Delete a group discussion entry\",\"description\":\"Tool to delete a discussion entry in a group discussion. The entry must have been created by the current user, or the current user must have admin rights to the discussion. Use when removing an entry from a group discussion topic. The entry will be marked deleted, and user_id and message will be cleared.\"},{\"slug\":\"CANVAS_DELETE_AN_EXTERNAL_TOOL\",\"name\":\"Delete an external tool\",\"description\":\"Remove the specified external tool from a course. Use when you need to delete an external tool integration.\"},{\"slug\":\"CANVAS_DELETE_AN_OUTCOME_GROUP_COURSES\",\"name\":\"Delete an outcome group (courses)\",\"description\":\"Deletes an outcome group from a course. Deleting an outcome group also deletes all descendant outcome groups and outcome links. Linked outcomes are only deleted if all links to the outcome were deleted. Aligned outcomes cannot be deleted; if all remaining links to an aligned outcome are in this group's descendants, the deletion will fail.\"},{\"slug\":\"CANVAS_DELETE_APPOINTMENT_GROUP\",\"name\":\"Delete appointment group\",\"description\":\"Permanently deletes an existing appointment group by its ID; associated appointments may also be canceled or affected.\"},{\"slug\":\"CANVAS_DELETE_ASSIGNMENT\",\"name\":\"Delete an assignment\",\"description\":\"Soft-deletes a specific assignment within a course, returning the assignment object with its `workflow_state` updated to 'deleted'.\"},{\"slug\":\"CANVAS_DELETE_ASSIGNMENT_OVERRIDE\",\"name\":\"Delete assignment override\",\"description\":\"Deletes an assignment override and returns its former details. Use when you need to remove date exceptions or special accommodations that were previously set for specific students, groups, or sections.\"},{\"slug\":\"CANVAS_DELETE_BLACKOUT_DATE\",\"name\":\"Delete blackout date\",\"description\":\"Tool to delete a blackout date for the given course context. Use when you need to remove a previously scheduled blackout period.\"},{\"slug\":\"CANVAS_DELETE_BOOKMARK\",\"name\":\"Delete bookmark\",\"description\":\"Deletes a bookmark from the current user's bookmarks. Use when you need to remove a saved bookmark.\"},{\"slug\":\"CANVAS_DELETE_CALENDAR_EVENT\",\"name\":\"Delete a calendar event\",\"description\":\"Delete a calendar event from Canvas and return the deleted event details. Use when you need to remove a calendar event, optionally providing a cancellation reason for participants.\"},{\"slug\":\"CANVAS_DELETE_COMMENT_BANK_ITEM\",\"name\":\"Delete comment bank item\",\"description\":\"Tool to delete a comment bank item from Canvas. Use when you need to remove a previously saved grading comment that is no longer needed.\"},{\"slug\":\"CANVAS_DELETE_COMMUNICATION_CHANNEL\",\"name\":\"Delete a communication channel\",\"description\":\"Deletes an existing communication channel for a user. Use when you need to remove an email, SMS, or push notification channel from a user's account.\"},{\"slug\":\"CANVAS_DELETE_COMMUNICATION_CHANNEL_BY_TYPE_AND_ADDRESS\",\"name\":\"Delete communication channel by type and address\",\"description\":\"Deletes a communication channel by type and address. Use when you need to remove a specific email, SMS, or push notification channel from a user's account using the channel type and address instead of the channel ID.\"},{\"slug\":\"CANVAS_DELETE_CONVERSATION_MESSAGES\",\"name\":\"Delete conversation messages\",\"description\":\"Tool to delete specific messages from a Canvas conversation. Use when you need to remove one or more messages from a conversation thread by their message IDs.\"},{\"slug\":\"CANVAS_DELETE_CONVERSATIONS\",\"name\":\"Delete conversations\",\"description\":\"Tool to delete one or more Canvas conversations. Use when permanently removing conversation threads. Returns the deleted conversation IDs on success.\"},{\"slug\":\"CANVAS_DELETE_CUSTOM_DATA\",\"name\":\"Delete custom data\",\"description\":\"Tool to delete custom user data for a given namespace. Use when you need to remove arbitrary JSON data stored for a user in a specific namespace. Without a scope parameter, all custom data in the namespace is deleted.\"},{\"slug\":\"CANVAS_DELETE_CUSTOM_GRADEBOOK_COLUMN\",\"name\":\"Delete a custom gradebook column\",\"description\":\"Permanently deletes a custom gradebook column and its associated data from a course. This action cannot be undone.\"},{\"slug\":\"CANVAS_DELETE_CUSTOM_GRADE_STATUS\",\"name\":\"Delete custom grade status\",\"description\":\"Tool to delete a custom grade status from Canvas. Use when removing a custom grade status that is no longer needed.\"},{\"slug\":\"CANVAS_DELETE_DISCUSSION_ENTRY\",\"name\":\"Delete discussion entry\",\"description\":\"Tool to delete a discussion entry. Use when removing an entry from a discussion. Returns the deleted entry details.\"},{\"slug\":\"CANVAS_DELETE_DISCUSSION_TOPIC_GRAPH_QL\",\"name\":\"Delete discussion topic (GraphQL)\",\"description\":\"Tool to delete a discussion topic in Canvas via GraphQL. Returns the deleted discussion topic ID upon successful deletion.\"},{\"slug\":\"CANVAS_DELETE_EXTERNAL_FEED_FROM_GROUP\",\"name\":\"Delete external feed from group\",\"description\":\"Deletes the external feed from the specified group. Use when removing an RSS/Atom feed that was previously configured for the group.\"},{\"slug\":\"CANVAS_DELETE_FILE\",\"name\":\"Delete file\",\"description\":\"Tool to remove a file from Canvas. Use when comprehensive, irretrievable destruction of the file is needed. Set `replace` to true to destroy file previews and replace contents with a placeholder (requires special permissions).\"},{\"slug\":\"CANVAS_DELETE_FOLDER\",\"name\":\"Delete a folder\",\"description\":\"Permanently deletes an existing folder specified by its unique ID.\"},{\"slug\":\"CANVAS_DELETE_GROUP\",\"name\":\"Delete a group\",\"description\":\"Deletes a group and removes all members. Use when you need to permanently delete a Canvas group by its ID.\"},{\"slug\":\"CANVAS_DELETE_GROUP_DISCUSSION_TOPIC\",\"name\":\"Delete group discussion topic\",\"description\":\"Deletes the discussion topic from a group. This will also delete the assignment, if it's an assignment discussion.\"},{\"slug\":\"CANVAS_DELETE_OUTCOME_LINKS\",\"name\":\"Delete outcome links\",\"description\":\"Tool to delete links between outcomes and content in Canvas. Use when removing outcome associations from course content.\"},{\"slug\":\"CANVAS_DELETE_PAGE_FOR_GROUP\",\"name\":\"Delete page for a group\",\"description\":\"Deletes a wiki page from a Canvas group. Use when you need to remove a specific page from a group's wiki.\"},{\"slug\":\"CANVAS_DELETE_PLANNER_NOTE\",\"name\":\"Delete a planner note\",\"description\":\"Delete a planner note for the current user. Use when removing a personal to-do item from the Canvas planner.\"},{\"slug\":\"CANVAS_DELETE_PLANNER_OVERRIDE\",\"name\":\"Delete a planner override\",\"description\":\"Delete a planner override for the current user. Use when removing customizations or dismissals from planner items.\"},{\"slug\":\"CANVAS_DELETE_POLL\",\"name\":\"Delete poll\",\"description\":\"Permanently deletes the poll identified by `id`; returns 204 No Content if successful.\"},{\"slug\":\"CANVAS_DELETE_POLL_CHOICE\",\"name\":\"Delete a poll choice\",\"description\":\"Tool to delete a poll choice from a Canvas poll. Use when you need to remove a specific choice option from an existing poll. Returns a 204 No Content response if the deletion was successful.\"},{\"slug\":\"CANVAS_DELETE_POLL_SESSION\",\"name\":\"Delete a poll session\",\"description\":\"Tool to permanently delete a poll session from a poll. Use when you need to remove a poll session. Returns a 204 No Content response on successful deletion.\"},{\"slug\":\"CANVAS_DELETE_QUIZ\",\"name\":\"Delete quiz\",\"description\":\"Permanently deletes the quiz identified by `quiz_id` from the course identified by `course_id`; this action cannot be undone.\"},{\"slug\":\"CANVAS_DELETE_SUBMISSION_DRAFT\",\"name\":\"Delete submission draft\",\"description\":\"Tool to delete a submission draft in Canvas via GraphQL. Use when removing a draft submission that has not been finalized.\"},{\"slug\":\"CANVAS_DELETE_USER_INBOX_LABEL\",\"name\":\"Delete user inbox label\",\"description\":\"Tool to delete user inbox labels in Canvas. Use when you need to remove one or more custom inbox labels from the current user's inbox.\"},{\"slug\":\"CANVAS_DELETE_USERS_CUSTOM_DATA_SCOPE\",\"name\":\"Delete user custom data scope\",\"description\":\"Tool to delete custom user data at a specific scope path. Use when you need to remove data stored at a particular location within the JSON structure for a user's custom data namespace.\"},{\"slug\":\"CANVAS_DEPARTMENT_LEVEL_GRADE_DATA_FOR_CURRENT_GRADES\",\"name\":\"Get current grades\",\"description\":\"Fetches current, aggregated grade data from Canvas analytics for a specified account ID.\"},{\"slug\":\"CANVAS_DEPARTMENT_LEVEL_GRADE_DATA_FOR_TERM_GRADES\",\"name\":\"Get term grade data\",\"description\":\"Retrieves department-level aggregated grade data for a specific academic term within a Canvas account.\"},{\"slug\":\"CANVAS_DRAFT_REPLY_TO_DISCUSSION\",\"name\":\"Post discussion entry or reply\",\"description\":\"Posts a new entry or reply to a Canvas discussion topic. Creates either a top-level entry (when entry_id is omitted) or a nested reply to an existing entry (when entry_id is provided). The entry is posted immediately and becomes visible to discussion participants.\"},{\"slug\":\"CANVAS_DUPLICATE_GROUP_DISCUSSION_TOPIC\",\"name\":\"Duplicate group discussion topic\",\"description\":\"Tool to duplicate an existing discussion topic in a Canvas group. Use when you need to create a copy of a group discussion topic with all its settings and content.\"},{\"slug\":\"CANVAS_EDIT_ASSIGNMENT\",\"name\":\"Edit assignment\",\"description\":\"Updates an existing assignment in a Canvas course (identified by `course_id` and `assignment_id`); only attributes explicitly provided in the request are modified.\"},{\"slug\":\"CANVAS_EDIT_CONVERSATION\",\"name\":\"Edit a conversation\",\"description\":\"Tool to update attributes for a single conversation in Canvas. Use when you need to star/unstar, subscribe/unsubscribe, or change the workflow state (read, unread, archived) of a specific conversation.\"},{\"slug\":\"CANVAS_EDIT_QUIZ\",\"name\":\"Edit a quiz\",\"description\":\"Modifies an existing Canvas quiz; only attributes with provided values in the request are updated.\"},{\"slug\":\"CANVAS_EDIT_USER\",\"name\":\"Edit User\",\"description\":\"Modifies an existing Canvas user's profile and settings. Use to update name, email, timezone, bio, pronouns, and other profile fields. To modify login credentials, use the logins API instead.\"},{\"slug\":\"CANVAS_EXPORT_CONTENT\",\"name\":\"Export content\",\"description\":\"Initiates an asynchronous export of course content from Canvas. Returns an export job ID and progress URL that can be used to track the export status and retrieve the exported file once complete. Supports exporting full courses (Common Cartridge), quizzes (QTI), or files (ZIP).\"},{\"slug\":\"CANVAS_EXPORT_GROUP_CONTENT\",\"name\":\"Export group content\",\"description\":\"Tool to begin a content export job for a group. Groups only support ZIP format exports of files and folders. Returns an export job with a progress_url to track the export status using the Progress API. Once complete, the exported file can be downloaded via the attachment URL.\"},{\"slug\":\"CANVAS_EXPORT_USER_CONTENT\",\"name\":\"Export user content\",\"description\":\"Tool to begin a content export job for a user. Use when you need to export user content from Canvas in Common Cartridge, QTI, or ZIP format. Track progress using the Progress API via the progress_url returned in the response. Once complete, download the exported file via the attachment URL.\"},{\"slug\":\"CANVAS_FETCH_DATA\",\"name\":\"Fetch Data\",\"description\":\"Fetches a specific category of Canvas data (e.g., accounts, courses, users) by setting exactly one `get_*` boolean flag to true and providing any associated IDs. Supports pagination with per_page (default 100, max 100) and page (default 1) parameters to fetch large datasets.\"},{\"slug\":\"CANVAS_FIND_RECIPIENTS\",\"name\":\"Find recipients\",\"description\":\"Find valid recipients (users, courses and groups) that the current user can send messages to. Use when searching for message recipients or looking up specific users/contexts by id.\"},{\"slug\":\"CANVAS_GET_ACCOUNT_COURSE\",\"name\":\"Get a single course from account\",\"description\":\"Tool to retrieve information on a single course from a Canvas account. Use when you need to get detailed course information including optional data like teachers, term, permissions, or course progress.\"},{\"slug\":\"CANVAS_GET_ACCOUNT_GRAPH_QL\",\"name\":\"Get account (GraphQL)\",\"description\":\"Tool to retrieve account information by ID or SIS ID using the Canvas GraphQL API. Use when you need to fetch account details via GraphQL interface.\"},{\"slug\":\"CANVAS_GET_ACCOUNT_NOTIFICATIONS\",\"name\":\"Get Account Notifications\",\"description\":\"Tool to retrieve global account notifications for the current user in Canvas LMS. Use when you need to check announcements, alerts, or system-wide messages that admins have posted to the account.\"},{\"slug\":\"CANVAS_GET_ACCOUNTS_OUTCOME_GROUPS\",\"name\":\"Get accounts outcome groups\",\"description\":\"Tool to retrieve a specific outcome group from a Canvas account. Use when you need to fetch details about a specific outcome group including its title, description, parent group, and management URLs.\"},{\"slug\":\"CANVAS_GET_ACCOUNTS_THAT_USERS_CAN_CREATE_COURSES_IN\",\"name\":\"Get Accounts That Users Can Create Courses In\",\"description\":\"Retrieves Canvas accounts where the current user has permission to create courses; typically returns results only for administrators.\"},{\"slug\":\"CANVAS_GET_A_CONTENT_MIGRATION3\",\"name\":\"Get a content migration for group\",\"description\":\"Tool to retrieve data on an individual content migration from a Canvas group. Use when you need to check the status, progress, or details of a specific group migration.\"},{\"slug\":\"CANVAS_GET_A_CONTENT_MIGRATION4\",\"name\":\"Get a content migration for user\",\"description\":\"Tool to retrieve data on an individual content migration from a Canvas user. Use when you need to check the status, progress, or details of a specific user migration.\"},{\"slug\":\"CANVAS_GET_A_LATE_POLICY\",\"name\":\"Get a late policy\",\"description\":\"Tool to retrieve the late policy for a Canvas course. Use when you need to check the course's policy for handling late and missing submissions.\"},{\"slug\":\"CANVAS_GET_ALIGNED_ASSIGNMENTS_FOR_AN_OUTCOME\",\"name\":\"Get aligned assignments for an outcome\",\"description\":\"Retrieves outcome alignments for a student or assignment within a course. Use when you need to see which assignments are aligned to learning outcomes, optionally filtered by student or assignment.\"},{\"slug\":\"CANVAS_GET_ALL_ASSIGNMENTS\",\"name\":\"Get assignments for a specific course (requires course_id)\",\"description\":\"Retrieves assignments for a specific Canvas course. IMPORTANT: This action requires a course_id parameter - it does NOT retrieve assignments globally across all courses. You must first obtain a valid course_id (e.g., from CANVAS_LIST_COURSES) and provide it to retrieve that course's assignments. Results may be nested under a `response_data` array; inspect the JSON structure before iterating. `due_at` values are ISO 8601 strings in UTC. Filter on `published`, `locked_for_user`, and `has_submitted_submissions` fields to identify actionable assignments.\"},{\"slug\":\"CANVAS_GET_ALL_E_PORTFOLIOS_FOR_USER\",\"name\":\"Get All ePortfolios for User\",\"description\":\"Tool to retrieve all ePortfolios for a specified user from Canvas LMS. Use when you need to list a user's ePortfolio collection.\"},{\"slug\":\"CANVAS_GET_ALL_OUTCOME_GROUPS_FOR_CONTEXT\",\"name\":\"Get All Outcome Groups for Context\",\"description\":\"Tool to retrieve all outcome groups for an account context in Canvas. Use when you need to list learning outcome groups.\"},{\"slug\":\"CANVAS_GET_ALL_OUTCOME_GROUPS_FOR_CONTEXT2\",\"name\":\"Get all outcome groups for course\",\"description\":\"Tool to retrieve all outcome groups for a course context in Canvas. Use when you need to list learning outcome groups for a specific course.\"},{\"slug\":\"CANVAS_GET_ALL_OUTCOME_LINKS_FOR_CONTEXT\",\"name\":\"Get All Outcome Links for Context\",\"description\":\"Retrieves all outcome links for a Canvas account context. Use when you need to fetch the relationships between outcomes and outcome groups within an account.\"},{\"slug\":\"CANVAS_GET_ALL_OUTCOME_LINKS_FOR_CONTEXT2\",\"name\":\"Get All Outcome Links for Context (Courses)\",\"description\":\"Retrieves all outcome links for a Canvas course context. Use when you need to fetch the relationships between outcomes and outcome groups within a course.\"},{\"slug\":\"CANVAS_GET_ALL_PEER_REVIEWS\",\"name\":\"Get all peer reviews for submission\",\"description\":\"Retrieves all peer reviews for a specific submission within a Canvas assignment. Use when you need to view peer reviewers assigned to a student's submission.\"},{\"slug\":\"CANVAS_GET_ALL_PEER_REVIEWS_FOR_SECTION_ASSIGNMENT\",\"name\":\"Get all peer reviews for section assignment\",\"description\":\"Retrieves all peer reviews for a specific assignment within a Canvas section. Use when you need to view all peer review assignments for an entire section's assignment.\"},{\"slug\":\"CANVAS_GET_ALL_PEER_REVIEWS_FOR_SECTION_SUBMISSION\",\"name\":\"Get all peer reviews for section submission\",\"description\":\"Retrieves all peer reviews for a specific submission within a Canvas section assignment. Use when you need to view peer reviewers assigned to a student's submission in a specific section.\"},{\"slug\":\"CANVAS_GET_ALL_USERS\",\"name\":\"Get all users\",\"description\":\"Retrieves a list of users for a specified Canvas `account_id` (use 'self' for the current user's root account), supporting filtering, sorting, and pagination.\"},{\"slug\":\"CANVAS_GET_AN_ASSIGNMENT_GROUP\",\"name\":\"Get an assignment group\",\"description\":\"Retrieves the assignment group with the given id from a Canvas course. Use when you need to get details about a specific assignment group, including its name, position, weight, and optionally associated assignments.\"},{\"slug\":\"CANVAS_GET_A_PREFERENCE\",\"name\":\"Get notification preference\",\"description\":\"Fetches the notification preference for a specific notification on a given communication channel. Use to check how often a user wants to receive a particular type of notification.\"},{\"slug\":\"CANVAS_GET_A_PREFERENCE_BY_TYPE_AND_ADDRESS\",\"name\":\"Get notification preference by type and address\",\"description\":\"Fetches the notification preference for a specific notification on a given communication channel using channel type and address. Use when you need to check how often a user receives notifications for a particular event type on a specific communication channel.\"},{\"slug\":\"CANVAS_GET_A_SINGLE_EXTERNAL_TOOL2\",\"name\":\"Get a single external tool\",\"description\":\"Tool to retrieve detailed information for a specific external tool within a Canvas course. Use when you need to get configuration details, settings, or metadata for an external tool in a course context.\"},{\"slug\":\"CANVAS_GET_A_SINGLE_GROUP_MEMBERSHIP\",\"name\":\"Get a single group membership\",\"description\":\"Tool to retrieve a single group membership by its membership_id or user_id. Use when you need to check membership status, moderator privileges, or workflow state for a specific user in a group.\"},{\"slug\":\"CANVAS_GET_A_SINGLE_GROUP_MEMBERSHIP2\",\"name\":\"Get a single group membership by user ID\",\"description\":\"Tool to retrieve a single group membership by user_id. Use when you need to check membership status, moderator privileges, or workflow state for a specific user in a group.\"},{\"slug\":\"CANVAS_GET_ASSIGNMENT2\",\"name\":\"Get assignment (GraphQL)\",\"description\":\"Tool to retrieve information about a specific assignment by ID using the Canvas GraphQL API. Returns assignment details including submissions connection.\"},{\"slug\":\"CANVAS_GET_ASSIGNMENT_GROUP\",\"name\":\"Get assignment group\",\"description\":\"Tool to retrieve information about a specific assignment group by ID. Use when you need to fetch details about an assignment group including its name, position, weight, and state.\"},{\"slug\":\"CANVAS_GET_ASSIGNMENT_RUBRIC\",\"name\":\"Get Assignment Rubric\",\"description\":\"Fetches the detailed rubric for a specified assignment within a Canvas course; returns has_rubric=false if the assignment has no associated rubric.\"},{\"slug\":\"CANVAS_GET_AUDIT_LOGS\",\"name\":\"Get Audit Logs\",\"description\":\"Tool to access Canvas audit logs for a specified asset using the GraphQL API. Use when retrieving mutation logs to track changes and operations performed on accounts, courses, or users.\"},{\"slug\":\"CANVAS_GET_A_USERS_MOST_RECENTLY_GRADED\",\"name\":\"Get a user's most recently graded submissions\",\"description\":\"Retrieves a user's most recently graded submissions. Use 'self' as the user ID to get graded submissions for the authenticated user.\"},{\"slug\":\"CANVAS_GET_AUTHENTICATION_PROVIDER\",\"name\":\"Get Authentication Provider\",\"description\":\"Retrieves a specific authentication provider configuration for a Canvas account. Use when you need to view the configuration details of a specific authentication provider.\"},{\"slug\":\"CANVAS_GET_BOOKMARK\",\"name\":\"Get Bookmark\",\"description\":\"Retrieves the details for a specific bookmark by ID. Use when you need to fetch information about a particular bookmark for the authenticated user.\"},{\"slug\":\"CANVAS_GET_BRAND_VARIABLES\",\"name\":\"Get brand variables\",\"description\":\"Tool to retrieve all brand configuration variables for the Canvas account. Use when you need to access theme colors, logos, watermarks, or other branding customization settings.\"},{\"slug\":\"CANVAS_GET_CONTENT_SHARE\",\"name\":\"Get content share\",\"description\":\"Retrieves detailed information about a single content share by ID for a specified user. Use when you need to view the details of a specific shared content item.\"},{\"slug\":\"CANVAS_GET_CONTENT_SHARES_UNREAD_COUNT\",\"name\":\"Get content shares unread count\",\"description\":\"Tool to retrieve the count of unread content shares for the authenticated user. Use when you need to check how many content shares have not been read yet.\"},{\"slug\":\"CANVAS_GET_COURSE\",\"name\":\"Get course\",\"description\":\"Tool to retrieve information about a specific course by ID using the Canvas GraphQL API. Use when querying course details with either GraphQL or numeric identifiers.\"},{\"slug\":\"CANVAS_GET_COURSE_ACTIVITY_STREAM\",\"name\":\"Get course activity stream\",\"description\":\"Tool to retrieve the current user's course-specific activity stream, paginated. Use when you need to see recent activities in a specific course such as new discussions, announcements, assignments, and submissions.\"},{\"slug\":\"CANVAS_GET_COURSE_ACTIVITY_STREAM_SUMMARY\",\"name\":\"Get course activity stream summary\",\"description\":\"Tool to retrieve a summary of the current user's course-specific activity stream. Returns aggregated counts by activity type (discussions, conversations, messages, etc.) for the specified course. Use when you need an overview of activity in a specific course.\"},{\"slug\":\"CANVAS_GET_COURSE_LEVEL_PARTICIPATION_DATA\",\"name\":\"Get Course Activity\",\"description\":\"Retrieves daily activity analytics, such as page views and participation events, for a specified Canvas course.\"},{\"slug\":\"CANVAS_GET_COURSE_NICKNAME\",\"name\":\"Get course nickname\",\"description\":\"Retrieves the nickname for a specific Canvas course. Use when you need to get the user-defined alternate name for a course.\"},{\"slug\":\"CANVAS_GET_COURSE_PERMISSIONS\",\"name\":\"Get Course Permissions\",\"description\":\"Returns permission information for the calling user in the given course. Use when you need to check what actions the authenticated user is authorized to perform in a specific course.\"},{\"slug\":\"CANVAS_GET_COURSES12_ASSIGNMENTS\",\"name\":\"Batch retrieve assignment overrides\",\"description\":\"Tool to batch retrieve assignment overrides in a course. Use when you need to retrieve multiple assignment overrides at once by providing paired lists of override IDs and assignment IDs. Returns null for overrides that were not found or target sections/groups/students not visible to the current user.\"},{\"slug\":\"CANVAS_GET_COURSES_BLUEPRINT_SUBSCRIPTIONS_MIGRATIONS\",\"name\":\"Get Blueprint Subscription Migrations\",\"description\":\"Retrieves blueprint subscription migrations for a Canvas course. Use when you need to list sync operations from a blueprint course to an associated course.\"},{\"slug\":\"CANVAS_GET_COURSE_SETTINGS\",\"name\":\"Get course settings\",\"description\":\"Tool to retrieve settings for a specific Canvas course. Use when you need to check configuration options like student permissions, grading settings, or display preferences for a course.\"},{\"slug\":\"CANVAS_GET_COURSES_FOLDERS_BY_PATH\",\"name\":\"Get courses folders by path\",\"description\":\"Tool to retrieve folder hierarchy by resolving a path within a Canvas course. Use when you need to traverse a folder path or verify a folder exists at a specific location.\"},{\"slug\":\"CANVAS_GET_COURSES_FOLDERS_ROOT\",\"name\":\"Get course root folder\",\"description\":\"Tool to retrieve the root folder for a course. Use when you need to access the root folder from a course context by using 'root' as the folder identifier.\"},{\"slug\":\"CANVAS_GET_COURSES_GRAPH_QL\",\"name\":\"Get courses (GraphQL)\",\"description\":\"Tool to get all courses viewable by the current user using the Canvas GraphQL API. Use when retrieving the list of courses accessible to the authenticated user.\"},{\"slug\":\"CANVAS_GET_COURSES_OUTCOME_GROUPS\",\"name\":\"Get courses outcome groups\",\"description\":\"Retrieves a specific outcome group for a course. Use when you need to fetch detailed information about an outcome group.\"},{\"slug\":\"CANVAS_GET_CURRENT_USER\",\"name\":\"Get Current User\",\"description\":\"Retrieves detailed information about the currently authenticated user from the Canvas LMS.\"},{\"slug\":\"CANVAS_GET_CUSTOM_COLOR\",\"name\":\"Get Custom Color\",\"description\":\"Tool to retrieve the custom color that a user has saved for a specific course or context in Canvas. Use when you need to fetch user-specific color preferences for a course or other context.\"},{\"slug\":\"CANVAS_GET_CUSTOM_COLORS\",\"name\":\"Get Custom Colors\",\"description\":\"Tool to retrieve all custom colors saved by a user in Canvas LMS. Use when you need to fetch color customizations for courses or other Canvas objects.\"},{\"slug\":\"CANVAS_GET_DASHBOARD_POSITIONS\",\"name\":\"Get Dashboard Positions\",\"description\":\"Tool to retrieve all dashboard positions saved for a user. Use when you need to see the current order of dashboard cards for a specific user.\"},{\"slug\":\"CANVAS_GET_DEPARTMENT_LEVEL_COMPLETED_STATISTICS\",\"name\":\"Get department-level completed statistics\",\"description\":\"Retrieves department-level numeric statistics for all completed (concluded) courses within the default term for a specified Canvas account. Returns aggregate counts including courses, subaccounts, enrollments, discussion topics, media objects, attachments, and assignments. Note: Requires Canvas Analytics to be enabled on the instance.\"},{\"slug\":\"CANVAS_GET_DEPARTMENT_LEVEL_CURRENT_STATISTICS\",\"name\":\"Get department level current statistics\",\"description\":\"Fetches a snapshot of current numerical statistics for a Canvas account, requiring its valid ID.\"},{\"slug\":\"CANVAS_GET_DEPARTMENT_LEVEL_GRADE_DATA_COMPLETED_GRADES\",\"name\":\"Get department level completed grades\",\"description\":\"Retrieves the distribution of final grades (0-100, binned to whole numbers) for all completed courses in a Canvas account, where each data point represents one student's final grade in one course.\"},{\"slug\":\"CANVAS_GET_DEPARTMENT_LEVEL_TERM_STATISTICS\",\"name\":\"Get department level term statistics\",\"description\":\"Retrieves department-level statistics for a specific academic term, including counts of courses, teachers, students, discussion topics, media objects, attachments, and assignments. Requires the Canvas Analytics feature to be enabled.\"},{\"slug\":\"CANVAS_GET_DOCUMENT_ANNOTATIONS_READ_STATE\",\"name\":\"Get document annotations read state\",\"description\":\"Retrieves the read state of document annotations for a student's submission. Use when checking if a student has viewed feedback annotations on their submitted document.\"},{\"slug\":\"CANVAS_GET_ENROLLMENT_BY_ID\",\"name\":\"Get enrollment by ID\",\"description\":\"Retrieves a specific enrollment by its ID within a given account.\"},{\"slug\":\"CANVAS_GET_ENROLLMENT_INVITATIONS\",\"name\":\"Get Enrollment Invitations\",\"description\":\"Tool to retrieve pending enrollment invitations for the current user. Use when you need to check course invitations that the user has not yet accepted or rejected.\"},{\"slug\":\"CANVAS_GET_FEATURE_FLAG\",\"name\":\"Get feature flag for account\",\"description\":\"Tool to retrieve a specific feature flag for a given Canvas account. The flag may be defined on the account, or it may be inherited from a parent account. Check context_id and context_type fields to determine the source; if these fields are missing, the flag represents the global Canvas default.\"},{\"slug\":\"CANVAS_GET_FEATURE_FLAG_COURSES\",\"name\":\"Get feature flag for course\",\"description\":\"Get the feature flag that applies to a given Course. The flag may be defined on the course, or it may be inherited from a parent account. Check the context_id and context_type of the returned object to determine which is the case.\"},{\"slug\":\"CANVAS_GET_FILE\",\"name\":\"Get file\",\"description\":\"Tool to retrieve detailed metadata for a specific Canvas file by its ID. Use when you need information about a single file including its name, size, content type, URLs, and optionally the user who uploaded it.\"},{\"slug\":\"CANVAS_GET_FOLDER\",\"name\":\"Get folder\",\"description\":\"Retrieves details for a specific folder within a Canvas course. Use 'root' as the folder ID to get the root folder for the course context.\"},{\"slug\":\"CANVAS_GET_FOLDER_BY_ID\",\"name\":\"Get Folder By ID\",\"description\":\"Retrieves the details for a specific folder by its ID. Use 'root' as the ID to get the root folder for a context.\"},{\"slug\":\"CANVAS_GET_FULL_TOPIC_GROUPS\",\"name\":\"Get Full Topic for Groups\",\"description\":\"Tool to retrieve the full cached structure of a group discussion topic. Use when you need all entries, their authors, and message bodies in a hierarchical format. Note: May require that the user has posted in the topic; if required and the user has not posted, will respond with 403 Forbidden.\"},{\"slug\":\"CANVAS_GET_GLOBAL_OUTCOME_GROUP\",\"name\":\"Get Global Outcome Group\",\"description\":\"Retrieves a global outcome group by ID from Canvas. Use when you need to get details about a specific global learning outcome group.\"},{\"slug\":\"CANVAS_GET_GRADEBOOK_HISTORY_DAYS\",\"name\":\"Get gradebook history days\",\"description\":\"Retrieves a chronological list of dates with grading activity and the active graders for a specified course.\"},{\"slug\":\"CANVAS_GET_GROUP\",\"name\":\"Get a group\",\"description\":\"Retrieves detailed information for a single Canvas group by its ID. Use when you need to get information about a specific group including optional permissions and tab configurations.\"},{\"slug\":\"CANVAS_GET_GROUP_ACTIVITY_STREAM\",\"name\":\"Get group activity stream\",\"description\":\"Tool to retrieve the current user's group-specific activity stream, paginated. Use when you need to see recent activities in a specific group such as new discussions, announcements, and other group-related activities.\"},{\"slug\":\"CANVAS_GET_GROUP_ACTIVITY_STREAM_SUMMARY\",\"name\":\"Get Group Activity Stream Summary\",\"description\":\"Retrieves a summary of the current user's group-specific activity stream. Returns counts and unread counts for different activity types within the specified group.\"},{\"slug\":\"CANVAS_GET_GROUP_FOLDER\",\"name\":\"Get Group Folder\",\"description\":\"Retrieves the details for a folder within a Canvas group. Use 'root' as the folder ID to get the root folder for the group context.\"}]},{\"slug\":\"bitbucket\",\"name\":\"Bitbucket\",\"description\":\"Bitbucket is a Git-based code hosting and collaboration platform supporting private and public repositories, enabling teams to manage and review code through pull requests and integrations\",\"logo\":\"https://logos.composio.dev/api/bitbucket\",\"rank\":24,\"tools\":[{\"slug\":\"BITBUCKET_APPROVE_PULL_REQUEST\",\"name\":\"Approve Pull Request\",\"description\":\"Tool to approve a pull request as the authenticated user. Use when you need to formally approve changes in a pull request review process.\"},{\"slug\":\"BITBUCKET_BROWSE_REPOSITORY_PATH\",\"name\":\"Browse repository path\",\"description\":\"Tool to retrieve content for a file path or browse directory contents at a specified revision in a Bitbucket repository. Use when you need flexible access to repository content - returns raw file data for files or paginated directory listings for directories.\"},{\"slug\":\"BITBUCKET_CREATE_BRANCH\",\"name\":\"Create a branch\",\"description\":\"Creates a new branch in a Bitbucket repository from a target commit hash; the branch name must be unique, adhere to Bitbucket's naming conventions, and not include the 'refs/heads/' prefix.\"},{\"slug\":\"BITBUCKET_CREATE_ISSUE\",\"name\":\"Create an issue\",\"description\":\"Creates a new issue in a Bitbucket repository, setting the authenticated user as reporter; ensures assignee (if provided) has repository access, and that any specified milestone, version, or component IDs exist.\"},{\"slug\":\"BITBUCKET_CREATE_ISSUE_COMMENT\",\"name\":\"Create an issue comment\",\"description\":\"Adds a new comment with markdown support to an existing Bitbucket issue.\"},{\"slug\":\"BITBUCKET_CREATE_PULL_REQUEST\",\"name\":\"Create a pull request\",\"description\":\"Creates a new pull request in a specified Bitbucket repository, ensuring the source branch exists and is distinct from the (optional) destination branch.\"},{\"slug\":\"BITBUCKET_CREATE_PULL_REQUEST_COMMENT\",\"name\":\"Create pull request comment\",\"description\":\"Creates a new comment on a Bitbucket pull request. Supports top-level comments, threaded replies, and inline code comments. Use when providing feedback on a PR, replying to existing comments, or commenting on specific code lines.\"},{\"slug\":\"BITBUCKET_CREATE_REPOSITORIES_COMMIT_REPORTS_ANNOTATIONS\",\"name\":\"Create commit report annotations\",\"description\":\"Adds multiple annotations to a commit report in bulk. Use when you need to add code analysis findings (vulnerabilities, code smells, bugs) to a report attached to a specific commit.\"},{\"slug\":\"BITBUCKET_CREATE_REPOSITORIES_COMMITS2\",\"name\":\"List commits from revision (POST)\",\"description\":\"Tool to list commits from a revision using POST method. Identical to GET endpoint but allows sending include/exclude parameters in request body to avoid URL length limits. Use when include/exclude parameters are too long for query strings.\"},{\"slug\":\"BITBUCKET_CREATE_REPOSITORY\",\"name\":\"Create repository\",\"description\":\"Creates a new Bitbucket 'git' repository in a specified workspace, defaulting to the workspace's oldest project if `project_key` is not provided.\"},{\"slug\":\"BITBUCKET_CREATE_SNIPPET_COMMENT\",\"name\":\"Create snippet comment\",\"description\":\"Posts a new top-level comment or a threaded reply to an existing comment on a specified Bitbucket snippet.\"},{\"slug\":\"BITBUCKET_CREATE_TEAMS_PIPELINES_CONFIG_VARIABLES\",\"name\":\"Create team pipeline variable\",\"description\":\"Creates a team-level pipeline configuration variable in Bitbucket. Use when you need to add environment variables or configuration values that should be available to all pipelines within a team.\"},{\"slug\":\"BITBUCKET_CREATE_USERS_PIPELINES_CONFIG_VARIABLES\",\"name\":\"Create user pipeline variable\",\"description\":\"Creates a user-level pipeline variable for Bitbucket pipelines. Use when you need to create account-level configuration variables that can be used across all repositories owned by the user.\"},{\"slug\":\"BITBUCKET_DECLINE_PULL_REQUEST\",\"name\":\"Decline Pull Request\",\"description\":\"Decline a Bitbucket Cloud pull request via the REST API. Use this action when you need to reject a pull request that should not be merged. This action is irreversible — once declined, the pull request cannot be reopened and must be recreated if needed.\"},{\"slug\":\"BITBUCKET_DELETE_COMMIT_COMMENT\",\"name\":\"Delete commit comment\",\"description\":\"Permanently deletes a specific comment on a commit. Use when removing outdated, incorrect, or unwanted feedback on a commit.\"},{\"slug\":\"BITBUCKET_DELETE_ISSUE\",\"name\":\"Delete issue\",\"description\":\"Permanently deletes a specific issue, identified by its `issue_id`, from the repository specified by `repo_slug` within the given `workspace`.\"},{\"slug\":\"BITBUCKET_DELETE_PULL_REQUEST_COMMENT\",\"name\":\"Delete pull request comment\",\"description\":\"Permanently deletes a specific pull request comment (top-level, inline, or threaded reply). Use when removing outdated, incorrect, or unwanted feedback from a pull request.\"},{\"slug\":\"BITBUCKET_DELETE_REPOSITORIES_COMMIT_REPORTS_ANNOTATIONS\",\"name\":\"Delete commit report annotation\",\"description\":\"Deletes a single annotation matching the provided ID from a commit report. Use when you need to remove a specific annotation from a code analysis report.\"},{\"slug\":\"BITBUCKET_DELETE_REPOSITORY\",\"name\":\"Delete repository\",\"description\":\"Permanently deletes a specified Bitbucket repository; this action is irreversible and does not affect forks.\"},{\"slug\":\"BITBUCKET_DELETE_SNIPPETS_WATCH\",\"name\":\"Delete snippet watch\",\"description\":\"Stops watching a specific snippet. Use when you want to unsubscribe from notifications for a snippet.\"},{\"slug\":\"BITBUCKET_DELETE_USER_PIPELINE_VARIABLE\",\"name\":\"Delete user pipeline variable\",\"description\":\"Permanently deletes a user-level pipeline configuration variable identified by its UUID. Use this to remove pipeline variables that are no longer needed at the account level.\"},{\"slug\":\"BITBUCKET_GET_BRANCH\",\"name\":\"Get branch\",\"description\":\"Retrieves detailed information about a specific branch in a Bitbucket repository. Use when you need to get branch metadata, the commit it points to, or verify a branch exists.\"},{\"slug\":\"BITBUCKET_GET_COMMIT_BUILD_STATUS\",\"name\":\"Get Commit Build Status\",\"description\":\"Get a specific build status for a commit in Bitbucket. Use when you need to check the status of a particular build/CI run for a commit.\"},{\"slug\":\"BITBUCKET_GET_COMMIT_CHANGES\",\"name\":\"Get Commit Changes\",\"description\":\"Tool to retrieve a page of changes made in a specified commit, showing all changed files with their change statistics (lines added/removed, status). Use when you need to enumerate files modified in a specific commit or commit range.\"},{\"slug\":\"BITBUCKET_GET_COMMIT_COMMENT\",\"name\":\"Get commit comment\",\"description\":\"Retrieves a specific comment from a commit by its ID. Use when you need to fetch details of a particular commit comment including content, author, timestamps, and inline location.\"},{\"slug\":\"BITBUCKET_GET_COMMIT_DIFF\",\"name\":\"Get Commit Diff\",\"description\":\"Tool to retrieve the unified diff between two provided revisions or for a single commit in a Bitbucket repository. Use when you need to see the actual code changes in a commit or between two commits. Supports filtering by file path and various diff options.\"},{\"slug\":\"BITBUCKET_GET_CURRENT_USER2\",\"name\":\"Get current user (v2)\",\"description\":\"Tool to retrieve complete profile information for the currently authenticated Bitbucket user. Use when you need comprehensive user details including account_id, username, nickname, and other profile fields.\"},{\"slug\":\"BITBUCKET_GET_DEPLOYMENT_ENVIRONMENT_VARIABLES\",\"name\":\"Get deployment environment variables\",\"description\":\"Retrieves deployment environment level variables for a specific Bitbucket repository environment. Use when you need to view or audit environment-specific configuration variables for deployments.\"},{\"slug\":\"BITBUCKET_GET_FILE_FROM_REPOSITORY\",\"name\":\"Get file from repository\",\"description\":\"Retrieves a specific file's content from a Bitbucket repository at a given commit (hash, branch, or tag), failing if the file path is invalid for that commit.\"},{\"slug\":\"BITBUCKET_GET_HOOK_EVENTS\",\"name\":\"Get hook events\",\"description\":\"Retrieves a paginated list of all valid webhook events for a specified entity type (repository or workspace). Use when you need to discover available webhook event types for subscription or webhook configuration.\"},{\"slug\":\"BITBUCKET_GET_OPENID_CONFIGURATION\",\"name\":\"Get OpenID configuration for OIDC in Pipelines\",\"description\":\"Retrieves the OpenID Connect discovery configuration for Bitbucket Pipelines OIDC. Use when integrating Bitbucket Pipelines with resource servers (AWS, GCP, Vault) using OpenID Connect authentication. Returns issuer URL, JWKS URI, and supported capabilities.\"},{\"slug\":\"BITBUCKET_GET_PULL_REQUEST\",\"name\":\"Get Pull Request\",\"description\":\"Get a single pull request by ID with complete details.\"},{\"slug\":\"BITBUCKET_GET_PULL_REQUEST_COMMENT\",\"name\":\"Get pull request comment\",\"description\":\"Tool to retrieve a specific comment from a pull request by its ID. Use when you need to fetch details of a particular pull request comment including content, author, timestamps, and inline location.\"},{\"slug\":\"BITBUCKET_GET_PULL_REQUEST_COMMITS\",\"name\":\"Get Pull Request Commits\",\"description\":\"Tool to retrieve commits for a specified pull request. Use when reviewing the commit history of a PR or analyzing changes included in a pull request.\"},{\"slug\":\"BITBUCKET_GET_PULL_REQUEST_DIFF\",\"name\":\"Get Pull Request Diff\",\"description\":\"Tool to fetch the unified diff for a Bitbucket pull request (follows 302 redirect to repository diff). Use when reviewing code changes in a PR. Supports optional truncation for large diffs via max_chars parameter.\"},{\"slug\":\"BITBUCKET_GET_PULL_REQUEST_DIFFSTAT\",\"name\":\"Get Pull Request Diffstat\",\"description\":\"Tool to get the diffstat for a Bitbucket pull request, showing all changed files with their change statistics (lines added/removed, status). Use when you need to enumerate files modified in a PR.\"},{\"slug\":\"BITBUCKET_GET_RAW_FILE_CONTENT\",\"name\":\"Get raw file content\",\"description\":\"DEPRECATED: Use BITBUCKET_GET_FILE_FROM_REPOSITORY instead. Tool to retrieve the raw content of a file from a Bitbucket repository at a specified commit, branch, or tag. Use when you need to read file contents from a specific revision.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_BRANCHING_MODEL\",\"name\":\"Get Repository Branching Model\",\"description\":\"Return the branching model as applied to the repository. Use when you need to understand the repository's branch workflow configuration, including development/production branches and branch type prefixes.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_COMMIT\",\"name\":\"Get Repository Commit\",\"description\":\"Tool to retrieve detailed information about a specific commit in a Bitbucket repository. Use when you need to get complete commit details including author, message, date, parents, and related links.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_COMMIT_COMMENTS\",\"name\":\"Get commit comments\",\"description\":\"Retrieves all comments on a specific commit in a Bitbucket repository. Returns both global and inline code comments. Use when you need to view feedback, discussions, or notes left on a specific commit.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_COMMIT_REPORT\",\"name\":\"Get commit report\",\"description\":\"Returns a single report matching the provided ID from a commit. Use when you need to retrieve details of a specific analysis report (e.g., security scan, code coverage, test results, or bug report) for a commit.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_COMMIT_REPORTS\",\"name\":\"Get Commit Reports\",\"description\":\"Tool to get reports linked to a specific commit. Use when you need to retrieve analysis results, test reports, security scans, or code coverage data associated with a commit.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_COMMIT_REPORTS_ANNOTATIONS\",\"name\":\"Get commit report annotation\",\"description\":\"Returns a single annotation matching the provided ID from a commit report. Use when you need to retrieve details of a specific code analysis finding (e.g., vulnerability, code smell, or bug) identified in a commit.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_COMMIT_STATUSES\",\"name\":\"Get commit statuses\",\"description\":\"Returns all build statuses (e.g., CI/CD pipeline results) for a specific commit. Use when you need to check build status, verify test results, or monitor deployment pipelines for a particular commit.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_EFFECTIVE_BRANCHING_MODEL\",\"name\":\"Get effective branching model\",\"description\":\"Retrieves the effective branching model for a Bitbucket repository, showing which branching model is currently applied (including any inheritance from project-level settings). Use when you need to understand the repository's branch workflow configuration, including development and production branches and branch type prefixes.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_ENVIRONMENTS2\",\"name\":\"Get Repository Environment\",\"description\":\"Retrieve detailed information about a specific deployment environment in a Bitbucket repository. Use when you need to get environment configuration, deployment settings, or check environment properties like locks and restrictions.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_FILEHISTORY\",\"name\":\"Get file commit history\",\"description\":\"Returns a paginated list of commits that modified the specified file. Use when you need to track file changes over time, find who modified a file, or determine when a file was created or last changed.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_ISSUES_VOTE\",\"name\":\"Check if user voted for issue\",\"description\":\"Tool to check whether the authenticated user has voted for a specific issue in a Bitbucket repository. Use when you need to verify if the current user has already voted on an issue before attempting to vote or unvote.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_MERGE_BASE\",\"name\":\"Get Repositories Merge Base\",\"description\":\"Get the merge base (best common ancestor) between two commits in a Bitbucket repository. Use when you need to find the common ancestor commit between two branches or commits for comparison or merge operations.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_PIPELINES2\",\"name\":\"Get specific pipeline\",\"description\":\"Retrieve a specified pipeline from a Bitbucket repository. Use when you need to get detailed information about a specific pipeline execution including its status, build number, and results.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_PIPELINES_CONFIG_CACHES\",\"name\":\"Get repository pipelines caches\",\"description\":\"Retrieves the repository pipelines caches. Use when you need to list all caches configured for Bitbucket Pipelines in a specific repository.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_PIPELINES_CONFIG_RUNNERS\",\"name\":\"Get repository pipeline runners\",\"description\":\"Retrieves the list of self-hosted runners configured for a repository's pipelines. Use when you need to view available runners for pipeline execution.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_PIPELINES_CONFIG_SCHEDULES\",\"name\":\"Get repository pipeline schedules\",\"description\":\"Retrieves configured pipeline schedules for a Bitbucket repository. Use when you need to view scheduled pipeline runs and their cron patterns.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_PIPELINES_CONFIG_SSH_KNOWN_HOSTS\",\"name\":\"Get repository SSH known hosts\",\"description\":\"Retrieves repository-level SSH known hosts configured for Bitbucket Pipelines. Use when you need to list or verify SSH known hosts that Pipelines can connect to during builds.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_PIPELINES_CONFIG_VARIABLES\",\"name\":\"Get repository pipeline variables\",\"description\":\"Retrieves repository-level pipeline variables for a specific Bitbucket repository. Use when you need to view or audit pipeline configuration variables that are scoped to a repository.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_PIPELINES_STEPS\",\"name\":\"Get pipeline steps\",\"description\":\"Retrieves all steps for a given pipeline. Use when you need to inspect the individual steps of a pipeline execution, including their state, duration, and commands.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_PULLREQUESTS_ACTIVITY\",\"name\":\"Get pull requests activity log\",\"description\":\"Get paginated activity log for all pull requests in a repository. Returns comments, updates, approvals, and request changes. Use when you need to track pull request activity history.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_PULLREQUESTS_COMMENTS\",\"name\":\"Get pull request comments\",\"description\":\"Retrieves a paginated list of comments on a specific pull request in a Bitbucket repository. Returns global, inline, and threaded comments. Use when you need to view feedback, discussions, or reviews left on a pull request.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_PULLREQUESTS_STATUSES\",\"name\":\"Get pull request statuses\",\"description\":\"Returns all build statuses (e.g., CI/CD pipeline results) for a specific pull request. Use when you need to check build status, verify test results, or monitor deployment pipelines for a pull request.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_REFS\",\"name\":\"Get repository refs\",\"description\":\"Returns the branches and tags in the repository. Use when you need to list all refs (both branches and tags) in a single API call with optional filtering by type, name pattern, or commit hash.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_REFS_TAGS\",\"name\":\"Get tag\",\"description\":\"Retrieves detailed information about a specific tag in a Bitbucket repository. Use when you need to get tag metadata, target commit details, or verify a tag exists.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_SRC\",\"name\":\"Get repositories src\",\"description\":\"Lists the contents of the root directory on the repository's main branch without needing to specify a commit or branch. This endpoint redirects to the main branch automatically.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORIES_WATCHERS\",\"name\":\"Get repository watchers\",\"description\":\"Retrieves a paginated list of all the watchers on the specified repository. Use when you need to see who is watching a particular repository.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORY\",\"name\":\"Get repository\",\"description\":\"Retrieves detailed information about a specific repository in a Bitbucket workspace. Use when you need to get repository metadata, settings, or details.\"},{\"slug\":\"BITBUCKET_GET_REPOSITORY_PATCH\",\"name\":\"Get Repository Patch\",\"description\":\"Tool to retrieve the git patch content for a Bitbucket repository at a specified revision or commit range. Use when you need to review code changes, generate diffs, or analyze modifications between commits. Returns raw patch in unified diff format.\"},{\"slug\":\"BITBUCKET_GET_SNIPPET\",\"name\":\"Get snippet\",\"description\":\"Retrieves a specific Bitbucket snippet by its encoded ID from an existing workspace, returning its metadata and file structure.\"},{\"slug\":\"BITBUCKET_GET_SNIPPETS_WATCH\",\"name\":\"Get snippet watch status\",\"description\":\"Checks if the current user is watching a specific snippet. Use when you need to verify watch status for a snippet.\"},{\"slug\":\"BITBUCKET_GET_SSH_LATEST_KEYS\",\"name\":\"Get SSH keys for user\",\"description\":\"Retrieves a paginated list of SSH keys for a specified Bitbucket user. Use when you need to view or audit SSH keys configured for a user account.\"},{\"slug\":\"BITBUCKET_GET_USER\",\"name\":\"Get user\",\"description\":\"Retrieves public profile information for a specific Bitbucket user by username or UUID. Use when you need to get user details like display name, avatar, creation date, and links to related resources.\"},{\"slug\":\"BITBUCKET_GET_USER_EMAILS\",\"name\":\"Get user emails\",\"description\":\"Returns all the authenticated user's email addresses, both confirmed and unconfirmed. Use when you need to retrieve all email addresses associated with the current user's account.\"},{\"slug\":\"BITBUCKET_GET_USER_EMAILS2\",\"name\":\"Get user email details\",\"description\":\"Retrieves details about a specific email address for the authenticated user. Use when you need to check if an email is primary, confirmed, or verify email ownership.\"},{\"slug\":\"BITBUCKET_GET_USER_PERMISSIONS_REPOSITORIES\",\"name\":\"Get user permissions for repositories\",\"description\":\"Returns an object for each repository the caller has explicit access to, including their permission level. Use when you need to discover which repositories the authenticated user can access and their specific permissions.\"},{\"slug\":\"BITBUCKET_GET_USER_PERMISSIONS_WORKSPACES\",\"name\":\"Get user permissions for workspaces\",\"description\":\"Retrieves workspace memberships and permission levels for the authenticated user. Returns an object for each workspace the caller is a member of, along with their effective role (highest privilege level). Use when you need to determine which workspaces a user can access and their permission level in each.\"},{\"slug\":\"BITBUCKET_GET_USER_WORKSPACES\",\"name\":\"Get user workspaces\",\"description\":\"Tool to retrieve all workspaces accessible to the authenticated user. Use when you need to list workspaces the current user can access, optionally filtered by workspace slug or permission level.\"},{\"slug\":\"BITBUCKET_GET_WORKSPACE\",\"name\":\"Get workspace\",\"description\":\"Retrieves detailed information about a specific Bitbucket workspace. Use when you need to get workspace metadata, settings, or details.\"},{\"slug\":\"BITBUCKET_GET_WORKSPACES_PULLREQUESTS\",\"name\":\"Get Workspace Pull Requests by User\",\"description\":\"Tool to get all workspace pull requests authored by a specified user. Use when you need to retrieve pull requests created by a specific user across all repositories in a workspace.\"},{\"slug\":\"BITBUCKET_GET_WORKSPACES_SEARCH_CODE\",\"name\":\"Search code in workspace\",\"description\":\"Tool to search for code in the repositories of the specified workspace. Use when you need to find specific code patterns, function definitions, or text across all repositories in a workspace.\"},{\"slug\":\"BITBUCKET_LIST_BRANCHES\",\"name\":\"List branches\",\"description\":\"Lists branches in a Bitbucket repository with optional server-side filtering by name pattern (BBQL) and sorting. Use when you need to discover available branches, search for specific branch patterns, or navigate repository branch structure.\"},{\"slug\":\"BITBUCKET_LIST_COMMITS\",\"name\":\"List commits\",\"description\":\"Tool to retrieve a page of commits from a Bitbucket repository. Returns commits in reverse chronological order (newest first), similar to git log. Use when you need to browse commit history, filter commits by branch/tag, or restrict to commits affecting a specific path.\"},{\"slug\":\"BITBUCKET_LIST_COMMITS_FROM_REVISION\",\"name\":\"List commits from revision\",\"description\":\"Tool to list commits starting from a specific revision in a Bitbucket repository. Commits are paginated and returned in reverse chronological order. Use when you need to retrieve commit history from a specific commit, branch, or tag.\"},{\"slug\":\"BITBUCKET_LIST_COMMITS_ON_MASTER\",\"name\":\"List commits on master\",\"description\":\"Lists commits on the master branch of a Bitbucket repository. Use when you need to retrieve the commit history for the master branch, including commit messages, authors, dates, and parent relationships.\"},{\"slug\":\"BITBUCKET_LIST_DEPLOYMENTS\",\"name\":\"List deployments\",\"description\":\"Lists deployments for a specified Bitbucket repository. Use when you need to view deployment history and status across environments.\"},{\"slug\":\"BITBUCKET_LIST_ISSUES\",\"name\":\"List issues in a repository\",\"description\":\"Lists issues in a Bitbucket repository with optional filtering by state, priority, kind, or assignee. Use when you need to discover issue IDs or get an overview of repository issues.\"},{\"slug\":\"BITBUCKET_LIST_PIPELINES\",\"name\":\"List pipelines\",\"description\":\"Tool to find pipelines in a Bitbucket repository. Returns pipeline metadata including state, trigger, and duration. Use when you need to browse pipeline history or check pipeline status.\"},{\"slug\":\"BITBUCKET_LIST_PULL_REQUESTS\",\"name\":\"List pull requests\",\"description\":\"Lists pull requests in a specified, accessible Bitbucket repository, optionally filtering by state (OPEN, MERGED, DECLINED).\"},{\"slug\":\"BITBUCKET_LIST_PULL_REQUEST_TASKS\",\"name\":\"List pull request tasks\",\"description\":\"Lists all tasks associated with a pull request in a Bitbucket repository. Use when you need to view or track tasks on a PR.\"},{\"slug\":\"BITBUCKET_LIST_REPOSITORIES\",\"name\":\"List all public repositories\",\"description\":\"Retrieves a paginated list of all public repositories on Bitbucket. Use when you need to discover or search across public repositories, optionally filtered by role, query string, creation date, or sorted by various fields.\"},{\"slug\":\"BITBUCKET_LIST_REPOSITORIES_ENVIRONMENTS\",\"name\":\"List repository environments\",\"description\":\"List all deployment environments configured for a Bitbucket repository. Use when you need to view available environments for deployments, check environment configurations, or select an environment for deployment operations.\"},{\"slug\":\"BITBUCKET_LIST_REPOSITORIES_IN_WORKSPACE\",\"name\":\"List repositories in workspace\",\"description\":\"Lists repositories in a specified Bitbucket workspace, accessible to the authenticated user, with options to filter by role or query string, and sort results. Responses are paginated; iterate using the `next` field in each response until it is absent to retrieve all repositories.\"},{\"slug\":\"BITBUCKET_LIST_REPOSITORY_FORKS\",\"name\":\"List repository forks\",\"description\":\"Retrieves a paginated list of all forks for a specific repository in a Bitbucket workspace. Returns repository objects for each fork with metadata like owner, creation date, and size. Use this action when you need to discover who has forked a repository or analyze fork relationships.\"},{\"slug\":\"BITBUCKET_LIST_REPOSITORY_PATHS\",\"name\":\"List repository paths\",\"description\":\"Lists file and directory entries under a repository path at a given revision, with optional breadth-first recursion via max_depth for repository traversal and scanning. Fails if the path points to a file rather than a directory.\"},{\"slug\":\"BITBUCKET_LIST_SNIPPETS\",\"name\":\"List snippets\",\"description\":\"Returns all snippets accessible to the authenticated user. Use when you need to discover or list snippets, optionally filtered by role (owner, contributor, or member).\"},{\"slug\":\"BITBUCKET_LIST_TAGS\",\"name\":\"List tags\",\"description\":\"Lists tags in a Bitbucket repository with optional server-side filtering by name pattern or commit hash (BBQL) and sorting. Use when you need to discover available tags, search for specific tag patterns, or find tags pointing to specific commits.\"},{\"slug\":\"BITBUCKET_LIST_VERSIONS\",\"name\":\"List versions\",\"description\":\"Lists versions (milestones) in a Bitbucket repository's issue tracker. Use when you need to discover available versions for associating with issues, or to retrieve version IDs for use with create_issue.\"},{\"slug\":\"BITBUCKET_LIST_WORKSPACE_MEMBERS\",\"name\":\"List workspace members\",\"description\":\"Lists all members of a specified Bitbucket workspace; the workspace must exist.\"},{\"slug\":\"BITBUCKET_LIST_WORKSPACE_PROJECTS\",\"name\":\"List workspace projects\",\"description\":\"Lists projects in a specified Bitbucket workspace. Use when you need to retrieve all projects belonging to a workspace.\"},{\"slug\":\"BITBUCKET_LIST_WORKSPACES\",\"name\":\"List workspaces\",\"description\":\"Lists Bitbucket workspaces accessible to the authenticated user, optionally filtered and sorted. Results are paginated; follow the `next` field in each response to retrieve subsequent pages until `next` is absent. When multiple workspaces are returned, verify the correct `slug` or UUID before passing to downstream tools.\"},{\"slug\":\"BITBUCKET_MERGE_PULL_REQUEST\",\"name\":\"Merge Pull Request\",\"description\":\"Tool to merge a Bitbucket Cloud pull request via the REST API. Use when you need to complete a PR merge after approval and checks pass. Supports custom merge messages, merge strategies, and source branch deletion.\"},{\"slug\":\"BITBUCKET_REQUEST_PULL_REQUEST_CHANGES\",\"name\":\"Request Pull Request Changes\",\"description\":\"Tool to request changes on a pull request as the authenticated user. Use when you need to formally request changes in a pull request review process, indicating the PR needs modifications before approval.\"},{\"slug\":\"BITBUCKET_RESOLVE_PULL_REQUEST_COMMENT\",\"name\":\"Resolve pull request comment\",\"description\":\"Tool to resolve or reopen a pull request comment thread. Use when marking a comment as addressed during review or reopening a previously resolved thread.\"},{\"slug\":\"BITBUCKET_SEARCH_TEAM_CODE\",\"name\":\"Search code in team repositories\",\"description\":\"Search for code in repositories of a specified team. Matches can occur in file content or paths. Note: Teams endpoints were deprecated in Oct 2020; use workspace search endpoints for new integrations.\"},{\"slug\":\"BITBUCKET_SEARCH_USER_REPOSITORIES_CODE\",\"name\":\"Search code in user repositories\",\"description\":\"Tool to search for code in the repositories of a specified user. Use when you need to find specific code patterns, functions, or text across all repositories owned by a user.\"},{\"slug\":\"BITBUCKET_STOP_PIPELINE\",\"name\":\"Stop pipeline\",\"description\":\"Signal the stop of a pipeline and all of its steps that have not completed yet. This action is irreversible — once stopped, a pipeline cannot be restarted and must be re-triggered to run again. Use this action when you need to cancel a running pipeline execution that is no longer needed or was triggered incorrectly.\"},{\"slug\":\"BITBUCKET_UPDATE_INSIGHTS_PROJECTS_REPOS_COMMITS_REPORTS\",\"name\":\"Update commit insight report\",\"description\":\"Create or update an insight report for a commit. Creates a new report if it doesn't exist, or replaces the existing one if a report already exists for the given repository, commit, and report key. Note: replacing an existing report will be rejected if the authenticated user was not the creator of the specified report.\"},{\"slug\":\"BITBUCKET_UPDATE_ISSUE\",\"name\":\"Update an issue\",\"description\":\"Updates an existing issue in a Bitbucket repository by modifying specified attributes; requires `workspace`, `repo_slug`, `issue_id`, and at least one attribute to update.\"},{\"slug\":\"BITBUCKET_UPDATE_PULL_REQUEST\",\"name\":\"Update Pull Request\",\"description\":\"Tool to update an existing pull request's editable fields (e.g., title, description, reviewers) via the Bitbucket Cloud API. Use when you need to modify a pull request without creating a new one. Only sends fields that are explicitly provided to avoid accidental overwrites.\"},{\"slug\":\"BITBUCKET_UPDATE_REPOSITORIES_COMMIT_COMMENTS\",\"name\":\"Update commit comment\",\"description\":\"Updates the contents of a comment on a commit. Use when you need to modify an existing comment's text on a commit.\"},{\"slug\":\"BITBUCKET_UPDATE_REPOSITORIES_COMMIT_REPORTS_ANNOTATIONS\",\"name\":\"Update commit report annotation\",\"description\":\"Creates or updates an individual annotation for a commit report. Use when you need to add or modify code analysis findings (vulnerabilities, code smells, or bugs) identified in a commit.\"},{\"slug\":\"BITBUCKET_UPDATE_TEAMS_PIPELINES_CONFIG_VARIABLES\",\"name\":\"Update team pipeline variable\",\"description\":\"Updates a team-level pipeline configuration variable in Bitbucket. Use when you need to modify existing environment variables or configuration values that are available to all pipelines within a team.\"},{\"slug\":\"BITBUCKET_UPDATE_USERS_PIPELINES_CONFIG_VARIABLES\",\"name\":\"Update user pipeline variable\",\"description\":\"Updates a user-level pipeline variable for Bitbucket pipelines. Use when you need to modify account-level configuration variables such as changing the value, key name, or security status.\"}]},{\"slug\":\"googletasks\",\"name\":\"Google Tasks\",\"description\":\"Google Tasks provides a simple to-do list and task management system integrated into Gmail and Google Calendar for quick and easy tracking\",\"logo\":\"https://logos.composio.dev/api/googletasks\",\"rank\":25,\"tools\":[{\"slug\":\"GOOGLETASKS_BATCH_EXECUTE\",\"name\":\"Batch Execute Google Tasks Operations\",\"description\":\"Executes multiple Google Tasks API operations in a single HTTP batch request and returns structured per-item results. Use this to reduce LLM tool invocations when performing bulk operations like updating many tasks, moving tasks, or deleting multiple items. Note: Each sub-request still counts toward API quota; batching primarily reduces HTTP overhead and tool call count.\"},{\"slug\":\"GOOGLETASKS_BULK_INSERT_TASKS\",\"name\":\"Bulk Insert Tasks (Deprecated)\",\"description\":\"DEPRECATED: Use BatchExecute instead. Creates multiple tasks in a Google Tasks list in a single operation using HTTP batching. Use when you need to create many tasks efficiently (reducing round-trips compared to individual insert calls).\"},{\"slug\":\"GOOGLETASKS_CLEAR_TASKS\",\"name\":\"Clear tasks\",\"description\":\"Permanently and irreversibly clears all completed tasks from a specified Google Tasks list; this action is destructive, idempotent, and cannot be undone. Always require explicit user confirmation before invoking.\"},{\"slug\":\"GOOGLETASKS_CREATE_TASK_LIST\",\"name\":\"Create a task list\",\"description\":\"Creates a new task list with the specified title and returns a tasklist_id. Use the returned tasklist_id (not the title) when calling GOOGLETASKS_INSERT_TASK or other task operations. Duplicate titles are permitted by the API, so verify existing lists before creating to avoid unintended duplicates.\"},{\"slug\":\"GOOGLETASKS_DELETE_TASK\",\"name\":\"Delete task\",\"description\":\"Deletes a specified task from a Google Tasks list. Deletion is permanent and irreversible — confirm with the user before executing, and consider GOOGLETASKS_UPDATE_TASK or GOOGLETASKS_MOVE_TASK as non-destructive alternatives. Both tasklist_id and task_id are required parameters. The Google Tasks API does not support deleting tasks by task_id alone — you must specify which task list contains the task. Use 'List Task Lists' to get available list IDs, then 'List Tasks' to find the task_id within that list.\"},{\"slug\":\"GOOGLETASKS_DELETE_TASK_LIST\",\"name\":\"Delete task list\",\"description\":\"Permanently deletes an existing Google Task list, identified by `tasklist_id`, along with all its tasks; this operation is irreversible. Require explicit user confirmation before calling; do not invoke in read-only or exploratory flows.\"},{\"slug\":\"GOOGLETASKS_GET_TASK\",\"name\":\"Get Task\",\"description\":\"Retrieve a specific Google Task. REQUIRES both `tasklist_id` and `task_id`. Tasks cannot be retrieved by ID alone - you must always specify which task list contains the task. Use this to refresh task details before display or edits rather than relying on potentially stale results from GOOGLETASKS_LIST_TASKS.\"},{\"slug\":\"GOOGLETASKS_GET_TASK_LIST\",\"name\":\"Get task list\",\"description\":\"Retrieves a specific task list from the user's Google Tasks if the `tasklist_id` exists for the authenticated user.\"},{\"slug\":\"GOOGLETASKS_INSERT_TASK\",\"name\":\"Insert Task\",\"description\":\"Creates a new task in a given `tasklist_id`, optionally as a subtask of an existing `task_parent` or positioned after an existing `task_previous` sibling, where both `task_parent` and `task_previous` must belong to the same `tasklist_id` if specified. IMPORTANT: Date fields (due, completed) accept various formats like '28 Sep 2025', '11:59 PM, 22 Sep 2025', or ISO format '2025-09-21T15:30:00Z' and will automatically convert them to RFC3339 format required by the API. Not idempotent — repeated calls with identical parameters create duplicate tasks; track returned task IDs to avoid duplication. High-volume inserts may trigger 403 rateLimitExceeded or 429; apply exponential backoff.\"},{\"slug\":\"GOOGLETASKS_LIST_ALL_TASKS\",\"name\":\"List All Tasks Across All Lists\",\"description\":\"Tool to list all tasks across all of the user's task lists with optional filters. Use when the agent needs to see all tasks without knowing which list to query first. Each returned task is annotated with its tasklist_id and tasklist_title for context.\"},{\"slug\":\"GOOGLETASKS_LIST_TASK_LISTS\",\"name\":\"List task lists\",\"description\":\"Fetches the authenticated user's task lists from Google Tasks; results may be paginated. Response contains task lists under the `items` key. Multiple lists may share similar names — confirm the correct list by ID before passing to other tools.\"},{\"slug\":\"GOOGLETASKS_LIST_TASKS\",\"name\":\"List Tasks\",\"description\":\"Retrieves tasks from a Google Tasks list; all date/time strings must be RFC3339 UTC, and `showCompleted` must be true if `completedMin` or `completedMax` are specified. Response key for tasks is `tasks` (not `items`). No full-text search; filter client-side by title/notes. Results ordered by position, not by date.\"},{\"slug\":\"GOOGLETASKS_MOVE_TASK\",\"name\":\"Move Task\",\"description\":\"Moves the specified task to another position in the task list or to a different task list. Use cases: - Reorder tasks within a list (use 'previous' parameter) - Create subtasks by moving a task under a parent (use 'parent' parameter) - Move tasks between different task lists (use 'destinationTasklist' parameter) - Move a subtask back to top-level (omit 'parent' parameter)\"},{\"slug\":\"GOOGLETASKS_PATCH_TASK\",\"name\":\"Patch Task\",\"description\":\"Partially updates an existing task (identified by `task_id`) within a specific Google Task list (identified by `tasklist_id`), modifying only the provided attributes from `TaskInput` (e.g., `title`, `notes`, `due` date, `status`) and requiring both the task and list to exist.\"},{\"slug\":\"GOOGLETASKS_PATCH_TASK_LIST\",\"name\":\"Patch task list\",\"description\":\"Updates the title of an existing Google Tasks task list.\"},{\"slug\":\"GOOGLETASKS_UPDATE_TASK\",\"name\":\"Update Task (Deprecated)\",\"description\":\"DEPRECATED: Use GOOGLETASKS_PATCH_TASK instead. Full-update (PUT-style) operation that overwrites unspecified fields with empty/default values, which can cause data loss. Prefer GOOGLETASKS_PATCH_TASK unless a complete field replacement is explicitly required.\"},{\"slug\":\"GOOGLETASKS_UPDATE_TASK_FULL\",\"name\":\"Update Task (Full Replacement)\",\"description\":\"Tool to fully replace an existing Google Task using PUT method. Use when you need to update the entire task resource, not just specific fields. This method requires all required fields (id, title) and replaces the complete task, unlike PATCH which supports partial updates.\"},{\"slug\":\"GOOGLETASKS_UPDATE_TASK_LIST\",\"name\":\"Update Task List\",\"description\":\"Updates the authenticated user's specified task list.\"}]},{\"slug\":\"discord\",\"name\":\"Discord\",\"description\":\"An instant messaging and VoIP social platform.\",\"logo\":\"https://logos.composio.dev/api/discord\",\"rank\":26,\"tools\":[{\"slug\":\"DISCORD_CONSUME_ENTITLEMENT\",\"name\":\"Consume Entitlement (Deprecated)\",\"description\":\"DEPRECATED: This Discord endpoint requires a bot token and cannot be used by an OAuth2 user connection. This legacy action is retained for existing Discord bearer-token connections until an equivalent Discord Bot action is available.\"},{\"slug\":\"DISCORD_DELETE_TEST_ENTITLEMENT\",\"name\":\"Delete Test Entitlement (Deprecated)\",\"description\":\"DEPRECATED: This Discord endpoint requires a bot token and cannot be used by an OAuth2 user connection. This legacy action is retained for existing Discord bearer-token connections until an equivalent Discord Bot action is available.\"},{\"slug\":\"DISCORD_DELETE_USER_APPLICATION_ROLE_CONNECTION\",\"name\":\"Delete User Application Role Connection\",\"description\":\"Deletes the current user's application role connection for the specified application. Removes the platform metadata and linked role connection.\"},{\"slug\":\"DISCORD_EDIT_APPLICATION_COMMAND_PERMISSIONS\",\"name\":\"Edit Application Command Permissions\",\"description\":\"Edits the permissions for a specific application command in a guild. Requires OAuth2 Bearer token (bot tokens will error). The authorizing user must have MANAGE_GUILD and MANAGE_ROLES permissions in the target guild.\"},{\"slug\":\"DISCORD_GET_APPLICATION_COMMAND_PERMISSIONS\",\"name\":\"Get Application Command Permissions\",\"description\":\"Retrieves the permissions for a specific application command in a guild. Requires OAuth2 Bearer token (bot tokens will error). The authorizing user must have MANAGE_GUILD and MANAGE_ROLES permissions in the target guild.\"},{\"slug\":\"DISCORD_GET_BATCH_APPLICATION_COMMAND_PERMISSIONS\",\"name\":\"Get Batch Application Command Permissions\",\"description\":\"Retrieves permissions for all commands of an application in a guild. Returns a list of permission objects for each command. Requires OAuth2 Bearer token (Bot tokens will error).\"},{\"slug\":\"DISCORD_GET_CURRENT_USER_APPLICATION_ENTITLEMENTS\",\"name\":\"Get Current User Application Entitlements\",\"description\":\"Retrieves entitlements for the current user and application. The optional guild_id filter is enforced locally because Discord does not expose that filter on this current-user route.\"},{\"slug\":\"DISCORD_GET_GATEWAY\",\"name\":\"Get Gateway\",\"description\":\"Tool to retrieve a valid WebSocket (wss) URL for establishing a Gateway connection to Discord. Use when you need to connect to the Discord Gateway for real-time events.\"},{\"slug\":\"DISCORD_GET_GUILD_TEMPLATE\",\"name\":\"Get Guild Template\",\"description\":\"Tool to retrieve information about a Discord guild template using its unique template code. Use when you need to get details about a guild template for creating new servers.\"},{\"slug\":\"DISCORD_GET_GUILD_WIDGET\",\"name\":\"Get Guild Widget\",\"description\":\"Tool to retrieve the guild widget in JSON format. Use when you need to get public information about a Discord guild's widget that can be displayed on external websites. The widget must be enabled in the guild's server settings.\"},{\"slug\":\"DISCORD_GET_GUILD_WIDGET_PNG\",\"name\":\"Get Guild Widget PNG\",\"description\":\"Tool to retrieve a PNG image widget for a Discord guild. Use when you need a visual representation of the guild widget that can be displayed on external websites. The widget must be enabled in the guild's server settings.\"},{\"slug\":\"DISCORD_GET_INVITE\",\"name\":\"Get Invite (Deprecated)\",\"description\":\"DEPRECATED: Use DISCORD_INVITE_RESOLVE instead. Tool to retrieve information about a specific invite code. Use when you need to get details about a guild or channel associated with an invite. Response may be null or partial for expired, revoked, or inaccessible invites; do not infer guild membership or channel access from the response.\"},{\"slug\":\"DISCORD_GET_MY_GUILD_MEMBER\",\"name\":\"Get my guild member\",\"description\":\"Retrieves the guild member object for the currently authenticated user within a specified guild, including roles, nickname, join date, and permissions.\"},{\"slug\":\"DISCORD_GET_MY_OAUTH2_AUTHORIZATION\",\"name\":\"Get my OAuth2 authorization\",\"description\":\"Retrieves current OAuth2 authorization details for the application, including app info, scopes, token expiration, and user data (contingent on scopes like 'identify').\"},{\"slug\":\"DISCORD_GET_MY_USER\",\"name\":\"Get My User\",\"description\":\"Fetches comprehensive profile information for the currently authenticated Discord user, including email if the 'email' scope is granted.\"},{\"slug\":\"DISCORD_GET_OPENID_CONNECT_USERINFO\",\"name\":\"Get OpenID Connect userinfo\",\"description\":\"Retrieve OpenID Connect compliant user information for the authenticated user. Returns standardized OIDC user claims (sub, email, nickname, picture, locale, etc.) following the OpenID Connect specification. Requires OAuth2 access token with 'openid' scope; additional fields require 'identify' and 'email' scopes.\"},{\"slug\":\"DISCORD_GET_PUBLIC_KEYS\",\"name\":\"Get Public Keys\",\"description\":\"Tool to retrieve Discord OAuth2 public keys. Use when you need to verify OAuth2 tokens or access public keys for cryptographic operations.\"},{\"slug\":\"DISCORD_GET_SKU_SUBSCRIPTION\",\"name\":\"Get SKU Subscription\",\"description\":\"Retrieves a specific subscription by ID for a given SKU. Use to check details of a single user subscription.\"},{\"slug\":\"DISCORD_GET_USER\",\"name\":\"Get User\",\"description\":\"Retrieve information about a Discord user. With OAuth Bearer token authentication, this returns the authenticated user's information (use '@me'). With Bot token authentication, you can query any user by their ID. Use this when you need user details like username, avatar, email (if email scope is granted), locale, premium status, or other profile information.\"},{\"slug\":\"DISCORD_GET_USER_APPLICATION_ROLE_CONNECTION\",\"name\":\"Get User Application Role Connection\",\"description\":\"Retrieves the application role connection for the currently authenticated user for a specified application. Requires the role_connections.write OAuth2 scope.\"},{\"slug\":\"DISCORD_INVITE_RESOLVE\",\"name\":\"Resolve Invite\",\"description\":\"Tool to resolve and retrieve information about a Discord invite code. Use when you need to get details about a guild, channel, or event associated with an invite code.\"},{\"slug\":\"DISCORD_LEAVE_GUILD\",\"name\":\"Leave Guild (Deprecated)\",\"description\":\"DEPRECATED: This endpoint requires a bot token. Use DISCORDBOT_LEAVE_GUILD with a Discord Bot connection instead.\"},{\"slug\":\"DISCORD_LIST_MY_CONNECTIONS\",\"name\":\"List My Connections\",\"description\":\"Retrieves a list of the authenticated user's connected third-party accounts on Discord.\"},{\"slug\":\"DISCORD_LIST_MY_GUILDS\",\"name\":\"List My Guilds\",\"description\":\"Lists the current user's guilds, returning partial data for each; primarily used for displaying server lists or verifying memberships.\"},{\"slug\":\"DISCORD_LIST_SKU_SUBSCRIPTIONS\",\"name\":\"List SKU Subscriptions\",\"description\":\"Lists all subscriptions for a given SKU. When using a Bot token, the user_id query parameter is required. Returns paginated subscription objects.\"},{\"slug\":\"DISCORD_LIST_STICKER_PACKS\",\"name\":\"List Sticker Packs\",\"description\":\"Tool to retrieve all available Discord Nitro sticker packs. Use when you need to list or browse official Discord sticker packs.\"},{\"slug\":\"DISCORD_MODIFY_CURRENT_USER\",\"name\":\"Modify Current User (Deprecated)\",\"description\":\"DEPRECATED: This endpoint requires a bot token. Use DISCORDBOT_UPDATE_MY_USER with a Discord Bot connection instead.\"},{\"slug\":\"DISCORD_UPDATE_USER_APPLICATION_ROLE_CONNECTION\",\"name\":\"Update User Application Role Connection\",\"description\":\"Updates the application role connection for the currently authenticated user for a specified application. Requires the role_connections.write OAuth2 scope.\"}]},{\"slug\":\"figma\",\"name\":\"Figma\",\"description\":\"A collaborative interface design tool.\",\"logo\":\"https://logos.composio.dev/api/figma\",\"rank\":27,\"tools\":[{\"slug\":\"FIGMA_ADD_A_COMMENT_TO_A_FILE\",\"name\":\"Add a comment to a file\",\"description\":\"Posts a new comment to a Figma file or branch, optionally replying to an existing root comment (replies cannot be nested); `region_height` and `region_width` in `client_meta` must be positive if defining a comment region.\"},{\"slug\":\"FIGMA_ADD_A_REACTION_TO_A_COMMENT\",\"name\":\"Add a reaction to a comment\",\"description\":\"Posts a specified emoji reaction to an existing comment in a Figma file or branch, requiring valid file_key and comment_id.\"},{\"slug\":\"FIGMA_CREATE_A_WEBHOOK\",\"name\":\"Create a webhook\",\"description\":\"Creates a Figma webhook to receive POST notifications when specific events occur. Webhooks can monitor events at three scopes: - Team level: monitors all files in a team (requires team admin permissions) - Project level: monitors all files in a project (requires edit access) - File level: monitors a specific file (requires edit access) Upon creation, Figma sends an initial PING event to verify your endpoint (unless status is PAUSED). IMPORTANT: team_id, project_id, and file_key cannot be discovered programmatically. Extract them from Figma URLs or use FIGMA_DISCOVER_FIGMA_RESOURCES to parse URLs.\"},{\"slug\":\"FIGMA_CREATE_DEV_RESOURCES\",\"name\":\"Create dev resources\",\"description\":\"Creates and attaches multiple uniquely-URLed development resources to specified Figma nodes, up to 10 per node.\"},{\"slug\":\"FIGMA_CREATE_MODIFY_DELETE_VARIABLES\",\"name\":\"Create, modify, or delete variables\",\"description\":\"Manages variables, collections, modes, and their values in a Figma file via batch create/update/delete operations; use temporary IDs to link new related items in one request and ensure `variableModeValues` match the target variable's `resolvedType`.\"},{\"slug\":\"FIGMA_DELETE_A_COMMENT\",\"name\":\"Delete a comment\",\"description\":\"Deletes a specific comment from a Figma file or branch, provided the authenticated user is the original author of the comment.\"},{\"slug\":\"FIGMA_DELETE_A_REACTION\",\"name\":\"Delete a reaction\",\"description\":\"Deletes a specific emoji reaction from a comment in a Figma file; the user must have originally created the reaction.\"},{\"slug\":\"FIGMA_DELETE_A_WEBHOOK\",\"name\":\"Delete a webhook\",\"description\":\"Permanently deletes an existing webhook, identified by its unique `webhook_id`; this operation is irreversible.\"},{\"slug\":\"FIGMA_DELETE_DEV_RESOURCE\",\"name\":\"Delete dev resource\",\"description\":\"Deletes a development resource (used to link Figma design elements to external developer information like code or tasks) from a specified Figma file.\"},{\"slug\":\"FIGMA_DESIGN_TOKENS_TO_TAILWIND\",\"name\":\"Design tokens to tailwind\",\"description\":\"Convert design tokens to Tailwind CSS configuration. TWO-STEP WORKFLOW: 1. First, call FIGMA_EXTRACT_DESIGN_TOKENS with a Figma file_key to extract design tokens 2. Then, pass the returned DesignTokens object to this action's 'tokens' parameter This action generates: - tailwind.config.ts/js with theme extensions - Optional globals.css with font imports Note: Shadow colors can be provided in either string format (e.g., \\\"rgba(15, 110, 110, 0.32)\\\") or dictionary format (e.g., {\\\"r\\\": 0.059, \\\"g\\\": 0.431, \\\"b\\\": 0.431, \\\"a\\\": 0.32}).\"},{\"slug\":\"FIGMA_DETECT_BACKGROUND\",\"name\":\"Detect Background Layers\",\"description\":\"Detect background layers for selected nodes in a Figma file. This action analyzes the Figma document structure and identifies potential background elements for the given target nodes. It uses: - Geometric analysis (bounding box overlap/containment) - Z-index ordering (nodes earlier in the layer stack are behind later ones) - Visual properties (fills, node types) - Naming conventions (nodes named 'background', 'bg', etc.) Returns background candidates with confidence scores (0-1) and explanations.\"},{\"slug\":\"FIGMA_DISCOVER_FIGMA_RESOURCES\",\"name\":\"Discover Figma Resources\",\"description\":\"Smart Figma resource discovery - extract IDs from any Figma URL. Supports all URL formats: /file/, /design/, /board/, /proto/, /slides/ Example: figma.com/board/ABC123/Name → file_key=ABC123 Discovery workflow: team_id → projects → files → nodes Use extracted IDs with GetFileJson, DetectBackground, etc.\"},{\"slug\":\"FIGMA_DOWNLOAD_FIGMA_IMAGES\",\"name\":\"Download Figma Images\",\"description\":\"Download images from Figma file nodes. Renders specified nodes as images and downloads them. Supports PNG, SVG, JPG, and PDF formats. REQUIRED PARAMETERS: - file_key (string): The Figma file key from the URL - images (array): List of objects, each containing: - node_id (string, required): The node ID to export (e.g., \\\"1:2\\\") - file_name (string, required): Output filename with extension (e.g., \\\"logo.png\\\") - format (string, optional): One of 'png', 'svg', 'jpg', 'pdf'. Defaults to 'png' Example usage: { \\\"file_key\\\": \\\"abc123XYZ\\\", \\\"images\\\": [ {\\\"node_id\\\": \\\"1:2\\\", \\\"file_name\\\": \\\"logo.png\\\", \\\"format\\\": \\\"png\\\"} ] } To find node IDs, use FIGMA_GET_FILE_JSON or look in Figma URLs after 'node-id='. NOTE: Returned image URLs expire shortly after generation — download them immediately.\"},{\"slug\":\"FIGMA_EXTRACT_DESIGN_TOKENS\",\"name\":\"Extract design tokens\",\"description\":\"Extract design tokens from Figma files by combining styles, variables, and node-extracted values. Only values defined as Figma styles or variables are captured — any design values not encoded as styles/variables are silently omitted. Requires `file_variables:read` scope and a Figma plan that supports variables for full output; if variables return empty, supplement with FIGMA_GET_LOCAL_VARIABLES.\"},{\"slug\":\"FIGMA_EXTRACT_PROTOTYPE_INTERACTIONS\",\"name\":\"Extract Prototype Interactions\",\"description\":\"Extract prototype interactions and animations from Figma files. Required parameter: - file_key: The Figma file key extracted from a URL like 'https://www.figma.com/file/ABC123xyz/MyFile' (the 'ABC123xyz' part) Analyzes the prototype data to extract: - User interactions (clicks, hovers, etc.) - Transition animations - Component variant states - User flows and navigation\"},{\"slug\":\"FIGMA_GET_ACTIVITY_LOGS\",\"name\":\"Get activity logs\",\"description\":\"Retrieves activity log events from Figma, allowing filtering by event types, time range, and pagination.\"},{\"slug\":\"FIGMA_GET_A_WEBHOOK\",\"name\":\"Get a webhook\",\"description\":\"Retrieves detailed information about a specific webhook by its ID, provided the webhook exists and is accessible to the user.\"},{\"slug\":\"FIGMA_GET_COMMENTS_IN_A_FILE\",\"name\":\"Get comments in a file\",\"description\":\"Retrieves all comments from an existing Figma file, identified by a valid `file_key`, returning details like content, author, position, and reactions, with an option for Markdown formatted content.\"},{\"slug\":\"FIGMA_GET_COMPONENT\",\"name\":\"Get component (Deprecated)\",\"description\":\"DEPRECATED: Use FIGMA_GET_FILE_NODES instead. Get component data with automatic simplification. Returns clean, AI-friendly component structure.\"},{\"slug\":\"FIGMA_GET_COMPONENT2\",\"name\":\"Get component\",\"description\":\"Fetches metadata for a specific component using its unique identifier. Use when you need to retrieve published component details from a team library.\"},{\"slug\":\"FIGMA_GET_COMPONENT_SET\",\"name\":\"Get component set\",\"description\":\"Retrieves detailed metadata for a specific published Figma component set using its unique `key`.\"},{\"slug\":\"FIGMA_GET_CURRENT_USER\",\"name\":\"Get current user\",\"description\":\"Retrieves detailed information for the currently authenticated Figma user.\"},{\"slug\":\"FIGMA_GET_DEV_RESOURCES\",\"name\":\"Get dev resources\",\"description\":\"Retrieves development resources (e.g., Jira/GitHub links) for a Figma main file, optionally filtering by specific node IDs.\"},{\"slug\":\"FIGMA_GET_FILE_COMPONENTS\",\"name\":\"Get file components\",\"description\":\"Retrieves published components from a Figma file, which must be a main file (not a branch) acting as a library.\"},{\"slug\":\"FIGMA_GET_FILE_COMPONENT_SETS\",\"name\":\"Get file component sets\",\"description\":\"Retrieves all published component sets from the specified Figma main file (file_key must not be for a branch).\"},{\"slug\":\"FIGMA_GET_FILE_JSON\",\"name\":\"Get file json\",\"description\":\"Get Figma Design file data with automatic simplification. IMPORTANT: Only supports Design files (figma.com/design/{file_key}). FigJam board files (figma.com/board/{file_key}) and Slides files (figma.com/slides/{file_key}) are NOT supported and will return a 400 error: \\\"File type not supported by this endpoint\\\". This enhanced version automatically transforms verbose Figma JSON into clean, AI-friendly format with: - CSS-like property names - Deduplicated variables - Removed empty values - 70%+ size reduction Use simplify=False to get raw API response.\"},{\"slug\":\"FIGMA_GET_FILE_METADATA\",\"name\":\"Get file metadata\",\"description\":\"Get Figma file metadata including name, creator, last modification details, thumbnail, and access information. Use when you need quick file overview without the full document tree.\"},{\"slug\":\"FIGMA_GET_FILE_NODES\",\"name\":\"Get file nodes\",\"description\":\"Fetch JSON for specific node IDs from a Figma file to avoid full-file payload limits. Use when you already know target node IDs (from shallow file fetch or component listings) or when full-file JSON has hit payload limits. Prefer depth=1 for fast discovery.\"},{\"slug\":\"FIGMA_GET_FILES_IN_A_PROJECT\",\"name\":\"Get files in a project\",\"description\":\"Fetches a list of files in a Figma project, optionally including branch metadata.\"},{\"slug\":\"FIGMA_GET_FILE_STYLES\",\"name\":\"Get file styles\",\"description\":\"Retrieves a list of published styles (like colors, text attributes, effects, and layout grids) from a specified main Figma file (not a branch).\"},{\"slug\":\"FIGMA_GET_IMAGE_FILLS\",\"name\":\"Get image fills\",\"description\":\"Retrieves temporary (14-day expiry) download URLs for all image fills in a Figma file; requires `imageRef` from `Paint` objects to map URLs.\"},{\"slug\":\"FIGMA_GET_LIBRARY_ANALYTICS_COMPONENT_ACTION_DATA\",\"name\":\"Get library analytics component action data\",\"description\":\"Retrieves component insertion and detachment analytics for a specified Figma library, groupable by 'component' or 'team' and filterable by a date range (YYYY-MM-DD).\"},{\"slug\":\"FIGMA_GET_LIBRARY_ANALYTICS_COMPONENT_USAGE_DATA\",\"name\":\"Get library analytics component usage data\",\"description\":\"Retrieves component usage analytics for a specified Figma library file (identified by `file_key`), with data groupable by 'component' or 'file'.\"},{\"slug\":\"FIGMA_GET_LIBRARY_ANALYTICS_STYLE_ACTION_DATA\",\"name\":\"Get library analytics style action data\",\"description\":\"Retrieves style usage analytics (insertions, detachments) for a Figma library, grouped by 'style' or 'team'; if providing a date range, ensure end_date is not before start_date.\"},{\"slug\":\"FIGMA_GET_LIBRARY_ANALYTICS_STYLE_USAGE_DATA\",\"name\":\"Get library analytics style usage data\",\"description\":\"Retrieves style usage analytics for a published Figma library. Returns data about how styles (colors, text styles, effects, grids) from the library are being used across your organization. Requires Enterprise plan and library_analytics:read scope. Group results by 'style' to see per-style metrics or by 'file' to see which files use the library's styles.\"},{\"slug\":\"FIGMA_GET_LIBRARY_ANALYTICS_VARIABLE_ACTION_DATA\",\"name\":\"Get library analytics variable action data\",\"description\":\"Retrieves weekly, paginated analytics data on variable insertions and detachments for a specified Figma library (identified by `file_key`), groupable by 'variable' or 'team', and filterable by an optional date range. Note: Requires Enterprise plan and library_analytics:read scope.\"},{\"slug\":\"FIGMA_GET_LIBRARY_ANALYTICS_VARIABLE_USAGE_DATA\",\"name\":\"Get library analytics variable usage data\",\"description\":\"Retrieves paginated analytics data on variable usage from a specified Figma library, grouped by 'file' or 'variable', for libraries with enabled analytics.\"},{\"slug\":\"FIGMA_GET_LOCAL_VARIABLES\",\"name\":\"Get local variables\",\"description\":\"Retrieves all local/remote variables for a Figma file/branch; crucial for obtaining mode-specific values which `/v1/files/{file_key}/variables/published` omits.\"},{\"slug\":\"FIGMA_GET_PAYMENTS\",\"name\":\"Get payments\",\"description\":\"Retrieves a user's payment information for a Figma plugin, widget, or Community file; the authenticated identity must own the resource.\"},{\"slug\":\"FIGMA_GET_PROJECTS_IN_A_TEAM\",\"name\":\"Get projects in a team\",\"description\":\"Retrieves projects within a specified Figma team that are visible to the authenticated user.\"},{\"slug\":\"FIGMA_GET_PUBLISHED_VARIABLES\",\"name\":\"Get published variables\",\"description\":\"Retrieves variables published from a specified Figma file; this API is available only to full members of Enterprise organizations.\"},{\"slug\":\"FIGMA_GET_REACTIONS_FOR_A_COMMENT\",\"name\":\"Get reactions for a comment\",\"description\":\"Retrieves reactions for a specific comment in a Figma file.\"},{\"slug\":\"FIGMA_GET_SCIM_SERVICE_PROVIDER_CONFIG\",\"name\":\"Get SCIM service provider config\",\"description\":\"Get Figma's SCIM service provider configuration. Returns configuration details including which SCIM operations are supported (patch, bulk, filter, etc.), authentication schemes, and service capabilities.\"},{\"slug\":\"FIGMA_GET_STYLE\",\"name\":\"Get style\",\"description\":\"Retrieves detailed metadata for a specific style in Figma using its unique style key.\"},{\"slug\":\"FIGMA_GET_TEAM_COMPONENTS\",\"name\":\"Get team components\",\"description\":\"Retrieves components published in a specific Figma team's library; the team must have published components, otherwise an empty list is returned.\"},{\"slug\":\"FIGMA_GET_TEAM_COMPONENT_SETS\",\"name\":\"Get team component sets\",\"description\":\"Retrieves a paginated list of published component sets (collections of reusable UI elements) from a specified Figma team's library.\"},{\"slug\":\"FIGMA_GET_TEAM_STYLES\",\"name\":\"Get team styles\",\"description\":\"Retrieves a paginated list of published styles (fill colors, text styles, effects, grids) from a specified Figma team's library. Note: The team must have published styles in its library for this endpoint to return data. Teams without published styles will return an empty list.\"},{\"slug\":\"FIGMA_GET_TEAM_WEBHOOKS\",\"name\":\"Get webhooks\",\"description\":\"Retrieves all webhooks registered for a specified Figma context (team, project, or file). Uses the Figma Webhooks V2 API endpoint (GET /v2/webhooks) with context and context_id query parameters. This is the recommended approach as the legacy path-based endpoint (/v2/teams/{team_id}/webhooks) is deprecated. Note: team_id, project_id, and file_key cannot be discovered programmatically via the API. Extract them from Figma URLs or use FIGMA_DISCOVER_FIGMA_RESOURCES to parse URLs.\"},{\"slug\":\"FIGMA_GET_VERSIONS_OF_A_FILE\",\"name\":\"Get versions of a file\",\"description\":\"Retrieves the version history for a Figma file or branch, as specified by its `file_key`.\"},{\"slug\":\"FIGMA_GET_WEBHOOK_REQUESTS\",\"name\":\"Get webhook requests\",\"description\":\"Retrieves a history of webhook requests for a specific Figma webhook subscription; data is available for requests sent within the last seven days.\"},{\"slug\":\"FIGMA_RENDER_IMAGES_OF_FILE_NODES\",\"name\":\"Render images of file nodes\",\"description\":\"Render Figma nodes as images (PNG, JPG, SVG, PDF). Returns a map of node IDs to temporary image URLs (valid for 30 days). Images are capped at 32 megapixels; larger requests are automatically scaled down. REQUIRED PARAMETERS: - file_key: Figma file key from URL (e.g., 'abc123XYZ' from figma.com/design/abc123XYZ/...) - ids: Comma-separated node IDs to render (e.g., '1:2' or '1:2,1:3,1:4') NODE IDs: Found in Figma URLs after 'node-id=' or from FIGMA_GET_FILE_JSON response. FORMATS: - png/jpg: Raster images with optional scale (0.01-4.0) - svg: Vector graphics with text outline options - pdf: Document format COMMON ISSUES: - null value in images map = node failed to render (invalid ID, invisible, 0% opacity) - 404 error = file_key not found or no access - 429 error = rate limit exceeded, wait and retry\"},{\"slug\":\"FIGMA_UPDATE_A_WEBHOOK\",\"name\":\"Update a webhook\",\"description\":\"Updates an existing Figma webhook, identified by `webhook_id`, allowing modification of its event type, endpoint, passcode, status, or description.\"},{\"slug\":\"FIGMA_UPDATE_DEV_RESOURCES\",\"name\":\"Update dev resources\",\"description\":\"Updates the name and/or URL of one or more existing Figma Dev Resources, each identified by its unique `id`.\"}]},{\"slug\":\"composio_search\",\"name\":\"Composio Search\",\"description\":\"Composio Search provides comprehensive web search across travel (flights, hotels, events), e-commerce (Amazon, Walmart, shopping), financial markets, news, academic research, images, and location services.\",\"logo\":\"https://logos.composio.dev/api/composio_search\",\"rank\":28,\"tools\":[{\"slug\":\"COMPOSIO_SEARCH_AMAZON\",\"name\":\"Amazon Product Search\",\"description\":\"Search Amazon for products across different country marketplaces. This tool searches Amazon's product catalog with support for multiple international Amazon domains/marketplaces. Each domain serves a different country with local pricing, currency, shipping options, and product availability. Perfect for product research, international price comparison, and finding products available in specific countries. Returns product details, pricing in local currency, ratings, reviews, and seller information. Examples: query=\\\"gaming laptop\\\" + amazon_domain=\\\"amazon.com\\\" for US marketplace query=\\\"coffee maker\\\" + amazon_domain=\\\"amazon.de\\\" for German marketplace query=\\\"iPhone 15\\\" + amazon_domain=\\\"amazon.co.uk\\\" for UK marketplace with GBP pricing\"},{\"slug\":\"COMPOSIO_SEARCH_DUCK_DUCK_GO\",\"name\":\"Composio DuckDuckGo Search\",\"description\":\"The DuckDuckGoSearch class utilizes the Composio DuckDuckGo Search API to perform searches, focusing on web information and details. It leverages the DuckDuckGo search engine via the Composio DuckDuckGo Search API to retrieve relevant web data based on the provided query.\"},{\"slug\":\"COMPOSIO_SEARCH_EVENT\",\"name\":\"Composio Google Events Search\",\"description\":\"Search for upcoming events, concerts, festivals, conferences, and other activities. Supports location-based search (city, neighborhood, address), date filtering (today, tomorrow, weekend, next week/month), virtual event discovery, international search with 100+ languages and countries, and pagination. If results are sparse or events_results_state is 'Fully empty', treat as limited coverage and try COMPOSIO_SEARCH_WEB instead of retrying. Rate limit: ~2 requests/second; apply exponential backoff (1s, 2s, 4s) on 429 errors. Examples: \\\"Tech conferences\\\" in \\\"San Francisco, CA\\\" with gl=\\\"us\\\" and hl=\\\"en\\\" | \\\"Virtual networking events\\\" with htichips=\\\"event_type:Virtual-Event,date:next_week\\\" | \\\"Music festivals\\\" in \\\"London, UK\\\" with gl=\\\"uk\\\" and hl=\\\"en\\\"\"},{\"slug\":\"COMPOSIO_SEARCH_EXA_ANSWER\",\"name\":\"Exa Answer\",\"description\":\"Get answers with citations using the Exa API. DEPRECATED: Use COMPOSIO_SEARCH_WEB instead.\"},{\"slug\":\"COMPOSIO_SEARCH_EXA_SIMILARLINK\",\"name\":\"Composio Similarlinks\",\"description\":\"Perform a search to find similar links and retrieve a list of relevant results. The search can optionally return contents.\"},{\"slug\":\"COMPOSIO_SEARCH_FETCH_URL_CONTENT\",\"name\":\"Fetch URL Content\",\"description\":\"Fetch and extract clean, readable page text (markdown) from public web pages (HTML content) using the Exa API. Use when you need to retrieve actual content from search results or documentation links to extract setup steps, requirements, or citations. Only works with web page URLs - does not support direct links to images, PDFs, or other binary files.\"},{\"slug\":\"COMPOSIO_SEARCH_FINANCE\",\"name\":\"Composio Finance Search\",\"description\":\"Get real-time stock prices, market data, financial news, and company information with historical analysis. Retrieves stock quotes, market indices, cryptocurrency prices, exchange rates, and financial news. Supports discrete time windows (1D, 5D, 1M, 6M, YTD, 1Y, 5Y, MAX) for historical analysis. Returns numeric time-series graph data, summary information, and key events (6M+ windows only). Always verify finance_results_state in the response — HTTP 200 with status='Success' can still return empty data. Derived indicators (MACD, moving averages) are not included and must be computed from returned price series. Examples: query=\\\"AAPL:NASDAQ\\\" + window=\\\"1Y\\\" for Apple's 1-year chart query=\\\"GOOGL:NASDAQ\\\" + window=\\\"6M\\\" + hl=\\\"en\\\" for Alphabet with news events query=\\\"WMT:NYSE\\\" + window=\\\"MAX\\\" for Walmart's full history query=\\\"BTC-USD\\\" for Bitcoin query=\\\"EUR-USD\\\" for Euro/USD rate\"},{\"slug\":\"COMPOSIO_SEARCH_FLIGHTS\",\"name\":\"Flight Search\",\"description\":\"Search for flights with comprehensive pricing, schedule, and airline information. This tool finds available flights between cities/airports with detailed pricing, multiple airlines, departure/arrival times, flight duration, and booking options. Supports round-trip and one-way searches, multiple passenger types (adults, children, infants), different travel classes, and international pricing in various currencies. Perfect for travel planning, price comparison, and finding the best flight options. You can use either: 1. Natural language query: query=\\\"Lahore to San Francisco\\\" or query=\\\"NYC to London on March 15, 2025\\\" 2. Structured parameters: departure_id=\\\"JFK\\\", arrival_id=\\\"LAX\\\", outbound_date=\\\"2025-12-25\\\" Examples: query=\\\"Lahore to San Francisco\\\" query=\\\"New York to London on December 25, 2025\\\" departure_id=\\\"JFK\\\" + arrival_id=\\\"LAX\\\" + outbound_date=\\\"2025-12-25\\\" + return_date=\\\"2025-12-30\\\" departure_id=\\\"LGA\\\" + arrival_id=\\\"LHR\\\" + outbound_date=\\\"2025-06-01\\\" + adults=2\"},{\"slug\":\"COMPOSIO_SEARCH_GOOGLE_MAPS\",\"name\":\"Composio Google Maps Search\",\"description\":\"Performs a location-specific search via the Composio Google Maps Search API, returning results under `results.local_results` (multi-place queries) or `results.place_results` (single place); always handle both branches. Fields like `opening_hours`, `phone`, `rating`, and `user_reviews` may be absent — treat missing values as unknown. Check `business_status`: closed businesses (`CLOSED_PERMANENTLY`, `TEMPORARILY_CLOSED`) can appear in results; filter for `OPERATIONAL` entries. Rate-limit calls to ~1 req/sec; HTTP 429 / `OVER_QUERY_LIMIT` indicates quota exhaustion. `gps_coordinates` may appear under `place_results` or inside individual `local_results` items.\"},{\"slug\":\"COMPOSIO_SEARCH_GROQ_CHAT\",\"name\":\"Groq Chat Completion\",\"description\":\"Execute fast LLM inference using Groq's optimized hardware and API. Groq provides ultra-fast inference for open-source models including LLaMA 3, Mixtral, and Gemma via OpenAI-compatible chat completions API. Use cases: real-time chat, content generation, Q\u0026A, code generation, summarization, translation. For structured JSON output, instruct the model explicitly to return valid JSON with no markdown code fences or prose; validate with json.loads — batches of 150+ items are prone to malformed JSON. Strip triple-backtick wrappers from code/JSON outputs before parsing. Always validate that the response contains at least one choice with non-empty message.content before downstream use. On HTTP 429 or 5xx errors, use exponential backoff with a small retry cap; limit concurrency to ~3 concurrent calls. Model-reported character/word counts are approximate — verify independently when strict limits matter.\"},{\"slug\":\"COMPOSIO_SEARCH_HOTELS\",\"name\":\"Hotel Search\",\"description\":\"Search for hotels and vacation rentals with comprehensive filtering and pricing. Returns results under results.properties and results.ads; extract numeric pricing from rate_per_night.extracted_lowest, total_rate.extracted_lowest, or extracted_price (fields vary by property). Deduplicate across sections using property_token. Additional pages available via serpapi_pagination.next_page_token. Start with minimal filters — combining max_price, min_price, hotel_class, free_cancellation, gl, or hl too strictly can return empty results. Examples: q=\\\"New York\\\" + check_in_date=\\\"2025-06-01\\\" + check_out_date=\\\"2025-06-05\\\" + adults=2 q=\\\"Paris\\\" + check_in_date=\\\"2025-03-15\\\" + check_out_date=\\\"2025-03-18\\\" + min_price=100 + max_price=300 q=\\\"Tokyo\\\" + check_in_date=\\\"2025-12-20\\\" + check_out_date=\\\"2025-12-25\\\" + hotel_class=\\\"4,5\\\" + sort_by=3\"},{\"slug\":\"COMPOSIO_SEARCH_IMAGE\",\"name\":\"Composio Image Search\",\"description\":\"The ImageSearch class performs an image search using the Composio Image Search API, targeting image metadata and URLs (not binary data) via Google Images. Returns results under `results.images_results`; each entry exposes `original` (full resolution) and `thumbnail` (low resolution) URLs — verify URLs are publicly accessible before passing downstream. Check `license_details_url` per result before commercial reuse. The number of results is controlled by `num` (1–100, default 20). For \u003e100 images, paginate using `serpapi_pagination.next`. Rate limit: throttle to ~1–2 calls/second; apply exponential backoff on HTTP 429.\"},{\"slug\":\"COMPOSIO_SEARCH_NEWS\",\"name\":\"Composio News Search\",\"description\":\"Search for the latest news articles and current events with smart filtering. Searches news-oriented sources only (not blogs, docs, or company pages). Results nest under `data.results.news_results`; a 200 response with empty `news_results` or `news_results_state: 'Fully empty'` means no results — broaden query or `when` window. Auto-correction (`showing_results_for`) can silently redirect queries; verify returned articles match intended topic. Only first page returned by default; follow `pagination.next` for more pages. Supports 100+ languages and countries. Use advanced operators like 'site:' for publisher filtering directly in your query. Examples: query=\\\"artificial intelligence\\\" + when=\\\"w\\\" for past week's AI news query=\\\"climate change\\\" + gl=\\\"us\\\" + hl=\\\"en\\\" for US climate news query=\\\"business news\\\" + when=\\\"d\\\" for today's business news query=\\\"site:bbc.com tesla\\\" + when=\\\"d\\\" for today's BBC Tesla news\"},{\"slug\":\"COMPOSIO_SEARCH_NPPESNPI_LOOKUP\",\"name\":\"NPPES NPI Registry Lookup\",\"description\":\"Lookup US healthcare provider details from the CMS NPI Registry (NPPES) using an NPI number or search filters. Returns normalized structured fields including provider name, taxonomy/specialty, addresses, identifiers, and endpoints. Use this for deterministic, authoritative provider lookups when you need structured NPI/NPPES data rather than noisy web search results.\"},{\"slug\":\"COMPOSIO_SEARCH_SCHOLAR\",\"name\":\"Composio Scholar Search\",\"description\":\"Scholar API scrapes Google Scholar search results via SERP API, returning academic papers and scholarly articles. Results are nested under results.organic_results; access this key explicitly and use defensive .get() patterns as fields like DOI, citation_count, and author may be absent. Many results are paywalled — rely on titles, abstracts, and snippets when full text is unavailable. Results may include duplicate preprint and journal versions of the same work — deduplicate by DOI or normalized title. Only the first page is returned by default; follow pagination.next for additional pages. PDF links appear only under organic_results[n].resources where file_format is 'PDF'. Results may lag on recent work.\"},{\"slug\":\"COMPOSIO_SEARCH_SEC_FILINGS\",\"name\":\"Composio SEC EDGAR Filings Search\",\"description\":\"Retrieve authoritative SEC EDGAR filing metadata (10-K/10-Q/8-K etc.) and construct primary document/index URLs using SEC's public data APIs. Use when you need to search for company financial filings, annual reports, quarterly reports, or other SEC-mandated disclosures.\"},{\"slug\":\"COMPOSIO_SEARCH_SHOPPING\",\"name\":\"Composio Shopping Search\",\"description\":\"Search for products with advanced price filtering, location targeting, and deal discovery. This tool provides comprehensive product search with price range filtering, geographic targeting for local retailers, sorting by price (low to high, high to low), and filtering for free shipping or sale items. Perfect for product research, price comparison, finding deals, and discovering where to buy items. Returns product details, prices, availability, seller information, and reviews. Examples: query=\\\"gaming laptop\\\" + min_price=800 + max_price=1500 + sort_by=1 query=\\\"running shoes\\\" + location=\\\"Seattle, WA\\\" + free_shipping=True query=\\\"coffee maker\\\" + on_sale=True + gl=\\\"us\\\"\"},{\"slug\":\"COMPOSIO_SEARCH_TAVILY\",\"name\":\"Composio LLM Search\",\"description\":\"The Composio LLM Search class serves as a gateway to the Composio LLM Search API, allowing users to perform searches across a broad range of content with multiple filtering options. It accommodates complex queries, including both keyword and phrase searches, with additional parameters to fine-tune the search results. This class enables a tailored search experience by allowing users to specify the search depth, include images and direct answers, apply domain-specific filters, and control the number of results returned. It is designed to meet various search requirements, from quick lookups to in-depth research.\"},{\"slug\":\"COMPOSIO_SEARCH_TRENDS\",\"name\":\"Composio Trends Search\",\"description\":\"Discover trending topics, search patterns, and popularity data. Analyzes search interest over time, compares multiple topics, and identifies rising trends. Returns normalized 0–100 relative interest indices (not absolute search volumes) via interest_over_time.timeline_data; values are objects with 'extracted_value' (may be string '\u003c1'). The final timeline entry may have partial_data=true for incomplete periods. Data typically lags ~24–48 hours. Response schema varies by data_type: TIMESERIES returns timeline_data, GEO_MAP returns regional breakdowns, RELATED_TOPICS/RELATED_QUERIES return topic/query lists — parse accordingly. Ideal for market research, content planning, and SEO analysis.\"},{\"slug\":\"COMPOSIO_SEARCH_TRIP_ADVISOR\",\"name\":\"TripAdvisor Travel Search\",\"description\":\"Search TripAdvisor for travel recommendations and itinerary planning without authentication (unlike TRIPADVISOR_CONTENT_API_SEARCH_LOCATIONS and other TripAdvisor tools requiring an active connection). Searches attractions, restaurants, hotels, tours, and activities. Returns detailed ratings, reviews, photos, and traveler recommendations. Response data is nested under results → locations. Results may include evergreen articles alongside specific venues; verify result type before use in itineraries. Examples: query=\\\"things to do in Paris\\\" + ssrc=\\\"A\\\" for attractions only | query=\\\"best restaurants in Tokyo\\\" + ssrc=\\\"r\\\" | query=\\\"hotels in Bali\\\" + ssrc=\\\"h\\\" + tripadvisor_domain=\\\"tripadvisor.com\\\"\"},{\"slug\":\"COMPOSIO_SEARCH_WALMART\",\"name\":\"Walmart Product Search\",\"description\":\"Search Walmart for products with price filtering. This tool searches Walmart's product catalog including groceries, electronics, clothing, home goods, pharmacy, and auto services. Supports basic price range filtering for finding products within budget. Results may appear under response.data.results.shopping_results or data.products — do not hardcode a single response shape. Results mix sponsored and organic listings; check ad/sponsorship flags when ranking. Some products omit fields like bought_last_month; handle nulls in sorting logic. Examples: query=\\\"wireless headphones\\\" + min_price=50 + max_price=200 query=\\\"gaming laptop\\\" + max_price=800 query=\\\"organic coffee\\\" + min_price=10\"},{\"slug\":\"COMPOSIO_SEARCH_WEB\",\"name\":\"Composio Web Search\",\"description\":\"Perform a web search using the Exa API. Returns a nested structure: narrative summary under results.answer, sources under results.citations (and optionally results.organic_results). Prioritize results.citations as primary evidence over results.answer, which can be vague. Only indexes publicly available content — no paywalled, login-gated, or private content. No date filters enforced; include recency terms in query and verify dates in snippets manually. Throttle to ~1–2 requests/second; bursty queries trigger HTTP 429. Large responses may be stored remotely — use structure_info to locate results.answer and results.citations.\"}]},{\"slug\":\"reddit\",\"name\":\"Reddit\",\"description\":\"Reddit is a social news platform with user-driven communities (subreddits), offering content sharing, discussions, and viral marketing opportunities for brands\",\"logo\":\"https://logos.composio.dev/api/reddit\",\"rank\":29,\"tools\":[{\"slug\":\"REDDIT_CREATE_REDDIT_POST\",\"name\":\"Create a Reddit post\",\"description\":\"Creates a new text or link post on a specified, existing Reddit subreddit, optionally applying a flair. Immediately publishes publicly visible content — confirm subreddit, title, and body with the user before executing. Posts may be silently removed post-submission by automoderator or subreddit rules (errors: SUBMIT_VALIDATION_BODY_BLACKLISTED_STRING, POST_GUIDANCE_VALIDATION_FAILED); verify visibility via the returned permalink. Rapid consecutive calls trigger RATELIMIT errors with cooldown hints.\"},{\"slug\":\"REDDIT_DELETE_REDDIT_COMMENT\",\"name\":\"Delete Reddit comment\",\"description\":\"Deletes a Reddit comment, identified by its fullname ID, if it was authored by the authenticated user. Deletion is permanent and irreversible.\"},{\"slug\":\"REDDIT_DELETE_REDDIT_POST\",\"name\":\"Delete a Reddit post\",\"description\":\"Permanently and irreversibly deletes a Reddit post by its ID. Confirm with the user before calling. Only works on posts authored by the authenticated account; attempting to delete another user's post will fail.\"},{\"slug\":\"REDDIT_EDIT_REDDIT_COMMENT_OR_POST\",\"name\":\"Edit comment or post\",\"description\":\"Edits the body text of the authenticated user's own existing comment or self-post on Reddit; cannot edit link posts or titles.\"},{\"slug\":\"REDDIT_GET\",\"name\":\"Get Reddit listing by sort\",\"description\":\"Tool to retrieve a listing of Reddit posts sorted by the specified criteria (hot, new, top, rising, controversial, best). Use when you need to get posts from the Reddit front page or all of Reddit with a specific sort order. Supports pagination and time filtering for top and controversial sorts. For new controversial-post workflows, prefer GET_CONTROVERSIAL; this action retains controversial support for backward compatibility. Use GET_RANDOM for random posts.\"},{\"slug\":\"REDDIT_GET_CONTROVERSIAL_POSTS\",\"name\":\"Get controversial posts from all subreddits\",\"description\":\"Tool to retrieve controversial posts from all subreddits with time filters. Use when you need to find the most controversial posts across Reddit from a specific time period (hour, day, week, month, year, or all-time). Returns a paginated listing of posts ranked by controversy within the specified time frame.\"},{\"slug\":\"REDDIT_GET_ME_PREFS\",\"name\":\"Get user preferences\",\"description\":\"Tool to retrieve preference settings of the logged in user. Use when you need to check user preferences or settings.\"},{\"slug\":\"REDDIT_GET_NEW\",\"name\":\"Get new posts from subreddit (Deprecated)\",\"description\":\"DEPRECATED: Use RetrieveRedditPost instead. Tool to retrieve newest posts from a subreddit sorted by creation time. Use when you need to find the most recently submitted posts to discover fresh content. Returns a paginated listing of posts ranked by newest first.\"},{\"slug\":\"REDDIT_GET_RANDOM\",\"name\":\"Get random Reddit post\",\"description\":\"Tool to retrieve a random public Reddit post from any subreddit. Use when you want to discover serendipitous content or need a random post for testing or entertainment purposes.\"},{\"slug\":\"REDDIT_GET_REDDIT_USER_ABOUT\",\"name\":\"Get user information\",\"description\":\"Retrieves information about a specified Reddit user account, including karma scores and gold status. Use when you need to get profile information for any public Reddit user.\"},{\"slug\":\"REDDIT_GET_R_TOP\",\"name\":\"Get top posts from subreddit (Deprecated)\",\"description\":\"DEPRECATED: Use RetrieveRedditPost with sort='top' and time_filter set instead - it now supports the same hour/day/week/month/year/all time filtering. Tool to retrieve top-rated posts from a subreddit with time filters. Use when you need to find the most popular posts from a specific time period (hour, day, week, month, year, or all-time). Returns a paginated listing of posts ranked by score within the specified time frame.\"},{\"slug\":\"REDDIT_GET_SCOPES\",\"name\":\"Get OAuth scopes\",\"description\":\"Tool to retrieve all available OAuth scopes supported by the Reddit API. Use when you need to understand what permissions are available or check scope definitions.\"},{\"slug\":\"REDDIT_GET_SUBREDDIT_RULES\",\"name\":\"Get subreddit rules\",\"description\":\"Fetch the explicit posting rules for a subreddit to ensure compliance before posting or commenting. Use when you need to verify content meets community guidelines or explain subreddit requirements to users.\"},{\"slug\":\"REDDIT_GET_SUBREDDITS_SEARCH\",\"name\":\"Search subreddits\",\"description\":\"Tool to search subreddits by title and description. Use when you need to find subreddits matching a specific topic or keyword. Returns a paginated listing of subreddits with their details including subscribers, descriptions, and other metadata.\"},{\"slug\":\"REDDIT_GET_USER_FLAIR\",\"name\":\"Get user flair\",\"description\":\"Fetches the list of user flair assignments for a given subreddit. Returns paginated results with user flair details. Returned flair_id values are scoped to the specific subreddit and must not be reused across different subreddits.\"},{\"slug\":\"REDDIT_GET_USERNAME_AVAILABLE\",\"name\":\"Check username availability\",\"description\":\"Tool to check whether a username is available for registration on Reddit. Use when you need to verify if a username can be used to create a new account.\"},{\"slug\":\"REDDIT_LIST_SUBREDDIT_POST_FLAIRS\",\"name\":\"List subreddit post flairs\",\"description\":\"List available link/post flairs for a subreddit (including flair_template_id) so posts can satisfy flair-required validation. Use when you need to discover valid flair IDs before creating a post in a subreddit that requires flair. Note: Reddit may return empty or deny access if the authenticated user cannot set link flair and is not a moderator.\"},{\"slug\":\"REDDIT_POST_REDDIT_COMMENT\",\"name\":\"Post a comment\",\"description\":\"Posts a comment on Reddit, replying to an existing submission (post) or another comment. Fails if the target thread is locked, archived, or restricted — verify thread state beforehand. Rapid successive calls trigger Reddit RATELIMIT errors with explicit cooldown hints (e.g., 'take a break for 9 minutes'); honor the specified wait before retrying. A successful API response does not guarantee public visibility — automod or spam filters may silently remove the comment. Publishes immediately and publicly; confirm target and text before executing.\"},{\"slug\":\"REDDIT_RETRIEVE_POST_COMMENTS\",\"name\":\"Retrieve Comments for a Post\",\"description\":\"Retrieves all comments for a Reddit post given its base-36 article ID. Response is a two-element listings array: post metadata in `listings[0]`; comments in `listings[1].data.children` with text at each `[].data.body` and nested replies under each comment's `replies` field. Replies require recursive traversal to capture full discussion. Optionally control ordering (`sort`), how many comments are returned (`limit`), and how deep the reply tree is expanded (`depth`) before Reddit collapses remaining replies into `more` placeholders. Large, locked, or archived threads may still return truncated trees regardless of `depth`. Filter out comments where `body` is `[deleted]` or `[removed]`; use `parent_id` to reconstruct conversation flow. No date/time-range filter — compare `created_utc` against a UTC cutoff to filter by date.\"},{\"slug\":\"REDDIT_RETRIEVE_REDDIT_POST\",\"name\":\"Retrieve posts from subreddit\",\"description\":\"Retrieves posts from a specified, publicly accessible subreddit. Responses nest post data under `data.children[].data`; inspect the structure before parsing. Pagination uses a `data.after` cursor; deduplicate across pages by post `id`. No built-in date filtering; compare `created_utc` (Unix seconds, UTC) client-side. Rate limit: ~1–2 requests/second; back off on HTTP 429.\"},{\"slug\":\"REDDIT_RETRIEVE_SPECIFIC_COMMENT\",\"name\":\"Retrieve specific comment or post\",\"description\":\"Retrieves detailed information for a single Reddit comment or post using its fullname. Returns only the specified item, not surrounding thread context; use REDDIT_RETRIEVE_POST_COMMENTS for full discussion retrieval. Deleted, removed, or quarantined items may return empty or partial payloads.\"},{\"slug\":\"REDDIT_SEARCH_ACROSS_SUBREDDITS\",\"name\":\"Search across subreddits\",\"description\":\"Searches Reddit for posts using a query. Results are nested under `data.children[i].data` (kind `t3` for posts); a `posts` array may also appear, so inspect the actual response path. Optional `time_filter` restricts results to a time period (hour/day/week/month/year/all). Optional `result_type` must include `link`; non-post types in a mixed search do not appear in the streamlined `posts` field. Empty `children` is a valid no-results outcome. Key post fields: `score`, `num_comments`, `created_utc`, `permalink`. Rate limit: ~1-2 requests/sec; HTTP 429 indicates throttling.\"},{\"slug\":\"REDDIT_TOGGLE_INBOX_REPLIES\",\"name\":\"Enable or disable inbox replies\",\"description\":\"Enable or disable inbox replies for a submission or comment. Use when you want to control whether you receive inbox notifications for replies to your own posts or comments.\"}]},{\"slug\":\"cal\",\"name\":\"Cal\",\"description\":\"Cal simplifies meeting coordination by providing shareable booking pages, calendar syncing, and availability management to streamline the scheduling process\",\"logo\":\"https://logos.composio.dev/api/cal\",\"rank\":30,\"tools\":[{\"slug\":\"CAL_ADD_ATTENDEE\",\"name\":\"Add attendee\",\"description\":\"Tool to create a new attendee for an existing booking in Cal.com. Use when you need to add an additional participant to a scheduled event.\"},{\"slug\":\"CAL_ADD_MEMBER_TO_TEAM_USING_ORG_AND_TEAM_ID\",\"name\":\"Add member to team\",\"description\":\"Adds a new member to a specified team within an organization by creating a team membership.\"},{\"slug\":\"CAL_ADD_ORGANIZATION_ATTRIBUTE_OPTION\",\"name\":\"Add organization attribute option\",\"description\":\"Adds a new option to an organization's SINGLE_SELECT or MULTI_SELECT attribute. Use this action to extend the available choices for an existing attribute. For example, adding a new department option like \\\"Marketing\\\" to a \\\"Department\\\" attribute. Prerequisites: - The organization must exist and the user must have admin access - The attribute must already exist and be of type SINGLE_SELECT or MULTI_SELECT Common use cases: - Adding new department options to a department selector - Expanding location choices for a location attribute - Creating new priority levels for a priority field Note: While it's recommended to use unique slugs for clarity, the API may allow duplicate slugs.\"},{\"slug\":\"CAL_CANCEL_BOOKING_VIA_UID\",\"name\":\"Cancel booking via uid\",\"description\":\"Cancels an existing and active Cal.com booking using its unique identifier (UID).\"},{\"slug\":\"CAL_CHECK_CALENDAR_VERSION2\",\"name\":\"Check calendar availability\",\"description\":\"Retrieves free/busy availability for a specified calendar to aid scheduling without revealing event details; requires an existing, accessible calendar, noting that data granularity can vary.\"},{\"slug\":\"CAL_CHECK_GCAL_SYNCHRONIZATION_STATUS\",\"name\":\"Check gcal synchronization status\",\"description\":\"Call this read-only action to verify the connection and synchronization status of a user's Google Calendar integration with Cal.\"},{\"slug\":\"CAL_CHECK_ICS_FEED_CALENDAR_ENDPOINT\",\"name\":\"Check ics feed calendar endpoint\",\"description\":\"Checks an ICS feed URL (expected as a query parameter) to verify its validity, accessibility, and iCalendar data integrity.\"},{\"slug\":\"CAL_CHECK_STRIPE_STATUS\",\"name\":\"Check Stripe status\",\"description\":\"Verifies if Stripe is correctly connected to the Cal scheduling system and functional for processing payments, reporting only on the integration's status.\"},{\"slug\":\"CAL_CHECK_TEAM_STRIPE_INTEGRATION_STATUS\",\"name\":\"Check team stripe integration status\",\"description\":\"Retrieves the Stripe integration status and related information for a team, primarily to verify account connection, subscription details, or payment setup; this is a read-only operation that does not modify Stripe settings.\"},{\"slug\":\"CAL_CONFIRM_BOOKING_BY_UID\",\"name\":\"Confirm booking by uid\",\"description\":\"Confirms an existing booking by `bookingUid` if the booking exists and is in a state allowing confirmation (e.g., not already cancelled or confirmed); this finalizes the booking, does not modify its details, and should typically be performed once.\"},{\"slug\":\"CAL_CONNECT_TO_CALENDAR\",\"name\":\"Connect to calendar\",\"description\":\"Initiates or checks the external connection status for a specified calendar, possibly returning a redirect URL for user authorization to complete integration, without altering calendar data.\"},{\"slug\":\"CAL_CREATE_MEMBERSHIP_FOR_ORGANIZATION\",\"name\":\"Create membership for organization\",\"description\":\"Creates a new membership for a user within a Cal.com organization. The caller must have admin/owner access to the organization, and the target user must already exist in the system. Use CAL_RETRIEVE_USERS_IN_ORGANIZATION to get valid user IDs.\"},{\"slug\":\"CAL_CREATE_OAUTH_CLIENT_USER\",\"name\":\"Create oauth client user\",\"description\":\"Creates a new managed user for a Cal.com Platform OAuth client. This is a Platform API endpoint that requires OAuth client credentials (clientId and x-cal-secret-key). The endpoint is deprecated as of December 2025 but remains functional for existing Platform customers. Key behaviors: - If `timeZone` is provided: A default working schedule (Mon-Fri, 9AM-5PM) is automatically created - If `timeZone` is omitted: No default schedule is created; you must manually create one via the `/schedules` endpoint before the user can receive bookings Returns access and refresh tokens for the created managed user that should be stored securely. Access tokens expire in 60 minutes; refresh tokens expire in 1 year.\"},{\"slug\":\"CAL_CREATE_OAUTH_CLIENT_WEBHOOK_CONFIGURATION\",\"name\":\"Create OAuth client webhook configuration\",\"description\":\"Creates a webhook configuration for an OAuth client to receive real-time event notifications from Cal.com. This is a Platform API endpoint that requires OAuth client credentials (clientId and x-cal-secret-key). Use this to set up automated workflows by subscribing to events like BOOKING_CREATED, BOOKING_CANCELLED, MEETING_ENDED, FORM_SUBMITTED, and more. The webhook will POST event data to your specified subscriberUrl. Key features: - Subscribe to multiple event triggers in a single webhook - Optionally customize the payload using a template - Secure webhooks with a secret for signature verification (X-Cal-Signature-256 header) - Control webhook activation status (active/inactive) Note: This endpoint is part of the deprecated Platform offering but remains functional for existing customers.\"},{\"slug\":\"CAL_CREATE_ORGANIZATION_ATTRIBUTES\",\"name\":\"Create organization attributes\",\"description\":\"Creates a new custom attribute for an existing organization, used to enhance data collection for event bookings or user profiles.\"},{\"slug\":\"CAL_CREATE_ORGANIZATION_TEAM_FORM_WORKFLOW\",\"name\":\"Create organization team form workflow\",\"description\":\"Tool to create a new workflow for routing forms within an organization team. Use when you need to set up automated actions (like sending emails or SMS) triggered by routing form submissions. Supports notification workflows with customizable triggers, steps, and activation settings.\"},{\"slug\":\"CAL_CREATE_ORGANIZATION_WEBHOOK_BY_ORG_ID\",\"name\":\"Create organization webhook by org ID\",\"description\":\"Creates a webhook for an organization that sends HTTP POST notifications to a specified URL when triggered by events (e.g., booking created, cancelled, meeting started). Returns the webhook configuration including its unique ID, which can be used to update or delete the webhook later.\"},{\"slug\":\"CAL_CREATE_OR_UPDATE_TEAM_PROFILE\",\"name\":\"Create or update team profile\",\"description\":\"Creates a new team profile, or updates one if a 'slug' matches, customizing branding, scheduling, privacy, and operational details.\"},{\"slug\":\"CAL_CREATE_PHONE_CALL_EVENT\",\"name\":\"Create phone call event\",\"description\":\"Schedules a phone call event in Cal.com using existing eventType, organization, and team IDs; this action only registers the event details and does not initiate the actual phone call.\"},{\"slug\":\"CAL_CREATE_PHONE_CALL_FOR_EVENT_TYPE\",\"name\":\"Create phone call for event type\",\"description\":\"Configures Cal.ai phone call automation for a team event type, enabling AI-powered outbound calls for appointment reminders or custom conversations. Requires team membership - first use CAL_GET_TEAMS_LIST to get a valid teamId, then CAL_GET_EVENT_TYPE_BY_TEAM_ID or CAL_RETRIEVE_TEAM_EVENT_TYPES to get an eventTypeId belonging to that team. Note: This creates the call configuration but does not immediately initiate a call. Cal.ai charges $0.29/minute for AI calls.\"},{\"slug\":\"CAL_CREATE_TEAM_EVENT_TYPE\",\"name\":\"Create team event type\",\"description\":\"Creates a new event type for a specified team in Cal.com; ensure `teamId`, any provided `scheduleId`, `hosts.userId`, and `destinationCalendar` details are valid and accessible.\"},{\"slug\":\"CAL_CREATE_TEAM_EVENT_TYPES_WITH_CUSTOM_OPTIONS\",\"name\":\"Create team event types with custom options\",\"description\":\"Creates a highly customizable Cal.com team event type with extensive scheduling, booking, and host assignment options; `schedulingType` is required, `lengthInMinutes` must be included in `lengthInMinutesOptions`, destination calendar details (from `/api/v2/calendars`) must be valid if provided, and host User IDs must be valid team members.\"},{\"slug\":\"CAL_CREATE_TEAM_IN_ORGANIZATION\",\"name\":\"Create team in organization\",\"description\":\"Creates a new team with customizable attributes within an existing and accessible Cal.com organization specified by orgId.\"},{\"slug\":\"CAL_CREATE_TEAM_INVITE_LINK\",\"name\":\"Create team invite link\",\"description\":\"Creates a shareable invite link for a Cal.com team that allows new members to join. Returns both the raw token and a complete invitation URL.\"},{\"slug\":\"CAL_CREATE_TEAM_MEMBERSHIP_WITH_ROLE\",\"name\":\"Create team membership with role\",\"description\":\"Adds a user to a team with a specified role, acceptance status, and impersonation settings; ensure `teamId` and `userId` refer to existing, valid entities.\"},{\"slug\":\"CAL_CREATE_USER_AVAILABILITY_SCHEDULE\",\"name\":\"Create user availability schedule\",\"description\":\"Creates a Cal.com user availability schedule, defining its name, timezone, weekly recurring availability, and specific date overrides; if `isDefault` is true, this schedule replaces any existing default and applies to event types not linked to a specific schedule.\"},{\"slug\":\"CAL_CREATE_USER_SCHEDULE_IN_ORGANIZATION\",\"name\":\"Create user schedule in organization\",\"description\":\"Creates a new schedule defining a user's availability with weekly slots and date-specific overrides in an organization; setting 'isDefault' to true may replace an existing default schedule for the user.\"},{\"slug\":\"CAL_CREATE_WEBHOOK_FOR_EVENT_TYPE\",\"name\":\"Create webhook for event type\",\"description\":\"Creates a webhook for an existing `eventTypeId` in Cal.com, sending notifications for specified `triggers` to a `subscriberUrl` that handles POST requests.\"},{\"slug\":\"CAL_DECLINE_BOOKING_WITH_REASON\",\"name\":\"Decline booking with reason\",\"description\":\"Declines a pending booking using its bookingUid, optionally with a reason; this action is irreversible and applies only to bookings awaiting confirmation.\"},{\"slug\":\"CAL_DELETE_ALL_TEAM_EVENT_TYPE_WEBHOOKS\",\"name\":\"Delete all team event type webhooks\",\"description\":\"Permanently deletes all webhooks associated with a specific team event type. Use when you need to remove all webhook configurations for a team's event type.\"},{\"slug\":\"CAL_DELETE_CONFERENCE_APP_CONNECTION\",\"name\":\"Delete conference app connection\",\"description\":\"Disconnects the specified conferencing application (e.g., 'zoom', 'google_meet') for the Cal.com account, immediately terminating any ongoing call or meeting; use with caution.\"},{\"slug\":\"CAL_DELETE_DESTINATION_CALENDAR_BY_ID\",\"name\":\"Delete destination calendar by id\",\"description\":\"Tool to remove an existing destination calendar by its unique ID. Use when you need to delete a destination calendar configuration.\"},{\"slug\":\"CAL_DELETE_EVENT_TYPE_BY_ID\",\"name\":\"Delete event type by id\",\"description\":\"Permanently deletes an existing event type by its ID, which invalidates its scheduling links; the operation is irreversible, and while existing bookings are unaffected, no new bookings can be made for this event type.\"},{\"slug\":\"CAL_DELETE_EVENT_TYPE_IN_TEAM\",\"name\":\"Delete event type in team\",\"description\":\"Permanently removes an event type's configuration from a team's scheduling options (e.g., for cleanup); this action is irreversible and requires the event type to be associated with the team.\"},{\"slug\":\"CAL_DELETE_MEMBERSHIP_IN_TEAM\",\"name\":\"Delete membership in team\",\"description\":\"Use to permanently remove a user's membership from a specific team within an organization, which revokes their team-associated access but does not remove them from the organization.\"},{\"slug\":\"CAL_DELETE_OAUTH_CLIENT_USER\",\"name\":\"Delete OAuth Client Managed User\",\"description\":\"Permanently removes a managed user's association with an OAuth client without deleting their Cal.com account. This is a Cal.com Platform API endpoint for developers who manage users through OAuth clients. Prerequisites: - A registered OAuth client application (provides clientId) - The OAuth client secret key (x_cal_secret_key) - A valid managed user ID that was created under this OAuth client The deleted user's information is returned in the response for confirmation. Note: This endpoint is marked as deprecated in Cal.com docs but remains functional for existing Platform customers.\"},{\"slug\":\"CAL_DELETE_OAUTH_CLIENT_WEBHOOK\",\"name\":\"Delete oauth client webhook\",\"description\":\"Permanently deletes a specific webhook for an OAuth client in Cal.com Platform API. This endpoint is part of the Cal.com Platform API and requires valid OAuth client credentials. When a webhook is deleted, it will stop receiving notifications for all configured event triggers. **Prerequisites:** - A Platform-enabled Cal.com organization (requires `isPlatform: true`) - Valid OAuth client credentials (clientId and x_cal_secret_key) - An existing webhook created for the OAuth client **Typical Use Case:** Remove webhook subscriptions that are no longer needed, helping to manage and clean up your OAuth client's notification endpoints. **Note:** This endpoint is marked as deprecated in Cal.com documentation and may be removed in future versions. Consider using alternative webhook management endpoints when available.\"},{\"slug\":\"CAL_DELETE_ORGANIZATION_ATTRIBUTE\",\"name\":\"Delete organization attribute\",\"description\":\"Permanently deletes an existing attribute (specified by `attributeId`) from an existing organization (specified by `orgId`); this action is irreversible and may affect features dependent on the attribute.\"},{\"slug\":\"CAL_DELETE_ORGANIZATION_ATTRIBUTE_OPTION\",\"name\":\"Delete organization attribute option\",\"description\":\"Permanently deletes a specified option from an organization's attribute. Use this action to remove an option value from attributes of type SINGLE_SELECT or MULTI_SELECT. This is useful for cleaning up unused or deprecated configuration choices. Note: This action is destructive and cannot be undone. The option will be permanently removed. Requires organization admin access.\"},{\"slug\":\"CAL_DELETE_ORGANIZATION_MEMBERSHIP\",\"name\":\"Delete organization membership\",\"description\":\"Irreversibly deletes a user's membership from an organization, removing all associated access and permissions; the response confirms deletion without returning details of the deleted membership.\"},{\"slug\":\"CAL_DELETE_ORG_WEBHOOK\",\"name\":\"Delete org webhook\",\"description\":\"Permanently deletes an organization-level webhook by its ID. This action removes the specified webhook from the organization, stopping all future notifications to its subscriber URL. The deletion is irreversible - the webhook configuration cannot be recovered after deletion. Requirements: - User must be authenticated and have admin permissions in the organization - The webhook must exist within the specified organization - Use 'retrieve_organization_webhooks_by_org_id' to list webhooks before deletion\"},{\"slug\":\"CAL_DELETE_SCHEDULE_BY_ID\",\"name\":\"Delete schedule by id\",\"description\":\"Permanently deletes a specific schedule using its unique identifier, which must correspond to an existing schedule.\"},{\"slug\":\"CAL_DELETE_SELECTED_CALENDARS\",\"name\":\"Delete selected calendars\",\"description\":\"Removes a specified, currently selected calendar from the user's active list within the application, without deleting it from the external provider.\"},{\"slug\":\"CAL_DELETE_SELECTED_SLOT\",\"name\":\"Delete selected slot\",\"description\":\"Deletes a previously selected time slot from the Cal schedule using its `uid`; the slot must exist and this action is irreversible.\"},{\"slug\":\"CAL_DELETE_TEAM_BY_ID\",\"name\":\"Delete team by id\",\"description\":\"Permanently and irreversibly deletes an existing team and all its associated data from the Cal system, using the team's unique `teamId`.\"},{\"slug\":\"CAL_DELETE_TEAM_EVENT_TYPE_IN_ORGANIZATION\",\"name\":\"Delete team event type in organization\",\"description\":\"Permanently removes a team event type from an organization's scheduling configuration. Use when cleaning up unused event types or consolidating team scheduling options.\"},{\"slug\":\"CAL_DELETE_TEAM_FROM_ORGANIZATION\",\"name\":\"Delete team from organization\",\"description\":\"Permanently and irreversibly deletes a specific team from a Cal.com organization. WARNING: This action cannot be undone and will remove all associated team data including memberships, event types, and bookings. Requires ORG_ADMIN role in the organization.\"},{\"slug\":\"CAL_DELETE_TEAM_MEMBERSHIPS_BY_ID\",\"name\":\"Delete team memberships by id\",\"description\":\"Irreversibly removes a user's team membership in the Cal application, revoking access to that specific team; the user's overall Cal account remains active.\"},{\"slug\":\"CAL_DELETE_USER_ATTRIBUTE_OPTION\",\"name\":\"Delete user attribute option\",\"description\":\"Unassigns a specific attribute option from a user within an organization. Use this action to remove an attribute option assignment (e.g., skill, role, department) from a specific user. This does NOT delete the attribute option itself from the organization - it only removes the association between the user and that option. The attribute option must currently be assigned to the user. To find assigned attribute options for a user, use the 'Get all attribute options for a user' endpoint first. Requires organization admin access. The operation is reversible by re-assigning the attribute option to the user using the 'Assign attribute option to user' endpoint.\"},{\"slug\":\"CAL_DELETE_USER_FROM_ORGANIZATION\",\"name\":\"Delete user from organization\",\"description\":\"Permanently removes a user from a specific organization (user's system-wide account is unaffected), revoking their access rights therein; this action is irreversible via API and expects the user to be a current member.\"},{\"slug\":\"CAL_DELETE_USER_SCHEDULE\",\"name\":\"Delete user schedule\",\"description\":\"Permanently deletes a specific user's schedule, provided the organization, user, and schedule (identified by `orgId`, `userId`, and `scheduleId`) exist.\"},{\"slug\":\"CAL_DELETE_WEBHOOK_BY_ID\",\"name\":\"Delete webhook by id\",\"description\":\"Permanently deletes an existing webhook by its `webhookId`, stopping future notifications; this action is irreversible.\"},{\"slug\":\"CAL_DELETE_WEBHOOK_FOR_EVENT_TYPE\",\"name\":\"Delete webhook for event type\",\"description\":\"Permanently deletes a specific webhook for an event type, halting its real-time notifications; this operation is irreversible and leaves the event type and other webhooks untouched.\"},{\"slug\":\"CAL_DELETE_WEBHOOKS_FOR_EVENT_TYPE\",\"name\":\"Delete webhooks for event type\",\"description\":\"Call this to irreversibly delete all webhooks for a specific `eventTypeId` if the event type exists; details of deleted webhooks are not returned.\"},{\"slug\":\"CAL_DISCONNECT_CALENDAR_USING_CREDENTIAL_ID\",\"name\":\"Disconnect calendar using credential id\",\"description\":\"Disconnects a calendar integration by its provider name and credential ID, irreversibly revoking Cal's access; external calendar data remains unaffected.\"},{\"slug\":\"CAL_EDIT_ATTENDEE_BY_ID\",\"name\":\"Edit attendee by ID\",\"description\":\"Tool to edit an existing attendee in a Cal.com booking. Use when you need to update attendee details such as name, email, or timezone.\"},{\"slug\":\"CAL_EDIT_AVAILABILITY_BY_ID\",\"name\":\"Edit availability by ID\",\"description\":\"Tool to edit an existing availability by ID on Cal.com. Use when you need to update the days, start time, end time, or schedule association of an existing availability.\"},{\"slug\":\"CAL_EDIT_BOOKING_BY_ID\",\"name\":\"Edit booking by ID\",\"description\":\"Tool to edit an existing booking by its ID. Use when you need to update booking details such as title, description, status, or time.\"},{\"slug\":\"CAL_EDIT_EVENT_TYPE_BY_ID\",\"name\":\"Edit event type by ID\",\"description\":\"Tool to edit an existing Cal.com event type by ID. Use when you need to update event type settings like title, description, duration, locations, or booking configurations.\"},{\"slug\":\"CAL_EDIT_SELECTED_CALENDAR_BY_ID\",\"name\":\"Edit selected calendar by ID\",\"description\":\"Tool to edit a selected calendar by its composite ID in Cal.com. Use when you need to update an existing calendar integration.\"},{\"slug\":\"CAL_FETCH_ALL_BOOKINGS\",\"name\":\"Fetch all bookings\",\"description\":\"Fetches a list of bookings, optionally filtered by status, attendee, date range, or by event/team IDs (which must belong to/include the authenticated user respectively), with support for pagination and sorting.\"},{\"slug\":\"CAL_FETCH_EVENT_TYPE_DETAILS\",\"name\":\"Fetch event type details\",\"description\":\"Fetches all configuration settings and characteristics for a single event type (identified by orgId, teamId, and eventTypeId), which must exist and be accessible; this read-only action cannot list, create, or modify event types.\"},{\"slug\":\"CAL_FETCH_ORGANIZATION_ATTRIBUTE_BY_ID\",\"name\":\"Fetch organization attribute by id\",\"description\":\"Retrieves a specific attribute of an organization, useful for fetching a single data point instead of the entire organization record.\"},{\"slug\":\"CAL_FETCH_PROVIDER_ACCESS_TOKEN\",\"name\":\"Fetch provider access token\",\"description\":\"Fetches an OAuth access token for the specified `clientId` to authenticate API calls; this action only retrieves the token, not managing scheduling or calendar events.\"},{\"slug\":\"CAL_FETCH_SCHEDULE_BY_ID\",\"name\":\"Fetch schedule by id\",\"description\":\"Fetches comprehensive details for a specific, existing schedule using its `scheduleId`.\"},{\"slug\":\"CAL_FETCH_USER_SCHEDULE_BY_ORG_ID\",\"name\":\"Fetch user schedule by org id\",\"description\":\"Retrieves a specific user's schedule within an organization, returning availability windows, timezone settings, and date-specific overrides. Requires organization-level access permissions.\"},{\"slug\":\"CAL_FETCH_WEBHOOK_BY_EVENT_TYPE_ID\",\"name\":\"Fetch webhook by event type id\",\"description\":\"Retrieves details for a single, specific webhook using its `webhookId` and associated `eventTypeId`.\"},{\"slug\":\"CAL_FORCE_REFRESH_USER_OAUTH_CLIENT\",\"name\":\"Force refresh user oauth client\",\"description\":\"Forces an immediate refresh of OAuth tokens for a Platform managed user. This is a Cal.com Platform API endpoint (deprecated as of December 2025 but still functional for existing customers). Use this endpoint when you've lost a managed user's access or refresh tokens and need to obtain new ones. Prerequisites: - A registered OAuth client application with Cal.com (provides clientId and x_cal_secret_key) - The managed user must exist and be associated with your OAuth client - Valid OAuth client credentials (clientId and secret key) Token Validity: - Access tokens are valid for 60 minutes - Refresh tokens are valid for 1 year Important: Store the returned tokens securely in your database (e.g., as calAccessToken and calRefreshToken fields).\"},{\"slug\":\"CAL_GET_ALL_TIMEZONES\",\"name\":\"Get all timezones\",\"description\":\"Retrieves all supported time zone identifiers (e.g., 'America/New_York', 'Europe/London') and their associated metadata, excluding specific DST changes or precise UTC offset details.\"},{\"slug\":\"CAL_GET_AVAILABLE_SLOTS_INFO\",\"name\":\"Get available slots info\",\"description\":\"Retrieves available time slots for scheduling by considering existing bookings and availability, based on criteria like a specified time range and event type.\"},{\"slug\":\"CAL_GET_BOOKING_REFERENCE_BY_ID\",\"name\":\"Get booking reference by id\",\"description\":\"Tool to find a specific booking reference by its ID. Use when you need to retrieve details about a single booking reference that links a booking to an external platform or calendar.\"},{\"slug\":\"CAL_GET_BOOKING_REFERENCES\",\"name\":\"Get booking references\",\"description\":\"Retrieves external references for a specific booking within an organization's team. Use when you need to get calendar or video platform integration details for a booking.\"},{\"slug\":\"CAL_GET_CONFERENCE_OAUTH_AUTHORIZATION_URL\",\"name\":\"Get conference OAuth authorization url\",\"description\":\"Generates an OAuth 2.0 authorization URL for a supported conferencing `app` to initiate or refresh its integration with Cal.com.\"},{\"slug\":\"CAL_GET_DEFAULT_SCHEDULE_DETAILS\",\"name\":\"Get default schedule details\",\"description\":\"Retrieves the Cal system's global default schedule configuration, not custom or user-specific ones.\"},{\"slug\":\"CAL_GET_DESTINATION_CALENDARS\",\"name\":\"Get destination calendars\",\"description\":\"Tool to retrieve all destination calendars configured for the authenticated user. Use when you need to find where new bookings will be created.\"},{\"slug\":\"CAL_GET_EVENT_TYPE_BY_TEAM_ID\",\"name\":\"Get event type by team id\",\"description\":\"Retrieves a specific event type by its ID, requiring that the event type is associated with the given team ID.\"},{\"slug\":\"CAL_GET_EVENT_TYPE_PRIVATE_LINKS\",\"name\":\"Get event type private links\",\"description\":\"Retrieves all private booking links for a specific event type. Private links allow sharing event booking URLs with restricted access, either time-limited or usage-limited.\"},{\"slug\":\"CAL_GET_GOOGLE_CALENDAR_OAUTH_AUTHENTICATION_URL\",\"name\":\"Get google calendar oauth authentication url\",\"description\":\"Generates the initial Google Calendar OAuth 2.0 authorization URL for user redirection to begin the authentication and authorization process.\"},{\"slug\":\"CAL_GET_OAUTH_CLIENTS_USER\",\"name\":\"Get oauth clients user\",\"description\":\"Retrieves all managed users associated with a Platform OAuth client. This endpoint is part of Cal.com's Platform API for managing users created through OAuth client credentials. Requires a valid Platform OAuth client ID and secret key, which are obtained when creating an OAuth client at https://app.cal.com/settings/platform/oauth-clients. Use this to: - List all users managed under your OAuth client - Audit user access and permissions - Retrieve user profile details (email, timezone, locale, avatar, etc.) Authentication: Requires both Bearer token (from auth metadata) and x-cal-secret-key header.\"},{\"slug\":\"CAL_GET_ORGANIZATION_ATTRIBUTE_ASSIGNED_OPTIONS\",\"name\":\"Get organization attribute assigned options\",\"description\":\"Retrieves all assigned attribute options for a specific attribute within an organization. This action returns the list of attribute options that have been assigned to users, along with which users have been assigned each option. For example, if you have a \\\"Department\\\" attribute, this will show which department options exist and which users are assigned to each department. Use cases: - View which users are assigned to specific attribute options - Monitor attribute option assignments across teams - Audit user attribute assignments for reporting - Filter results by specific option IDs or team IDs Prerequisites: - The organization must exist (use get_organization_id to retrieve your orgId) - The attribute must exist with options assigned to users\"},{\"slug\":\"CAL_GET_ORGANIZATION_ATTRIBUTE_ASSIGNED_OPTIONS_BY_SLUG\",\"name\":\"Get organization attribute assigned options by slug\",\"description\":\"Tool to retrieve all assigned attribute options for a specific attribute by its slug within an organization. Use when you need to see which attribute options have been assigned to users, filtered by the attribute's slug identifier.\"},{\"slug\":\"CAL_GET_ORGANIZATION_ID\",\"name\":\"Get organization ID\",\"description\":\"Retrieves the organization ID associated with the currently authenticated user from the Cal.com /v2/me endpoint.\"},{\"slug\":\"CAL_GET_ORGANIZATION_SCHEDULES\",\"name\":\"Get organization schedules\",\"description\":\"Retrieves availability schedules for an organization. Returns schedules that define when users are available for bookings, including working hours, time zones, and date-specific overrides. These are not individual events or appointments, but rather the availability templates that determine when bookings can be made.\"},{\"slug\":\"CAL_GET_ORGANIZATION_TEAMS_EVENT_TYPES\",\"name\":\"Get organization teams event types\",\"description\":\"Retrieves event types, including names, durations, and custom settings for team scheduling, for all teams within an existing organization specified by `orgId`.\"},{\"slug\":\"CAL_GET_ORGANIZATION_TEAM_WORKFLOWS\",\"name\":\"Get organization team workflows\",\"description\":\"Retrieves workflows configured for a specific team within an organization. Returns workflow configurations including triggers, steps, and activation settings. Use when you need to list or inspect workflow automations for a team.\"},{\"slug\":\"CAL_GET_ORGANIZATION_USER_SCHEDULES\",\"name\":\"Get organization user schedules\",\"description\":\"Retrieves all availability schedules configured for a specific user within an organization. Returns detailed schedule information including time slots, timezones, and overrides. Does not include booked events or appointments.\"},{\"slug\":\"CAL_GET_PRIVATE_LINKS\",\"name\":\"Get private links for team event type\",\"description\":\"Get all private links for a team event type. Use this to retrieve both time-based (with expiration) and usage-based (with usage limits) private links for scheduling.\"},{\"slug\":\"CAL_GET_SCHEDULE_FOR_USER_IN_TEAM\",\"name\":\"Get schedule for user in team\",\"description\":\"Retrieves all availability schedules for a specific user within a team and organization. Returns schedule configurations including working hours, time zones, weekly availability patterns, default schedule designation, and date-specific overrides. Use this to understand when a team member is available for bookings. Requires valid userId (from team memberships), orgId (from organization list), and teamId (from teams list).\"},{\"slug\":\"CAL_GET_SELECTED_CALENDAR_BY_ID\",\"name\":\"Get selected calendar by ID\",\"description\":\"Tool to retrieve a selected calendar by its compound ID (userId_integration_externalId). Use when you need to fetch details of a specific calendar that has been selected for synchronization.\"},{\"slug\":\"CAL_GET_STRIPE_CONNECT_INFO\",\"name\":\"Get stripe connect info\",\"description\":\"Retrieves Stripe Connect account details (ID, charges/payouts status, verification, settings) for the user's linked Cal.com account; response may be empty or indicate no integration if no account is linked.\"},{\"slug\":\"CAL_GET_STRIPE_CONNECT_URL\",\"name\":\"Get Stripe Connect URL for team\",\"description\":\"Tool to get Stripe Connect authorization URL for a team within an organization. Use when you need to obtain a URL that allows team members to connect their Stripe account for payment processing on Cal.com.\"},{\"slug\":\"CAL_GET_TEAM_BOOKINGS\",\"name\":\"Get team bookings\",\"description\":\"Retrieves all bookings for a specified team, optionally filtered by status, attendee details, date ranges, or event type IDs, with support for pagination and sorting.\"},{\"slug\":\"CAL_GET_TEAM_DEFAULT_CONFERENCING_APP\",\"name\":\"Get team default conferencing app\",\"description\":\"Retrieves the default conferencing application configured for a specific team within an organization. Use this to check which video platform (e.g., Zoom, Google Meet) is set as the team's default for scheduling meetings.\"},{\"slug\":\"CAL_GET_TEAM_DETAILS_BY_ORG_ID_AND_TEAM_ID\",\"name\":\"Get team details by organization ID and team ID\",\"description\":\"Retrieves comprehensive details for a specific team within an organization, including team metadata, configuration settings, branding options, and timezone/week preferences. Use this to get team information like name, slug, bio, timezone, branding colors, and visibility settings.\"},{\"slug\":\"CAL_GET_TEAM_EVENT_TYPE_WEBHOOK\",\"name\":\"Get team event type webhook\",\"description\":\"Retrieves details for a specific webhook configured on a team event type. Use when you need to inspect webhook configuration, verify settings, or troubleshoot webhook deliveries for team-managed event types.\"},{\"slug\":\"CAL_GET_TEAM_EVENT_TYPE_WEBHOOKS\",\"name\":\"Get team event type webhooks\",\"description\":\"Retrieves all webhooks configured for a specific team event type. Use this to audit webhook configurations or troubleshoot webhook delivery issues.\"},{\"slug\":\"CAL_GET_TEAM_INFORMATION_BY_TEAM_ID\",\"name\":\"Get team information by team ID\",\"description\":\"Retrieves detailed information about a specific Cal.com team by its ID. Returns team configuration including name, slug, branding (logo, colors, theme), timezone settings, and privacy options. Requires the authenticated user to be a member of the team. Use 'get_teams_list' to find available team IDs.\"},{\"slug\":\"CAL_GET_TEAM_ROUTING_FORMS\",\"name\":\"Get team routing forms\",\"description\":\"Retrieves routing forms for a specific team within an organization. Routing forms are used to collect information from potential bookers and route them to appropriate event types or team members based on their responses. Use this to fetch routing form configurations, fields, and routing logic for a team.\"},{\"slug\":\"CAL_GET_TEAM_SCHEDULES\",\"name\":\"Get team schedules\",\"description\":\"Retrieves availability schedules for all members of a specific team within an organization. Returns schedules that define when team members are available for bookings, including working hours, time zones, and date-specific overrides.\"},{\"slug\":\"CAL_GET_TEAMS_LIST\",\"name\":\"Get teams list\",\"description\":\"Retrieves all teams the user belongs to, including their names and members.\"},{\"slug\":\"CAL_GET_VERIFIED_PHONE_NUMBERS\",\"name\":\"Get verified phone numbers\",\"description\":\"Retrieves a paginated list of verified phone numbers for a specific organization team. Use when you need to get phone numbers that have been verified and associated with a team.\"},{\"slug\":\"CAL_GET_WEBHOOK_BY_ID\",\"name\":\"Get webhook by id\",\"description\":\"Retrieves details for an existing and accessible webhook by its ID; this is a read-only operation.\"},{\"slug\":\"CAL_HANDLE_CONFERENCING_OAUTH_CALLBACK_FOR_APP\",\"name\":\"Handle conferencing oauth callback for app\",\"description\":\"Processes an OAuth 2.0 callback for a conferencing `app`, exchanging the `code` and `state` for access credentials; ensure an OAuth flow was previously initiated.\"},{\"slug\":\"CAL_LIST_ATTENDEES\",\"name\":\"List all attendees\",\"description\":\"Tool to retrieve all attendees from Cal.com. Use when you need to get a complete list of all attendees across all bookings.\"},{\"slug\":\"CAL_LIST_BOOKING_REFERENCES\",\"name\":\"List booking references\",\"description\":\"Fetches one page of booking references in Cal.com. The Cal.com v2 API does not expose `/booking-references` for Bearer-token auth, so this action paginates the v2 `/bookings` endpoint and extracts each booking's `references` array. ONE Cal.com API call is made per invocation; pagination is caller-driven via the `cursor` parameter (Cal's keyset-by-booking-ID cursor) and the `next_cursor` field in the response.\"},{\"slug\":\"CAL_LIST_EVENT_TYPES\",\"name\":\"List event types\",\"description\":\"Retrieves Cal event types, filterable by `username` (required if `eventSlug` is provided), multiple `usernames`, or organization details (`orgSlug` or `orgId`).\"},{\"slug\":\"CAL_LIST_ORGANIZATION_MEMBERSHIPS\",\"name\":\"List organization memberships\",\"description\":\"Retrieves all memberships for a given organization, including user details, roles, status, and membership dates.\"},{\"slug\":\"CAL_LIST_TEAM_EVENT_TYPES_BY_ORG_AND_TEAM_ID\",\"name\":\"List team event types by org and team id\",\"description\":\"Retrieves all event types for a specific team within an organization, optionally filtering by a specific event slug.\"},{\"slug\":\"CAL_MARK_BOOKING_ABSENT_FOR_UID\",\"name\":\"Mark booking absent for UID\",\"description\":\"Marks the host and/or specified attendees as absent for an existing booking, typically used after a scheduled event to record no-shows.\"},{\"slug\":\"CAL_MODIFY_ORGANIZATION_MEMBERSHIP_BY_ID\",\"name\":\"Modify organization membership by id\",\"description\":\"Updates an organization membership's status (accepted), role, or impersonation settings, identified by `orgId` and `membershipId` in the path; requires at least one of these fields in the request to apply changes.\"},{\"slug\":\"CAL_MODIFY_ORG_ATTRIBUTE_BY_ID\",\"name\":\"Modify org attribute by id\",\"description\":\"Partially updates an organization attribute using `orgId` and `attributeId`, allowing modification of its name, slug, type, or enabled status; changing the 'type' may affect existing data.\"},{\"slug\":\"CAL_PATCH_ORGANIZATION_ATTRIBUTE_OPTION\",\"name\":\"Patch organization attribute option\",\"description\":\"Partially updates a specific option for an organization's attribute, modifying its 'value' and/or 'slug'; at least one of 'value' or 'slug' must be provided.\"},{\"slug\":\"CAL_PATCH_ORGANIZATION_USER_DETAILS\",\"name\":\"Patch organization user details\",\"description\":\"Partially updates details for a user that exists within the specified organization.\"},{\"slug\":\"CAL_PATCH_TEAM_DETAILS_BY_ID\",\"name\":\"Patch team details by ID\",\"description\":\"Updates specified details for an existing team identified by `teamId`; unspecified fields remain unchanged.\"},{\"slug\":\"CAL_PATCH_WEBHOOK_EVENT_TYPE\",\"name\":\"Patch webhook event type\",\"description\":\"Updates configuration (e.g., payload template, active status, URL, triggers, secret) for an existing webhook tied to a specific event type.\"},{\"slug\":\"CAL_POST_CALENDAR_CREDENTIALS\",\"name\":\"Post calendar credentials\",\"description\":\"Use to submit/update authentication credentials (passed in the request body) for an existing calendar, enabling Cal to connect with external calendar services for synchronization.\"},{\"slug\":\"CAL_POST_CONFERENCING_APP_CONNECT\",\"name\":\"Connect conferencing app\",\"description\":\"Connects or reconnects Cal.com with a specified conferencing application to enable future virtual meeting scheduling, but does not itself create or schedule meetings.\"},{\"slug\":\"CAL_POST_NEW_BOOKING_REQUEST\",\"name\":\"Create a new booking\",\"description\":\"Creates a new booking for an event type at a specified start time. Use this action to schedule a meeting with a Cal.com user. Prerequisites: 1. Get a valid event type ID from list_event_types 2. Find an available time slot using get_available_slots_info 3. Provide attendee name and email in the 'responses' object 4. Specify timezone and language preferences The booking will be created with status 'ACCEPTED' if no confirmation is required, or 'PENDING' if the event type requires host confirmation.\"},{\"slug\":\"CAL_POST_ORG_ATTRIBUTE_OPTION_BY_USER\",\"name\":\"Assign or create attribute option for user\",\"description\":\"Assigns an existing attribute option (using `attributeOptionId`) or creates a new one (using `value`) for a user, linking it to a specified `attributeId` which must already exist within the organization.\"},{\"slug\":\"CAL_POST_SELECTED_CALENDARS\",\"name\":\"Add selected calendar\",\"description\":\"Links a new external calendar or updates an existing link to one, enabling synchronization with the Cal application by specifying the `integration` provider, the calendar's `externalId`, and the `credentialId`.\"},{\"slug\":\"CAL_POST_USER_TO_ORGANIZATION\",\"name\":\"Post user to organization\",\"description\":\"Adds a new user to an existing organization (identified by `orgId` in path), requiring user's `email` and allowing extensive optional profile customization.\"},{\"slug\":\"CAL_POST_WEBHOOK_EVENT\",\"name\":\"Create webhook subscription\",\"description\":\"Creates a new Cal.com webhook subscription to send real-time notifications for specified calendar events (like bookings, meetings, forms) to a publicly accessible subscriber URL. Supports custom payload templates and webhook signature verification via HMAC-SHA256.\"},{\"slug\":\"CAL_REASSIGN_BOOKING_TO_ANOTHER_USER\",\"name\":\"Reassign booking to another user\",\"description\":\"Reassigns an existing booking to a specified user. Requires cal-api-version 2024-08-13. The booking owner must be authorized to perform the reassignment.\"},{\"slug\":\"CAL_REASSIGN_BOOKING_WITH_UID\",\"name\":\"Reassign booking with uid\",\"description\":\"Reassigns the specified booking to a new team member, who is determined by the system rather than being specified in the request.\"},{\"slug\":\"CAL_REFRESH_OAUTH_TOKEN_FOR_CLIENT_ID\",\"name\":\"Refresh oauth token for client id\",\"description\":\"Refreshes an OAuth access token for a specified `clientId` and managed user using their `refreshToken`. This is a Cal.com Platform feature for developers building applications that manage users. Prerequisites: - A registered OAuth client application with Cal.com (provides clientId) - The OAuth client secret key (x_cal_secret_key) - A valid refresh token obtained when creating a managed user The endpoint implements refresh token rotation - both access and refresh tokens are returned. Access tokens expire after 60 minutes; refresh tokens expire after 1 year. Note: This endpoint is marked as deprecated in Cal.com docs and may be replaced in future versions.\"},{\"slug\":\"CAL_REQUEST_EMAIL_VERIFICATION_CODE\",\"name\":\"Request email verification code\",\"description\":\"Request an email verification code for a team's verified resources. Use this action when you need to verify an email address for a team. The API will send a verification code to the specified email address. After receiving the code, you'll need to use it with a separate verification endpoint to complete the email verification process. This is typically used to verify email addresses that will be used as verified resources within a team.\"},{\"slug\":\"CAL_RESCHEDULE_BOOKING_BY_UID\",\"name\":\"Reschedule booking by uid\",\"description\":\"Reschedules an existing booking (identified by `bookingUid`) to a new time. Requires the booking UID and the new start time in ISO 8601 format. Optionally, you can provide a rescheduling reason and the email of the person rescheduling.\"},{\"slug\":\"CAL_RESERVE_SLOT_FOR_EVENT\",\"name\":\"Reserve slot for event\",\"description\":\"Temporarily reserves an available time slot for an existing and bookable event type, useful for high-demand slots to prevent double-bookings while the user completes the booking.\"},{\"slug\":\"CAL_RETRIEVE_ATTRIBUTE_OPTIONS_FOR_ORG\",\"name\":\"Retrieve attribute options for org\",\"description\":\"Retrieves all available options for a specific attribute within an organization. This action returns the list of selectable options for SINGLE_SELECT or MULTI_SELECT type attributes. For example, if you have a \\\"Department\\\" attribute, this will return options like \\\"Engineering\\\", \\\"Marketing\\\", \\\"Sales\\\". Note: TEXT and NUMBER type attributes do not have options and will return an empty list. Use cases: - Retrieve available departments, locations, or other categorical options - Display attribute options in a user interface for selection - Validate that a specific option exists before assigning it to a user Prerequisites: - The organization must exist (use get_organization_id to retrieve your orgId) - The attribute must exist (use retrieve_organization_attributes to get attributeId) - Only SINGLE_SELECT and MULTI_SELECT attributes will have options\"},{\"slug\":\"CAL_RETRIEVE_BOOKING_DETAILS_BY_UID\",\"name\":\"Retrieve booking details by uid\",\"description\":\"Fetches comprehensive details for an existing booking, identified by its `bookingUid`.\"},{\"slug\":\"CAL_RETRIEVE_CALENDAR_BUSY_TIMES\",\"name\":\"Retrieve calendar busy times\",\"description\":\"To find busy calendar slots for scheduling/conflict detection, call this with a valid `credentialId`, an `externalId` accessible by it, and a recognized IANA `loggedInUsersTz`; returns only busy intervals, not event details or free slots. Use credentialId/externalId for single calendar queries.\"},{\"slug\":\"CAL_RETRIEVE_CALENDAR_LIST\",\"name\":\"Retrieve calendar list\",\"description\":\"Retrieves a list of all calendar summaries (no event details) associated with the authenticated user's account.\"},{\"slug\":\"CAL_RETRIEVE_CURRENT_TEAM_FOR_ORGANIZATION\",\"name\":\"Retrieve current team for organization\",\"description\":\"Retrieves details of the team(s) for the currently authenticated user within the specified organization `orgId`.\"},{\"slug\":\"CAL_RETRIEVE_DEFAULT_CONFERENCING_SETTINGS\",\"name\":\"Retrieve default conferencing settings\",\"description\":\"Retrieves an account's or organization's read-only default conferencing settings in Cal.com (e.g., video platform, meeting duration) to inform event creation or ensure consistency.\"},{\"slug\":\"CAL_RETRIEVE_EVENT_TYPE_BY_ID\",\"name\":\"Retrieve event type by id\",\"description\":\"Retrieves comprehensive details for a specific, existing Cal.com event type using its unique ID; this is a read-only action and does not return associated events or bookings.\"},{\"slug\":\"CAL_RETRIEVE_MEMBERSHIP_FROM_ORGANIZATION\",\"name\":\"Retrieve membership from organization\",\"description\":\"Retrieves detailed information about a specific membership within a particular organization.\"},{\"slug\":\"CAL_RETRIEVE_MY_INFORMATION\",\"name\":\"Retrieve my information\",\"description\":\"Retrieves the authenticated user's core profile information (e.g., name, email, timezone); does not retrieve related data like calendar events or schedules.\"},{\"slug\":\"CAL_RETRIEVE_OAUTH_CLIENT_USER_BY_ID\",\"name\":\"Retrieve OAuth client user by ID\",\"description\":\"Retrieves detailed profile information for a specific managed user associated with an OAuth client. This endpoint is part of Cal.com's Platform API for OAuth client management. It requires: - A valid OAuth client ID (clientId) obtained from the Cal.com Platform dashboard - A valid managed user ID (userId) that was created via the create managed user endpoint - OAuth client secret key (x_cal_secret_key) for authentication Returns the user's profile including email, name, timezone, schedule settings, and custom metadata. Note: This endpoint requires Platform API access which is available to registered OAuth clients.\"},{\"slug\":\"CAL_RETRIEVE_OAUTH_CLIENT_WEBHOOK_BY_ID\",\"name\":\"Retrieve oauth client webhook by id\",\"description\":\"Retrieves detailed configuration for a specific webhook by ID from a Platform OAuth client. This Platform API endpoint requires OAuth client credentials (clientId and x-cal-secret-key) to access webhook settings including subscriber URL, active status, event triggers, payload template, and verification secret. Prerequisites: Platform OAuth client created at https://app.cal.com/settings/platform/oauth-clients with both client ID and secret key. Note: Platform offering deprecated Dec 2025, available only to existing enterprise customers. Use cases: Verify webhook config after creation, check active status for troubleshooting, retrieve secret for signature verification, audit settings.\"},{\"slug\":\"CAL_RETRIEVE_ORGANIZATION_ATTRIBUTES\",\"name\":\"Retrieve organization attributes\",\"description\":\"Retrieves detailed attributes (e.g., configurations, settings, metadata) for an organization, identified by its `orgId`, which must correspond to an existing organization.\"},{\"slug\":\"CAL_RETRIEVE_ORGANIZATION_ATTRIBUTES_OPTIONS\",\"name\":\"Retrieve organization attributes options\",\"description\":\"Retrieves all attribute options assigned to a specific user within an organization. Attribute options are customizable organizational metadata (like department, role, location, or team) that organizations define and assign to users for flexible categorization and management.\"},{\"slug\":\"CAL_RETRIEVE_ORGANIZATION_WEBHOOK_BY_ID\",\"name\":\"Retrieve organization webhook by id\",\"description\":\"Retrieves detailed information, including configuration and status, for a specific webhook by its ID (`webhookId`) within a given organization (`orgId`).\"},{\"slug\":\"CAL_RETRIEVE_ORGANIZATION_WEBHOOKS_BY_ORG_ID\",\"name\":\"Retrieve organization webhooks by org ID\",\"description\":\"Retrieves all webhooks configured for a specific organization, returning an array of webhook objects with their configuration details (ID, triggers, subscriber URL, active status, etc.). Supports pagination via `take` and `skip` parameters. This is a read-only operation that does not modify any webhooks.\"},{\"slug\":\"CAL_RETRIEVE_PROVIDER_DETAILS\",\"name\":\"Retrieve provider details\",\"description\":\"Verifies and retrieves details for an OAuth client (provider) in Cal.com's Platform API. This endpoint is part of Cal.com's Platform API for managing OAuth clients. It verifies the OAuth client credentials (clientId and x-cal-secret-key) and returns provider details including the client ID, associated organization ID, and provider name. Use this to: - Verify that OAuth client credentials are valid - Retrieve the organization ID associated with an OAuth client - Get the registered name of the OAuth client/provider Authentication: Requires both the OAuth client ID (path parameter) and x-cal-secret-key (header). These credentials are obtained from https://app.cal.com/settings/platform/oauth-clients.\"},{\"slug\":\"CAL_RETRIEVE_SCHEDULES_LIST\",\"name\":\"Retrieve schedules list\",\"description\":\"Retrieve all availability schedules for the authenticated Cal.com user. This action returns a list of schedules that define when a user is available for bookings. Each schedule includes availability time blocks, timezone, and whether it's the default schedule. Use this to: - List all configured schedules for a user - Find the default schedule (isDefault=true) - Get schedule IDs for use with other actions like updating or deleting schedules Returns an empty list if no schedules are configured.\"},{\"slug\":\"CAL_RETRIEVE_TEAM_DETAILS_IN_ORGANIZATION\",\"name\":\"Retrieve team details in organization\",\"description\":\"Retrieves a paginated list of teams and their details for a specific organization ID; individual team member details or schedules are not included.\"},{\"slug\":\"CAL_RETRIEVE_TEAM_EVENT_TYPES\",\"name\":\"Retrieve team event types\",\"description\":\"Retrieves event types for a team within the Cal scheduling system; this action does not provide details on scheduled instances or member availability.\"},{\"slug\":\"CAL_RETRIEVE_TEAM_MEMBERSHIP_BY_ID\",\"name\":\"Retrieve team membership by id\",\"description\":\"Retrieves detailed information for a specific team membership by its ID within an organization's team. Returns membership details including the user's role (MEMBER, OWNER, or ADMIN), acceptance status, impersonation settings, and user profile information (email, name, username, avatar, bio). Requires organization-level access permissions.\"},{\"slug\":\"CAL_RETRIEVE_TEAM_MEMBERSHIP_DETAILS\",\"name\":\"Retrieve team membership details\",\"description\":\"Retrieves detailed attributes for a specific team membership by its ID and the team ID, such as member information, role, and status; does not list all team members.\"},{\"slug\":\"CAL_RETRIEVE_TEAM_MEMBERSHIPS\",\"name\":\"Retrieve team memberships\",\"description\":\"Retrieves all memberships for a team, including member details, roles (MEMBER/OWNER/ADMIN), and invitation acceptance status. Supports pagination via 'take' and 'skip' parameters. Use this action to list team members and their roles. The authenticated user must be a member of the team to access its memberships.\"},{\"slug\":\"CAL_RETRIEVE_TEAM_MEMBERSHIPS_FOR_ORGANIZATION\",\"name\":\"Retrieve team memberships for organization\",\"description\":\"Retrieves all user memberships for a specific team within an organization, including each member's role (OWNER, ADMIN, MEMBER), acceptance status, impersonation settings, and detailed user information (email, username, name, avatar, bio). Supports pagination via 'take' and 'skip' parameters.\"},{\"slug\":\"CAL_RETRIEVE_USERS_IN_ORGANIZATION\",\"name\":\"Retrieve users in organization\",\"description\":\"Retrieves users associated with a specific organization ID, excluding individual scheduling or calendar data; the `orgId` must be a valid identifier for an existing organization.\"},{\"slug\":\"CAL_RETRIEVE_V2_CONFERENCING_INFO\",\"name\":\"Retrieve v2 conferencing info\",\"description\":\"Retrieves an authenticated Cal user's or organization's video conferencing configurations, capabilities, and installed apps, useful for understanding options before scheduling or verifying setups; provider availability may vary by subscription or settings.\"},{\"slug\":\"CAL_RETRIEVE_WEBHOOK_DETAILS_FOR_OAUTH_CLIENT\",\"name\":\"Retrieve webhook details for OAuth client\",\"description\":\"Retrieves all webhook configurations for a specific OAuth client with optional pagination. This endpoint is part of Cal.com's Platform API for managing webhooks associated with OAuth clients. Use this to: - List all webhooks configured for an OAuth client - Audit webhook configurations and their active status - Review subscribed event triggers for each webhook - Retrieve webhook URLs and payload templates The response includes webhook details such as: - Webhook ID and creation timestamp - Target subscriber URL for notifications - Active/inactive status - List of subscribed event triggers (BOOKING_CREATED, BOOKING_CANCELLED, etc.) - Custom payload templates (if configured) Pagination is supported via `take` (limit) and `skip` (offset) parameters.\"},{\"slug\":\"CAL_RETRIEVE_WEBHOOKS_FOR_EVENT_TYPE\",\"name\":\"Retrieve webhooks for event type\",\"description\":\"Retrieves a paginated list of webhooks (including URLs, subscribed events, and status) for a specified, existing event type ID, useful for auditing configurations or troubleshooting.\"},{\"slug\":\"CAL_RETRIEVE_WEBHOOKS_LIST\",\"name\":\"Retrieve webhooks list\",\"description\":\"Retrieves a paginated list of webhooks from the user's Cal scheduling system account, which are used for real-time notifications on events like new bookings, cancellations, or updates.\"},{\"slug\":\"CAL_SAVE_CALENDAR_ENTRY\",\"name\":\"Save calendar entry\",\"description\":\"Saves or updates a calendar's settings using a GET request, typically for data already on the server or simple updates via query parameters.\"},{\"slug\":\"CAL_SAVE_CALENDAR_ICS_FEEDS\",\"name\":\"Save calendar ics feeds\",\"description\":\"Imports and saves one or more publicly accessible external iCalendar (ICS) feed URLs into the Cal.com calendar system.\"},{\"slug\":\"CAL_SAVE_OAUTH_CREDENTIALS_VIA_GCAL_API\",\"name\":\"Save OAuth credentials via GCal API\",\"description\":\"Completes the Google Calendar OAuth 2.0 flow by exchanging the `code` and `state` (received from Google's redirect after user consent) for access and refresh tokens.\"},{\"slug\":\"CAL_SAVE_STRIPE_DETAILS\",\"name\":\"Save stripe details\",\"description\":\"Completes the Stripe OAuth flow by saving Stripe details; call this when a user is redirected back from Stripe with an authorization `code` and `state`.\"},{\"slug\":\"CAL_SET_DEFAULT_CONFERENCING_APP\",\"name\":\"Set default conferencing app\",\"description\":\"Sets the specified, valid, and configured conferencing application as the default for new meetings for the authenticated user.\"},{\"slug\":\"CAL_UPDATE_DESTINATION_CALENDAR_INTEGRATION\",\"name\":\"Update destination calendar integration\",\"description\":\"Updates the destination calendar for syncing events, using `integration` and `externalId` (typically from `/calendars` endpoint).\"},{\"slug\":\"CAL_UPDATE_OAUTH_CLIENT_USER_SETTINGS\",\"name\":\"Update OAuth client user settings\",\"description\":\"Updates specified profile and scheduling preference fields for a user associated with an OAuth client; `defaultScheduleId`, if provided, must be an existing, valid schedule for the user.\"},{\"slug\":\"CAL_UPDATE_OAUTH_CLIENT_WEBHOOK\",\"name\":\"Update oauth client webhook\",\"description\":\"Updates specified properties of an existing webhook for an OAuth client; omitted fields remain unchanged.\"},{\"slug\":\"CAL_UPDATE_PRIVATE_LINK\",\"name\":\"Update private link\",\"description\":\"Updates a private link for a team event type within an organization. Use to modify maxUsageCount for usage-based links or expiresAt for time-based links.\"},{\"slug\":\"CAL_UPDATE_SCHEDULE_BY_ID\",\"name\":\"Update schedule by ID\",\"description\":\"Updates an existing schedule by its ID, allowing partial modification of properties; providing `availability` or `overrides` replaces them entirely.\"},{\"slug\":\"CAL_UPDATE_TEAM_EVENT_TYPE\",\"name\":\"Update team event type\",\"description\":\"Tool to update a team event type in Cal.com. Use when modifying settings for a team's event type such as duration, description, scheduling, locations, or any other event configuration.\"},{\"slug\":\"CAL_UPDATE_TEAM_EVENT_TYPE_WEBHOOK\",\"name\":\"Update team event type webhook\",\"description\":\"Updates a webhook for a team event type. Use when you need to modify webhook configuration like active status, subscriber URL, triggers, or payload template.\"},{\"slug\":\"CAL_UPDATE_TEAM_INFORMATION_BY_ID\",\"name\":\"Update team information by id\",\"description\":\"Updates an existing team's information by its ID within a specified organization; the `slug`, if provided, must be unique within the organization.\"},{\"slug\":\"CAL_UPDATE_TEAM_MEMBERSHIP_BY_ID\",\"name\":\"Update team membership by id\",\"description\":\"Updates properties of an existing team membership. Supports partial updates - only provided fields are modified while others remain unchanged. Requires appropriate team permissions (admin or owner role). Use 'Get teams list' to find teamId and 'Retrieve team memberships' to find membershipId.\"},{\"slug\":\"CAL_UPDATE_TEAM_MEMBERSHIP_PROPERTIES\",\"name\":\"Update team membership properties\",\"description\":\"Updates attributes like acceptance status, role, or impersonation settings for an existing team membership within an organization. Only provided fields are changed (partial update). Requires organization admin or owner privileges. Use list memberships endpoint to get valid membershipId values.\"},{\"slug\":\"CAL_UPDATE_USER_PROFILE_DETAILS\",\"name\":\"Update user profile details\",\"description\":\"Updates the profile information and preferences for the authenticated user, affecting only the fields provided in the request.\"},{\"slug\":\"CAL_UPDATE_USER_SCHEDULE_IN_ORGANIZATION\",\"name\":\"Update user schedule in organization\",\"description\":\"Modifies an existing schedule for a specified user within an organization by updating only the provided fields; the organization, user, and schedule must already exist.\"},{\"slug\":\"CAL_UPDATE_WEBHOOK_BY_ID\",\"name\":\"Update webhook by id\",\"description\":\"Updates an existing Cal.com webhook by its `webhookId`, allowing partial modification of its attributes; only explicitly provided fields will be changed.\"},{\"slug\":\"CAL_UPDATE_WEBHOOK_FOR_ORGANIZATION\",\"name\":\"Update webhook for organization\",\"description\":\"Updates an existing webhook for an organization. Use this to modify webhook settings such as the subscriber URL, activation status, event triggers, or verification secret. Requires admin access to the organization. Only fields provided in the request will be updated; omitted fields retain their current values.\"}]},{\"slug\":\"wrike\",\"name\":\"Wrike\",\"description\":\"Wrike is a project management and collaboration tool offering customizable workflows, Gantt charts, reporting, and resource management to boost team productivity\",\"logo\":\"https://logos.composio.dev/api/wrike\",\"rank\":31,\"tools\":[{\"slug\":\"WRIKE_BULK_MODIFY_GROUPS\",\"name\":\"Bulk modify group members\",\"description\":\"Adds or removes members for multiple Wrike groups in a single request; all specified user IDs must correspond to existing Wrike users.\"},{\"slug\":\"WRIKE_COPY_FOLDER\",\"name\":\"Copy folder\",\"description\":\"Copies a Wrike folder synchronously to a specified parent location with customizable options. Use when duplicating folder structures, optionally copying descriptions, responsibles, custom fields, statuses, and rescheduling tasks.\"},{\"slug\":\"WRIKE_COPY_FOLDER_ASYNC\",\"name\":\"Copy folder async\",\"description\":\"Duplicate a folder asynchronously in Wrike, creating a copy in a specified parent location. Use when copying large folder structures that may take time to complete. Returns an async job ID for tracking progress.\"},{\"slug\":\"WRIKE_CREATE_ACCOUNT_WEBHOOKS\",\"name\":\"Create account webhooks\",\"description\":\"Creates a webhook for the current account to receive notifications about changes. Use when you need to set up real-time event notifications for tasks, folders, or other Wrike objects.\"},{\"slug\":\"WRIKE_CREATE_ASSETS\",\"name\":\"Create equipment asset\",\"description\":\"Tool to create equipment/asset in Wrike. Use when you need to add new equipment or assets to track in the system.\"},{\"slug\":\"WRIKE_CREATE_CUSTOMFIELD\",\"name\":\"Create custom field\",\"description\":\"Tool to create a new custom field in Wrike. Use when you need to define a new custom field for tasks, folders, or projects.\"},{\"slug\":\"WRIKE_CREATE_FOLDER\",\"name\":\"Create a folder\",\"description\":\"Creates a new Wrike subfolder within the specified `folderId`, optionally as a project if `customItemTypeId` is given; the folder is auto-shared with its creator.\"},{\"slug\":\"WRIKE_CREATE_FOLDER_BOOKING\",\"name\":\"Create folder booking\",\"description\":\"Tool to create a booking in a Wrike folder. Use when you need to allocate resources (users or placeholders) to a folder for a specific date range. Either responsibleId or responsiblePlaceholderId must be provided, and bookingDates must include at least two of: startDate, finishDate, or duration.\"},{\"slug\":\"WRIKE_CREATE_FOLDERS_APPROVALS\",\"name\":\"Create approval in folder\",\"description\":\"Tool to create a new approval in a Wrike folder. Use when you need to create an approval workflow for folder content review.\"},{\"slug\":\"WRIKE_CREATE_FOLDERS_COMMENTS\",\"name\":\"Create folder comment\",\"description\":\"Creates a new comment on a specified Wrike folder. Use when adding feedback, updates, or notes to a folder.\"},{\"slug\":\"WRIKE_CREATE_FOLDERS_TIMELOG_LOCK_PERIOD\",\"name\":\"Create timelog lock period for folder\",\"description\":\"Creates a timelog lock period for a specific folder. Timelogs on or before the specified period date will be locked and cannot be edited. Use when you need to prevent modifications to timelog entries up to a certain date.\"},{\"slug\":\"WRIKE_CREATE_FOLDER_WEBHOOK\",\"name\":\"Create a webhook on folder\",\"description\":\"Tool to create a webhook for a Wrike folder or project. Use when you need to set up real-time notifications for events occurring within a specific folder or its subfolders.\"},{\"slug\":\"WRIKE_CREATE_GROUP\",\"name\":\"Create a group\",\"description\":\"Creates a new user group in Wrike with a specified title, optionally setting members, parent group, avatar, and custom metadata.\"},{\"slug\":\"WRIKE_CREATE_INVITATION\",\"name\":\"Create invitation\",\"description\":\"Invites a user to a Wrike workspace by email, optionally with name, specifying EITHER `userTypeId` OR a combination of `role`/`external`; custom email subject/message available for paid accounts.\"},{\"slug\":\"WRIKE_CREATE_SPACES_TIMELOG_LOCK_PERIOD\",\"name\":\"Create space timelog lock period\",\"description\":\"Tool to create a timelog lock period for a space to prevent time entries from being edited. Use when you need to lock timelogs for specific dates, typically before creating payrolls or preparing invoices.\"},{\"slug\":\"WRIKE_CREATE_SPACE_WEBHOOK\",\"name\":\"Create space webhook\",\"description\":\"Tool to create a webhook on a Wrike space for receiving notifications about changes to tasks, folders, and projects. Use when you need to set up event-driven integrations for space-level changes.\"},{\"slug\":\"WRIKE_CREATE_TASK\",\"name\":\"Create task in folder\",\"description\":\"Creates a new task in a specified Wrike folder; if setting priority with `priorityBefore` or `priorityAfter`, the referenced task must be in the same folder or project.\"},{\"slug\":\"WRIKE_CREATE_TASK_ATTACHMENT\",\"name\":\"Create task attachment\",\"description\":\"Tool to upload a file attachment to a Wrike task. Use when you need to attach files to tasks.\"},{\"slug\":\"WRIKE_CREATE_TASK_COMMENT\",\"name\":\"Create task comment\",\"description\":\"Tool to create a new comment on a Wrike task. Use when you need to add a comment or note to a task.\"},{\"slug\":\"WRIKE_CREATE_TASKS_APPROVALS\",\"name\":\"Create task approval\",\"description\":\"Tool to create an approval on a specific task in Wrike. Use when you need to add an approval workflow to a task.\"},{\"slug\":\"WRIKE_CREATE_TASKS_DEPENDENCIES\",\"name\":\"Create task dependency\",\"description\":\"Tool to create a new dependency relationship between Wrike tasks. Use when you need to establish that one task must be completed before another can start or finish. Both tasks must have Planned scheduling type (not Backlog) for dependencies to work.\"},{\"slug\":\"WRIKE_CREATE_TASKS_TIMELOGS\",\"name\":\"Create task timelog\",\"description\":\"Tool to create a timelog entry for a specific task in Wrike. Use when you need to log time spent on a task.\"},{\"slug\":\"WRIKE_CREATE_TIMESHEETS\",\"name\":\"Create timesheet\",\"description\":\"Tool to create a timesheet for a user for a specified time period. Use when you need to initialize or retrieve a timesheet for a given week.\"},{\"slug\":\"WRIKE_CREATE_WORKFLOWS\",\"name\":\"Create workflows\",\"description\":\"Tool to create a new custom workflow in Wrike. Use when you need to create a new workflow with a specific name.\"},{\"slug\":\"WRIKE_DELETE_APPROVALS\",\"name\":\"Delete approval\",\"description\":\"Cancels/deletes an approval by its identifier. Use when removing an approval request that is no longer needed.\"},{\"slug\":\"WRIKE_DELETE_ASSET\",\"name\":\"Delete asset\",\"description\":\"Permanently deletes a Wrike asset/equipment by assetId. Use when removing equipment that is no longer needed.\"},{\"slug\":\"WRIKE_DELETE_ATTACHMENTS\",\"name\":\"Delete attachment\",\"description\":\"Tool to permanently delete a Wrike attachment by its ID. Use when removing an attachment from tasks or folders. This action is irreversible.\"},{\"slug\":\"WRIKE_DELETE_BOOKING\",\"name\":\"Delete booking\",\"description\":\"Permanently removes a resource booking allocation by its ID; use when deallocating resources from projects or tasks.\"},{\"slug\":\"WRIKE_DELETE_COMMENT\",\"name\":\"Delete comment\",\"description\":\"Permanently deletes a Wrike comment by its ID; this action is irreversible and the comment must exist.\"},{\"slug\":\"WRIKE_DELETE_CUSTOM_FIELD\",\"name\":\"Delete custom field by id\",\"description\":\"Permanently deletes a custom field by its ID; this action is irreversible and requires a valid, existing custom field ID.\"},{\"slug\":\"WRIKE_DELETE_DEPENDENCIES\",\"name\":\"Delete dependencies\",\"description\":\"Permanently removes a task dependency relationship by its ID; use when unlinking predecessor/successor task relationships.\"},{\"slug\":\"WRIKE_DELETE_FOLDER\",\"name\":\"Delete folder\",\"description\":\"Permanently deletes the folder specified by `folderId` and all its contents (e.g., tasks, documents, subfolders) from the Wrike workspace; this irreversible action is for when the folder is no longer needed and has no active tasks or dependencies that would block deletion.\"},{\"slug\":\"WRIKE_DELETE_FOLDERS_TIMELOG_LOCK_PERIOD\",\"name\":\"Delete timelog lock period for folder\",\"description\":\"Deletes a timelog lock period for a specific folder. This unlocks timelogs on or before the specified period date, allowing them to be edited again. Use when you need to remove a lock period and allow modifications to previously locked timelog entries.\"},{\"slug\":\"WRIKE_DELETE_GROUP\",\"name\":\"Delete group by id\",\"description\":\"Permanently deletes a group by its `groupId`; this action is irreversible and does not affect user accounts that were members of the group.\"},{\"slug\":\"WRIKE_DELETE_INIVTATION\",\"name\":\"Delete invitation\",\"description\":\"Permanently deletes an existing invitation, specified by its unique `invitationId`; this action cannot be undone.\"},{\"slug\":\"WRIKE_DELETE_JOB_ROLE\",\"name\":\"Delete job role\",\"description\":\"Permanently deletes a job role by its identifier; deleted job roles are removed from all tasks and users and cannot be restored.\"},{\"slug\":\"WRIKE_DELETE_SPACE\",\"name\":\"Delete space\",\"description\":\"Permanently deletes a Wrike space and all its contents by spaceId; this action is irreversible and should be used with caution.\"},{\"slug\":\"WRIKE_DELETE_SPACES_TIMELOG\",\"name\":\"Delete spaces timelog lock period\",\"description\":\"Tool to unlock (delete) a timelog lock period for a specific space in Wrike. Use when you need to remove a previously set lock period that prevents timelog modifications.\"},{\"slug\":\"WRIKE_DELETE_TASK\",\"name\":\"Delete task\",\"description\":\"Permanently deletes a Wrike task and all its associated data by its ID; this action is irreversible and the task must exist.\"},{\"slug\":\"WRIKE_DELETE_TIMELOG\",\"name\":\"Delete timelog\",\"description\":\"Permanently deletes a Wrike timelog entry by its ID; use when removing an incorrect or obsolete time log entry.\"},{\"slug\":\"WRIKE_DELETE_WEBHOOK\",\"name\":\"Delete webhook\",\"description\":\"Tool to permanently delete a webhook by webhook_id. Use when you need to remove a webhook subscription. You can only delete webhooks created with the same API token.\"},{\"slug\":\"WRIKE_FETCH_ALL_TASKS\",\"name\":\"Fetch all tasks\",\"description\":\"Fetches tasks from a Wrike account, allowing filtering by status, due date, and subfolder inclusion, with customizable response fields and pagination.\"},{\"slug\":\"WRIKE_GET_ACCOUNT_INFORMATION\",\"name\":\"Get account information\",\"description\":\"Retrieves detailed Wrike account information, where the response content is influenced by selected fields, account subscription, and user permissions.\"},{\"slug\":\"WRIKE_GET_ALL_CUSTOM_FIELDS\",\"name\":\"Get all custom fields\",\"description\":\"Retrieves all custom field definitions (including ID, name, type, and settings) from the Wrike account; this returns the definitions themselves, not their specific values on Wrike items, and is useful for obtaining custom field IDs.\"},{\"slug\":\"WRIKE_GET_ALL_WEBHOOKS\",\"name\":\"Get all webhooks\",\"description\":\"Tool to retrieve a list of all webhooks created using the same API token. Use when you need to view all webhooks configured for the authenticated API app.\"},{\"slug\":\"WRIKE_GET_APPROVALS\",\"name\":\"Get approvals\",\"description\":\"Tool to retrieve all approvals accessible to the authenticated user. Use when you need to list approvals or check approval statuses across the workspace.\"},{\"slug\":\"WRIKE_GET_APPROVALS_BY_IDS\",\"name\":\"Get approvals by IDs\",\"description\":\"Tool to retrieve specific Wrike approvals by their IDs (up to 100). Use when you need to fetch approval details for known approval identifiers.\"},{\"slug\":\"WRIKE_GET_ASYNC_JOB\",\"name\":\"Get async job status\",\"description\":\"Tool to retrieve status and details for an asynchronous job in Wrike. Use this after initiating async operations (like launch_async endpoints) to check job progress, completion status, and retrieve results.\"},{\"slug\":\"WRIKE_GET_ATTACHMENTS\",\"name\":\"Get attachments by IDs\",\"description\":\"Tool to retrieve multiple Wrike attachments by their IDs (up to 100). Use when you need to fetch details for specific attachments using comma-separated attachment IDs.\"},{\"slug\":\"WRIKE_GET_ATTACHMENTS_DOWNLOAD\",\"name\":\"Download attachment\",\"description\":\"Tool to download a Wrike attachment file. Use when you need to retrieve the actual file content of an attachment by its ID.\"},{\"slug\":\"WRIKE_GET_ATTACHMENTS_PREVIEW\",\"name\":\"Get attachment preview\",\"description\":\"Tool to download a preview version of a Wrike attachment. Use when you need to retrieve a preview image of an attachment by its ID.\"},{\"slug\":\"WRIKE_GET_ATTACHMENTS_URL\",\"name\":\"Get attachment URL\",\"description\":\"Tool to get a public access URL for a Wrike attachment. Use when you need to retrieve a temporary URL to access or share an attachment. The returned URL is valid for 24 hours.\"},{\"slug\":\"WRIKE_GET_BOOKINGS\",\"name\":\"Get bookings\",\"description\":\"Retrieves one or more Wrike bookings by their IDs. Use when you need to fetch specific booking details for resource allocation and scheduling.\"},{\"slug\":\"WRIKE_GET_COLORS\",\"name\":\"Get colors\",\"description\":\"Tool to query the list of available colors in Wrike. Use when you need to retrieve color options for tasks, folders, or other Wrike entities.\"},{\"slug\":\"WRIKE_GET_COMMENTS\",\"name\":\"Get comments\",\"description\":\"Tool to retrieve all comments accessible to the authorized user. Use when you need to fetch comments across tasks and folders, optionally filtered by date range or text format.\"},{\"slug\":\"WRIKE_GET_COMMENTS_BY_IDS\",\"name\":\"Get comments by IDs\",\"description\":\"Tool to retrieve multiple Wrike comments by their IDs. Use when you need to fetch specific comments using comma-separated comment IDs (up to 100).\"},{\"slug\":\"WRIKE_GET_CONTACT_HOURLY_RATES\",\"name\":\"Get contact hourly rates\",\"description\":\"Tool to retrieve hourly budget rates for up to 100 Wrike contacts. Use when you need to fetch budget rate information for one or multiple contacts.\"},{\"slug\":\"WRIKE_GET_CONTACTS\",\"name\":\"Get contacts\",\"description\":\"Retrieves a list of Wrike contacts (e.g., team members, clients, collaborators); response includes contact details but not their detailed task or project involvement.\"},{\"slug\":\"WRIKE_GET_CONTACTS_HISTORY\",\"name\":\"Get contacts history\",\"description\":\"Tool to access field modification history for Wrike contacts. Use when you need to track changes made to contact information over time.\"},{\"slug\":\"WRIKE_GET_CONTACT_TIMELOGS\",\"name\":\"Get contact timelogs\",\"description\":\"Tool to retrieve all timelog records created by a specific contact in Wrike. Use when you need to query time tracking entries for a particular user.\"},{\"slug\":\"WRIKE_GET_CUSTOM_ITEM_TYPES\",\"name\":\"Get custom item types\",\"description\":\"Tool to retrieve all custom item types from Wrike. Use when you need to discover available custom item type definitions for creating work items or understanding the custom item type structure.\"},{\"slug\":\"WRIKE_GET_DEPENDENCIES\",\"name\":\"Get dependencies by IDs\",\"description\":\"Tool to retrieve one or more Wrike dependencies by their IDs (up to 100). Use when you need to fetch details for specific dependencies using comma-separated dependency IDs.\"},{\"slug\":\"WRIKE_GET_FOLDER_BOOKINGS\",\"name\":\"Get folder bookings\",\"description\":\"Tool to query bookings for a specific folder in Wrike. Use when you need to retrieve booking information for resource allocation within a particular folder or project.\"},{\"slug\":\"WRIKE_GET_FOLDERS\",\"name\":\"Get folders\",\"description\":\"Retrieves folders and/or projects from Wrike, with filters; when using `nextPageToken`, all other filter parameters must match the initial request.\"},{\"slug\":\"WRIKE_GET_FOLDERS_APPROVALS\",\"name\":\"Get folder approvals\",\"description\":\"Tool to retrieve all approvals from a specific Wrike folder. Use when you need to fetch approval details for a folder using its folder ID.\"},{\"slug\":\"WRIKE_GET_FOLDERS_ATTACHMENTS\",\"name\":\"Get folder attachments\",\"description\":\"Tool to retrieve all attachments from a specific Wrike folder. Use when you need to fetch attachment metadata and optionally download URLs for files in a folder.\"},{\"slug\":\"WRIKE_GET_FOLDERS_BY_IDS\",\"name\":\"Get folders by IDs\",\"description\":\"Tool to retrieve multiple Wrike folders by their IDs. Use when you need to fetch details for specific folders using comma-separated folder IDs.\"},{\"slug\":\"WRIKE_GET_FOLDERS_COMMENTS\",\"name\":\"Get folder comments\",\"description\":\"Tool to retrieve comments from a specific Wrike folder. Use when you need to fetch all comments associated with a folder.\"},{\"slug\":\"WRIKE_GET_FOLDERS_HISTORY\",\"name\":\"Get folders history\",\"description\":\"Tool to access field modification history for Wrike folders. Use when you need to track changes made to folder information over time.\"},{\"slug\":\"WRIKE_GET_FOLDERS_HOURLY\",\"name\":\"Get folder hourly rates\",\"description\":\"Tool to retrieve hourly budget rates for a specific Wrike folder. Use when you need to fetch budget rate information configured for a folder or project.\"},{\"slug\":\"WRIKE_GET_FOLDERS_ROLLUPS\",\"name\":\"Get folder rollups\",\"description\":\"Tool to query rollup settings for items in a folder. Use when you need to fetch rollup configuration for a specific folder. Pagination is supported for folders with descendants=true, applying to the entire folder hierarchy.\"},{\"slug\":\"WRIKE_GET_FOLDERS_TASKS\",\"name\":\"Get folder tasks\",\"description\":\"Query tasks within a specific folder. Use this to retrieve all tasks contained in a folder, with optional filtering by status, due date, and metadata.\"},{\"slug\":\"WRIKE_GET_FOLDERS_TIMELOG_LOCK_PERIODS\",\"name\":\"Get folder timelog lock periods\",\"description\":\"Tool to query timelog lock periods for a specific folder. Use when you need to check which time periods are locked for timelog entries in a folder.\"},{\"slug\":\"WRIKE_GET_FOLDERS_TIMELOGS\",\"name\":\"Get folders timelogs\",\"description\":\"Tool to retrieve all timelog records for a specific folder. Use when you need to query time tracking data for a folder and its tasks.\"},{\"slug\":\"WRIKE_GET_IDS\",\"name\":\"Convert legacy v2 IDs to v4\",\"description\":\"Tool to convert legacy Wrike API v2 IDs to current v4 format. Use when you need to work with numeric IDs from the Wrike interface or legacy integrations and convert them to the alphanumeric v4 IDs required by the current API.\"},{\"slug\":\"WRIKE_GET_INFORMATION_ABOUT_SPECIFIC_CONTACT\",\"name\":\"Get specific contact information\",\"description\":\"Retrieves detailed information for a specific Wrike contact using their unique `contactId`, optionally including `metadata` and `customFields` if specified in the `fields` parameter.\"},{\"slug\":\"WRIKE_GET_JOB_ROLES\",\"name\":\"Get job roles by IDs\",\"description\":\"Tool to retrieve details for one or more Wrike job roles by job role IDs. Use when you need to fetch information about specific job roles.\"},{\"slug\":\"WRIKE_GET_PLACEHOLDER_HOURLY_RATES\",\"name\":\"Get placeholder hourly rates\",\"description\":\"Tool to retrieve hourly budget rates for one or more Wrike placeholders. Use when you need to fetch budget rate information for placeholders, supporting up to 100 IDs in a single request.\"},{\"slug\":\"WRIKE_GET_PLACEHOLDERS\",\"name\":\"Get placeholders by IDs\",\"description\":\"Tool to retrieve details for one or more Wrike placeholders by their IDs. Use when you need to fetch information about specific placeholders, supporting up to 100 IDs in a single request.\"},{\"slug\":\"WRIKE_GET_SPACE\",\"name\":\"Get space by ID\",\"description\":\"Tool to retrieve details for a single Wrike space by spaceId. Use when you need to fetch complete information about a specific space, typically after listing spaces to select one.\"},{\"slug\":\"WRIKE_GET_SPACE_CUSTOM_ITEM_TYPES\",\"name\":\"Get space custom item types\",\"description\":\"Tool to retrieve all custom item types scoped to a specific Wrike space. Use when you need to discover available custom item types for a space before creating work items based on these types.\"},{\"slug\":\"WRIKE_GET_SPACE_FOLDERS\",\"name\":\"Get space folders\",\"description\":\"Tool to retrieve the folder tree for a specific Wrike space. Use when you need to list all folders and projects within a space, optionally filtered by project type, authors, owners, title, or custom statuses.\"},{\"slug\":\"WRIKE_GET_SPACES_CUSTOMFIELDS\",\"name\":\"Get space custom fields\",\"description\":\"Tool to retrieve all custom fields defined for a specific Wrike space. Use when you need to discover what custom fields are available in a space before querying tasks or folders with custom field data.\"},{\"slug\":\"WRIKE_GET_SPACES_TASKS\",\"name\":\"Get spaces tasks\",\"description\":\"Tool to query tasks within a specific Wrike space. Use when you need to retrieve tasks from a particular space, with optional filtering by status, importance, title, and other criteria.\"},{\"slug\":\"WRIKE_GET_SPACES_WORKFLOWS\",\"name\":\"Get space workflows\",\"description\":\"Tool to query workflows for a specific Wrike space. Use when you need to retrieve the list of available workflows and their custom statuses for a space.\"},{\"slug\":\"WRIKE_GET_SPACE_TIMELOG_LOCK_PERIODS\",\"name\":\"Get space timelog lock periods\",\"description\":\"Tool to query timelog lock periods for a specific space. Use when you need to check which time periods are locked for timelog entries in a space.\"},{\"slug\":\"WRIKE_GET_SPECIFIC_USER\",\"name\":\"Get specific user\",\"description\":\"Retrieves detailed information about a specific user in Wrike using their unique user ID.\"},{\"slug\":\"WRIKE_GET_TASK_BY_ID\",\"name\":\"Get task by id\",\"description\":\"Retrieves read-only detailed information for a specific Wrike task by its unique ID, optionally allowing specification of fields to include in the response.\"},{\"slug\":\"WRIKE_GET_TASK_DEPENDENCIES\",\"name\":\"Get task dependencies\",\"description\":\"Retrieves all dependency relationships for a specific task. Use when you need to see which tasks the specified task depends on (predecessors) or which tasks depend on it (successors).\"},{\"slug\":\"WRIKE_GET_TASKS_APPROVALS\",\"name\":\"Get task approvals\",\"description\":\"Retrieves all approval records for a specific task. Use when you need to see approval workflow status and decisions for a task.\"},{\"slug\":\"WRIKE_GET_TASKS_ATTACHMENTS\",\"name\":\"Get task attachments\",\"description\":\"Tool to retrieve all attachments from a specific Wrike task. Use when you need to fetch attachment metadata and optionally download URLs for files attached to a task.\"},{\"slug\":\"WRIKE_GET_TASKS_COMMENTS\",\"name\":\"Get task comments\",\"description\":\"Tool to retrieve all comments from a specific Wrike task. Use when you need to fetch comments associated with a task.\"},{\"slug\":\"WRIKE_GET_TASKS_HISTORY\",\"name\":\"Get tasks history\",\"description\":\"Query task field modification history for up to 100 tasks. Use when you need to retrieve the history of changes made to task fields. Returns information about who changed what fields, when the changes occurred, and the old and new values.\"},{\"slug\":\"WRIKE_GET_TASKS_ROLLUPS\",\"name\":\"Get task rollups\",\"description\":\"Tool to query rollup settings for a specific task. Use when you need to retrieve the rollup configuration that determines how custom field values are aggregated from subtasks.\"},{\"slug\":\"WRIKE_GET_TASKS_TIMELOG_LOCK_PERIODS\",\"name\":\"Get task timelog lock periods\",\"description\":\"Tool to query timelog lock periods for a specific task. Use when you need to check which time periods are locked for timelog entries on a task.\"},{\"slug\":\"WRIKE_GET_TASK_TIMELOGS\",\"name\":\"Get task timelogs\",\"description\":\"Retrieves all timelog records for a specific task. Use when you need to see time tracking entries for a task. Supports filtering by creation date, tracked date, and user.\"},{\"slug\":\"WRIKE_GET_TIMELOG_CATEGORIES\",\"name\":\"Get timelog categories\",\"description\":\"Tool to query the list of timelog categories in Wrike. Use when you need to retrieve available time tracking categories for categorizing timelog entries.\"},{\"slug\":\"WRIKE_GET_TIMELOGS\",\"name\":\"Get timelogs\",\"description\":\"Retrieves timelog records from Wrike with optional filters for dates, users, and task scope. Use to query time tracking data across tasks and projects.\"},{\"slug\":\"WRIKE_GET_TIMELOGS_BY_IDS\",\"name\":\"Get timelogs by IDs\",\"description\":\"Retrieves detailed information for one or more Wrike timelogs by their unique IDs (up to 100), optionally including export and lock status.\"},{\"slug\":\"WRIKE_GET_TIMESHEETS\",\"name\":\"Get timesheets\",\"description\":\"Tool to query timesheets from Wrike. Use when you need to retrieve user timesheets showing weekly tracked time, approval status, and timesheet periods.\"},{\"slug\":\"WRIKE_GET_TIMESHEET_SUBMISSION_RULES\",\"name\":\"Get timesheet submission rules\",\"description\":\"Tool to retrieve global timesheet submission rules across all work schedules. Use when you need to check timesheet submission configurations globally.\"},{\"slug\":\"WRIKE_GET_VERSION\",\"name\":\"Get API version\",\"description\":\"Tool to retrieve current Wrike API version information. Use when you need to check the API version being used or verify API compatibility.\"},{\"slug\":\"WRIKE_GET_WEBHOOK_BY_ID\",\"name\":\"Get webhook by ID\",\"description\":\"Tool to retrieve details for a specific webhook by webhook_id. Use when you need to inspect webhook configuration including the hook URL, status, events, and scope. You can only access webhooks created with the same API token.\"},{\"slug\":\"WRIKE_GET_WORKSCHEDULES_TIMESHEET\",\"name\":\"Get work schedule timesheet rules\",\"description\":\"Tool to retrieve timesheet submission rules for a specific work schedule. Use when you need to check the configuration of timesheet submission requirements for a work schedule.\"},{\"slug\":\"WRIKE_LAUNCH_FOLDER_BLUEPRINT_ASYNC\",\"name\":\"Launch folder blueprint async\",\"description\":\"Asynchronously launches a new project or folder structure in Wrike from a specified Folder Blueprint. Important Notes: - The folder_blueprint_id must be an actual launchable blueprint, NOT a BpRoot container. - Use WRIKE_LIST_FOLDER_BLUEPRINTS to get blueprint IDs. Look for child blueprints within the tree structure. - Blueprints with scope 'BpRoot' are root containers and cannot be launched directly. - The blueprint must fit within 250 items (subfolders, subprojects, and subtasks count towards this limit). - Returns an async job ID that can be used to track progress via the Async Job endpoint.\"},{\"slug\":\"WRIKE_LAUNCH_TASK_BLUEPRINT_ASYNC\",\"name\":\"Launch Task Blueprint Async\",\"description\":\"Asynchronously launches a Wrike Task Blueprint to create tasks/projects, requiring either `super_task_id` (parent task) or `parent_id` (parent folder/project) for placement.\"},{\"slug\":\"WRIKE_LIST_ATTACHMENTS\",\"name\":\"List all attachments\",\"description\":\"Tool to retrieve all attachments from the Wrike account. Use when you need to list attachments with optional date filtering and download URLs.\"},{\"slug\":\"WRIKE_LIST_FOLDER_BLUEPRINTS\",\"name\":\"List Folder Blueprints\",\"description\":\"Retrieves all account-level Folder Blueprints, which are templates for standardizing folder/project creation with predefined structures, custom fields, and workflows.\"},{\"slug\":\"WRIKE_LIST_PLACEHOLDERS\",\"name\":\"List all placeholders\",\"description\":\"Retrieves all placeholders accessible to the authenticated user; placeholders are templates used in Wrike for creating standardized tasks or projects.\"},{\"slug\":\"WRIKE_LIST_SPACE_FOLDER_BLUEPRINTS\",\"name\":\"List space folder blueprints\",\"description\":\"Lists all folder blueprints (templates for new folders/projects) within a specified Wrike space, requiring a valid and accessible space ID.\"},{\"slug\":\"WRIKE_LIST_SPACES\",\"name\":\"List spaces\",\"description\":\"Tool to list spaces the authorized user can access. Use when you need to discover valid spaceIds for downstream space-scoped operations like listing space blueprints.\"},{\"slug\":\"WRIKE_LIST_SPACE_TASK_BLUEPRINTS\",\"name\":\"List space task blueprints\",\"description\":\"Lists task blueprints (templates for creating tasks with consistent structures) available in a specific, accessible Wrike space.\"},{\"slug\":\"WRIKE_LIST_SUBFOLDERS_BY_FOLDER_ID\",\"name\":\"List subfolders by folder id\",\"description\":\"Lists subfolders (metadata only, not their contents) for an existing Wrike folder specified by `folderId`, supporting recursive descent, filtering, and pagination.\"},{\"slug\":\"WRIKE_LIST_TASK_BLUEPRINTS\",\"name\":\"List Task Blueprints\",\"description\":\"Retrieves a list of defined Task Blueprints (predefined task templates) from the Wrike account, supporting pagination.\"},{\"slug\":\"WRIKE_MODIFY_ACCOUNT\",\"name\":\"Update account metadata\",\"description\":\"Updates or adds custom key-value metadata to the Wrike account, useful for integrations, storing app-specific data, or mapping external system identifiers.\"},{\"slug\":\"WRIKE_MODIFY_FOLDER\",\"name\":\"Modify folder attributes\",\"description\":\"Modifies an existing Wrike folder: updates title, description, parents (not root/recycle bin), sharing, metadata, custom fields/columns; restores, converts to project, or manages access roles.\"},{\"slug\":\"WRIKE_MODIFY_GROUP\",\"name\":\"Modify group\",\"description\":\"Updates an existing Wrike user group's attributes like title, members, parent, avatar, or metadata, using its `groupId` and specifying only the fields to change.\"},{\"slug\":\"WRIKE_MODIFY_TASK\",\"name\":\"Modify task\",\"description\":\"Modifies an existing Wrike task by its ID, allowing updates to attributes such as title, status, dates, assignees, and custom fields; `priorityBefore` and `priorityAfter` are mutually exclusive, and parent folder IDs for `addParents`/`removeParents` cannot be the Recycle Bin.\"},{\"slug\":\"WRIKE_QUERY_CUSTOMFIELDS\",\"name\":\"Retrieve custom field by id\",\"description\":\"Retrieves a Wrike custom field's detailed information (e.g., type, possible values for dropdowns), properties, and metadata; the `customFieldId` must correspond to an existing custom field.\"},{\"slug\":\"WRIKE_QUERY_INVITATIONS\",\"name\":\"Query invitations\",\"description\":\"Retrieves all active invitations in Wrike, useful for viewing and auditing pending invitations or managing user onboarding.\"},{\"slug\":\"WRIKE_QUERY_JOB_ROLES\",\"name\":\"Query job roles\",\"description\":\"Tool to retrieve all available job roles in the Wrike account. Use when you need to discover job roles or get a complete list of roles without knowing specific IDs.\"},{\"slug\":\"WRIKE_QUERY_SPECIFIC_GROUP\",\"name\":\"Get group by id\",\"description\":\"Retrieves detailed information for a specific Wrike group using its `groupId`, optionally including 'metadata'.\"},{\"slug\":\"WRIKE_QUERY_WORKFLOWS\",\"name\":\"Query workflows\",\"description\":\"Fetches a list of all workflows with their detailed information from the Wrike account; this is a read-only action and does not support pagination or filtering through its parameters.\"},{\"slug\":\"WRIKE_RETRIEVE_LIST_OF_GROUPS\",\"name\":\"Retrieve list of groups\",\"description\":\"Retrieves a list of user groups from the Wrike account, supporting metadata filtering, pagination, and inclusion of specific fields; this is a read-only operation.\"},{\"slug\":\"WRIKE_SEARCH_EDISCOVERY\",\"name\":\"Search eDiscovery\",\"description\":\"Tool to perform eDiscovery search across Wrike items (folders, projects, tasks). Use when you need to find items matching specific search terms across different scopes. Supports wildcard searches and filtering by item types.\"},{\"slug\":\"WRIKE_UPDATE_APPROVALS\",\"name\":\"Update approval\",\"description\":\"Updates an existing Wrike approval by its ID, allowing modifications to the title, description, and due date.\"},{\"slug\":\"WRIKE_UPDATE_ASSET\",\"name\":\"Update asset\",\"description\":\"Tool to update a Wrike asset/equipment by ID. Use when you need to rename or modify an equipment asset in the system.\"},{\"slug\":\"WRIKE_UPDATE_ATTACHMENT\",\"name\":\"Update attachment\",\"description\":\"Tool to update a Wrike attachment by uploading new file content. Use when you need to replace an existing attachment with a new version.\"},{\"slug\":\"WRIKE_UPDATE_BOOKINGS\",\"name\":\"Update booking\",\"description\":\"Updates a Wrike booking's date range by ID. Use when you need to reschedule a resource booking by modifying its start and finish dates.\"},{\"slug\":\"WRIKE_UPDATE_COMMENT\",\"name\":\"Update comment\",\"description\":\"Tool to update an existing Wrike comment. Use when you need to modify the text content of a comment. Supports HTML formatting with limited tags.\"},{\"slug\":\"WRIKE_UPDATE_CUSTOM_FIELD_BY_ID\",\"name\":\"Update custom field by id\",\"description\":\"Updates properties of an existing Wrike custom field by its ID, such as its title, type, scope, or sharing settings.\"},{\"slug\":\"WRIKE_UPDATE_DEPENDENCY\",\"name\":\"Update dependency\",\"description\":\"Tool to modify an existing Wrike dependency relationship between tasks. Use when you need to update the dependency type or change which tasks are linked.\"},{\"slug\":\"WRIKE_UPDATE_FOLDERS_ROLLUPS\",\"name\":\"Update folder rollup settings\",\"description\":\"Tool to update rollup settings for a folder. Use when you need to enable or disable field aggregation from descendant items.\"},{\"slug\":\"WRIKE_UPDATE_INVITATION\",\"name\":\"Update invitation\",\"description\":\"Updates a pending Wrike invitation (`invitationId`) to resend it or change user's role/type (use EITHER `userTypeId` OR `role`/`external`).\"},{\"slug\":\"WRIKE_UPDATE_JOB_ROLE\",\"name\":\"Update job role\",\"description\":\"Updates an existing Wrike job role by its ID, allowing modifications to the title and short title.\"},{\"slug\":\"WRIKE_UPDATE_METADATA_ON_SPECIFIC_CONTACT\",\"name\":\"Update metadata on a specific contact\",\"description\":\"Updates metadata, job role, or custom fields for an existing Wrike contact specified by `contactId`; if `jobRoleId` is provided, it must be a valid ID.\"},{\"slug\":\"WRIKE_UPDATE_SPECIFIC_USER\",\"name\":\"Update a specific user\",\"description\":\"Updates specified profile attributes (e.g., account ID, role, external status) for an existing Wrike user; unspecified fields remain unchanged. Note: The current API user can only update users they have permission to modify. Account owners, robot users, and the current user themselves typically cannot be modified. This action requires the 'amReadWriteUser' OAuth scope.\"},{\"slug\":\"WRIKE_UPDATE_TASKS_ROLLUPS\",\"name\":\"Update task rollup settings\",\"description\":\"Updates rollup settings for a task. Rollup settings control how field values aggregate from child tasks to parent tasks. Use this when you need to enable or disable automatic rollup calculations for specific fields like start dates, due dates, or custom fields.\"},{\"slug\":\"WRIKE_UPDATE_TIMELOGS\",\"name\":\"Update timelog entry\",\"description\":\"Tool to modify an existing timelog entry in Wrike. Use when you need to update the hours, comment, tracked date, or category of a time log.\"},{\"slug\":\"WRIKE_UPDATE_TIMESHEET_ROW\",\"name\":\"Update timesheet row\",\"description\":\"Updates a Wrike timesheet row by its ID, allowing modification of the timelog category. Use when you need to change the time tracking category for a timesheet entry.\"},{\"slug\":\"WRIKE_UPDATE_TIMESHEETS\",\"name\":\"Update timesheet\",\"description\":\"Tool to update a timesheet's approval status in Wrike. Use when you need to submit, approve, or reject a timesheet.\"},{\"slug\":\"WRIKE_UPDATE_WEBHOOK_STATE\",\"name\":\"Update webhook state\",\"description\":\"Tool to update the state of a Wrike webhook. Use when you need to re-enable a suspended webhook or suspend an active one. Wrike automatically suspends webhooks after 3 failed delivery attempts. Call this with status=Active to re-enable.\"},{\"slug\":\"WRIKE_UPDATE_WORKFLOW\",\"name\":\"Update workflow\",\"description\":\"Tool to modify an existing Wrike workflow. Use when you need to update a workflow's name or description. Requires amReadWriteWorkflow scope.\"},{\"slug\":\"WRIKE_UPDATE_WORKSCHEDULE_TIMESHEET_RULES\",\"name\":\"Update work schedule timesheet rules\",\"description\":\"Tool to update timesheet submission rules for a work schedule. Use when you need to configure or modify how timesheet submissions are validated and enforced for a specific work schedule.\"}]},{\"slug\":\"exa\",\"name\":\"Exa\",\"description\":\"Exa focuses on data extraction and search, helping teams gather, analyze, and visualize information from websites, APIs, or internal databases\",\"logo\":\"https://logos.composio.dev/api/exa\",\"rank\":32,\"tools\":[{\"slug\":\"EXA_ANSWER\",\"name\":\"Generate an answer\",\"description\":\"Generates a direct, citation-backed answer to a clear natural language question or topic using Exa's search, adept at both specific answers and detailed summaries for open-ended queries. Response contains an `answer` field (summary) and a `citations` field (supporting URLs). Citations may include low-credibility sources; verify authoritative references for factual use.\"},{\"slug\":\"EXA_CREATE_IMPORT\",\"name\":\"Create Import\",\"description\":\"Tool to create a new import to upload data into a Webset. Use when you need to initialize an import before uploading the data file.\"},{\"slug\":\"EXA_CREATE_MONITOR\",\"name\":\"Create a Monitor\",\"description\":\"Tool to create a new Monitor. Use when you need to schedule automated updates for a Webset without manual runs.\"},{\"slug\":\"EXA_CREATE_RESEARCH\",\"name\":\"Create Research Task\",\"description\":\"Creates an asynchronous research task that explores the web, gathers sources, synthesizes findings, and returns results with citations. The API responds immediately with a researchId for polling completion status. Use this when you need to generate: 1. Structured JSON matching an outputSchema you provide 2. A detailed markdown report when no schema is provided After creation, poll the research task status using the researchId to retrieve the final results when completed.\"},{\"slug\":\"EXA_CREATE_WEBSET\",\"name\":\"Create Webset\",\"description\":\"Tool to create a new Webset with search, import, and enrichment setup. Use when you need to configure and seed a Webset in one call.\"},{\"slug\":\"EXA_DELETE_IMPORT\",\"name\":\"Delete import\",\"description\":\"Tool to delete an existing import. Use when you need to permanently remove an import by its ID.\"},{\"slug\":\"EXA_DELETE_WEBSET\",\"name\":\"Delete webset\",\"description\":\"Tool to delete a Webset. Use after confirming the Webset ID to permanently remove the Webset and all its items.\"},{\"slug\":\"EXA_FIND_SIMILAR\",\"name\":\"Find similar (Deprecated)\",\"description\":\"DEPRECATED: /findSimilar is a legacy endpoint and is no longer recommended for new integrations. Migrate to EXA_SEARCH with type='deep-lite' or 'deep' passing a URL-shaped query, optionally with the nested `contents` object for enrichment. Existing calls continue to work for now. Finds web pages semantically similar to a given URL using embeddings-based search, optionally retrieving full text, highlights, or summaries for results.\"},{\"slug\":\"EXA_GET_API_KEY\",\"name\":\"Get API Key\",\"description\":\"Tool to retrieve details of a specific API key by its ID. Use when you need to fetch information about an API key in the team management context.\"},{\"slug\":\"EXA_GET_CONTENTS_ACTION\",\"name\":\"Get contents from URLs or document IDs\",\"description\":\"Retrieve text / highlights / summary / subpages from URLs. The endpoint returns HTTP 200 even when individual URLs fail — always inspect `statuses[]` for CRAWL_NOT_FOUND, CRAWL_LIVECRAWL_TIMEOUT, SOURCE_NOT_AVAILABLE. Control freshness with `maxAgeHours` (0 = always livecrawl, -1 = cache only). Use `subpages` + `subpageTarget` to crawl linked pages within a site in one request.\"},{\"slug\":\"EXA_GET_EVENT\",\"name\":\"Get Event\",\"description\":\"Tool to get details of a specific event by its ID. Use when you have an event ID and need its full details.\"},{\"slug\":\"EXA_GET_RESEARCH\",\"name\":\"Get Research Task\",\"description\":\"Tool to retrieve the status and results of a previously created research task. Use the unique researchId returned from POST /research/v1 to poll until the task is finished.\"},{\"slug\":\"EXA_LIST_EVENTS\",\"name\":\"List events\",\"description\":\"Tool to list all events that have occurred in the system. Use when you need to paginate through the event history.\"},{\"slug\":\"EXA_LIST_IMPORTS\",\"name\":\"List imports\",\"description\":\"Tool to list all imports for the Webset. Use when you need to paginate through and monitor import jobs.\"},{\"slug\":\"EXA_LIST_RESEARCH\",\"name\":\"List research tasks\",\"description\":\"Tool to retrieve a paginated list of your research tasks. Use when you need to view or monitor research jobs with cursor-based pagination.\"},{\"slug\":\"EXA_LIST_WEBHOOKS\",\"name\":\"List webhooks\",\"description\":\"Tool to list all webhooks for Websets. Use when you need to view existing webhooks and paginate through results.\"},{\"slug\":\"EXA_SEARCH\",\"name\":\"Search\",\"description\":\"Web search via the Exa engine. Returns ranked results with optional per-result text/highlights/summary (set the nested `contents` object). For agent workflows prefer `contents.highlights=true` — 10× fewer tokens than full text. Pick `type` by latency tier: `instant`~250 ms · `fast`~450 ms · `auto`~1 s (default) · `deep-lite` ~4 s · `deep` 4–15 s · `deep-reasoning` 12–40 s. `includeDomains` and `excludeDomains` are mutually exclusive (max 1200 each). For `category=company` or `category=people`, date filters / `excludeDomains` are NOT supported and will 400.\"},{\"slug\":\"EXA_UPDATE_IMPORT\",\"name\":\"Update import\",\"description\":\"Tool to update an import configuration by ID. Use when you need to modify an import's title or metadata.\"}]},{\"slug\":\"sentry\",\"name\":\"Sentry\",\"description\":\"Integrate Sentry to manage your error tracking and monitoring.\",\"logo\":\"https://logos.composio.dev/api/sentry\",\"rank\":33,\"tools\":[{\"slug\":\"SENTRY_ACCESS_PROJECT_INFORMATION\",\"name\":\"Access project information\",\"description\":\"Retrieves detailed information for a Sentry project, given its existing organization and project ID or slug.\"},{\"slug\":\"SENTRY_ADD_A_SYMBOL_SOURCE_TO_A_PROJECT\",\"name\":\"Add a symbol source to a project\",\"description\":\"Tool to add a custom symbol source to a Sentry project. Use when configuring symbol sources for crash symbolication.\"},{\"slug\":\"SENTRY_ADD_ORGANIZATION_MEMBER_VIA_EMAIL\",\"name\":\"Add organization member via email\",\"description\":\"Invites a new member (or re-invites an existing non-accepted member) to a Sentry organization via email, allowing specification of organization and team roles.\"},{\"slug\":\"SENTRY_ADD_REMOVE_USER_EMAIL_BY_ID\",\"name\":\"Add or remove user email by id\",\"description\":\"Adds or removes a secondary email for an existing Sentry user, determined by whether the email already exists for that user.\"},{\"slug\":\"SENTRY_ADD_TEAM_MEMBER_IN_ORGANIZATION\",\"name\":\"Add team member in organization\",\"description\":\"Adds an existing member of an organization to one of its teams; the member must already belong to the organization, and the team must also belong to that organization.\"},{\"slug\":\"SENTRY_ADD_TEAM_TO_PROJECT\",\"name\":\"Add team to project\",\"description\":\"Grants a Sentry team access to a Sentry project within the specified Sentry organization.\"},{\"slug\":\"SENTRY_BULK_MUTATE_AN_ORGANIZATIONS_ISSUES\",\"name\":\"Bulk mutate an organization's issues\",\"description\":\"Bulk mutate various attributes on issues within an organization. Use when you need to update status, priority, assignment, or other attributes for multiple issues at once. Maximum of 1000 issues can be mutated, with a 100 issue limit per request.\"},{\"slug\":\"SENTRY_BULK_REMOVE_AN_ORGANIZATIONS_ISSUES\",\"name\":\"Bulk remove an organization's issues\",\"description\":\"Permanently removes issues from an organization. If IDs are provided, queries and filtering are ignored. Maximum of 1000 issues can be removed at once.\"},{\"slug\":\"SENTRY_CREATE_AN_ALERT_FOR_AN_ORGANIZATION\",\"name\":\"Create an alert for an organization\",\"description\":\"Creates a workflow alert for a Sentry organization using the New Monitors and Alerts system. Use when you need to set up automated alerting for issues based on trigger conditions and filters. Note: This endpoint is currently in beta and may change.\"},{\"slug\":\"SENTRY_CREATE_DASHBOARD_WITH_WIDGETS\",\"name\":\"Create dashboard with widgets\",\"description\":\"Creates a Sentry dashboard with widgets for an organization; `organization_id_or_slug` and specified `project` IDs must be valid, and `start`/`end` datetimes (if absolute range) must form a logical ISO 8601 range.\"},{\"slug\":\"SENTRY_CREATE_EXTERNAL_USER_FOR_ORGANIZATION\",\"name\":\"Create external user for organization\",\"description\":\"Links a Sentry user to an external identity provider's user within a Sentry organization; the Sentry user must be an organization member, an active integration for the provider must be configured, and `external_id` is typically required for the external user.\"},{\"slug\":\"SENTRY_CREATE_ORGANIZATION_ALERT_RULE\",\"name\":\"Create organization alert rule\",\"description\":\"Creates a Sentry metric alert rule for an organization, mandating a 'critical' trigger, typically for a single project, where actions may require Sentry integrations.\"},{\"slug\":\"SENTRY_CREATE_ORGANIZATION_MONITOR\",\"name\":\"Create organization monitor\",\"description\":\"Creates a new monitor (type 'cron_job') within a Sentry organization to track scheduled tasks, allowing configuration of its name, slug (which must be unique if provided), status, owner, and muting preferences for incidents.\"},{\"slug\":\"SENTRY_CREATE_ORGANIZATION_TEAM\",\"name\":\"Create organization team\",\"description\":\"Creates a new team in a Sentry organization, requiring either a 'slug' or 'name' to define the team.\"},{\"slug\":\"SENTRY_CREATE_PROJECT_KEY_WITH_OPTIONAL_RATE_LIMITING\",\"name\":\"Create project key with optional rate limiting\",\"description\":\"Creates a new client key (DSN) for an existing Sentry project, with optional custom rate limit configuration.\"},{\"slug\":\"SENTRY_CREATE_PROJECT_RULE_FOR_ALERTS\",\"name\":\"Create project rule for alerts\",\"description\":\"Creates a Sentry project alert rule by defining conditions, actions, and optional filters using specific JSON structures (detailed in parameter descriptions) to automate responses to event patterns for an existing organization and project.\"},{\"slug\":\"SENTRY_CREATE_PROJECT_WEBHOOK_SUBSCRIPTION\",\"name\":\"Create project webhook subscription\",\"description\":\"Registers a new webhook subscription for a Sentry project to send HTTP POST notifications to a specified URL for given events, provided the project has the 'servicehooks' feature enabled.\"},{\"slug\":\"SENTRY_CREATE_RELEASE_DEPLOY_FOR_ORG\",\"name\":\"Create release deploy for org\",\"description\":\"Creates a new deploy record in Sentry to track the introduction of a release version into a specific environment.\"},{\"slug\":\"SENTRY_CREATE_RELEASE_FOR_ORGANIZATION\",\"name\":\"Create release for organization\",\"description\":\"Creates a new Sentry release for an existing organization, associating it with specified projects that must belong to that organization.\"},{\"slug\":\"SENTRY_CREATE_SCIM_GROUP_FOR_ORGANIZATION\",\"name\":\"Create scim group for organization\",\"description\":\"Creates a new Sentry team (SCIM group) within an organization via the SCIM API. Requirements: - Organization must have SCIM enabled (requires Business Plan with SAML2) - Must use a SCIM bearer token (generated when SCIM is enabled) - Token must have 'team:admin' or 'team:write' scope Behavior: - A URL-friendly slug is auto-generated from displayName (e.g., 'My Team' → 'my-team') - Team is created with an empty member set - Members must be added separately through SCIM member operations - Returns SCIM 2.0 Group resource with unique ID Use this for SCIM provisioning workflows with identity providers like Okta or Azure AD.\"},{\"slug\":\"SENTRY_CREATE_SENTRY_EXTERNAL_ISSUE_LINK\",\"name\":\"Create sentry external issue link\",\"description\":\"Links an existing Sentry issue to an issue in an external service, or updates an existing link, requiring a configured Sentry App installation `uuid`.\"},{\"slug\":\"SENTRY_CREATE_TEAM_PROJECT_FOR_ORGANIZATION\",\"name\":\"Create team project for organization\",\"description\":\"Creates a new Sentry project for an existing organization and team, allowing configuration of its name, slug, platform, and default alert rules.\"},{\"slug\":\"SENTRY_CREATE_USER_FOR_SAML_INTEGRATION\",\"name\":\"Create user for SAML integration\",\"description\":\"Creates a new Sentry organization member via a SCIM request for SAML integration; this action does not support setting secondary emails.\"},{\"slug\":\"SENTRY_DELETE_A_CUSTOM_INTEGRATION\",\"name\":\"Delete a custom integration\",\"description\":\"Deletes a custom integration (Sentry App) by its ID or slug. Use when you need to permanently remove a custom integration from your organization. Requires org:admin scope.\"},{\"slug\":\"SENTRY_DELETE_AN_ALERT\",\"name\":\"Delete an alert\",\"description\":\"⚠️ This endpoint is currently in beta and may be subject to change. Deletes an alert. Use when you need to permanently remove an alert from an organization.\"},{\"slug\":\"SENTRY_DELETE_BULK_ALERTS\",\"name\":\"Delete bulk alerts\",\"description\":\"Bulk delete alerts for a given organization. Use when you need to delete multiple alerts at once. ⚠️ This endpoint is currently in beta and may be subject to change.\"},{\"slug\":\"SENTRY_DELETE_DSYMS_FOR_PROJECT\",\"name\":\"Delete dsyms for project\",\"description\":\"Permanently removes a specific Debug Information File (DIF), used for symbolicating crash reports, from the specified Sentry project and organization.\"},{\"slug\":\"SENTRY_DELETE_EXTERNAL_ISSUE_BY_UUID\",\"name\":\"Delete external issue by uuid\",\"description\":\"Unlinks an external issue (e.g., from Jira/GitHub), identified by `external_issue_id`, from the Sentry app installation specified by `uuid`.\"},{\"slug\":\"SENTRY_DELETE_EXTERNAL_TEAM_BY_ID\",\"name\":\"Delete an external team by id\",\"description\":\"Unlinks a previously established external team from a Sentry team; this action does not delete either the Sentry team or the external team.\"},{\"slug\":\"SENTRY_DELETE_EXTERNAL_USER_FROM_ORGANIZATION\",\"name\":\"Delete external user from organization\",\"description\":\"Deletes the link between an external user (from an integration provider like GitHub, Slack, GitLab, or MS Teams) and a Sentry user within the specified organization. This removes the association but does not delete the Sentry user itself. Requires org:admin or org:write permissions.\"},{\"slug\":\"SENTRY_DELETE_MEMBER_FROM_TEAM\",\"name\":\"Delete member from team\",\"description\":\"Removes an organization member from a Sentry team, revoking their team-specific permissions, provided the member is currently part of that team.\"},{\"slug\":\"SENTRY_DELETE_ORGANIZATION_ALERT_RULE\",\"name\":\"Delete organization alert rule\",\"description\":\"Permanently deletes a metric alert rule from a Sentry organization. This action removes the specified metric alert rule, stopping all monitoring and notifications associated with it. The deletion is immediate and cannot be undone. Metric alert rules monitor aggregated metrics (like error rates, latency, or custom metrics) and are different from issue alert rules which trigger on individual events. **Important**: Metric alert rules require a Sentry Business or Enterprise plan. If your organization is on a different plan, this endpoint will return a 404 Not Found error. **Common Use Cases**: - Cleaning up outdated or unnecessary alert rules - Removing test alert rules after validation - Decommissioning monitoring for deprecated services **Returns**: Success message on deletion (HTTP 202), or error details if the rule doesn't exist or cannot be deleted.\"},{\"slug\":\"SENTRY_DELETE_ORGANIZATION_DASHBOARD\",\"name\":\"Delete organization dashboard\",\"description\":\"Deletes a custom dashboard or tombstones (marks as deleted) a pre-built dashboard within a Sentry organization.\"},{\"slug\":\"SENTRY_DELETE_ORGANIZATION_DISCOVER_QUERY\",\"name\":\"Delete organization discover query\",\"description\":\"Permanently removes a specific saved Discover query (a configuration for exploring event data) from a Sentry organization. This action requires one of the following scopes: org:admin, org:read, or org:write. The Discover saved queries feature is only available on Business and Enterprise plans.\"},{\"slug\":\"SENTRY_DELETE_ORGANIZATION_INTEGRATION\",\"name\":\"Delete organization integration\",\"description\":\"Permanently removes an integration installation from a Sentry organization. This action requires the numeric integration ID, which can be obtained by first calling retrieve_organization_integrations_list. Required permissions: org:admin or org:integrations scope.\"},{\"slug\":\"SENTRY_DELETE_ORGANIZATION_ISSUE\",\"name\":\"Delete organization issue\",\"description\":\"Permanently deletes a specific Sentry issue, identified by its ID, from an organization; this operation is irreversible and idempotent.\"},{\"slug\":\"SENTRY_DELETE_ORGANIZATION_MEMBER\",\"name\":\"Delete organization member\",\"description\":\"Permanently removes a member from a Sentry organization, revoking their access to that organization and all its associated projects.\"},{\"slug\":\"SENTRY_DELETE_ORGANIZATION_MONITOR\",\"name\":\"Delete organization monitor\",\"description\":\"Deletes a Sentry cron monitor or, if `environment` is specified, only specific environments within that monitor.\"},{\"slug\":\"SENTRY_DELETE_ORGANIZATION_RELEASE\",\"name\":\"Delete organization release\",\"description\":\"Permanently and irreversibly removes a Sentry release, including all its associated files, identified by its version from the specified organization.\"},{\"slug\":\"SENTRY_DELETE_ORGANIZATION_RELEASE_FILE\",\"name\":\"Delete organization release file\",\"description\":\"Tool to delete a file from an organization release. Use when you need to remove a specific file associated with a release version in an organization.\"},{\"slug\":\"SENTRY_DELETE_ORG_NOTIFICATION_ACTION\",\"name\":\"Delete org notification action\",\"description\":\"Deletes a specific Spike Protection Notification Action for a Sentry organization, where `action_id` must be a valid action associated with the `organization_id_or_slug`.\"},{\"slug\":\"SENTRY_DELETE_PROJECT_BY_ID\",\"name\":\"Delete project by id\",\"description\":\"Schedules a Sentry project for asynchronous deletion within a specified organization, hiding it from most public views once the process begins.\"},{\"slug\":\"SENTRY_DELETE_PROJECT_HOOK\",\"name\":\"Delete project hook\",\"description\":\"Deletes a specific service hook from a Sentry project using its organization, project, and hook identifiers.\"},{\"slug\":\"SENTRY_DELETE_PROJECT_ISSUES\",\"name\":\"Delete project issues\",\"description\":\"Permanently removes specified issues from a Sentry project; if no issue IDs are provided, it removes the oldest 1000 issues.\"},{\"slug\":\"SENTRY_DELETE_PROJECT_KEY\",\"name\":\"Delete project key\",\"description\":\"Permanently deletes a specific client key (DSN) for a project, preventing it from being used to send events to Sentry.\"},{\"slug\":\"SENTRY_DELETE_PROJECT_MONITOR\",\"name\":\"Delete project monitor\",\"description\":\"Deletes a Sentry monitor, or optionally only its specified environments, for a given project.\"},{\"slug\":\"SENTRY_DELETE_PROJECT_REPLAY\",\"name\":\"Delete project replay\",\"description\":\"Permanently deletes a specific Sentry session replay (a video-like reproduction of user interactions, including console logs and network activity) from the specified project and organization.\"},{\"slug\":\"SENTRY_DELETE_PROJECT_RULE\",\"name\":\"Delete project rule\",\"description\":\"Permanently deletes a specific issue alert rule from an existing project within an existing Sentry organization.\"},{\"slug\":\"SENTRY_DELETE_PROJECT_TEAM_ASSOCIATION\",\"name\":\"Delete project team association\",\"description\":\"Revokes a team's access to a Sentry project; this operation is idempotent.\"},{\"slug\":\"SENTRY_DELETE_RELEASE_FILE_BY_ID\",\"name\":\"Delete release file by id\",\"description\":\"Permanently deletes a specific build artifact (e.g., source map, application bundle) associated with a project release.\"},{\"slug\":\"SENTRY_DELETE_SYMBOL_SOURCE_FROM_PROJECT\",\"name\":\"Delete a symbol source from a project\",\"description\":\"Deletes a custom symbol source from a Sentry project. Use when you need to remove a symbol source that is no longer needed or needs to be reconfigured.\"},{\"slug\":\"SENTRY_DELETE_TEAM_BY_ORGANIZATION_OR_TEAM_SLUG\",\"name\":\"Delete team by organization and team slug\",\"description\":\"Schedules a Sentry team for asynchronous deletion, which releases the team's slug for reuse upon successful scheduling.\"},{\"slug\":\"SENTRY_DELETE_TEAM_FROM_ORG_SCIM_V2\",\"name\":\"Delete a team from an organization (SCIM v2)\",\"description\":\"Permanently and irreversibly deletes a specific team from a Sentry organization via a SCIM v2 request, provided SCIM integration is enabled for the organization.\"},{\"slug\":\"SENTRY_DELETE_USER_EMAILS_BY_ID\",\"name\":\"Delete user emails by id\",\"description\":\"Permanently removes a Sentry user's email address; if multiple emails exist, Sentry's API logic (e.g., primary or previously marked) determines which is deleted.\"},{\"slug\":\"SENTRY_DELETE_USER_FROM_ORG\",\"name\":\"Delete user from org\",\"description\":\"Removes a SCIM-managed member from a Sentry organization that has SCIM enabled, permanently revoking their access.\"},{\"slug\":\"SENTRY_DISABLE_SPIKE_PROTECTION\",\"name\":\"Disable spike protection\",\"description\":\"Disables Spike Protection feature for specified projects within a Sentry organization. Use this when you need to turn off spike protection for one or more projects.\"},{\"slug\":\"SENTRY_FETCH_ALERTS\",\"name\":\"Fetch alerts\",\"description\":\"Retrieves a list of alerts (workflows) for a Sentry organization. Use to get alert configurations, statuses, and trigger details. ⚠️ Note: This endpoint is currently in beta and may be subject to change. It is supported by New Monitors and Alerts and may not be viewable in the UI today.\"},{\"slug\":\"SENTRY_FETCH_A_MONITOR\",\"name\":\"Fetch a monitor\",\"description\":\"Fetches detailed information for a specific monitor (detector) within an organization. Use when you need to retrieve monitor configuration, status, or settings. This endpoint is currently in beta and is supported by New Monitors and Alerts.\"},{\"slug\":\"SENTRY_FETCH_AN_ALERT\",\"name\":\"Fetch an alert\",\"description\":\"Retrieves detailed information for a specific alert workflow. Use when you need to get alert configuration, triggers, action filters, or monitoring status. This endpoint is currently in beta and supported by New Monitors and Alerts.\"},{\"slug\":\"SENTRY_FETCH_AN_ORGANIZATIONS_MONITORS\",\"name\":\"Fetch an organization's monitors\",\"description\":\"Retrieves monitors (detectors) for a Sentry organization. This endpoint is currently in beta and may be subject to change. Use when you need to list or query monitors for an organization.\"},{\"slug\":\"SENTRY_FETCH_ISSUE_EVENT_BY_ID\",\"name\":\"Fetch issue event by id\",\"description\":\"Retrieves the 'latest', 'oldest', or 'recommended' event for a Sentry issue within an organization, optionally filtered by environment(s).\"},{\"slug\":\"SENTRY_FETCH_ORGANIZATION_ALERT_RULES\",\"name\":\"Fetch organization alert rules\",\"description\":\"Retrieves a list of active metric alert rules for an existing Sentry organization, identified by its ID or slug. Note: This endpoint returns metric alert rules only. If no metric alert rules exist for the organization, the API may return a 404 response which is handled gracefully by returning an empty list. For issue alert rules, use the project-level rules endpoint instead.\"},{\"slug\":\"SENTRY_FETCH_ORGANIZATION_RELEASE_THRESHOLD_STATUSES\",\"name\":\"Fetch organization release threshold statuses\",\"description\":\"Retrieves derived health statuses for release thresholds in a Sentry organization for a given time range, optionally filtered by environment, project, or release; `start` and `end` times must be provided together. **`[WARNING]`**: This API is experimental (Alpha) and subject to change!\"},{\"slug\":\"SENTRY_FETCH_ORGANIZATION_REPLAY_COUNT\",\"name\":\"Fetch organization replay count\",\"description\":\"Retrieves the total count of session replays for a specified Sentry organization, filterable by time range, environment, project, and query.\"},{\"slug\":\"SENTRY_FETCH_ORGANIZATION_REPLAY_DETAILS\",\"name\":\"Fetch organization replay details\",\"description\":\"Retrieves detailed information for a specific replay session by ID within a Sentry organization, optionally filtering time-series data using `statsPeriod` or `start`/`end`, and further refining by projects, environments, or specific fields.\"},{\"slug\":\"SENTRY_FETCH_ORGANIZATION_REPLAY_SELECTORS\",\"name\":\"Fetch organization replay selectors\",\"description\":\"Retrieves replay selectors (CSS/DOM selectors from session replays) for a Sentry organization. Selectors include elements with dead clicks or rage clicks, useful for identifying UI issues. Returns selector details with click counts and associated project IDs. Use `statsPeriod` for time filtering (preferred over start/end).\"},{\"slug\":\"SENTRY_FETCH_PROJECT_ENVIRONMENT_DETAILS\",\"name\":\"Fetch project environment details\",\"description\":\"Retrieves detailed information for a specific environment within a Sentry project.\"},{\"slug\":\"SENTRY_FETCH_PROJECT_OWNERSHIP_DETAILS\",\"name\":\"Fetch project ownership details\",\"description\":\"Retrieves the ownership configuration, like CODEOWNERS rules or Issue Owner settings, for a specified Sentry project.\"},{\"slug\":\"SENTRY_FETCH_PROJECT_RELEASE_FILES\",\"name\":\"Fetch project release files\",\"description\":\"Retrieves artifact files (e.g., source maps, debug information files) for a specific release version in a Sentry project; requires existing organization, project, and release version with associated files.\"},{\"slug\":\"SENTRY_FETCH_PROJECT_REPLAY_CLICKS\",\"name\":\"Fetch project replay clicks\",\"description\":\"Fetches a list of user click interactions for a specific Sentry session replay, including the clicked DOM element ID and timestamp.\"},{\"slug\":\"SENTRY_FETCH_REPLAY_RECORDING_SEGMENT\",\"name\":\"Fetch replay recording segment\",\"description\":\"Retrieves a specific recording segment for a Sentry replay, requiring valid organization, project, replay, and segment identifiers.\"},{\"slug\":\"SENTRY_FETCH_TAG_VALUES_FOR_ISSUE\",\"name\":\"Fetch Tag Values for Issue\",\"description\":\"Retrieves a list of distinct values for a specified tag key associated with an existing Sentry issue, useful for understanding tag manifestations like browser versions or affected users.\"},{\"slug\":\"SENTRY_GET_ACTIVATION_OF_ALERT_RULE_FOR_ORGANIZATION\",\"name\":\"Get activation of alert rule for organization\",\"description\":\"DEPRECATED: Retrieves all activations for a specific metric alert rule. ⚠️ WARNING: This endpoint has been removed from Sentry as of January 2025. The AlertRuleActivations feature was never fully released and has been completely removed from the Sentry codebase (database tables dropped in migration 0814). This action is retained for backwards compatibility but will fail with 404 errors. Sources: - https://github.com/getsentry/sentry/issues/81970 - https://github.com/getsentry/sentry/pull/83280 - https://github.com/getsentry/sentry/pull/83255\"},{\"slug\":\"SENTRY_GET_ALERTS\",\"name\":\"Get alerts and monitors\",\"description\":\"Tool to retrieve all combined alert rules and monitors for a Sentry organization. Use when you need to get a unified view of both alert rules and cron monitors. This endpoint combines results from multiple sources into a single response.\"},{\"slug\":\"SENTRY_GET_INTEGRATION_DETAILS_BY_ORG\",\"name\":\"Get integration details by org\",\"description\":\"Retrieves details for a specific integration, identified by `integration_id`, installed within an existing Sentry organization, identified by `organization_id_or_slug`.\"},{\"slug\":\"SENTRY_GET_OLDEST_EVENT\",\"name\":\"Get oldest event\",\"description\":\"Retrieves the oldest (first) event associated with a Sentry issue within an organization. Use this action when you need to investigate the original occurrence of an issue to understand its root cause or initial context. This is particularly useful for debugging issues from their first appearance, analyzing initial error conditions, or determining when a problem first started occurring.\"},{\"slug\":\"SENTRY_GET_ORGANIZATION_BY_ID_OR_SLUG\",\"name\":\"Get organization by id or slug\",\"description\":\"Retrieves a Sentry organization by its ID or slug; use the `detailed` parameter to optionally exclude project and team details for a more concise response.\"},{\"slug\":\"SENTRY_GET_ORGANIZATION_DETAILS\",\"name\":\"Get organization details\",\"description\":\"Retrieves Sentry organizations accessible via the current authentication, with scope varying between user (all in region) and API key (linked org only) credentials.\"},{\"slug\":\"SENTRY_GET_ORGANIZATION_ENVIRONMENTS\",\"name\":\"Get organization environments\",\"description\":\"Lists deployment environments for a Sentry organization, optionally filtered by visibility status. Environments represent deployment contexts like 'production', 'staging', or 'development' where events are tracked. By default, only visible environments are returned. Use the visibility parameter to include hidden environments or view only hidden ones.\"},{\"slug\":\"SENTRY_GET_ORGANIZATION_ISSUE_DETAILS\",\"name\":\"Get organization issue details\",\"description\":\"Retrieves detailed information for a specific issue within a Sentry organization. Accepts both numeric issue IDs (e.g., '7159174717') and short IDs displayed in the Sentry UI (e.g., 'PROJECT-123', 'SENTRY-4V'). Short IDs are automatically resolved to numeric IDs before fetching issue details.\"},{\"slug\":\"SENTRY_GET_ORGANIZATION_RELEASE_VERSION\",\"name\":\"Get organization release version\",\"description\":\"Retrieves detailed information, including optional health data and statistics, for a specific release version within a Sentry organization.\"},{\"slug\":\"SENTRY_GET_ORGANIZATION_SESSIONS\",\"name\":\"Get organization sessions\",\"description\":\"Retrieves time series data for an organization's Sentry project release health sessions; note session duration data (e.g., using `avg(session.duration)`) may be incomplete after Jan 12, 2023, results are capped at 10,000 data points, `statsPeriod` overrides `start`/`end` timestamps, and the `interval` parameter (default/min '1h', max '1d', format like `statsPeriod`) dictates time series resolution and must cleanly divide one day.\"},{\"slug\":\"SENTRY_GET_ORGANIZATION_STATS_SUMMARY\",\"name\":\"Get organization stats summary\",\"description\":\"Retrieves summarized event statistics for a Sentry organization, aggregated by project, allowing queries for event counts or unique occurrences over a specified time period and resolution, with filtering by project, category, and outcome.\"},{\"slug\":\"SENTRY_GET_PROJECT_EVENTS\",\"name\":\"Get project events\",\"description\":\"Retrieves a list of error events for a specified project within a Sentry organization, with options for pagination and detail level.\"},{\"slug\":\"SENTRY_GET_PROJECT_EVENT_STATS\",\"name\":\"Get project event stats\",\"description\":\"Retrieves time-series event statistics for a Sentry project. Returns an array of [timestamp, count] data points showing event volumes over time. Use this to analyze event trends, monitor error rates, or generate custom dashboards. The endpoint supports different event types (received, rejected, blacklisted, generated) and time resolutions (10s, 1h, 1d). **Important**: This endpoint may change in the future without notice. Monitor Sentry's API changelog for updates. **Common use cases**: - Monitor error rates over time - Analyze event rejection patterns - Generate custom analytics dashboards - Track event volume trends\"},{\"slug\":\"SENTRY_GET_PROJECT_HOOK\",\"name\":\"Get project hook\",\"description\":\"Retrieves detailed information for an existing service hook within a Sentry project. Service hooks (webhooks) are HTTP callbacks that notify external systems when specific events occur in Sentry, such as when alerts are triggered ('event.alert') or new events are processed ('event.created'). This action requires: - Authentication with 'project:read' scope - The hook_id (GUID) of an existing service hook, typically obtained from creating a hook or listing project hooks Common use cases: - Verifying hook configuration and status - Retrieving the webhook URL and secret for external system setup - Checking which events the hook is subscribed to - Auditing hook creation timestamps Note: The 'servicehooks' feature must be enabled on your Sentry plan to create or manage hooks, though reading existing hook details may be possible depending on your API permissions.\"},{\"slug\":\"SENTRY_GET_PROJECT_LIST\",\"name\":\"Get project list\",\"description\":\"Lists all Sentry projects the authenticated token has membership access to across all organizations. IMPORTANT: This endpoint returns projects where the token's user is a member. An empty result does NOT mean no projects exist - it means the token lacks project membership. This commonly happens when: - The auth token has organization-level access but not explicit project membership - Projects exist in organizations you can access, but you're not a project member If you receive an empty list but know projects exist, use SENTRY_RETRIEVE_ORGANIZATION_PROJECTS instead, which lists all projects within a specific organization (requires organization_id_or_slug parameter).\"},{\"slug\":\"SENTRY_GET_PROJECT_MONITOR_BY_ID\",\"name\":\"Get project monitor by id\",\"description\":\"Retrieves detailed information for a specific Sentry cron monitor, provided the organization, project, and monitor exist.\"},{\"slug\":\"SENTRY_GET_PROJECT_RULE_DETAILS\",\"name\":\"Get project rule details\",\"description\":\"Retrieves detailed information for a specific issue alert rule within a Sentry project.\"},{\"slug\":\"SENTRY_GET_SCIM_GROUP_BY_TEAM_ID\",\"name\":\"Get SCIM group by team ID\",\"description\":\"Retrieves SCIM group information for a specific Sentry team. Returns the team's SCIM representation including ID, display name, and member list (limited to 10,000 members). Requires SCIM to be enabled for the organization (Business Plan with SAML2). Use this to query team details via the SCIM protocol for identity provider integrations.\"},{\"slug\":\"SENTRY_GET_SENTRY_APP_INSTALLATIONS_FOR_ORGANIZATION\",\"name\":\"Get sentry app installations for organization\",\"description\":\"Retrieves a list of Sentry App installations for a given organization, which must exist.\"},{\"slug\":\"SENTRY_GET_TEAM_MEMBERS_BY_ID_OR_SLUG\",\"name\":\"Get team members by id or slug\",\"description\":\"Retrieves all active members of a Sentry team with detailed user information, roles, and permissions. This endpoint returns members who have accepted their team invitation. Users with pending invitations are excluded from the results. Each member object includes comprehensive details such as user profile information, organization and team roles, authentication status, and membership flags.\"},{\"slug\":\"SENTRY_GET_WHO_VIEWED_REPLAY_BY_PROJECT\",\"name\":\"Get who viewed replay by project\",\"description\":\"Retrieves users who viewed a specific, existing session replay within a Sentry project and organization.\"},{\"slug\":\"SENTRY_INGEST_EVENT_VIA_DSN\",\"name\":\"Ingest event via DSN\",\"description\":\"Ingests a single custom event into a Sentry project using its DSN via the Envelope ingestion endpoint. This may create or update an issue group depending on Sentry's grouping algorithm. Note: Sentry does not provide a direct API to 'create an issue group'; issues are created from ingested events. This tool allows controlled generation of events for testing or workflows requiring synthetic events.\"},{\"slug\":\"SENTRY_LIST_AN_ORGANIZATION_S_CLIENT_KEYS\",\"name\":\"List an organization's client keys\",\"description\":\"Lists all client keys (DSNs) across all projects in an organization. Use when you need to audit keys organization-wide or filter keys by team or status.\"},{\"slug\":\"SENTRY_LIST_AN_ORGANIZATIONS_ISSUES\",\"name\":\"List an organization's issues\",\"description\":\"Returns a list of issues (error groups) for an organization. Use when you need to retrieve and analyze error patterns, track unresolved issues, or monitor issue trends. Default query applies 'is:unresolved issue.priority:[high,medium]'.\"},{\"slug\":\"SENTRY_LIST_A_PROJECTS_USER_FEEDBACK\",\"name\":\"List a project's user feedback\",\"description\":\"Retrieves a list of legacy user feedback items within a Sentry project. Use when you need to see user-reported feedback on errors. Note: This returns legacy User Reports, not submissions from the User Feedback Widget.\"},{\"slug\":\"SENTRY_LIST_A_TAGS_VALUES_FOR_AN_ISSUE\",\"name\":\"List a tag's values for an issue\",\"description\":\"Returns a list of values associated with this key for an issue. Use when you need to analyze tag values, their frequency, or timeline for specific issue tags.\"},{\"slug\":\"SENTRY_LIST_ORGANIZATION_DASHBOARDS\",\"name\":\"List organization dashboards\",\"description\":\"Retrieves a list of custom dashboards for a Sentry organization, with pagination support.\"},{\"slug\":\"SENTRY_LIST_ORGANIZATION_MEMBERS\",\"name\":\"List organization members\",\"description\":\"Lists all members, including those with pending invitations, for a Sentry organization.\"},{\"slug\":\"SENTRY_LIST_ORGANIZATION_RELEASES\",\"name\":\"List organization releases\",\"description\":\"Retrieves a list of releases for an existing Sentry organization, optionally filtering by a query string that matches the start of the release version.\"},{\"slug\":\"SENTRY_LIST_ORGANIZATION_REPOSITORIES\",\"name\":\"List organization repositories\",\"description\":\"Retrieves a list of version control repositories for a specific Sentry organization, which must exist and is identified by its ID or slug.\"},{\"slug\":\"SENTRY_LIST_ORGANIZATIONS\",\"name\":\"List organizations\",\"description\":\"Retrieves a list of organizations available to the authenticated session. Use this action when you need to discover which organizations the user has access to before performing operations on a specific organization. This is essential for organization-bound operations that require an organization_id_or_slug parameter. Note that API key requests only return the associated organization.\"},{\"slug\":\"SENTRY_LIST_ORGANIZATION_USER_TEAMS\",\"name\":\"List User's Teams in Organization\",\"description\":\"Retrieves a list of all teams that the authenticated user has access to within the specified Sentry organization.\"},{\"slug\":\"SENTRY_LIST_PROJECT_TAGS\",\"name\":\"List project tags\",\"description\":\"Retrieves all tags that have been recorded for events within a Sentry project, along with statistical information for each tag. Use when you need to understand what tags are available in a project and their usage patterns. This provides an overview of tag distribution and helps identify commonly used tags for filtering and analysis.\"},{\"slug\":\"SENTRY_LIST_PROJECT_USERS\",\"name\":\"List project users\",\"description\":\"Retrieves users who have interacted with or are recognized within a specific Sentry project, optionally filtered by a query.\"},{\"slug\":\"SENTRY_LIST_SCIM_V2_ORGANIZATION_USERS\",\"name\":\"List SCIM v2 organization users\",\"description\":\"Retrieves a paginated list of SCIM (System for Cross-domain Identity Management) users for a Sentry organization, allowing for filtering, pagination, and attribute exclusion.\"},{\"slug\":\"SENTRY_LIST_SEER_AI_MODELS\",\"name\":\"List Seer AI models\",\"description\":\"Retrieves the list of AI models currently used in production in Seer. Use when you need to discover which LLM models Seer is actively using.\"},{\"slug\":\"SENTRY_LIST_TEAMS_IN_ORGANIZATION\",\"name\":\"List teams in organization\",\"description\":\"Lists teams for an existing Sentry organization, optionally including project details and supporting pagination via a cursor.\"},{\"slug\":\"SENTRY_MANAGE_TEAM_EXTERNAL_INTEGRATIONS\",\"name\":\"Create an external team\",\"description\":\"Links an external team or channel (e.g., Slack, GitHub) to an existing Sentry team, using a pre-configured integration for the specified provider and its valid Sentry integration ID.\"},{\"slug\":\"SENTRY_MODIFY_ORGANIZATION_NOTIFICATION_ACTION\",\"name\":\"Modify organization notification action\",\"description\":\"Modifies an organization's notification action, specifically for `spike-protection` triggers.\"},{\"slug\":\"SENTRY_MODIFY_ORGANIZATION_SETTINGS\",\"name\":\"Modify organization settings\",\"description\":\"Updates settings for a Sentry organization, such as name, slug, member roles, privacy, and integrations; if `avatarType` is 'upload', `avatar` (base64 image) is required.\"},{\"slug\":\"SENTRY_MODIFY_RELEASE_FILE_ATTRIBUTES\",\"name\":\"Modify release file attributes\",\"description\":\"Updates attributes (e.g., name, distribution) of a specific file within an existing release, identified by organization, version, and file ID.\"},{\"slug\":\"SENTRY_MUTATE_AN_ORGANIZATION_S_ALERTS\",\"name\":\"Mutate an organization's alerts\",\"description\":\"Bulk enable or disable alerts for an organization. Use when you need to activate or deactivate multiple alerts at once. This endpoint is in beta and may change in the future.\"},{\"slug\":\"SENTRY_MUTATE_AN_ORGANIZATIONS_MONITORS\",\"name\":\"Mutate an organization's monitors\",\"description\":\"Bulk enable or disable monitors for an organization. This endpoint is in beta and may change. Use when you need to enable or disable multiple monitors at once based on filters.\"},{\"slug\":\"SENTRY_PATCH_SCIM_GROUP_OPERATIONS\",\"name\":\"Patch SCIM group operations\",\"description\":\"Performs SCIM PATCH operations (RFC 7644) to update attributes of a SCIM-enabled Sentry team, provided SCIM integration is active for the organization.\"},{\"slug\":\"SENTRY_PATCH_USER_ACTIVE_STATUS_IN_ORGANIZATION\",\"name\":\"Deactivate an organization member\",\"description\":\"Deactivates and permanently deletes a Sentry organization member by using a SCIM PATCH operation to set their 'active' attribute to 'false'.\"},{\"slug\":\"SENTRY_POST_SPIKE_PROTECTION_FOR_ORGANIZATION\",\"name\":\"Enable spike protection for an organization\",\"description\":\"Enables or updates Spike Protection for specified projects (or all projects using `['$all']`) within an existing Sentry organization, to which the projects must belong.\"},{\"slug\":\"SENTRY_QUERY_EXPLORE_EVENTS_IN_TIMESERIES_FORMAT\",\"name\":\"Query explore events in timeseries format\",\"description\":\"Retrieves explore data for a given organization as a timeseries. Use this to query timeseries data for 1 or many axis, with results optionally grouped by top events depending on parameters.\"},{\"slug\":\"SENTRY_RETRIEVE_A_CUSTOM_INTEGRATION_BY_ID_OR_SLUG\",\"name\":\"Retrieve a custom integration by id or slug\",\"description\":\"Retrieves detailed information about a custom integration (Sentry App) by its slug. Use this action when you need to: - Get configuration details of a custom integration including scopes, webhooks, and OAuth settings - Check the status and permissions of an integration - Retrieve integration metadata such as name, description, and avatar - Verify which events an integration subscribes to Note: Provide the integration's slug (case-sensitive), not its UUID.\"},{\"slug\":\"SENTRY_RETRIEVE_AGGREGATED_TEST_RESULT_METRICS\",\"name\":\"Retrieve aggregated test result metrics\",\"description\":\"Retrieves aggregated test result metrics for a repository, owner, and organization. Use when you need to analyze test performance and reliability metrics for a specific repository.\"},{\"slug\":\"SENTRY_RETRIEVE_ALERT_RULE_DETAILS\",\"name\":\"Retrieve alert rule details\",\"description\":\"Retrieves detailed information for a specific metric alert rule within a Sentry organization. Note: This endpoint is specifically for metric alert rules (organization-level alerts based on metrics like error count, latency, failure rate, etc.). For issue alert rules (project-level alerts triggered by events), use the project rules endpoint instead. The API may return 404 if: - The alert rule ID does not exist - The organization does not have metric alerts enabled - The organization does not exist or you don't have access\"},{\"slug\":\"SENTRY_RETRIEVE_A_MONITOR\",\"name\":\"Retrieve a monitor\",\"description\":\"Retrieves detailed information for a specific monitor within an organization. Use when you need to check monitor configuration, status, schedule, environments, or alert settings.\"},{\"slug\":\"SENTRY_RETRIEVE_COMMIT_FILES_FOR_RELEASE\",\"name\":\"Retrieve commit files for release\",\"description\":\"Retrieves files changed in commits for a specified Sentry release; the release must exist and have linked commits.\"},{\"slug\":\"SENTRY_RETRIEVE_COMMITS_FOR_ORGANIZATION_REPO\",\"name\":\"Retrieve an organization's repository commits\",\"description\":\"Retrieves a list of commits for a given repository within a Sentry organization.\"},{\"slug\":\"SENTRY_RETRIEVE_CUSTOM_INTEG_ISSUE_LINKS_GIVEN_SENTRY_ISSUE\",\"name\":\"Retrieve custom integration issue links\",\"description\":\"Retrieves all external issue links for a Sentry issue. Returns connections between the Sentry issue and external tracking systems (e.g., Jira, GitHub Issues, Linear, GitLab, Asana) created through custom integrations or Sentry Apps. Use this to see what external tickets or issues are linked to a Sentry error.\"},{\"slug\":\"SENTRY_RETRIEVE_DATA_FORWARDERS_FOR_AN_ORGANIZATION\",\"name\":\"Retrieve data forwarders for an organization\",\"description\":\"Returns a list of data forwarders for an organization. Use when you need to retrieve all data forwarders configured for a specific organization.\"},{\"slug\":\"SENTRY_RETRIEVE_DSYM_FILES_FOR_PROJECT\",\"name\":\"Retrieve dsym files for project\",\"description\":\"Retrieve a list of debug information files (dSYM files) for a specified Sentry project, used for symbolication to display human-readable stack traces.\"},{\"slug\":\"SENTRY_RETRIEVE_EVENT_ID_FOR_ORGANIZATION\",\"name\":\"Retrieve event id for organization\",\"description\":\"Resolves a Sentry event ID to its project and issue details within an accessible Sentry organization.\"},{\"slug\":\"SENTRY_RETRIEVE_FILES_FOR_RELEASE\",\"name\":\"Retrieve files for release\",\"description\":\"Retrieves artifact files for a specific release version in a Sentry organization; the organization and release must exist, and the response `data` field will contain the file information as a dictionary.\"},{\"slug\":\"SENTRY_RETRIEVE_ISSUE_EVENTS_BY_ID\",\"name\":\"Retrieve issue events by id\",\"description\":\"Retrieves events for a specified Sentry `issue_id`, which must be an existing issue.\"},{\"slug\":\"SENTRY_RETRIEVE_ISSUE_HASHES_FOR_ORGANIZATION\",\"name\":\"Retrieve issue hashes for organization\",\"description\":\"Retrieves a list of grouping checksums (hashes) generated by Sentry for a specific issue within an organization, used for understanding event aggregation.\"},{\"slug\":\"SENTRY_RETRIEVE_ISSUE_TAG_DETAILS\",\"name\":\"Retrieve issue tag details\",\"description\":\"Retrieves detailed information (e.g., top values, counts) for a specific tag key on an existing Sentry issue; results are paginated (max 1000 values per page).\"},{\"slug\":\"SENTRY_RETRIEVE_MONITOR_CHECKINS\",\"name\":\"Retrieve monitor checkins\",\"description\":\"Retrieves the history of check-ins for a Sentry monitor, providing insights into the health and performance of associated scheduled tasks.\"},{\"slug\":\"SENTRY_RETRIEVE_MONITOR_CHECKINS_BY_ORG\",\"name\":\"Retrieve monitor checkins by org\",\"description\":\"Retrieves check-ins (pings/heartbeats of a monitored cron job or task) for a specific monitor within a Sentry organization.\"},{\"slug\":\"SENTRY_RETRIEVE_NOTIFICATION_ACTION_BY_ORG_ID\",\"name\":\"Retrieve notification action by org id\",\"description\":\"Retrieves details for a specific Spike Protection Notification Action, which defines alerts for triggered spike protection rules, within a Sentry organization.\"},{\"slug\":\"SENTRY_RETRIEVE_ORGANIZATION_DASHBOARD\",\"name\":\"Retrieve organization dashboard\",\"description\":\"Fetches detailed information about a specific custom dashboard within a Sentry organization.\"},{\"slug\":\"SENTRY_RETRIEVE_ORGANIZATION_EVENTS\",\"name\":\"Retrieve organization events\",\"description\":\"Retrieves Discover event data for a Sentry organization; the `sort` field must be in the `field` list (not an equation), and `field` has a 20-item limit.\"},{\"slug\":\"SENTRY_RETRIEVE_ORGANIZATION_INTEGRATIONS_LIST\",\"name\":\"Retrieve organization integrations list\",\"description\":\"Retrieves a list of available integrations for an existing Sentry organization.\"},{\"slug\":\"SENTRY_RETRIEVE_ORGANIZATION_MEMBER\",\"name\":\"Retrieve organization member\",\"description\":\"Retrieves details for a Sentry organization member or pending invitee, including role, teams, and status, using their member ID and the organization's ID or slug.\"},{\"slug\":\"SENTRY_RETRIEVE_ORGANIZATION_MONITORS\",\"name\":\"Retrieve organization monitors\",\"description\":\"Retrieves cron monitors for a Sentry organization, including details of nested monitor environments.\"},{\"slug\":\"SENTRY_RETRIEVE_ORGANIZATION_PROJECTS\",\"name\":\"Retrieve organization projects\",\"description\":\"Retrieves a list of Sentry projects for a specified organization (which must be accessible), supporting pagination via cursor. Note: The {region} placeholder in the base URL is handled by the ApiAction framework, which overrides it with the base_url from auth metadata (typically 'https://sentry.io'). This ensures correct URL construction regardless of the region placeholder in the template.\"},{\"slug\":\"SENTRY_RETRIEVE_ORGANIZATION_RELAY_USAGE\",\"name\":\"Retrieve organization relay usage\",\"description\":\"Retrieves a list of trusted Sentry Relays configured for an organization. Sentry Relay is a service that proxies events between your application and Sentry. This endpoint returns the configuration of trusted relays registered for an organization. Each trusted relay entry includes details such as the relay name, public key for authentication, and a description of its purpose. Note: This feature is typically available for organizations on Business and Enterprise plans that have Relay infrastructure enabled. Organizations without any configured relays will return an empty list. Use this to: - View all trusted relays configured for your organization - Verify relay configurations and public keys - Audit relay infrastructure setup\"},{\"slug\":\"SENTRY_RETRIEVE_ORGANIZATION_RELEASE_COMMITS\",\"name\":\"Retrieve organization release commits\",\"description\":\"Retrieves a list of commits for a given release version in an existing Sentry organization, if the release exists.\"},{\"slug\":\"SENTRY_RETRIEVE_ORGANIZATION_REPLAYS\",\"name\":\"Retrieve organization replays\",\"description\":\"Fetches session replays for a Sentry organization; use `statsPeriod` for relative time, or `start` and `end` (used together) for absolute time ranges.\"},{\"slug\":\"SENTRY_RETRIEVE_ORGANIZATION_SCIM_GROUPS\",\"name\":\"Retrieve organization SCIM groups\",\"description\":\"Retrieves a paginated list of SCIM groups (teams) for a Sentry organization; the `members` field in the response for each group will contain at most 10,000 members.\"},{\"slug\":\"SENTRY_RETRIEVE_ORGANIZATION_STATS_V2\",\"name\":\"Retrieve organization stats v2\",\"description\":\"Retrieves Sentry organization event statistics; specify time range with `statsPeriod` OR both `start`/`end`; note that grouping by `project` returns a sum not a time-series, and `interval` (if used) must be 1h-1d and cleanly divide 24 hours.\"},{\"slug\":\"SENTRY_RETRIEVE_ORG_INTEGRATION_CONFIG\",\"name\":\"Retrieve org integration config\",\"description\":\"Retrieves configuration for all integrations, or a specific integration if `providerKey` is given, for an existing Sentry organization.\"},{\"slug\":\"SENTRY_RETRIEVE_PAGINATED_REPOSITORY_TOKENS\",\"name\":\"Retrieve paginated repository tokens\",\"description\":\"Retrieves a paginated list of repository tokens for a given owner. Use when you need to access repository tokens with pagination support.\"},{\"slug\":\"SENTRY_RETRIEVE_PROJECT_ENVIRONMENTS\",\"name\":\"Retrieve project environments\",\"description\":\"Retrieves a list of environments for an existing project within a Sentry organization.\"},{\"slug\":\"SENTRY_RETRIEVE_PROJECT_EVENT_BY_ID\",\"name\":\"Retrieve project event by id\",\"description\":\"Retrieves detailed information for a specific Sentry event using its ID, organization identifier, and project identifier.\"},{\"slug\":\"SENTRY_RETRIEVE_PROJECT_FILTER_DATA\",\"name\":\"Retrieve project filter data\",\"description\":\"Retrieves a Sentry project's current data filtering settings, used to ignore events from sources like localhost, web crawlers, or legacy browsers.\"},{\"slug\":\"SENTRY_RETRIEVE_PROJECT_HOOKS\",\"name\":\"Retrieve project hooks\",\"description\":\"Return a list of service hooks (webhooks) bound to a Sentry project, used to send notifications to external services upon event occurrences.\"},{\"slug\":\"SENTRY_RETRIEVE_PROJECT_ISSUES_LIST\",\"name\":\"Retrieve project issues list\",\"description\":\"Retrieves a list of issues for a Sentry project, defaulting to unresolved issues unless an empty `query` string is provided or specific `hashes` are used.\"},{\"slug\":\"SENTRY_RETRIEVE_PROJECT_KEY_DETAILS\",\"name\":\"Retrieve project key details\",\"description\":\"Retrieves details of a specific client key (DSN) for a Sentry project, which is used by Sentry SDKs to send event data.\"},{\"slug\":\"SENTRY_RETRIEVE_PROJECT_KEYS_BY_ORG_AND_PROJECT\",\"name\":\"List a project's client keys\",\"description\":\"Retrieves a list of client keys (DSNs), used by Sentry SDKs to send events, for a specified project within an organization.\"},{\"slug\":\"SENTRY_RETRIEVE_PROJECT_MEMBERS_LIST\",\"name\":\"Retrieve project members list\",\"description\":\"Retrieves active organization members belonging to any team assigned to the specified Sentry project.\"},{\"slug\":\"SENTRY_RETRIEVE_PROJECT_RELEASE_FILE_DETAILS\",\"name\":\"Retrieve project release file details\",\"description\":\"Retrieves metadata (default) or raw content (if `download` is true) for a specific file within a Sentry project's release version.\"},{\"slug\":\"SENTRY_RETRIEVE_PROJECT_RULES_BY_ORG_AND_PROJECT_ID\",\"name\":\"Retrieve project rules by org and project id\",\"description\":\"Retrieves a list of active issue alert rules associated with a specific project within an organization. Returns all active issue alert rules configured for the specified project, including their conditions, filters, actions, and metadata. This endpoint is useful for auditing alert configurations, managing alert rules programmatically, or understanding what alerts are active in a project.\"},{\"slug\":\"SENTRY_RETRIEVE_PROJECT_SYMBOL_SOURCES\",\"name\":\"Retrieve project symbol sources\",\"description\":\"Retrieves custom symbol sources for a Sentry project, either listing all or fetching a specific one if its ID is provided.\"},{\"slug\":\"SENTRY_RETRIEVE_PROJECT_TAG_VALUES\",\"name\":\"Retrieve project tag values\",\"description\":\"Retrieves up to 1000 unique values for a specified tag key that has been recorded for events within a Sentry project. Returns an empty list if the tag key doesn't exist or has no values recorded yet.\"},{\"slug\":\"SENTRY_RETRIEVE_PROJECT_TEAMS\",\"name\":\"Retrieve project teams\",\"description\":\"Retrieves a list of teams with explicit access to a specific project within a Sentry organization.\"},{\"slug\":\"SENTRY_RETRIEVE_RELEASE_COMMITS\",\"name\":\"Retrieve release commits\",\"description\":\"Retrieves a list of commits associated with a specific release version within a Sentry project.\"},{\"slug\":\"SENTRY_RETRIEVE_RELEASE_DEPLOYMENTS\",\"name\":\"Retrieve release deployments\",\"description\":\"Retrieves a list of all deployment records for a specific release version in an organization, detailing each deployment's environment and timestamps.\"},{\"slug\":\"SENTRY_RETRIEVE_RELEASE_FILE_BY_ID\",\"name\":\"Retrieve release file by id\",\"description\":\"Retrieves a specific file's content or its metadata from a Sentry release, using the `download` parameter to choose between raw content or JSON metadata.\"},{\"slug\":\"SENTRY_RETRIEVE_REPLAY_RECORDING_SEGMENTS\",\"name\":\"Retrieve replay recording segments\",\"description\":\"Retrieves a paginated list of recording segments for a specific Sentry replay, used for reconstructing or analyzing the replay.\"},{\"slug\":\"SENTRY_RETRIEVE_SAVED_DISCOVER_QUERIES\",\"name\":\"Retrieve saved discover queries\",\"description\":\"Retrieves a paginated list of saved Discover queries for a Sentry organization. Returns saved query definitions that can be used to reproduce specific event searches and analyses. Supports filtering by name and sorting by various criteria (name, date, popularity, etc.). **Important**: This endpoint may return 404 if the Discover saved queries feature has been deprecated for the organization (organizations with 'discover-saved-queries-deprecation' feature flag). In such cases, the action gracefully returns an empty list with an explanatory message instead of failing. Organizations migrating to newer query systems may have this feature disabled.\"},{\"slug\":\"SENTRY_RETRIEVE_SAVED_DISCOVER_QUERY_FOR_ORGANIZATION\",\"name\":\"Retrieve saved discover query for organization\",\"description\":\"Retrieves a specific saved Discover query (a predefined set of filters and conditions for exploring event data) for a Sentry organization.\"},{\"slug\":\"SENTRY_RETRIEVE_SEER_ISSUE_FIX_STATE\",\"name\":\"Retrieve Seer issue fix state\",\"description\":\"Retrieves the current detailed state of an AI-assisted autofix process for a Sentry issue. Use when you need to check the progress, status, root cause analysis, proposed solutions, or code modifications for an autofix operation.\"},{\"slug\":\"SENTRY_RETRIEVE_SHORT_ID_FOR_ORGANIZATION\",\"name\":\"Retrieve short id for organization\",\"description\":\"Resolves a Sentry short ID (e.g., 'PROJECT-1A') to its complete issue details including organization slug, project slug, group ID, and full issue metadata. Use this to look up issue information when you have a short ID reference.\"},{\"slug\":\"SENTRY_RETRIEVE_SOURCE_MAP_DEBUG_EVENT\",\"name\":\"Retrieve source map debug event\",\"description\":\"Retrieves detailed debug information for diagnosing source map processing issues for a specific Sentry event, stack trace frame, and exception index. Note: The event must contain an exception with stack trace frames for this endpoint to return useful data.\"},{\"slug\":\"SENTRY_RETRIEVE_TEAM_INFO_VIA_ORGANIZATION_ID_OR_SLUG\",\"name\":\"Retrieve team info\",\"description\":\"Retrieves detailed information for an existing Sentry team within its organization, optionally expanding related data (e.g., projects) or collapsing sections (e.g., organization details).\"},{\"slug\":\"SENTRY_RETRIEVE_TEAM_PROJECTS\",\"name\":\"Retrieve team projects\",\"description\":\"Retrieves a list of Sentry projects for a specific team within an organization, supporting pagination via a cursor.\"},{\"slug\":\"SENTRY_RETRIEVE_THE_CUSTOM_INTEGS_CREATED_BY_AN_ORG\",\"name\":\"Retrieve the custom integrations created by an organization\",\"description\":\"Retrieves custom integrations (Sentry Apps) created by an organization. Use when you need to list all custom integrations that the organization has developed.\"},{\"slug\":\"SENTRY_RETRIEVE_USER_EMAIL_INFORMATION\",\"name\":\"Retrieve user email information\",\"description\":\"Retrieves a list of email addresses for an existing Sentry user, identified by their `user_id`.\"},{\"slug\":\"SENTRY_RETRIEVE_USER_VIA_SCIM_API\",\"name\":\"Retrieve user via SCIM API\",\"description\":\"Retrieves an individual Sentry organization member's details using the SCIM v2 API. Returns a SCIM-formatted user resource containing the member's ID, username (email), email addresses, name (givenName and familyName), active status, and Sentry organization role. **Requirements**: This endpoint requires SCIM to be enabled for the organization, which requires a Business Plan subscription and SAML2 authentication enabled. A SCIM bearer token (not a regular API token) must be used for authentication. **Note**: Sentry's SCIM API does not support syncing passwords or setting user attributes other than 'active'.\"},{\"slug\":\"SENTRY_SAVE_ORGANIZATION_DISCOVER_QUERY\",\"name\":\"Save organization discover query\",\"description\":\"Saves a new Discover query with a unique name for a Sentry organization, allowing reuse of search criteria for analyzing event data (errors, transactions) across specified projects and environments.\"},{\"slug\":\"SENTRY_START_SEER_ISSUE_FIX\",\"name\":\"Start Seer issue fix\",\"description\":\"Trigger a Seer Issue Fix run for a specific issue. Use when you want to start an AI-assisted autofix process that operates asynchronously to identify root causes, propose solutions, generate code changes, and optionally create pull requests with fixes.\"},{\"slug\":\"SENTRY_SUBMIT_NOTIFICATION_ACTION_API_DATA\",\"name\":\"Submit notification action API data\",\"description\":\"Creates a Sentry notification action for 'spike-protection' triggers, requiring `integration_id` if `service_type` is 'slack', 'pagerduty', or 'opsgenie', and `target_identifier`/`target_display` if `service_type` is 'slack' or 'opsgenie'.\"},{\"slug\":\"SENTRY_SUBMIT_USER_FEEDBACK\",\"name\":\"Submit user feedback\",\"description\":\"Submits user feedback tied to a specific Sentry event. Use when you need to associate user-reported issues with specific error events. DEPRECATED: This endpoint is maintained for legacy SDKs; new implementations should use the User Feedback Widget. Feedback must be submitted within 30 minutes of event creation and can only be modified within 5 minutes of submission.\"},{\"slug\":\"SENTRY_SWITCH_TEAM_ROLE_FOR_MEMBER\",\"name\":\"Switch team role for member\",\"description\":\"Changes a member's role within a Sentry team, ensuring the member is already part of the team and that any organization-level role restrictions are respected.\"},{\"slug\":\"SENTRY_TOGGLE_PROJECT_FILTER_STATUS\",\"name\":\"Toggle project filter status\",\"description\":\"Updates the status or configuration of a specific inbound data filter for a Sentry project; use `active` for most filters, or `subfilters` if `filter_id` is `legacy-browsers`.\"},{\"slug\":\"SENTRY_UPDATE_A_MONITOR\",\"name\":\"Update a monitor\",\"description\":\"Updates a monitor's configuration and settings. Use when you need to modify monitor name, schedule, check-in margin, max runtime, timezone, or alert thresholds.\"},{\"slug\":\"SENTRY_UPDATE_A_MONITOR_BY_ID\",\"name\":\"Update a monitor by ID\",\"description\":\"Updates an existing Sentry monitor (detector) for metric-based issue detection. Use when you need to modify monitor configuration, thresholds, data sources, or enable/disable the monitor. Note: This endpoint is in beta and may change.\"},{\"slug\":\"SENTRY_UPDATE_AN_ALERT_BY_ID\",\"name\":\"Update an alert by ID\",\"description\":\"Tool to update an existing Sentry alert (workflow) by ID. Use when you need to modify alert settings like name, filters, triggers, or configuration. Note: This endpoint is in beta and supported by New Monitors and Alerts.\"},{\"slug\":\"SENTRY_UPDATE_AN_EXISTING_CUSTOM_INTEGRATION\",\"name\":\"Update an existing custom integration\",\"description\":\"Updates an existing custom integration (Sentry App) with new configuration. Use this action to modify integration settings such as name, scopes, webhook URL, or other configuration. You must provide the integration's slug or ID and the required fields (name and scopes).\"},{\"slug\":\"SENTRY_UPDATE_A_PROJECTS_SYMBOL_SOURCE\",\"name\":\"Update a symbol source in a project\",\"description\":\"Updates an existing custom symbol source (HTTP, GCS, or S3) in a project for fetching debug symbols. Use when you need to modify the configuration of a symbol source identified by its ID.\"},{\"slug\":\"SENTRY_UPDATE_ENVIRONMENT_VISIBILITY\",\"name\":\"Update environment visibility\",\"description\":\"Updates the visibility of a specific environment within a Sentry project.\"},{\"slug\":\"SENTRY_UPDATE_EXTERNAL_TEAM_INTEGRATION\",\"name\":\"Update external team integration\",\"description\":\"Updates an existing external team integration's display name, provider, Sentry integration ID, or external ID; the `integration_id` must match a valid, configured Sentry integration for the organization and the specified `provider`.\"},{\"slug\":\"SENTRY_UPDATE_EXTERNAL_USER_FOR_ORGANIZATION\",\"name\":\"Update external user for organization\",\"description\":\"Updates attributes of an existing external user linkage (identified by `external_user_id`) within a Sentry organization (specified by `organization_id_or_slug`).\"},{\"slug\":\"SENTRY_UPDATE_ISSUE_ATTRIBUTES_IN_ORGANIZATION\",\"name\":\"Update issue attributes in organization\",\"description\":\"Updates specified attributes of an existing Sentry issue within a Sentry organization, leaving other attributes unchanged.\"},{\"slug\":\"SENTRY_UPDATE_MONITOR_FOR_PROJECT\",\"name\":\"Update monitor for project\",\"description\":\"Updates a monitor for a project. Use when you need to modify monitor name, schedule, check-in margin, max runtime, timezone, status, owner, or alert thresholds for a project-level monitor.\"},{\"slug\":\"SENTRY_UPDATE_ORGANIZATION_ALERT_RULES\",\"name\":\"Update organization alert rules\",\"description\":\"Replaces an existing Sentry metric alert rule's configuration; fields not provided in the request are removed or reset. This action updates an existing metric alert rule. Note that this is a full replacement - any fields not provided will be removed or reset to defaults. Prerequisites: - The organization must have metric alerts feature enabled - The alert_rule_id must be a valid existing metric alert rule - Use SENTRY_FETCH_ORGANIZATION_ALERT_RULES to get existing alert rule IDs\"},{\"slug\":\"SENTRY_UPDATE_ORGANIZATION_DASHBOARD\",\"name\":\"Update organization dashboard\",\"description\":\"Updates an existing custom dashboard, allowing modifications to its title, widgets, and data filters; providing `widgets`, `projects`, `environment`, `period`, `start`, `end`, or `filters` will overwrite existing settings for those fields.\"},{\"slug\":\"SENTRY_UPDATE_ORGANIZATION_MEMBER_ROLE\",\"name\":\"Update organization member role\",\"description\":\"Updates a Sentry organization member's organization-level role (`orgRole`) and/or their team roles (`teamRoles`), ensuring the initiator has permissions equivalent to both the member's current and intended new `orgRole` if `orgRole` is being modified.\"},{\"slug\":\"SENTRY_UPDATE_PROJECT_DETAILS\",\"name\":\"Update project details\",\"description\":\"Updates a Sentry project's settings (e.g., name, slug, platform, bookmark status); `isBookmarked` can be updated with `project:read` permission, other fields typically require `project:write` or `project:admin` permissions.\"},{\"slug\":\"SENTRY_UPDATE_PROJECT_ISSUE_STATUS_AND_DETAILS\",\"name\":\"Update project issue status and details\",\"description\":\"Bulk update attributes of issues in a Sentry project, targeting issues by a list of IDs or by a query status (which implies updating all matching issues if IDs are omitted).\"},{\"slug\":\"SENTRY_UPDATE_PROJECT_KEY_CONFIGURATION\",\"name\":\"Update project key configuration\",\"description\":\"Updates configuration settings (e.g., name, status, rate limits, SDK options) for an existing Sentry client key (DSN), identified by `key_id`, within a specified `project_id_or_slug` and `organization_id_or_slug`.\"},{\"slug\":\"SENTRY_UPDATE_PROJECT_OWNERSHIP_SETTINGS\",\"name\":\"Update project ownership settings\",\"description\":\"Updates the ownership configuration settings (raw rules, fallthrough, auto-assignment, CODEOWNERS sync) for a Sentry project; omitted attributes retain their current values.\"},{\"slug\":\"SENTRY_UPDATE_PROJECT_RELEASE_FILE_DETAILS\",\"name\":\"Update project release file details\",\"description\":\"Updates the name (path) or distribution identifier of a specific file within an existing project release in Sentry.\"}]},{\"slug\":\"snowflake\",\"name\":\"Snowflake\",\"description\":\"Snowflake is a cloud-based data warehouse offering elastic scaling, secure data sharing, and SQL analytics across multiple cloud environments\",\"logo\":\"https://logos.composio.dev/api/snowflake\",\"rank\":34,\"tools\":[{\"slug\":\"SNOWFLAKE_CANCEL_STATEMENT_EXECUTION\",\"name\":\"Cancel Statement Execution\",\"description\":\"Cancels the execution of a running SQL statement. Use this action to stop a long-running query.\"},{\"slug\":\"SNOWFLAKE_CHECK_STATEMENT_STATUS\",\"name\":\"Check Statement Status\",\"description\":\"Retrieves the status and results of a previously submitted SQL statement using its statement handle. Use this to poll async queries submitted via SNOWFLAKE_SUBMIT_SQL_STATEMENT; call repeatedly until status is no longer pending. Use SNOWFLAKE_CANCEL_STATEMENT to abort a hanging query.\"},{\"slug\":\"SNOWFLAKE_DROP_WAREHOUSE\",\"name\":\"Drop Warehouse\",\"description\":\"Drops (permanently deletes) a warehouse in Snowflake. This operation is irreversible — once a warehouse is dropped, it cannot be recovered. Use this action when you need to permanently remove a warehouse that is no longer needed. Requires OWNERSHIP privilege on the warehouse.\"},{\"slug\":\"SNOWFLAKE_EXECUTE_SQL\",\"name\":\"Execute SQL\",\"description\":\"Execute SQL statements in Snowflake and retrieve results. Supports SELECT queries for data retrieval, DDL statements (CREATE, ALTER, DROP) for schema management, and DML statements (INSERT, UPDATE, DELETE) for data modification. Returns comprehensive result metadata including column types, row counts, and execution status. Unquoted SQL identifiers are auto-uppercased by Snowflake — use matching case in `database`, `schema_name`, `warehouse`, and `role` parameters to avoid 'object not found' errors. Always apply explicit time-range filters and a LIMIT clause to unbounded SELECT queries to prevent large, slow result sets.\"},{\"slug\":\"SNOWFLAKE_FETCH_CATALOG_INTEGRATION\",\"name\":\"Fetch Catalog Integration\",\"description\":\"Retrieves detailed configuration and metadata for a specific catalog integration. Catalog integrations allow Snowflake to connect to external Apache Iceberg catalogs (AWS Glue, Snowflake Open Catalog/Polaris, or Apache Iceberg REST catalogs) to query Iceberg tables managed by those external systems.\"},{\"slug\":\"SNOWFLAKE_GET_ACTIVE_SCHEDULED_MAINTENANCES\",\"name\":\"Get Active Scheduled Maintenances\",\"description\":\"Retrieves a list of any active scheduled maintenances currently in the In Progress or Verifying state.\"},{\"slug\":\"SNOWFLAKE_GET_ALL_SCHEDULED_MAINTENANCES\",\"name\":\"Get All Scheduled Maintenances\",\"description\":\"Retrieves a list of the 50 most recent scheduled maintenances, including those in the Completed state.\"},{\"slug\":\"SNOWFLAKE_GET_COMPONENT_STATUS\",\"name\":\"Get Component Status\",\"description\":\"Retrieves the status of individual components, each listed with its current status.\"},{\"slug\":\"SNOWFLAKE_GET_STATUS_ROLLUP\",\"name\":\"Get Status Rollup\",\"description\":\"Retrieves the status rollup for the entire page, including indicators and human-readable descriptions of the blended component status.\"},{\"slug\":\"SNOWFLAKE_GET_STATUS_SUMMARY\",\"name\":\"Get Status Summary\",\"description\":\"Retrieves the current status summary from Snowflake's public status page (status.snowflake.com). Returns overall system status, operational status of all regional components (AWS, Azure, GCP regions), any unresolved incidents, and upcoming or in-progress scheduled maintenances. This is a public endpoint that provides global Snowflake service status, not account-specific information.\"},{\"slug\":\"SNOWFLAKE_GET_UNRESOLVED_INCIDENTS\",\"name\":\"Get Unresolved Incidents\",\"description\":\"Retrieves a list of any unresolved incidents from the Snowflake status page. This endpoint returns incidents currently in the Investigating, Identified, or Monitoring state. Returns an empty list if there are no active incidents. This is a public status page API that does not require authentication.\"},{\"slug\":\"SNOWFLAKE_GET_UPCOMING_SCHEDULED_MAINTENANCES\",\"name\":\"Get Upcoming Scheduled Maintenances\",\"description\":\"Retrieves upcoming scheduled maintenances from Snowflake's public status page. This action queries the Snowflake status API to get a list of any scheduled maintenance events that are still in the 'Scheduled' state (not yet started or completed). The response includes maintenance details such as impact level, scheduled time windows, incident updates, and direct links to the maintenance notices. Note: This uses Snowflake's public status API and does not require authentication.\"},{\"slug\":\"SNOWFLAKE_SHOW_DATABASES\",\"name\":\"Show Databases\",\"description\":\"Lists all databases for which you have access privileges. Shows database metadata including name, creation date, owner, retention time, and more. Can filter results and include dropped databases within Time Travel retention period.\"},{\"slug\":\"SNOWFLAKE_SHOW_SCHEMAS\",\"name\":\"Show Schemas\",\"description\":\"Lists all schemas for which you have access privileges. Shows schema metadata including name, creation date, owner, database, retention time, and more. Can filter results and include dropped schemas within Time Travel retention period.\"},{\"slug\":\"SNOWFLAKE_SHOW_TABLES\",\"name\":\"Show Tables\",\"description\":\"Lists all tables for which you have access privileges. Shows table metadata including name, creation date, owner, database, schema, row count, size in bytes, clustering keys, and more. Can filter results and include dropped tables within Time Travel retention period.\"},{\"slug\":\"SNOWFLAKE_SUBMIT_SQL_STATEMENT\",\"name\":\"Submit SQL Statement (Deprecated)\",\"description\":\"DEPRECATED: Use ExecuteSql instead. Submits a SQL statement for execution. Execution is asynchronous; monitor status with SNOWFLAKE_CHECK_STATEMENT_STATUS for long-running queries.\"},{\"slug\":\"SNOWFLAKE_VALIDATE_CREDENTIAL\",\"name\":\"Validate Credential\",\"description\":\"Validates Snowflake credentials by executing a lightweight test query. Returns session information if credentials are valid, or error details if authentication fails. Use this action when you need to verify that API credentials are properly configured and have access to the Snowflake account before executing other operations. This check does not require compute resources (warehouse) and completes quickly.\"}]},{\"slug\":\"hackernews\",\"name\":\"Hacker News\",\"description\":\"Hacker News is a tech-focused news aggregator by Y Combinator, featuring user-submitted stories and discussions on startups, programming, and emerging trends\",\"logo\":\"https://logos.composio.dev/api/hackernews\",\"rank\":35,\"tools\":[{\"slug\":\"HACKERNEWS_GET_ASK_STORIES\",\"name\":\"Get Ask HN Story IDs\",\"description\":\"Get up to 200 latest Ask HN story IDs from Hacker News. Returns an array of item IDs for Ask HN posts in ranked order.\"},{\"slug\":\"HACKERNEWS_GET_BEST_STORIES\",\"name\":\"Get Best HackerNews Stories\",\"description\":\"Get up to 500 best story IDs from HackerNews ranked by score. Returns story IDs only. Use the returned IDs with get_item_with_id action to fetch full story details.\"},{\"slug\":\"HACKERNEWS_GET_ITEM\",\"name\":\"Get Hacker News Item\",\"description\":\"Tool to get a Hacker News item by its unique ID from the Firebase API. Use when you need to retrieve details about a specific story, comment, job, poll, or pollopt.\"},{\"slug\":\"HACKERNEWS_GET_ITEM_WITH_ID\",\"name\":\"Get Hackernews Item\",\"description\":\"Get a specific item from Hacker News using its ID. Limits response size to prevent context overflow.\"},{\"slug\":\"HACKERNEWS_GET_JOB_STORIES\",\"name\":\"Get Job Story IDs\",\"description\":\"Get up to 200 latest job story IDs from Hacker News. Returns an array of item IDs for job postings that can be used to fetch full job details.\"},{\"slug\":\"HACKERNEWS_GET_LATEST_POSTS\",\"name\":\"Get Latest Hackernews Posts\",\"description\":\"Get the latest posts from Hacker News based on optional filters. Results can be limited using the size parameter.\"},{\"slug\":\"HACKERNEWS_GET_MAX_ITEM_ID\",\"name\":\"Get Max Item ID\",\"description\":\"Tool to get the current largest item ID from Hacker News. Use when you need to discover the most recent items or iterate through all items in the system by walking backward from this ID.\"},{\"slug\":\"HACKERNEWS_GET_NEW_STORIES\",\"name\":\"Get New Hacker News Stories\",\"description\":\"Get up to 500 newest story IDs from Hacker News. Returns an array of item IDs sorted by recency (most recent first). Use these IDs with the Get Item action to retrieve full story details.\"},{\"slug\":\"HACKERNEWS_GET_SHOW_STORIES\",\"name\":\"Get Show HN Stories\",\"description\":\"Tool to retrieve up to 200 latest Show HN story IDs from Hacker News. Use when you need to find recent Show HN posts where people share their projects, products, or creations.\"},{\"slug\":\"HACKERNEWS_GET_TOP_STORIES\",\"name\":\"Get Top HackerNews Stories\",\"description\":\"Get up to 500 top story IDs from HackerNews including jobs. Returns story IDs sorted by front page position. Use the returned IDs with get_item_with_id action to fetch full story details.\"},{\"slug\":\"HACKERNEWS_GET_UPDATES\",\"name\":\"Get Hacker News Updates\",\"description\":\"Get recently changed items and user profiles from Hacker News. Use this to monitor recent activity or updates on the platform.\"},{\"slug\":\"HACKERNEWS_GET_USER\",\"name\":\"Get Hacker News User\",\"description\":\"Retrieve a Hacker News user's public profile by their username. Returns the user's username, karma score, and optional bio/about text. Use this to look up information about HN community members.\"},{\"slug\":\"HACKERNEWS_GET_USER_BY_USERNAME\",\"name\":\"Get HackerNews User by Username\",\"description\":\"Tool to get a user profile by their case-sensitive username from the HackerNews Firebase API. Use when you need detailed user information including creation date, karma, bio, and submission history. Only users with public activity are available.\"},{\"slug\":\"HACKERNEWS_SEARCH_POSTS\",\"name\":\"Search Hackernews Posts\",\"description\":\"Search Hacker News posts using full-text search powered by Algolia. Use this action to find stories, comments, and discussions on Hacker News matching specific keywords. Supports filtering by post type (story, comment, show_hn, ask_hn) and by author.\"}]},{\"slug\":\"elevenlabs\",\"name\":\"ElevenLabs\",\"description\":\"Create natural AI voices instantly in any language - perfect for video creators, developers, and businesses.\",\"logo\":\"https://logos.composio.dev/api/elevenlabs\",\"rank\":36,\"tools\":[{\"slug\":\"ELEVENLABS_ADD_A_PRONUNCIATION_DICTIONARY\",\"name\":\"Add a pronunciation dictionary from file\",\"description\":\"Adds a new pronunciation dictionary from a lexicon file to improve speech synthesis accuracy.\"},{\"slug\":\"ELEVENLABS_ADD_OUTBOUND_PHONE_NUMBER\",\"name\":\"Add outbound phone number\",\"description\":\"Tool to import/register a Twilio phone number or SIP trunk into ElevenLabs Agents Platform. Use when you need to provision a phone number for outbound calls and ELEVENLABS_GET_AGENT_DETAILS returns empty phone_numbers. This does NOT purchase a new number; it imports an existing provider configuration into your ElevenLabs workspace.\"},{\"slug\":\"ELEVENLABS_ADD_PROJECT\",\"name\":\"Add new project with attributes\",\"description\":\"Use to create a new ElevenLabs project for text-to-speech synthesis (e.g., audiobooks); a project `name` is required by the API for creation, and content can be initialized using `from_url` or `from_document`.\"},{\"slug\":\"ELEVENLABS_ADD_PRONUNCIATION_DICTIONARY_FROM_RULES\",\"name\":\"Add pronunciation dictionary from rules\",\"description\":\"Tool to create a new pronunciation dictionary from provided rules for ElevenLabs text-to-speech. Use when you need to define custom pronunciations for specific words or phrases to improve speech accuracy. Supports both alias rules (simple text replacements) and phoneme rules (IPA phonetic notation).\"},{\"slug\":\"ELEVENLABS_ADD_RULES_TO_THE_PRONUNCIATION_DICTIONARY\",\"name\":\"Add rules to the pronunciation dictionary\",\"description\":\"Adds one or more custom pronunciation rules (alias or phoneme) to an existing pronunciation dictionary.\"},{\"slug\":\"ELEVENLABS_ADD_SHARING_VOICE\",\"name\":\"Add sharing voice\",\"description\":\"Adds an existing, shareable voice to a specified user's ElevenLabs account library under a new custom name, requiring the user's public ID and the voice ID.\"},{\"slug\":\"ELEVENLABS_ADD_VOICE\",\"name\":\"Add a voice\",\"description\":\"Adds a custom voice by uploading audio samples for voice cloning. Requires a name and at least one audio file. Recommended: 1-2 minutes of clear audio without background noise. Supported formats: mp3, wav, ogg. Returns a voice_id that can be used for text-to-speech after processing completes.\"},{\"slug\":\"ELEVENLABS_ATTACH_PHONE_NUMBER_TO_AGENT\",\"name\":\"Attach phone number to agent\",\"description\":\"Tool to assign or unassign an existing imported phone number to an agent by updating the phone number's assigned agent. Use when you need to programmatically route inbound calls to a specific agent or change agent assignment for a phone number.\"},{\"slug\":\"ELEVENLABS_CALCULATE_CONVAI_AGENT_LLM_USAGE\",\"name\":\"Calculate ConvAI Agent LLM Usage\",\"description\":\"Tool to calculate expected number of LLM tokens needed for a conversational AI agent. Use when estimating costs for an agent based on knowledge base size, prompt length, and RAG configuration.\"},{\"slug\":\"ELEVENLABS_CALCULATE_CONVAI_LLM_USAGE\",\"name\":\"Calculate ConvAI LLM Usage\",\"description\":\"Tool to calculate expected LLM usage costs for conversational AI agents. Use when you need to estimate pricing for different LLM models based on prompt length, knowledge base size, and RAG configuration.\"},{\"slug\":\"ELEVENLABS_CANCEL_CONVAI_BATCH_CALL\",\"name\":\"Cancel Batch Call\",\"description\":\"Tool to cancel a running batch call and set all recipients to cancelled status. Use when you need to stop an ongoing batch calling campaign.\"},{\"slug\":\"ELEVENLABS_CONVERT_CHAPTER\",\"name\":\"Convert chapter to audio\",\"description\":\"Converts the textual content of a chapter, identified by `chapter_id` within a `project_id`, into audio format.\"},{\"slug\":\"ELEVENLABS_CONVERT_PROJECT\",\"name\":\"Convert a project\",\"description\":\"Converts an existing ElevenLabs Studio project, including all its chapters and using its configured settings and voices, into speech.\"},{\"slug\":\"ELEVENLABS_CREATE_A_PREVIOUSLY_GENERATED_VOICE\",\"name\":\"Create a previously generated voice\",\"description\":\"Finalizes the creation of a voice using its `generated_voice_id` from a previous generation step by assigning a name, description, and optional labels.\"},{\"slug\":\"ELEVENLABS_CREATE_CONVAI_AGENT_TESTING\",\"name\":\"Create Conversational AI Agent Test\",\"description\":\"Tool to create a new ElevenLabs Conversational AI agent response test. Use when you need to set up automated testing for agent responses, tool calls, or conversation simulations. Supports three test types: 'llm' for response validation, 'tool_call' for tool execution verification, and 'simulation' for full conversation testing.\"},{\"slug\":\"ELEVENLABS_CREATE_CONVAI_KNOWLEDGE_BASE\",\"name\":\"Add to ConvAI Knowledge Base\",\"description\":\"Tool to add documentation to ElevenLabs Conversational AI knowledge base by uploading a file or referencing a webpage URL. Use when you need to provide reference materials or documentation that agents can access during conversations. Exactly one of 'file' or 'url' must be specified.\"},{\"slug\":\"ELEVENLABS_CREATE_CONVAI_KNOWLEDGE_BASE_FILE\",\"name\":\"Create ConvAI Knowledge Base File\",\"description\":\"Tool to create a knowledge base document from an uploaded file for ElevenLabs Conversational AI agents. Use when you need to provide documentation or reference material that agents can access during conversations. The uploaded file content will be indexed and made available to agents for answering user queries.\"},{\"slug\":\"ELEVENLABS_CREATE_CONVAI_KNOWLEDGE_BASE_FOLDER\",\"name\":\"Create ConvAI Knowledge Base Folder\",\"description\":\"Tool to create a folder in the ElevenLabs ConvAI knowledge base for organizing documents. Use when you need to group related documents together in a hierarchical structure.\"},{\"slug\":\"ELEVENLABS_CREATE_CONVAI_KNOWLEDGE_BASE_RAG_INDEX\",\"name\":\"Create ConvAI Knowledge Base RAG Index\",\"description\":\"Tool to compute or retrieve RAG indexes for multiple knowledge base documents in batch. Use when you need to enable semantic search on multiple knowledge base documents for conversational AI agents. This endpoint creates embeddings if missing or returns existing indexes, supporting up to 100 documents per request.\"},{\"slug\":\"ELEVENLABS_CREATE_CONVAI_KNOWLEDGE_BASE_TEXT\",\"name\":\"Create Knowledge Base Text Document\",\"description\":\"Tool to create a knowledge base document with text content in ElevenLabs Conversational AI. Use when you need to add text-based information to the knowledge base for agent reference.\"},{\"slug\":\"ELEVENLABS_CREATE_CONVAI_KNOWLEDGE_BASE_URL\",\"name\":\"Create Knowledge Base URL Document\",\"description\":\"Tool to create a knowledge base document by scraping the given webpage. Use when you need to add a web page as a knowledge source for a conversational AI agent.\"},{\"slug\":\"ELEVENLABS_CREATE_CONVAI_SECRET\",\"name\":\"Create ConvAI Workspace Secret\",\"description\":\"Tool to create a new secret for the ElevenLabs ConvAI workspace. Use when you need to securely store API keys, tokens, or other sensitive values that your conversational AI agents can reference.\"},{\"slug\":\"ELEVENLABS_CREATE_CONVAI_TOOL\",\"name\":\"Create Conversational AI Tool\",\"description\":\"Tool to create a new conversational AI tool in ElevenLabs workspace. Use when adding custom tools for agents to execute during conversations. Supports webhook (external HTTP APIs), client (client-side execution), system (built-in), and MCP (Model Context Protocol) tool types.\"},{\"slug\":\"ELEVENLABS_CREATE_CONVERSATIONAL_AGENT\",\"name\":\"Create Conversational AI Agent\",\"description\":\"Tool to create a new ElevenLabs Conversational AI agent with specified configuration. Use when you need to programmatically set up an agent with custom prompts, voice settings, and behavior. After creating the agent, you can chain other tools to attach phone numbers or configure additional settings.\"},{\"slug\":\"ELEVENLABS_CREATE_MUSIC_PLAN\",\"name\":\"Generate Music Composition Plan\",\"description\":\"Tool to generate a music composition plan from a text prompt using ElevenLabs Music API. Use when you need to create a structured plan for music generation with defined styles, sections, and durations. The generated plan can be used as input for actual music generation or as a template for variations.\"},{\"slug\":\"ELEVENLABS_CREATES_AUDIONATIVE_ENABLED_PROJECT\",\"name\":\"Create an AudioNative enabled project\",\"description\":\"Creates an ElevenLabs AudioNative project, generating an embeddable audio player from a provided content file using text-to-speech, allowing customization of player appearance, audio settings, and conversion options.\"},{\"slug\":\"ELEVENLABS_CREATE_SIMILAR_VOICES\",\"name\":\"Get similar library voices\",\"description\":\"Returns a list of shared voices similar to the provided audio sample. Use when you need to find voice matches based on audio characteristics. If neither similarity_threshold nor top_k is provided, default values will be applied.\"},{\"slug\":\"ELEVENLABS_CREATE_SINGLE_USE_TOKEN\",\"name\":\"Create Single Use Token\",\"description\":\"Tool to generate a time-limited single-use token with embedded authentication for frontend clients. Use when you need secure, temporary access tokens for WebSocket connections or real-time services.\"},{\"slug\":\"ELEVENLABS_CREATE_WORKSPACE_WEBHOOK\",\"name\":\"Create Workspace Webhook\",\"description\":\"Tool to create a new webhook for the workspace with specified authentication type. Use when you need to configure a webhook endpoint to receive notifications from ElevenLabs. The webhook_secret returned should be stored securely for verifying webhook authenticity.\"},{\"slug\":\"ELEVENLABS_DELETE_CHAPTER\",\"name\":\"Delete chapter from project\",\"description\":\"Irreversibly deletes a specific, existing chapter from an existing project, typically to remove unwanted or obsolete content.\"},{\"slug\":\"ELEVENLABS_DELETE_CONVAI_AGENT\",\"name\":\"Delete Conversational AI Agent\",\"description\":\"Tool to permanently delete a Conversational AI agent by its unique identifier. Use when you need to remove an agent configuration from the ElevenLabs workspace.\"},{\"slug\":\"ELEVENLABS_DELETE_CONVAI_AGENT_TESTING\",\"name\":\"Delete agent response test\",\"description\":\"Tool to delete an agent response test by ID. Use when you need to remove a test result or clean up test data.\"},{\"slug\":\"ELEVENLABS_DELETE_CONVAI_BATCH_CALLING\",\"name\":\"Delete batch call\",\"description\":\"Tool to permanently delete a batch call and all associated recipient records. Conversations remain in history. Use when cleaning up completed or cancelled batch calls.\"},{\"slug\":\"ELEVENLABS_DELETE_CONVAI_CONVERSATION\",\"name\":\"Delete conversation by ID\",\"description\":\"Tool to delete a particular Conversational AI conversation by ID. Use when you need to remove a conversation from the system for cleanup, compliance, or data management purposes.\"},{\"slug\":\"ELEVENLABS_DELETE_CONVAI_KNOWLEDGE_BASE\",\"name\":\"Delete Knowledge Base Document or Folder\",\"description\":\"Tool to delete a document or folder from the knowledge base. Use when you need to remove a knowledge base document or folder that is no longer needed.\"},{\"slug\":\"ELEVENLABS_DELETE_CONVAI_KNOWLEDGE_BASE_RAG_INDEX\",\"name\":\"Delete ConvAI Knowledge Base RAG Index\",\"description\":\"Tool to delete RAG index for a knowledge base document. Use when you need to remove semantic search indexing from a document to free up resources or when the document no longer needs to be indexed.\"},{\"slug\":\"ELEVENLABS_DELETE_CONVAI_SECRET\",\"name\":\"Delete workspace secret\",\"description\":\"Tool to delete a workspace secret if it's not in use. Use when you need to remove unused secrets from the conversational AI workspace for security or cleanup purposes.\"},{\"slug\":\"ELEVENLABS_DELETE_CONVAI_TOOL\",\"name\":\"Delete conversational AI tool\",\"description\":\"Tool to delete a conversational AI tool from the workspace by ID. Use when you need to remove a tool configuration that is no longer needed or to clean up outdated tool definitions.\"},{\"slug\":\"ELEVENLABS_DELETE_DUBBING_PROJECT\",\"name\":\"Delete a dubbing project\",\"description\":\"Permanently deletes a dubbing project by its ID; this action is irreversible and the project cannot be recovered.\"},{\"slug\":\"ELEVENLABS_DELETE_HISTORY_ITEM\",\"name\":\"Delete history item\",\"description\":\"Permanently deletes a specific history item (including its audio file and metadata) using its `history_item_id`; this operation is irreversible and should be used with caution.\"},{\"slug\":\"ELEVENLABS_DELETE_MCP_SERVER\",\"name\":\"Delete MCP server\",\"description\":\"Tool to delete a specific MCP server configuration from the workspace. Use when you need to remove an MCP server that is no longer needed or to clean up outdated configurations.\"},{\"slug\":\"ELEVENLABS_DELETE_PHONE_NUMBER\",\"name\":\"Delete phone number by id\",\"description\":\"Tool to delete an imported phone number from the ElevenLabs workspace by ID. Use when you need to remove a phone number configuration for cleanup or to avoid stale configurations in automated environments.\"},{\"slug\":\"ELEVENLABS_DELETE_PROJECT\",\"name\":\"Delete project by id\",\"description\":\"Use to irreversibly delete a specific project by its `project_id`; the project must exist and be accessible, and this action cannot be undone.\"},{\"slug\":\"ELEVENLABS_DELETE_SAMPLE\",\"name\":\"Delete voice sample\",\"description\":\"Permanently deletes a specific voice sample for a given voice ID; this action is irreversible.\"},{\"slug\":\"ELEVENLABS_DELETE_VOICE\",\"name\":\"Delete voice by id\",\"description\":\"Permanently and irreversibly deletes a specific custom voice using its `voice_id`; the voice must exist and the authenticated user must have permission to delete it.\"},{\"slug\":\"ELEVENLABS_DELETE_WORKSPACE_WEBHOOK\",\"name\":\"Delete workspace webhook\",\"description\":\"Tool to delete a specified workspace webhook by its ID. Use when you need to remove a webhook configuration that is no longer needed or to clean up webhook integrations.\"},{\"slug\":\"ELEVENLABS_DOWNLOAD_HISTORY_ITEMS\",\"name\":\"Download history items\",\"description\":\"Downloads audio clips from history by ID(s), returning a single file or a ZIP archive, with an optional output format (e.g., 'wav'); provides only audio content, no metadata.\"},{\"slug\":\"ELEVENLABS_DUB_A_VIDEO_OR_AN_AUDIO_FILE\",\"name\":\"Dub a video or an audio file\",\"description\":\"Dub a video or audio file into a specified target language, requiring 'file' or 'source_url', 'target_lang', and 'csv_file' if 'mode' is 'manual'.\"},{\"slug\":\"ELEVENLABS_DUPLICATE_CONVAI_AGENT\",\"name\":\"Duplicate Conversational AI Agent\",\"description\":\"Tool to create a new agent by duplicating an existing one. Use when you need to clone an agent's configuration. The new agent will inherit all settings from the original agent but can be given a new name.\"},{\"slug\":\"ELEVENLABS_EDIT_VOICE\",\"name\":\"Edit voice\",\"description\":\"Updates the name, audio files, description, or labels for an existing voice model. The voice_id must be for a voice owned by you (cloned voices). Premade/default voices cannot be edited. The 'name' field is required for all edit operations. This endpoint uses multipart/form-data format for the request body.\"},{\"slug\":\"ELEVENLABS_EDIT_VOICE_SETTINGS\",\"name\":\"Edit voice settings\",\"description\":\"Edits key voice settings (e.g., stability, similarity enhancement, style exaggeration, speaker boost) for an existing voice, affecting all future audio generated with that voice ID.\"},{\"slug\":\"ELEVENLABS_GENERATE_A_RANDOM_VOICE\",\"name\":\"Generate a random voice\",\"description\":\"Generates a unique, random ElevenLabs text-to-speech voice based on input text and specified voice characteristics.\"},{\"slug\":\"ELEVENLABS_GET_AGENT_DETAILS\",\"name\":\"Get agent details\",\"description\":\"Tool to retrieve available Conversational AI agents and outbound-capable Twilio phone numbers. Use when selecting an agent and phone number for outbound calls. Always reference agents by agent_id (stable identifier), not agent_name (mutable). Returns basic metadata only — conversation_config and webhook settings require a separate ConvAI agent API call. Pass agent_id and agent_phone_number_id directly to ELEVENLABS_OUTBOUND_CALL; IDs must be current and owned by the authenticated account.\"},{\"slug\":\"ELEVENLABS_GET_AGENT_LINK\",\"name\":\"Get Agent Link\",\"description\":\"Tool to get the current shareable link for a Conversational AI agent. Use when you need to retrieve the link URL for sharing the agent with others.\"},{\"slug\":\"ELEVENLABS_GET_A_PROFILE_PAGE\",\"name\":\"Get user profile\",\"description\":\"Retrieves the profile information for the authenticated ElevenLabs user (identified by API key).\"},{\"slug\":\"ELEVENLABS_GET_AUDIO_FROM_HISTORY_ITEM\",\"name\":\"Get audio from history item\",\"description\":\"Retrieves the audio content for a specific history item from ElevenLabs, using a `history_item_id` that must correspond to a previously generated audio.\"},{\"slug\":\"ELEVENLABS_GET_AUDIO_FROM_SAMPLE\",\"name\":\"Get sample audio\",\"description\":\"Retrieves the audio for a given `sample_id` that must belong to the specified `voice_id`.\"},{\"slug\":\"ELEVENLABS_GET_AUDIO_NATIVE_SETTINGS\",\"name\":\"Get audio native settings\",\"description\":\"Tool to retrieve player settings for a specific Audio Native project. Use when you need to check the current configuration of an audio-native project, including display settings, colors, and status.\"},{\"slug\":\"ELEVENLABS_GET_CHAPTER_BY_ID\",\"name\":\"Get chapter by ID\",\"description\":\"Fetches comprehensive details for a specific chapter within a given project, including its metadata (name, ID), conversion status, progress, download availability, and content statistics.\"},{\"slug\":\"ELEVENLABS_GET_CHAPTERS\",\"name\":\"Get chapters by project id\",\"description\":\"Retrieves a list of all chapters, their details, and conversion status for a project, useful for managing content or tracking progress.\"},{\"slug\":\"ELEVENLABS_GET_CHAPTER_SNAPSHOTS\",\"name\":\"Get chapter snapshots\",\"description\":\"Retrieves all saved version snapshots for a specific chapter within a given project, enabling review of its history or reversion to prior states.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_AGENT\",\"name\":\"Get Conversational AI Agent\",\"description\":\"Tool to retrieve the complete configuration for a specific Conversational AI agent by ID. Use when you need to inspect or audit an agent's settings, workflow, conversation config, or assigned channels.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_AGENT_KNOWLEDGE_BASE_SIZE\",\"name\":\"Get Agent Knowledge Base Size\",\"description\":\"Tool to retrieve the number of pages in a conversational AI agent's knowledge base. Use when you need to check the size of an agent's knowledge base content.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_AGENTS_SUMMARIES\",\"name\":\"Get ConvAI Agents Summaries\",\"description\":\"Tool to retrieve summaries for specified Conversational AI agents. Use when you need to fetch metadata such as name, tags, creation time, access level, and archival status for one or more agents.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_AGENTS_WIDGET\",\"name\":\"Get Agent Widget Config\",\"description\":\"Tool to retrieve the widget configuration for a Conversational AI agent. Use when you need to fetch display settings, colors, text content, and behavior options for an agent's embedded widget.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_AGENT_TESTING_BY_ID\",\"name\":\"Get Agent Response Test By ID\",\"description\":\"Tool to retrieve an ElevenLabs Conversational AI agent response test by its ID. Use when you need to fetch details of a specific test including its configuration, type, and test parameters.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_ANALYTICS_LIVE_COUNT\",\"name\":\"Get conversational AI analytics live count\",\"description\":\"Tool to retrieve the live count of active ongoing Conversational AI conversations. Use when monitoring real-time conversation activity or checking current load.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_BATCH_CALLING\",\"name\":\"Get batch call details\",\"description\":\"Tool to get detailed information about a batch call including all recipients. Use when you need to check the status, progress, or results of a previously submitted batch calling job.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_BATCH_CALLING_WORKSPACE\",\"name\":\"Get Batch Calls for Workspace\",\"description\":\"Tool to retrieve all batch calls for the current workspace. Use when you need to list all batch calling campaigns, check their status, or find specific batch calls by name or agent.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_CONVERSATIONS\",\"name\":\"Get Conversational AI Conversations\",\"description\":\"Tool to retrieve all conversations of agents that user owns. Use when you need to list conversations, optionally filtered by agent, time range, duration, rating, or other criteria. Supports pagination via cursor.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_KNOWLEDGE_BASE\",\"name\":\"Get ConvAI Knowledge Base\",\"description\":\"Tool to retrieve a list of available knowledge base documents. Use when you need to browse, search, or filter knowledge base documents by name, type, folder, or ownership. Supports pagination via cursor for large result sets.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_KNOWLEDGE_BASE_CONTENT\",\"name\":\"Get Knowledge Base Document Content\",\"description\":\"Tool to retrieve the entire content of a document from the knowledge base. Use when you need to access or read the full text content of a knowledge base document.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_KNOWLEDGE_BASE_DEPENDENT_AGENTS\",\"name\":\"Get Knowledge Base Dependent Agents\",\"description\":\"Tool to retrieve a list of agents depending on a specific knowledge base document. Use when you need to identify which agents are using a particular document, either directly or transitively.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_KNOWLEDGE_BASE_DOCUMENTATION\",\"name\":\"Get Knowledge Base Documentation\",\"description\":\"Tool to get details about a specific documentation making up the agent's knowledge base. Use when you need to retrieve information about a knowledge base document, including its content, type, and metadata.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_KNOWLEDGE_BASE_RAG_INDEX\",\"name\":\"Get Knowledge Base RAG Index Overview\",\"description\":\"Tool to retrieve RAG index overview including total size and usage information. Use when you need to check storage limits, monitor usage, or understand which embedding models are consuming space in knowledge base documents.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_KNOWLEDGE_BASE_RAG_INDEXES\",\"name\":\"Get ConvAI Knowledge Base RAG Indexes\",\"description\":\"Tool to retrieve all RAG indexes for a specified knowledge base document. Use when you need to view the indexing status, models used, and usage statistics for a document's semantic search capabilities.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_KNOWLEDGE_BASE_SOURCE_FILE_URL\",\"name\":\"Get Knowledge Base Source File URL\",\"description\":\"Tool to get a signed URL to download the original source file of a file-type document from the knowledge base. Use when you need to download the original file that was uploaded to create a knowledge base document.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_KNOWLEDGE_BASE_SUMMARIES\",\"name\":\"Get Knowledge Base Summaries\",\"description\":\"Tool to retrieve knowledge base document summaries by their IDs. Use when you need to get summaries for multiple knowledge base documents in a single request.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_MCP_SERVER\",\"name\":\"Get ConvAI MCP Server\",\"description\":\"Tool to retrieve a specific MCP server configuration from the workspace. Use when you need to inspect details of an existing MCP server including its URL, transport type, approval policies, and dependent agents.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_MCP_SERVERS\",\"name\":\"Get ConvAI MCP Servers\",\"description\":\"Tool to retrieve all MCP (Model Context Protocol) server configurations available in the workspace. Use when you need to list all registered MCP servers or check which servers are available for conversational AI agents.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_MCP_SERVER_TOOLS\",\"name\":\"Get ConvAI MCP Server Tools\",\"description\":\"Tool to retrieve all tools available for a specific MCP server configuration. Use when you need to inspect what tools an MCP server provides or verify tool availability before using them.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_PHONE_NUMBER_BY_ID\",\"name\":\"Get Phone Number by ID\",\"description\":\"Tool to retrieve detailed configuration for a specific phone number by ID. Use when you need to inspect a phone number's provider details, capabilities, agent assignments, or SIP trunk configuration.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_SECRETS\",\"name\":\"Get ConvAI Workspace Secrets\",\"description\":\"Tool to retrieve all workspace secrets for the user. Use when you need to list stored secrets that can be used for authentication and integration with conversational AI agents. Supports pagination.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_SETTINGS\",\"name\":\"Get Convai Settings\",\"description\":\"Tool to retrieve Convai settings for the workspace. Use when you need to inspect webhook configurations, RAG retention settings, or MCP server capabilities.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_SETTINGS_DASHBOARD\",\"name\":\"Get Convai Dashboard Settings\",\"description\":\"Tool to retrieve Convai dashboard settings for the workspace. Use when you need to inspect configured dashboard charts for monitoring conversational AI performance.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_TEST_INVOCATIONS\",\"name\":\"List Test Invocations\",\"description\":\"Tool to list all test invocations for a specific conversational AI agent with pagination support. Use when you need to retrieve test invocation history, check test results, or paginate through large sets of test runs.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_TOOL\",\"name\":\"Get Conversational AI Tool\",\"description\":\"Tool to retrieve the complete configuration for a specific conversational AI tool by ID. Use when you need to inspect a tool's settings, type, or usage statistics from the workspace.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_TOOLS\",\"name\":\"Get ConvAI tools\",\"description\":\"Tool to retrieve all available tools in the workspace. Use when you need to list, search, or discover tools that can be used with Conversational AI agents.\"},{\"slug\":\"ELEVENLABS_GET_CONVAI_TOOLS_DEPENDENT_AGENTS\",\"name\":\"Get Tool Dependent Agents\",\"description\":\"Tool to retrieve a list of agents depending on a specific tool. Use when you need to identify which agents are using a particular tool in their configuration.\"},{\"slug\":\"ELEVENLABS_GET_CONVERSATION_BY_ID\",\"name\":\"Get conversation by ID\",\"description\":\"Tool to fetch full details for a single Conversational AI conversation by ID. Use when you need transcript-level analysis, metadata, or audio status flags for a specific conversation.\"},{\"slug\":\"ELEVENLABS_GET_CONVERSATION_SIGNED_URL\",\"name\":\"Get Conversation Signed URL\",\"description\":\"Tool to get a signed URL to start a conversation with an agent that requires authorization. Use when you need to obtain a secure WebSocket URL for initiating a conversation session.\"},{\"slug\":\"ELEVENLABS_GET_DEFAULT_VOICE_SETTINGS\",\"name\":\"Get default voice settings\",\"description\":\"Retrieves the ElevenLabs text-to-speech service's default voice settings (stability, similarity boost, style, speaker boost) that are applied when no voice-specific or request-specific settings are provided.\"},{\"slug\":\"ELEVENLABS_GET_DUBBED_FILE\",\"name\":\"Get dubbed audio for a language\",\"description\":\"Retrieves an existing dubbed audio file for a specific `dubbing_id` and `language_code`.\"},{\"slug\":\"ELEVENLABS_GET_DUBBING_PROJECT_METADATA\",\"name\":\"Get dubbing project metadata\",\"description\":\"Retrieves metadata and status for a specific dubbing project by its ID.\"},{\"slug\":\"ELEVENLABS_GET_DUBBING_TRANSCRIPTS_FORMAT\",\"name\":\"Get dubbing transcript in specific format\",\"description\":\"Retrieves the transcript for a specific dubbing project and language in the requested format (SRT, WebVTT, or JSON). Use this when you need subtitles or detailed transcript data with timing information for a dubbed video or audio.\"},{\"slug\":\"ELEVENLABS_GET_GENERATED_ITEMS\",\"name\":\"Get generated items\",\"description\":\"Retrieves metadata for a list of generated audio items from history, supporting pagination and optional filtering by voice ID.\"},{\"slug\":\"ELEVENLABS_GET_HISTORY_ITEM_BY_ID\",\"name\":\"Get history item by id\",\"description\":\"Retrieves detailed information (excluding the audio file) for a specific audio generation history item from ElevenLabs, using its unique ID.\"},{\"slug\":\"ELEVENLABS_GET_MCP_TOOL_CONFIG\",\"name\":\"Get MCP Tool Configuration\",\"description\":\"Tool to retrieve configuration overrides for a specific MCP tool within an MCP server. Use when you need to inspect the custom execution settings for individual tools.\"},{\"slug\":\"ELEVENLABS_GET_METADATA_FOR_A_PRONUNCIATION_DICTIONARY\",\"name\":\"Get pronunciation dictionary metadata\",\"description\":\"Retrieves metadata for a specific, existing pronunciation dictionary from ElevenLabs using its ID.\"},{\"slug\":\"ELEVENLABS_GET_MODELS\",\"name\":\"Get models\",\"description\":\"Retrieves a detailed list of all available ElevenLabs text-to-speech (TTS) models and their capabilities.\"},{\"slug\":\"ELEVENLABS_GET_PROJECT_BY_ID\",\"name\":\"Get project by ID\",\"description\":\"Use to retrieve all details for a specific project, including its chapters and their conversion statuses, by providing the project's unique ID.\"},{\"slug\":\"ELEVENLABS_GET_PROJECTS\",\"name\":\"Get projects\",\"description\":\"Fetches a list of all projects and their details associated with the user's ElevenLabs account; this is a read-only operation.\"},{\"slug\":\"ELEVENLABS_GET_PROJECT_SNAPSHOTS\",\"name\":\"Get project snapshots\",\"description\":\"Retrieves all available snapshots (saved states or versions) for an existing project, enabling history tracking, version comparison, or accessing specific states for playback/processing, particularly in text-to-speech workflows.\"},{\"slug\":\"ELEVENLABS_GET_PRONUNCIATION_DICTIONARIES\",\"name\":\"Get pronunciation dictionaries\",\"description\":\"Retrieves a paginated list of pronunciation dictionaries, used to customize how specific words or phrases are pronounced by the text-to-speech (TTS) engine.\"},{\"slug\":\"ELEVENLABS_GET_PRONUNCIATION_DICT_VERSION\",\"name\":\"Get pronunciation dictionary version\",\"description\":\"Downloads the Pronunciation Lexicon Specification (PLS) file for an existing version of a pronunciation dictionary from ElevenLabs, used to customize TTS pronunciation.\"},{\"slug\":\"ELEVENLABS_GET_SERVICE_ACCOUNTS\",\"name\":\"Get Service Accounts\",\"description\":\"Tool to list all service accounts in the workspace. Use when you need to view service accounts, their associated API keys, or manage workspace access.\"},{\"slug\":\"ELEVENLABS_GET_SHARED_VOICES\",\"name\":\"Get shared voices\",\"description\":\"Retrieves a paginated and filterable list of shared voices from the ElevenLabs Voice Library.\"},{\"slug\":\"ELEVENLABS_GET_SSO_PROVIDER_ADMIN\",\"name\":\"Get sso provider admin\",\"description\":\"Retrieves the SSO provider configuration for a specified workspace, typically for review purposes, and will indicate if no configuration exists.\"},{\"slug\":\"ELEVENLABS_GET_SUMMARIES_CONVAI_AGENT_TESTING_SUMMARIES\",\"name\":\"Get Agent Response Test Summaries\",\"description\":\"Tool to retrieve multiple agent response test summaries by their IDs. Use when you need to fetch summary information for multiple tests in a single request. Returns a dictionary mapping test IDs to their summary details including name, type, and timestamps.\"},{\"slug\":\"ELEVENLABS_GET_TRANSCRIPT_FOR_DUB\",\"name\":\"Get dubbing transcript by language\",\"description\":\"Retrieves the textual transcript for a specified dubbing project and language, if one exists for that language in the project.\"},{\"slug\":\"ELEVENLABS_GET_USAGE_CHARACTER_STATS\",\"name\":\"Get Usage Character Stats\",\"description\":\"Tool to retrieve usage metrics for the current user or entire workspace. Returns time-series data with configurable aggregation intervals and breakdown types. Use when analyzing character usage patterns, tracking consumption by voice, user, or other dimensions over time.\"},{\"slug\":\"ELEVENLABS_GET_USER_INFO\",\"name\":\"Get user info\",\"description\":\"Retrieves detailed information about the authenticated ElevenLabs user's account, including subscription, usage, API key, and status.\"},{\"slug\":\"ELEVENLABS_GET_USER_SUBSCRIPTION_INFO\",\"name\":\"Get user subscription info\",\"description\":\"Retrieves detailed subscription information for the currently authenticated ElevenLabs user.\"},{\"slug\":\"ELEVENLABS_GET_VOICE\",\"name\":\"Get voice\",\"description\":\"Retrieves comprehensive details for a specific, existing voice by its `voice_id`, optionally including its settings.\"},{\"slug\":\"ELEVENLABS_GET_VOICES\",\"name\":\"Get voices list\",\"description\":\"Retrieves a list of all available voices along with their detailed attributes and settings.\"},{\"slug\":\"ELEVENLABS_GET_VOICE_SETTINGS\",\"name\":\"Get voice settings\",\"description\":\"Retrieves the stability, similarity, style, and speaker boost settings for a specific, existing ElevenLabs voice using its `voice_id`.\"},{\"slug\":\"ELEVENLABS_GET_WORKSPACE_RESOURCE\",\"name\":\"Get workspace resource metadata\",\"description\":\"Tool to get metadata of a workspace resource by ID and type. Use when you need access control information, creator details, or sharing options for a specific resource.\"},{\"slug\":\"ELEVENLABS_GET_WORKSPACE_WEBHOOKS\",\"name\":\"Get Workspace Webhooks\",\"description\":\"Tool to list all webhooks configured for the workspace. Use when you need to view existing webhook configurations or verify webhook settings.\"},{\"slug\":\"ELEVENLABS_LIST_CONVAI_AGENT_TESTING\",\"name\":\"List Conversational AI Agent Tests\",\"description\":\"Tool to list all agent response tests with pagination support and optional search filtering. Use when you need to retrieve available tests, search tests by name, or paginate through large test collections.\"},{\"slug\":\"ELEVENLABS_LIST_DUBS\",\"name\":\"List Dubs\",\"description\":\"Tool to list dubbing projects you have access to. Use when you need to retrieve dubs, check their status, or paginate through available dubbing projects.\"},{\"slug\":\"ELEVENLABS_LIST_PHONE_NUMBERS\",\"name\":\"List Phone Numbers\",\"description\":\"Tool to list all imported phone numbers in the workspace. Use when you need to find available phone numbers, check their capabilities (inbound/outbound), or verify which agent is assigned to a number.\"},{\"slug\":\"ELEVENLABS_LIST_WHATSAPP_ACCOUNTS\",\"name\":\"List WhatsApp Accounts\",\"description\":\"Tool to list all WhatsApp accounts in the workspace. Use when you need to view available WhatsApp Business accounts, check which agents are assigned to WhatsApp numbers, or retrieve WhatsApp phone number details.\"},{\"slug\":\"ELEVENLABS_MOVE_BULK_CONVAI_KNOWLEDGE_BASE\",\"name\":\"Move Bulk Knowledge Base Items\",\"description\":\"Tool to move multiple documents or folders from one folder to another in the knowledge base. Use when you need to reorganize multiple knowledge base items at once by moving them to a different folder or to the root level.\"},{\"slug\":\"ELEVENLABS_MOVE_CONVAI_KNOWLEDGE_BASE\",\"name\":\"Move ConvAI Knowledge Base Entity\",\"description\":\"Tool to move a knowledge base document or folder to a different folder. Use when you need to reorganize your knowledge base by moving entities between folders or to the root level.\"},{\"slug\":\"ELEVENLABS_OUTBOUND_CALL\",\"name\":\"Outbound call\",\"description\":\"Tool to place an outbound call via SIP trunk. Use when you need to initiate a voice call through an ElevenLabs agent after obtaining required IDs. Prerequisites: - The API key must have Conversational AI (convai) permissions enabled. For write operations like initiating calls, ensure your API key has the appropriate convai write scope. - A valid SIP trunk phone number must be configured for outbound calls in ElevenLabs. - The SIP trunk must have valid outbound configuration with proper address and credentials. - The agent must be properly configured in the Conversational AI platform.\"},{\"slug\":\"ELEVENLABS_REDIRECT_TO_MINTLIFY\",\"name\":\"Get API documentation\",\"description\":\"Retrieves the content of the official ElevenLabs API documentation page hosted on Mintlify.\"},{\"slug\":\"ELEVENLABS_REGISTER_CALL_CONVAI_TWILIO\",\"name\":\"Register Twilio Call for ConvAI Agent\",\"description\":\"Tool to register a Twilio call and return TwiML to connect the call to an ElevenLabs Conversational AI agent. Use when you need to integrate ElevenLabs agents with your own Twilio infrastructure for inbound or outbound calls.\"},{\"slug\":\"ELEVENLABS_REMOVE_RULES_FROM_THE_PRONUNCIATION_DICTIONARY\",\"name\":\"Remove rules from pronunciation dictionary\",\"description\":\"Permanently removes exact-match pronunciation rules from a specified ElevenLabs pronunciation dictionary using a list of rule strings; non-matching rule strings are ignored and this action cannot add or modify rules.\"},{\"slug\":\"ELEVENLABS_RESUBMIT_CONVAI_TEST_INVOCATIONS\",\"name\":\"Resubmit Test Invocations\",\"description\":\"Tool to resubmit specific test runs from a test invocation for a conversational AI agent. Use when you need to re-run failed tests or specific test cases from a previous test invocation.\"},{\"slug\":\"ELEVENLABS_RETRY_CONVAI_BATCH_CALL\",\"name\":\"Retry Batch Call\",\"description\":\"Tool to retry a batch call, calling failed and no-response recipients again. Use when you need to retry unsuccessful calls from a previous batch calling campaign.\"},{\"slug\":\"ELEVENLABS_RUN_AGENT_TESTS\",\"name\":\"Run Agent Tests\",\"description\":\"Tool to run selected tests on a conversational AI agent with optional configuration overrides. Use when you need to execute automated tests on an agent to validate responses, tool calls, or conversation flows. Supports running up to 200 tests in a single invocation with optional branch-specific or configuration override testing.\"},{\"slug\":\"ELEVENLABS_SET_AGENT_AVATAR\",\"name\":\"Set Agent Avatar\",\"description\":\"Tool to set or update the avatar image for a Conversational AI agent displayed in the widget. Use when you need to customize the visual appearance of an agent by uploading a profile image.\"},{\"slug\":\"ELEVENLABS_SIMULATE_CONVAI_AGENTS_SIMULATE_CONVERSATION\",\"name\":\"Simulate Conversational AI Agent Conversation\",\"description\":\"Tool to run a simulated conversation between an agent and an AI user. Use when testing agent behavior with specific scenarios or evaluating conversation flow. Returns full transcript with analysis including success metrics and conversation summary.\"},{\"slug\":\"ELEVENLABS_SPEECH_TO_SPEECH\",\"name\":\"Speech to speech\",\"description\":\"Converts an input audio file to speech using a specified voice; if a `model_id` is provided, it must support speech-to-speech conversion.\"},{\"slug\":\"ELEVENLABS_SPEECH_TO_SPEECH_STREAMING\",\"name\":\"Speech to speech streaming\",\"description\":\"Converts an input audio stream to a different voice output stream in real-time, using a specified speech-to-speech model.\"},{\"slug\":\"ELEVENLABS_STREAM_AUDIO_ISOLATION\",\"name\":\"Stream audio isolation\",\"description\":\"Tool to remove background noise from audio and stream the isolated result. Use when you need to clean up audio recordings by isolating vocals/speech and removing unwanted background noise. The audio file must be at least 4.6 seconds long.\"},{\"slug\":\"ELEVENLABS_STREAM_CHAPTER_AUDIO\",\"name\":\"Stream chapter audio\",\"description\":\"Streams the audio for a specified chapter snapshot from an ElevenLabs project, optionally converting the output to MPEG format.\"},{\"slug\":\"ELEVENLABS_STREAM_CONVAI_AGENTS_SIMULATE_CONVERSATION\",\"name\":\"Stream ConvAI agent simulate conversation\",\"description\":\"Tool to run a simulated conversation between an agent and a simulated user, streaming back the response. Response is streamed as partial lists of messages that should be concatenated, with a final message containing conversation analysis once complete.\"},{\"slug\":\"ELEVENLABS_STREAM_PROJECT_AUDIO\",\"name\":\"Stream project audio\",\"description\":\"Streams audio from a specific project snapshot, optionally converting it to MPEG format.\"},{\"slug\":\"ELEVENLABS_STREAMS_ARCHIVE_WITH_PROJECT_AUDIO\",\"name\":\"Archive project snapshot\",\"description\":\"Archives an existing project snapshot by its ID, creating a permanent, immutable, and typically irreversible copy of its state.\"},{\"slug\":\"ELEVENLABS_SUBMIT_BATCH_CALL\",\"name\":\"Submit Batch Call\",\"description\":\"Tool to submit a batch call. Use when you need to initiate multiple calls (voice or WhatsApp) at once. Triggers real outbound calls immediately (if no scheduled_time_unix is set) or at the scheduled time — always confirm recipient list and call count with the user before executing.\"},{\"slug\":\"ELEVENLABS_TEXT_TO_SPEECH\",\"name\":\"Text to speech\",\"description\":\"Converts text to speech using a specified ElevenLabs voice and model, returning a downloadable audio file (use ELEVENLABS_TEXT_TO_SPEECH_STREAM for streaming instead). Keep `voice_id`, `model_id`, and `output_format` consistent across all chunks to avoid audible artifacts when concatenating. Some voice/model/format combinations require specific subscription tiers; test with a short sample before full runs. HTTP 429 on burst batches; respect `Retry-After` headers.\"},{\"slug\":\"ELEVENLABS_TEXT_TO_SPEECH_STREAM\",\"name\":\"Text to speech stream\",\"description\":\"Converts text to a spoken audio stream (no saved file or history entry); use the non-streaming text-to-speech tool when a persistent audio URL is needed. Allows latency optimization, specific output formats (some tier-dependent), and custom pronunciations; ensure the chosen model supports text-to-speech and text is preferably under 5000 characters. Keep voice_id, model_id, and output_format consistent across multi-chunk sessions to avoid audio artifacts.\"},{\"slug\":\"ELEVENLABS_UPDATE_AUDIO_NATIVE_CONTENT\",\"name\":\"Update Audio Native project content\",\"description\":\"Tool to update content for an Audio Native project by uploading a text or HTML file. Use when you need to refresh or change the content of an existing Audio Native project. Optionally auto-convert to audio and auto-publish the new snapshot.\"},{\"slug\":\"ELEVENLABS_UPDATE_CONVAI_AGENT\",\"name\":\"Update Conversational AI Agent\",\"description\":\"Tool to update an existing ElevenLabs Conversational AI agent's settings. Use when you need to modify an agent's configuration, such as changing its name, conversation settings, workflow, or platform settings.\"},{\"slug\":\"ELEVENLABS_UPDATE_CONVAI_AGENT_TESTING\",\"name\":\"Update Agent Response Test\",\"description\":\"Tool to update an existing ElevenLabs Conversational AI agent response test by ID. Use when you need to modify test configuration, chat history, success conditions, or other test parameters.\"},{\"slug\":\"ELEVENLABS_UPDATE_CONVAI_KNOWLEDGE_BASE\",\"name\":\"Update Knowledge Base Document\",\"description\":\"Tool to update the name of a knowledge base document in ElevenLabs Conversational AI. Use when you need to rename an existing knowledge base document.\"},{\"slug\":\"ELEVENLABS_UPDATE_CONVAI_SECRET\",\"name\":\"Update ConvAI Workspace Secret\",\"description\":\"Tool to update an existing secret in the ElevenLabs ConvAI workspace. Use when you need to modify the name or value of an existing API key, token, or other sensitive value stored in the workspace.\"},{\"slug\":\"ELEVENLABS_UPDATE_CONVAI_SETTINGS\",\"name\":\"Update Convai Settings\",\"description\":\"Tool to update Convai settings for the workspace. Use when you need to modify webhook configurations, RAG retention settings, MCP server capabilities, or Livekit stack preferences.\"},{\"slug\":\"ELEVENLABS_UPDATE_CONVAI_SETTINGS_DASHBOARD\",\"name\":\"Update Convai Dashboard Settings\",\"description\":\"Tool to update Convai dashboard settings for the workspace. Use when you need to configure dashboard charts for monitoring conversational AI performance.\"},{\"slug\":\"ELEVENLABS_UPDATE_CONVAI_TOOL\",\"name\":\"Update Conversational AI Tool\",\"description\":\"Tool to update an existing conversational AI tool in ElevenLabs workspace. Use when modifying tool settings, descriptions, API endpoints, or behavior configurations. Requires the complete tool_config object with all required fields for the tool type.\"},{\"slug\":\"ELEVENLABS_UPDATE_PRONUNCIATION_DICTIONARIES\",\"name\":\"Update project pronunciation dictionaries\",\"description\":\"Updates a project's pronunciation dictionaries on ElevenLabs to improve text-to-speech accuracy for specialized terms; note that while multiple dictionaries can be applied, the UI only displays the first.\"},{\"slug\":\"ELEVENLABS_UPDATE_PRONUNCIATION_DICTIONARY\",\"name\":\"Update pronunciation dictionary\",\"description\":\"Partially updates a pronunciation dictionary's metadata (name or archived status) without changing its version. Use when you need to rename or archive/unarchive a dictionary.\"},{\"slug\":\"ELEVENLABS_UPDATE_WORKSPACE_WEBHOOK\",\"name\":\"Update Workspace Webhook\",\"description\":\"Tool to update a specified workspace webhook by its ID. Use when you need to modify webhook settings such as the display name or enable/disable status.\"},{\"slug\":\"ELEVENLABS_VOICE_GENERATION_PARAMETERS\",\"name\":\"Voice generation parameters retrieval\",\"description\":\"Fetches configurable parameters for ElevenLabs voice generation, used to determine available settings (e.g., accents, character limits) prior to audio synthesis; returns metadata only, not audio.\"}]},{\"slug\":\"microsoft_teams\",\"name\":\"Microsoft Teams\",\"description\":\"Microsoft Teams integrates chat, video meetings, and file storage within Microsoft 365, providing virtual collaboration and communication for distributed teams\",\"logo\":\"https://logos.composio.dev/api/microsoft_teams\",\"rank\":37,\"tools\":[{\"slug\":\"MICROSOFT_TEAMS_ADD_CHAT_MEMBER\",\"name\":\"Add chat member\",\"description\":\"Tool to add a conversationMember to a Microsoft Teams chat. Use when adding a user to an existing chat conversation.\"},{\"slug\":\"MICROSOFT_TEAMS_ADD_MEMBER_TO_CHANNEL\",\"name\":\"Add member to channel\",\"description\":\"Tool to add a member to a Microsoft Teams channel. Use this action when you need to grant a user access to a specific channel within a team, or when you need to add an owner to manage the channel.\"},{\"slug\":\"MICROSOFT_TEAMS_ADD_MEMBER_TO_TEAM\",\"name\":\"Add member to team\",\"description\":\"(DEPRECATED: use `MICROSOFT_TEAMS_ADD_TEAM_MEMBER`) Tool to add a user to a Microsoft Teams team. Use when granting or updating membership for a user.\"},{\"slug\":\"MICROSOFT_TEAMS_ADD_TAB\",\"name\":\"Add tab to channel\",\"description\":\"Tool to add a new tab to a Microsoft Teams channel. Use when you need to pin an app or website as a tab in a channel.\"},{\"slug\":\"MICROSOFT_TEAMS_ADD_TEAM_MEMBER\",\"name\":\"Add member to team\",\"description\":\"Tool to add a user to a Microsoft Teams team. Use when granting or updating membership for a user.\"},{\"slug\":\"MICROSOFT_TEAMS_ADD_TEAM_MEMBERS_BULK\",\"name\":\"Add team members (bulk)\",\"description\":\"Tool to add multiple members to a Microsoft Teams team in a single operation. Use when adding several users at once to improve efficiency.\"},{\"slug\":\"MICROSOFT_TEAMS_ARCHIVE_CHANNEL\",\"name\":\"Archive channel\",\"description\":\"Tool to archive a channel in a Microsoft Teams team. Use when you need to archive a specific channel within a team.\"},{\"slug\":\"MICROSOFT_TEAMS_ARCHIVE_GROUP_TEAM_CHANNEL\",\"name\":\"Archive team channel\",\"description\":\"Tool to archive a channel in a Microsoft Teams team using the group ID. Use when you need to archive a specific channel within a team.\"},{\"slug\":\"MICROSOFT_TEAMS_ARCHIVE_TEAM\",\"name\":\"Archive Teams team\",\"description\":\"Tool to archive a Microsoft Teams team. Use after confirming the team ID; returns 202 if accepted.\"},{\"slug\":\"MICROSOFT_TEAMS_CHATS_GET_ALL_CHATS\",\"name\":\"Get all chats\",\"description\":\"Lists a specified user's Microsoft Teams chats, supporting filtering and property selection. Returns one page per call (up to `top`, further bounded by `limit` if given) plus a `next_page_token`; pass that back as `page_token` to fetch the next page, until it is absent.\"},{\"slug\":\"MICROSOFT_TEAMS_CHATS_GET_ALL_MESSAGES\",\"name\":\"Get all chat messages (Deprecated)\",\"description\":\"DEPRECATED: Use ListUserChatMessages instead. Lists messages from a specified Microsoft Teams chat via the Microsoft Graph API. Returns one page per call (up to `top`, further bounded by `limit` if given) plus a `next_page_token`; pass that back as `page_token` to fetch the next page, until it is absent. Ensure `chat_id` is valid and OData expressions in `filter` are correct.\"},{\"slug\":\"MICROSOFT_TEAMS_CLEAR_AUTOMATIC_LOCATION\",\"name\":\"Clear Automatic Location\",\"description\":\"Tool to clear the automatic location from a user's presence in Microsoft Teams. Use when you need to remove automatically-set location information from presence status.\"},{\"slug\":\"MICROSOFT_TEAMS_CLEAR_ME_PRESENCE_USER_PREFERRED\",\"name\":\"Clear User Preferred Presence\",\"description\":\"Tool to clear a user's preferred presence setting in Microsoft Teams. Use when you need to remove the user's manually set presence status and allow the system to automatically determine their presence based on activity. Supports both delegated (user) and application (S2S) authentication.\"},{\"slug\":\"MICROSOFT_TEAMS_CLEAR_MY_PRESENCE\",\"name\":\"Clear My Presence (Deprecated)\",\"description\":\"DEPRECATED: Use MICROSOFT_TEAMS_CLEAR_PRESENCE instead. Tool to clear the authenticated user's presence session in Microsoft Teams. Use when you need to remove presence information set by an application for the current user.\"},{\"slug\":\"MICROSOFT_TEAMS_CLEAR_PRESENCE\",\"name\":\"Clear Presence\",\"description\":\"Tool to clear the presence information for a user's application presence session in Microsoft Teams. Use when you need to remove presence information set by an application for the authenticated user. Note: This action can only clear presence for the authenticated user, not for other users.\"},{\"slug\":\"MICROSOFT_TEAMS_CLEAR_PRESENCE_AUTOMATIC_LOCATION\",\"name\":\"Clear Presence Automatic Location (Deprecated)\",\"description\":\"DEPRECATED: Use MICROSOFT_TEAMS_CLEAR_AUTOMATIC_LOCATION instead. Tool to clear the automatic presence location for the authenticated user. Use when you need to remove automatically-detected location information from the user's presence status.\"},{\"slug\":\"MICROSOFT_TEAMS_CLEAR_PRESENCE_LOCATION\",\"name\":\"Clear Presence Location\",\"description\":\"Tool to clear the authenticated user's presence location. Use when you need to remove location information from the user's current presence status.\"},{\"slug\":\"MICROSOFT_TEAMS_CLONE_TEAM\",\"name\":\"Clone Team\",\"description\":\"Tool to clone a Microsoft Teams team using the team ID. Use when you need to create a copy of an existing team including its structure, channels, and tabs. This is an asynchronous operation; poll the returned location URL to monitor progress.\"},{\"slug\":\"MICROSOFT_TEAMS_CREATE_CALL_OPERATION\",\"name\":\"Create Call Operation\",\"description\":\"Tool to create a new operation for a communications call. Use when you need to initiate a new operation on an active call.\"},{\"slug\":\"MICROSOFT_TEAMS_CREATE_CHANNEL\",\"name\":\"Create a channel\",\"description\":\"Tool to create a new standard, private, or shared channel within a Microsoft Teams team. Use when you need to create a new channel for team collaboration.\"},{\"slug\":\"MICROSOFT_TEAMS_CREATE_CONTENT_SHARING_SESSION\",\"name\":\"Create Content Sharing Session\",\"description\":\"Tool to create a content sharing session in a Microsoft Teams call. Use when you need to initiate content sharing during an active call.\"},{\"slug\":\"MICROSOFT_TEAMS_CREATE_GROUP_TEAM_CHANNEL\",\"name\":\"Create channel in group team\",\"description\":\"Tool to create a new channel in a group's associated team. Use when you have a group ID and need to create a channel in its team.\"},{\"slug\":\"MICROSOFT_TEAMS_CREATE_MEETING\",\"name\":\"Create online meeting\",\"description\":\"Use to schedule a new standalone Microsoft Teams online meeting, i.e., one not linked to any calendar event.\"},{\"slug\":\"MICROSOFT_TEAMS_CREATE_OFFER_SHIFT_REQUEST\",\"name\":\"Create user offer shift request\",\"description\":\"Tool to create a new offer shift request in a user's joined team schedule. Use when a team member wants to offer their shift to another team member.\"},{\"slug\":\"MICROSOFT_TEAMS_CREATE_OPEN_SHIFT\",\"name\":\"Create open shifts\",\"description\":\"Tool to create a new open shift in a Microsoft Teams team schedule. Use when you need to publish available shifts that team members can claim.\"},{\"slug\":\"MICROSOFT_TEAMS_CREATE_OPEN_SHIFT_CHANGE_REQUEST\",\"name\":\"Create open shift change request\",\"description\":\"Tool to create a new open shift change request in a team schedule. Use when a team member wants to claim an available open shift.\"},{\"slug\":\"MICROSOFT_TEAMS_CREATE_OR_GET_ONLINE_MEETING\",\"name\":\"Create or get online meeting\",\"description\":\"Tool to create a new Microsoft Teams online meeting or retrieve an existing one based on externalId. Use when you need an idempotent meeting creation operation that returns an existing meeting if the externalId matches.\"},{\"slug\":\"MICROSOFT_TEAMS_CREATE_OR_UPDATE_SCHEDULE\",\"name\":\"Create or update schedule\",\"description\":\"Tool to create or replace a schedule object for a Microsoft Teams team. Use when you need to enable or configure scheduling features for a team.\"},{\"slug\":\"MICROSOFT_TEAMS_CREATE_SCHEDULE_DAY_NOTE\",\"name\":\"Create schedule day note\",\"description\":\"Tool to create a new day note in a team's schedule. Use when you need to add notes or reminders for a specific date in the team schedule. Day notes help communicate important information to team members for a particular day.\"},{\"slug\":\"MICROSOFT_TEAMS_CREATE_SCHEDULING_GROUP\",\"name\":\"Create scheduling group\",\"description\":\"Tool to create a new scheduling group in a team's schedule. Use when you need to organize team members into groups for shift scheduling and management. This action uses 'team_id' parameter naming which aligns with the Microsoft Graph API endpoint (/teams/{id}/schedule/schedulingGroups).\"},{\"slug\":\"MICROSOFT_TEAMS_CREATE_SHIFT\",\"name\":\"Create team schedule shift\",\"description\":\"Tool to create a new shift in a Microsoft Teams team schedule. Use when you need to assign work shifts to team members with specific start/end times and details.\"},{\"slug\":\"MICROSOFT_TEAMS_CREATE_TEAM\",\"name\":\"Create Team\",\"description\":\"Tool to create a new Microsoft Teams team. Use when you need to provision a team with optional template, channels, and members.\"},{\"slug\":\"MICROSOFT_TEAMS_CREATE_TEAM_FROM_GROUP\",\"name\":\"Create Team From Group\",\"description\":\"Tool to create a new team under an existing Microsoft 365 group. Use when you need to add Teams capabilities to an existing group.\"},{\"slug\":\"MICROSOFT_TEAMS_CREATE_TIME_OFF\",\"name\":\"Create time off\",\"description\":\"Tool to create a new timeOff instance in a team's schedule. Use when you need to create approved time off for a team member (vacation, sick leave, etc.).\"},{\"slug\":\"MICROSOFT_TEAMS_CREATE_TIME_OFF_REASON\",\"name\":\"Create time off reason\",\"description\":\"Tool to create a new time off reason in a team's schedule. Use when you need to define a new category for time off requests with a custom name and icon.\"},{\"slug\":\"MICROSOFT_TEAMS_CREATE_TIME_OFF_REQUEST\",\"name\":\"Create time off request\",\"description\":\"Tool to create a new time off request in a team's schedule. Use when a team member needs to request time off for vacation, sick leave, or other absences.\"},{\"slug\":\"MICROSOFT_TEAMS_CREATE_USER_ONLINE_MEETING\",\"name\":\"Create user online meeting\",\"description\":\"Tool to create a new Microsoft Teams online meeting for a specific user. Use when you need to create an online meeting on behalf of a user.\"},{\"slug\":\"MICROSOFT_TEAMS_DELETE_CALL_OPERATION\",\"name\":\"Delete Call Operation\",\"description\":\"Tool to delete a navigation property operation for a communications call. Use when you need to remove a specific commsOperation from a call.\"},{\"slug\":\"MICROSOFT_TEAMS_DELETE_CHANNEL\",\"name\":\"Delete team channel\",\"description\":\"Tool to delete a channel from a Microsoft Teams team. Use when you need to permanently remove a channel. Note that the General channel cannot be deleted.\"},{\"slug\":\"MICROSOFT_TEAMS_DELETE_DAY_NOTE\",\"name\":\"Delete team schedule day note\",\"description\":\"Tool to delete a day note from a Microsoft Teams schedule. Use when you need to remove a day note from a specific date in the team schedule. The If-Match header with ETag value is required for deletion.\"},{\"slug\":\"MICROSOFT_TEAMS_DELETE_OPEN_SHIFT\",\"name\":\"Delete open shift\",\"description\":\"Tool to delete an open shift from a Microsoft Teams schedule. Use when you need to remove an unfilled shift from the team schedule.\"},{\"slug\":\"MICROSOFT_TEAMS_DELETE_SCHEDULING_GROUP\",\"name\":\"Delete team scheduling group\",\"description\":\"Tool to delete a scheduling group from a Microsoft Teams team schedule. Use this when you need to remove a scheduling group from a specific team.\"},{\"slug\":\"MICROSOFT_TEAMS_DELETE_SHIFT\",\"name\":\"Delete team schedule shift\",\"description\":\"Tool to delete a shift from a Microsoft Teams team schedule. Use when you need to permanently remove a scheduled shift.\"},{\"slug\":\"MICROSOFT_TEAMS_DELETE_SOFT_MESSAGE\",\"name\":\"Soft-delete Teams channel message\",\"description\":\"Tool to soft-delete a message in a Teams channel. Use when you need to remove a message without permanently deleting it.\"},{\"slug\":\"MICROSOFT_TEAMS_DELETE_TAB\",\"name\":\"Delete channel tab\",\"description\":\"Tool to delete a tab from a Microsoft Teams channel. Use when you need to permanently remove a tab from a channel.\"},{\"slug\":\"MICROSOFT_TEAMS_DELETE_TEAM\",\"name\":\"Delete Teams team\",\"description\":\"Tool to delete a Microsoft Teams team. Use after confirming the target team ID.\"},{\"slug\":\"MICROSOFT_TEAMS_DELETE_TIME_OFF\",\"name\":\"Delete time off\",\"description\":\"Tool to delete a timeOff from a team's schedule. Use when you need to remove a scheduled time off entry from a team member's schedule.\"},{\"slug\":\"MICROSOFT_TEAMS_DELETE_TIME_OFF_REASON\",\"name\":\"Delete time off reason\",\"description\":\"Tool to delete a time off reason from a team's schedule. Use when you need to remove a time off reason. Note: This operation marks the time off reason as inactive rather than permanently deleting it.\"},{\"slug\":\"MICROSOFT_TEAMS_DELETE_TIME_OFF_REQUEST\",\"name\":\"Delete time off request\",\"description\":\"Tool to delete a time off request from a Microsoft Teams team schedule. Use when you need to permanently remove a time off request.\"},{\"slug\":\"MICROSOFT_TEAMS_DELETE_USER_ONLINE_MEETING\",\"name\":\"Delete User Online Meeting\",\"description\":\"Tool to delete an online meeting for a user. Use when you need to permanently remove an online meeting from a user's calendar.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_CALL_OPERATION\",\"name\":\"Get call operation\",\"description\":\"Tool to get a specific commsOperation for a call. Use to check the status of long-running call operations.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_CHANNEL\",\"name\":\"Get team channel\",\"description\":\"Tool to get a specific channel in a team. Use after obtaining valid team and channel IDs to fetch channel details.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_CHANNEL_MESSAGE\",\"name\":\"Get Teams channel message\",\"description\":\"Retrieves a specific message from a Microsoft Teams channel using its Team, Channel, and Message IDs.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_CHANNEL_MESSAGE_REPLY\",\"name\":\"Get channel message reply\",\"description\":\"Tool to retrieve a single reply to a message in a channel. Use when you need to get details of a specific reply message.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_CHAT\",\"name\":\"Get chat\",\"description\":\"Tool to retrieve a single chat by ID. Use when you need to get details about a specific chat.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_CHAT_LAST_MESSAGE_PREVIEW\",\"name\":\"Get chat last message preview (Deprecated)\",\"description\":\"DEPRECATED: Use MICROSOFT_TEAMS_GET_CHAT instead. Tool to get lastMessagePreview from a chat. Use when you need to see the preview of the most recent message in a specific chat.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_CHAT_MEMBER\",\"name\":\"Get chat member\",\"description\":\"Tool to get a specific conversation member from a Microsoft Teams chat. Use when you need details about a specific chat participant.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_CHAT_MESSAGE\",\"name\":\"Get chat message\",\"description\":\"Tool to get a specific chat message. Use after confirming chat_id and message_id.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_DAY_NOTE\",\"name\":\"Get day note\",\"description\":\"Tool to retrieve a specific day note from a team's schedule. Use when you need to view notes for a specific date in a team's schedule.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_FILES_FOLDER\",\"name\":\"Get channel files folder\",\"description\":\"Tool to get the files folder (DriveItem) metadata for a specific channel in a Microsoft Teams team. Use when you need to access file storage information for a channel.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_GROUP_TEAM_CHANNEL\",\"name\":\"Get group team channel (Deprecated)\",\"description\":\"DEPRECATED: Use MICROSOFT_TEAMS_GET_CHANNEL instead. Tool to get a specific channel from a group's team. Use when you have a group ID and channel ID to fetch channel details.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_MEETING_TRANSCRIPT_CONTENT\",\"name\":\"Get meeting transcript content\",\"description\":\"Retrieve the raw text/vtt content for a Microsoft Teams meeting transcript. Use this after listing meeting transcripts and selecting a transcript ID. The Microsoft Graph transcript APIs only support calendar-backed online meetings that have an available transcript; standalone meetings created only with the create onlineMeeting API can return 412.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_MY_PROFILE\",\"name\":\"Get User Profile\",\"description\":\"Tool to retrieve a user's profile (id/UPN/mail/displayName). Supports both delegated auth (use user_id='me') and application-only auth (specify user ID/UPN). Use when operations require user identity information (e.g., chat creation).\"},{\"slug\":\"MICROSOFT_TEAMS_GET_OFFER_SHIFT_REQUEST\",\"name\":\"Get offer shift request\",\"description\":\"Tool to get a specific offer shift request from a Microsoft Teams schedule. Use when you need to retrieve details of a single offer shift request by its ID.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_ONLINE_MEETING\",\"name\":\"Get online meeting\",\"description\":\"Tool to retrieve details of a specific Microsoft Teams online meeting by its ID. Use when you need to get the properties and relationships of an existing meeting.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_OPEN_SHIFT\",\"name\":\"Get open shift\",\"description\":\"Tool to get a specific open shift from a Microsoft Teams schedule. Use when you need to retrieve details about a particular unassigned open shift by its ID.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_OPEN_SHIFT_CHANGE_REQUEST\",\"name\":\"Get open shift change request\",\"description\":\"Tool to retrieve a specific open shift change request from a Microsoft Teams team's schedule. Use when you need to get details about a particular open shift request including its state, sender, and manager actions.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_PRESENCE\",\"name\":\"Get User Presence\",\"description\":\"Tool to get a specific user's presence information. Use when checking availability status, activity, or work location for a particular user.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_PRIMARY_CHANNEL\",\"name\":\"Get primary channel\",\"description\":\"Tool to get the default (General) channel of a team. Use when you need to access the primary channel without knowing its channel ID.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_SCHEDULE\",\"name\":\"Get schedule\",\"description\":\"Tool to retrieve the properties and relationships of a schedule object. Use when you need to get schedule configuration details for a team.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_SCHEDULING_GROUP\",\"name\":\"Get scheduling group\",\"description\":\"Tool to retrieve a specific scheduling group from a Microsoft Teams team's schedule. Use when you need to get details about a scheduling group including its members, status, and metadata.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_SHIFT\",\"name\":\"Get shift\",\"description\":\"Tool to retrieve a shift by ID from a Microsoft Teams team schedule. Use when you need to get details of a specific shift assignment.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_SWAP_SHIFTS_CHANGE_REQUEST\",\"name\":\"Get swap shifts change request\",\"description\":\"Tool to get a specific swap shift change request from a Microsoft Teams schedule. Use when you need to retrieve details of a single swap shift change request by its ID.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_TAB\",\"name\":\"Get channel tab\",\"description\":\"Tool to get a specific tab in a Microsoft Teams channel. Use when you need to retrieve details of a particular tab.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_TEAM_FROM_GROUP\",\"name\":\"Get Team\",\"description\":\"Tool to get a specific team. Use when full details of one team by ID are needed.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_TEAM_MEMBER\",\"name\":\"Get team member\",\"description\":\"Tool to get a specific conversation member from a team. Use when retrieving details about a team member by their membership ID.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_TEAM_OPERATION\",\"name\":\"Get Team Operation Status\",\"description\":\"Tool to retrieve the status of a Teams async operation using teamId and operationId. Use when you need to poll and track the progress of long-running operations like team creation or archiving. Microsoft recommends waiting at least 30 seconds between polling requests.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_TEAMS_APP_DEFINITION\",\"name\":\"Get installed app in team\",\"description\":\"Tool to get an installed app in a Microsoft Teams team. Use when you need to retrieve details of a specific app installation.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_TEAM_TEMPLATE\",\"name\":\"Get Team Template (Deprecated)\",\"description\":\"DEPRECATED: Use MICROSOFT_TEAMS_GET_TEAM_FROM_GROUP with expand=\\\"template\\\" instead. Tool to get the template used to create a team. Use when you need to retrieve the template information for a specific team.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_TIME_OFF\",\"name\":\"Get time off by ID\",\"description\":\"Tool to retrieve a specific time off entry from a Microsoft Teams team's schedule by ID. Use when you need to get details about a particular time off period including its dates, reason, and status.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_TIME_OFF_REASON\",\"name\":\"Get time off reason\",\"description\":\"Tool to get a specific time off reason from a team's schedule. Use when you need to retrieve details about a time off reason including its display name, icon type, and active status.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_TIME_OFF_REQUEST\",\"name\":\"Get time off request\",\"description\":\"Tool to retrieve a specific time off request from a team's schedule. Use when you need to check the status or details of a time off request.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_USER_CHAT\",\"name\":\"Get user chat\",\"description\":\"Tool to retrieve a specific chat for a user. Use when you need to get details about a chat that a specific user is part of.\"},{\"slug\":\"MICROSOFT_TEAMS_GET_USER_TEAMWORK\",\"name\":\"Get User Teamwork\",\"description\":\"Tool to get userTeamwork settings for a specified user, including Microsoft Teams region and locale. Use when you need to determine user's Teams configuration or regional settings.\"},{\"slug\":\"MICROSOFT_TEAMS_HIDE_CHAT_FOR_USER\",\"name\":\"Hide chat for user\",\"description\":\"Tool to hide a Microsoft Teams chat for a specific user. Use when you need to hide a chat from a user's chat list. Note: The chat is automatically unhidden if an action such as sending a message is taken at the chat level.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_ASSOCIATED_TEAMS\",\"name\":\"List user's associated teams\",\"description\":\"Tool to list teams that a user is associated with in Microsoft Teams. Use when you need to get teams where a user is either a direct member or a member of a shared channel hosted in the team.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_CHANNEL_TABS\",\"name\":\"List channel tabs\",\"description\":\"Tool to list tabs from a Microsoft Teams channel. Use when you need to retrieve all tabs configured in a specific channel. Note: The Files tab (native to channels) is not returned by this API.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_CHAT\",\"name\":\"List chats (Deprecated)\",\"description\":\"DEPRECATED: Use MICROSOFT_TEAMS_CHATS_GET_ALL_CHATS instead. Tool to list chats that the user is part of. Use when retrieving the list of chats for a user.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_CHAT_MEMBERS\",\"name\":\"List chat members (Deprecated)\",\"description\":\"DEPRECATED: Use MICROSOFT_TEAMS_USERS_CHATS_LIST_MEMBERS instead. Tool to list members of a Microsoft Teams chat. Use when you need to retrieve the members of a specific one-on-one chat, group chat, or meeting chat.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_COMMUNICATIONS_CALLS_OPERATIONS\",\"name\":\"List Communications Call Operations\",\"description\":\"Tool to list operations on a Microsoft Teams call. Use when you need to retrieve the status of long-running operations like adding large gallery views, recording, or playing prompts on an active call.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_DELETED_TEAMS\",\"name\":\"List deleted teams\",\"description\":\"Tool to list deleted Microsoft Teams and their properties. Use when you need to retrieve a list of teams that have been deleted.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_GROUP_TEAM_CHANNELS\",\"name\":\"List group team channels (Deprecated)\",\"description\":\"DEPRECATED: Use MICROSOFT_TEAMS_LIST_CHANNELS instead. Tool to list channels from a group's associated team. Use when you have a group ID and need to retrieve its team's channels.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_GROUP_TEAM_OPERATIONS\",\"name\":\"List Group Team Operations\",\"description\":\"Tool to list operations on a group's team. Use when you need to retrieve all async operations (such as team creation, archiving, channel creation) for a specific group's team.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_INCOMING_CHANNELS\",\"name\":\"List team incoming channels\",\"description\":\"Tool to list incoming channels shared with a Microsoft Teams team. Use when you need to view channels from other teams that have been shared with this team.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_INSTALLED_APPS\",\"name\":\"List installed apps in team\",\"description\":\"Tool to list apps installed in a Microsoft Teams team. Use when you need to retrieve the collection of apps installed in a specific team.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_MEETING_TRANSCRIPTS\",\"name\":\"List meeting transcripts\",\"description\":\"List meeting transcripts for a Microsoft Teams online meeting. Retrieves all transcripts associated with a specific meeting, including metadata such as creation time, meeting organizer, and content URL. Use this action when you need to access or review the transcription records of a meeting, for example to extract meeting notes, analyze discussion topics, or maintain compliance records.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_MESSAGE_REPLIES\",\"name\":\"List channel message replies\",\"description\":\"Tool to list all replies to a specific message in a Microsoft Teams channel. Use when you need to retrieve the conversation thread for a particular message.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_OFFER_SHIFT_REQUESTS\",\"name\":\"List offer shift requests\",\"description\":\"Tool to list offer shift requests in a Microsoft Teams schedule. Use when you need to retrieve all offer shift requests for a team's schedule.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_ONLINE_MEETINGS\",\"name\":\"List user online meetings\",\"description\":\"Look up a Microsoft Teams online meeting for a user by identifier. This is effectively a 'lookup-by-identifier' endpoint, NOT a general-purpose list or search. Microsoft Graph REQUIRES an OData $filter predicate on /me/onlineMeetings and /users/{user_id}/onlineMeetings; without it the API returns HTTP 400 'Filter expression expected'. The only supported filter properties on this endpoint are JoinWebUrl and joinMeetingIdSettings/joinMeetingId (e.g. \\\"JoinWebUrl eq 'https://teams.microsoft.com/l/meetup-join/...'\\\" or \\\"joinMeetingIdSettings/joinMeetingId eq '1234567890'\\\"). subject and VideoTeleconferenceId are NOT supported here. If you already know the meeting id, prefer MICROSOFT_TEAMS_USERS_GET_ONLINE_MEETING. There is no Graph API for free-text searching a user's meetings by title.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_OPEN_SHIFT_CHANGE_REQUESTS\",\"name\":\"List open shift change requests\",\"description\":\"Tool to list open shift change requests in a Microsoft Teams schedule. Use when you need to retrieve all open shift requests for a team's schedule.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_OPEN_SHIFTS\",\"name\":\"List open shifts\",\"description\":\"Tool to list open shifts in a Microsoft Teams schedule. Use when you need to retrieve all unassigned open shifts for a team's schedule.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_PEOPLE\",\"name\":\"List People\",\"description\":\"Retrieves a list of people relevant to a specified user from Microsoft Graph, noting the `search` parameter is only effective if `user_id` is 'me'.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_PINNED_MESSAGES\",\"name\":\"List pinned messages\",\"description\":\"Tool to retrieve the list of pinned messages in a Microsoft Teams chat. Use when you need to get all messages that have been pinned in a specific chat conversation.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_SCHEDULE_DAY_NOTES\",\"name\":\"List team schedule day notes\",\"description\":\"Tool to list all dayNotes from a team's schedule. Use when you need to retrieve all day notes or search/filter notes for specific dates in a team's schedule.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_SCHEDULING_GROUPS\",\"name\":\"List scheduling groups\",\"description\":\"Tool to list scheduling groups in a team's schedule. Use when you need to retrieve all scheduling groups for shift management and organization.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_SHIFTS\",\"name\":\"List shifts\",\"description\":\"Tool to list shifts in a Microsoft Teams schedule. Use when you need to retrieve all shifts for a team's schedule.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_SWAP_SHIFTS_CHANGE_REQUESTS\",\"name\":\"List swap shifts change requests\",\"description\":\"Tool to list swap shift change requests in a Microsoft Teams schedule. Use when you need to retrieve all swap shift requests for a team's schedule.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_TEAM_MEMBERS\",\"name\":\"List team members\",\"description\":\"Tool to list members of a Microsoft Teams team. Use when you need to retrieve the members of a specific team, for auditing or notifications.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_TEAM_OPERATIONS\",\"name\":\"List Team Operations\",\"description\":\"Tool to list operations from a team. Use when you need to retrieve all async operations (such as team creation, archiving, channel creation) for a specific team.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_TEAM_PERMISSION_GRANTS\",\"name\":\"List teams permission grants\",\"description\":\"Tool to list all resource-specific permission grants for a team with support for filtering, pagination, and sorting. Use when you need to identify which Microsoft Entra apps have access to a team and their corresponding permissions.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_TEAM_TEMPLATES\",\"name\":\"List Teams templates\",\"description\":\"Tool to list available Microsoft Teams templates. Use when retrieving templates for team creation or customization workflows.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_TIME_OFF\",\"name\":\"List team time off entries\",\"description\":\"Tool to list time off entries from a Microsoft Teams team's schedule. Use when you need to retrieve all time off periods for a team.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_TIME_OFF_REASONS\",\"name\":\"List team schedule time off reasons\",\"description\":\"Tool to get time off reasons from a team's schedule. Use when you need to retrieve the list of available time off reasons for scheduling in Microsoft Teams.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_TIME_OFF_REQUESTS\",\"name\":\"List time off requests\",\"description\":\"Tool to retrieve a list of time off requests from a Microsoft Teams team's schedule. Use when you need to view all time off requests including their status (pending, approved, declined), dates, and associated users.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_USER_CHAT_MEMBERS\",\"name\":\"List user's chat members\",\"description\":\"Tool to list members of a specific chat for a user in Microsoft Teams. Use when you need to retrieve the members of a specific user's chat, whether it's a one-on-one chat, group chat, or meeting chat.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_USER_CHAT_MESSAGES\",\"name\":\"List user chat messages\",\"description\":\"Tool to retrieve messages from a specific chat for a given user. Use when you need to access chat messages through the user context.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_USER_JOINED_TEAMS\",\"name\":\"List user joined teams\",\"description\":\"Tool to list the Teams that a specified user is a direct member of (joined teams). Use for access/membership audits when enumerating team members is access-restricted.\"},{\"slug\":\"MICROSOFT_TEAMS_LIST_USERS\",\"name\":\"List users\",\"description\":\"Tool to list all users in the organization. Use when you need to retrieve directory users with filtering, pagination, and field selection.\"},{\"slug\":\"MICROSOFT_TEAMS_MARK_CHAT_READ_FOR_USER\",\"name\":\"Mark chat as read for user\",\"description\":\"Tool to mark a chat as read for a specific user in Microsoft Teams. Use when you need to update the read status of a chat for a particular user.\"},{\"slug\":\"MICROSOFT_TEAMS_MARK_CHAT_UNREAD_FOR_USER\",\"name\":\"Mark chat as unread for user\",\"description\":\"Marks a specific chat as unread for a user by setting the last read message timestamp. Use when you need to mark messages after a certain time as unread.\"},{\"slug\":\"MICROSOFT_TEAMS_PIN_MESSAGE\",\"name\":\"Pin message in chat\",\"description\":\"Tool to pin a message in a Microsoft Teams chat. Use when you need to highlight an important message for quick access.\"},{\"slug\":\"MICROSOFT_TEAMS_POST_MESSAGE_REPLY\",\"name\":\"Reply to Teams channel message\",\"description\":\"Sends a reply to an existing message, identified by `message_id`, within a specific `channel_id` of a given `team_id` in Microsoft Teams.\"},{\"slug\":\"MICROSOFT_TEAMS_PROVISION_CHANNEL_EMAIL\",\"name\":\"Provision channel email address\",\"description\":\"Tool to provision an email address for a Microsoft Teams channel. Use when you need to enable email integration for a specific channel.\"},{\"slug\":\"MICROSOFT_TEAMS_REMOVE_CHANNEL_EMAIL\",\"name\":\"Remove channel email address\",\"description\":\"Tool to remove the email address of a channel in Microsoft Teams. Use when you need to disable email integration for a specific channel.\"},{\"slug\":\"MICROSOFT_TEAMS_REMOVE_CHAT_MEMBER\",\"name\":\"Remove chat member\",\"description\":\"Tool to remove a member from a Microsoft Teams chat. Use when you need to remove a user from a chat conversation.\"},{\"slug\":\"MICROSOFT_TEAMS_REMOVE_TEAM_MEMBER\",\"name\":\"Remove team member\",\"description\":\"Tool to remove a member from a Microsoft Teams team. Use when you need to remove a user from a team.\"},{\"slug\":\"MICROSOFT_TEAMS_REMOVE_TEAM_MEMBERS\",\"name\":\"Remove team members\",\"description\":\"Tool to remove multiple members from a Microsoft Teams team in bulk. Use when you need to remove one or more users from a team.\"},{\"slug\":\"MICROSOFT_TEAMS_SEARCH_FILES\",\"name\":\"Search Teams files\",\"description\":\"Search files in Microsoft Teams using KQL syntax. Find files by name, type, content, author, and modification date across all Teams and channels. Supports boolean logic and date ranges. Examples: 'filetype:pdf AND lastmodifiedtime\u003e=2024-10-01', 'contract AND budget', 'filename:report AND author:user@example.com'\"},{\"slug\":\"MICROSOFT_TEAMS_SEARCH_MESSAGES\",\"name\":\"Search Teams messages\",\"description\":\"Search Microsoft Teams messages using powerful KQL syntax. Supports sender (from:), date filters (sent:), attachments, and boolean logic. Works across all Teams chats and channels the user has access to. Examples: 'from:user@example.com AND sent\u003e=2024-10-01', 'punchlist OR termination', 'sent\u003etoday-30 AND hasattachment:yes' NOTE: This action requires an organizational Microsoft 365 account (Azure AD/Entra ID). It does NOT work with personal Microsoft accounts (MSA) such as @outlook.com, @hotmail.com, or @live.com. If using a personal Microsoft account, this search will fail.\"},{\"slug\":\"MICROSOFT_TEAMS_SEND_ACTIVITY_NOTIFICATION\",\"name\":\"Send Activity Notification to Recipients\",\"description\":\"Tool to send activity notifications to specified recipients in Microsoft Teams. Use when you need to send custom notifications to users, team members, or channel members.\"},{\"slug\":\"MICROSOFT_TEAMS_SET_ME_PREFERRED_PRESENCE\",\"name\":\"Set My Preferred Presence (Deprecated)\",\"description\":\"DEPRECATED: Use MICROSOFT_TEAMS_SET_USER_PREFERRED_PRESENCE instead. Tool to set the preferred availability and activity status for the current authenticated user. Use when you need to update your own presence status in Microsoft Teams. Preferred presence takes effect only when at least one presence session exists.\"},{\"slug\":\"MICROSOFT_TEAMS_SET_PRESENCE\",\"name\":\"Set Presence\",\"description\":\"Tool to set the presence information for a user's application presence session. Use when you need to update a user's presence state in Microsoft Teams. Valid combinations: Available/Available, Busy/InACall, Busy/InAConferenceCall, Away/Away, or DoNotDisturb/Presenting.\"},{\"slug\":\"MICROSOFT_TEAMS_SET_PRESENCE_AUTOMATIC_LOCATION\",\"name\":\"Set Presence Automatic Location\",\"description\":\"Tool to set the automatic presence location (office/remote/timeOff) for a specified user. Use when updating work location status in Microsoft Teams via automatic detection.\"},{\"slug\":\"MICROSOFT_TEAMS_SET_PRESENCE_MANUAL_LOCATION\",\"name\":\"Set Presence Manual Location (Deprecated)\",\"description\":\"DEPRECATED: Use MICROSOFT_TEAMS_SET_USER_PRESENCE_MANUAL_LOCATION instead. Tool to set the manual presence location (office/remote/timeOff) for the authenticated user. Use when updating work location status in Microsoft Teams.\"},{\"slug\":\"MICROSOFT_TEAMS_SET_USER_PREFERRED_PRESENCE\",\"name\":\"Set User Preferred Presence\",\"description\":\"Tool to set the preferred availability and activity status for a user. Use when you need to update a user's presence status in Microsoft Teams. Preferred presence takes effect only when at least one presence session exists for the user.\"},{\"slug\":\"MICROSOFT_TEAMS_SET_USER_PRESENCE_MANUAL_LOCATION\",\"name\":\"Set User Presence Manual Location\",\"description\":\"Tool to set the manual presence location (office/remote/timeOff) for a specific user. Use when updating work location status for a user in Microsoft Teams.\"},{\"slug\":\"MICROSOFT_TEAMS_SHARE_TEAM_SCHEDULE\",\"name\":\"Share Team Schedule\",\"description\":\"Tool to share a Microsoft Teams schedule for a specified time range. Use when you need to make a team's schedule visible to members.\"},{\"slug\":\"MICROSOFT_TEAMS_TEAMS_CREATE_CHANNEL\",\"name\":\"Create a channel\",\"description\":\"(DEPRECATED: use `MICROSOFT_TEAMS_CREATE_CHANNEL`) Tool to create a new standard, private, or shared channel within a Microsoft Teams team. Use when you need to create a new channel for team collaboration.\"},{\"slug\":\"MICROSOFT_TEAMS_TEAMS_CREATE_CHAT\",\"name\":\"Create Chat\",\"description\":\"Creates a new chat; if a 'oneOnOne' chat with the specified members already exists, its details are returned, while 'group' chats are always newly created. IMPORTANT: The authenticated user MUST be included as one of the members.\"},{\"slug\":\"MICROSOFT_TEAMS_TEAMS_LIST\",\"name\":\"List Teams\",\"description\":\"Retrieves Microsoft Teams accessible by the authenticated user, allowing filtering, property selection, and pagination.\"},{\"slug\":\"MICROSOFT_TEAMS_TEAMS_LIST_CHANNEL_MESSAGES\",\"name\":\"List channel messages\",\"description\":\"Tool to list messages in a Teams channel when team_id and channel_id are known (no chat_id required). Use this to enumerate channel message history and obtain message_id for follow-on operations like listing replies or getting message details.\"},{\"slug\":\"MICROSOFT_TEAMS_TEAMS_LIST_CHANNELS\",\"name\":\"List team channels\",\"description\":\"Retrieves channels for a specified Microsoft Teams team ID (must be valid and for an existing team), with options to include shared channels, filter results, and select properties.\"},{\"slug\":\"MICROSOFT_TEAMS_TEAMS_LIST_CHAT_MESSAGES\",\"name\":\"List chat messages (Deprecated)\",\"description\":\"DEPRECATED: Use ListUserChatMessages instead. Retrieves messages (newest first) from an existing and accessible Microsoft Teams one-on-one chat, group chat, or channel thread, specified by `chat_id`.\"},{\"slug\":\"MICROSOFT_TEAMS_TEAMS_POST_CHANNEL_MESSAGE\",\"name\":\"Send Channel Message\",\"description\":\"Posts a new top-level message to a channel in Microsoft Teams (does NOT reply to an existing message). Despite the file name 'reply_to_channel_chat', this action creates a brand-new message in the channel via POST /teams/{id}/channels/{id}/messages. To reply to an existing message thread, use the dedicated reply action instead.\"},{\"slug\":\"MICROSOFT_TEAMS_TEAMS_POST_CHAT_MESSAGE\",\"name\":\"Send message to Teams chat\",\"description\":\"Sends a non-empty message (text or HTML) to a specified, existing Microsoft Teams chat; content must be valid HTML if `content_type` is 'html'.\"},{\"slug\":\"MICROSOFT_TEAMS_TEAMS_POST_MESSAGE_REPLY\",\"name\":\"Reply to Teams channel message\",\"description\":\"(DEPRECATED: use `MICROSOFT_TEAMS_POST_MESSAGE_REPLY`) Sends a reply to an existing message, identified by `message_id`, within a specific `channel_id` of a given `team_id` in Microsoft Teams.\"},{\"slug\":\"MICROSOFT_TEAMS_UNARCHIVE_CHANNEL\",\"name\":\"Unarchive channel\",\"description\":\"Tool to unarchive a channel in a Microsoft Teams team. Use when you need to restore an archived channel to active state.\"},{\"slug\":\"MICROSOFT_TEAMS_UNARCHIVE_GROUP_TEAM_CHANNEL\",\"name\":\"Unarchive group team channel\",\"description\":\"Tool to unarchive a channel in a Microsoft Teams group's team. Use when you need to restore an archived channel to active state.\"},{\"slug\":\"MICROSOFT_TEAMS_UNARCHIVE_TEAM\",\"name\":\"Unarchive Teams team\",\"description\":\"Tool to unarchive a Microsoft Teams team. Use when you need to restore an archived team to active state.\"},{\"slug\":\"MICROSOFT_TEAMS_UNHIDE_CHAT_FOR_USER\",\"name\":\"Unhide Chat For User\",\"description\":\"Tool to unhide a chat for a specific user. Use when you need to make a hidden chat visible again in the user's chat list.\"},{\"slug\":\"MICROSOFT_TEAMS_UNPIN_MESSAGE\",\"name\":\"Unpin chat message\",\"description\":\"Tool to unpin a message from a Microsoft Teams chat. Use when you need to remove a pinned message.\"},{\"slug\":\"MICROSOFT_TEAMS_UPDATE_CALL\",\"name\":\"Update Call\",\"description\":\"Tool to update the navigation property calls in Microsoft Teams communications. Use when you need to modify properties of an existing call.\"},{\"slug\":\"MICROSOFT_TEAMS_UPDATE_CALL_OPERATION\",\"name\":\"Update Call Operation\",\"description\":\"Tool to update the navigation property operations in communications. Use when you need to modify properties of an existing call operation.\"},{\"slug\":\"MICROSOFT_TEAMS_UPDATE_CALL_PARTICIPANT\",\"name\":\"Update Call Participant\",\"description\":\"Tool to update a participant in a Microsoft Teams call. Use when you need to modify participant properties such as lobby status.\"},{\"slug\":\"MICROSOFT_TEAMS_UPDATE_CHANNEL\",\"name\":\"Update Teams channel\",\"description\":\"Tool to update channel properties in a Microsoft Teams group. Use when you need to modify channel description, display name, or favorite settings.\"},{\"slug\":\"MICROSOFT_TEAMS_UPDATE_CHANNEL_MESSAGE\",\"name\":\"Update Teams channel message\",\"description\":\"Tool to update a message in a channel. Use when you need to modify an existing channel message after confirming channel and message IDs.\"},{\"slug\":\"MICROSOFT_TEAMS_UPDATE_CHAT\",\"name\":\"Update Chat\",\"description\":\"Tool to update the properties of a chat. Use when you need to modify chat settings such as the topic.\"},{\"slug\":\"MICROSOFT_TEAMS_UPDATE_CHAT_MESSAGE\",\"name\":\"Update Teams chat message\",\"description\":\"Tool to update a specific message in a chat. Use when you need to correct or modify a sent chat message.\"},{\"slug\":\"MICROSOFT_TEAMS_UPDATE_CONTENT_SHARING_SESSION\",\"name\":\"Update Content Sharing Session\",\"description\":\"Tool to update a content sharing session in a Microsoft Teams call. Use when you need to modify the properties of an existing content sharing session.\"},{\"slug\":\"MICROSOFT_TEAMS_UPDATE_DAY_NOTE\",\"name\":\"Update schedule day note\",\"description\":\"Tool to update an existing day note in a team's schedule. Use when you need to modify notes or reminders for a specific date in the team schedule.\"},{\"slug\":\"MICROSOFT_TEAMS_UPDATE_ONLINE_MEETING\",\"name\":\"Update online meeting\",\"description\":\"Tool to update the properties of an existing Microsoft Teams online meeting. Use when you need to modify meeting details such as subject, start time, or end time.\"},{\"slug\":\"MICROSOFT_TEAMS_UPDATE_OPEN_SHIFT\",\"name\":\"Update open shift\",\"description\":\"Tool to update an existing open shift in a Microsoft Teams team schedule. Use when you need to modify open shift details such as times, theme, notes, or open slot count.\"},{\"slug\":\"MICROSOFT_TEAMS_UPDATE_SCHEDULING_GROUP\",\"name\":\"Update scheduling group\",\"description\":\"Tool to replace/update a scheduling group in a team's schedule. Use when you need to modify properties of an existing scheduling group such as display name, active status, code, or member list.\"},{\"slug\":\"MICROSOFT_TEAMS_UPDATE_TAB\",\"name\":\"Update Teams channel tab\",\"description\":\"Tool to update the properties of a tab in a Microsoft Teams channel. Use when you need to modify tab display name, configuration, or web URL.\"},{\"slug\":\"MICROSOFT_TEAMS_UPDATE_TEAM\",\"name\":\"Update Team\",\"description\":\"Tool to update the properties of a team. Use when you need to modify team settings such as member, messaging, or fun settings.\"},{\"slug\":\"MICROSOFT_TEAMS_UPDATE_TEAM_MEMBER\",\"name\":\"Update team member\",\"description\":\"Tool to update a team member's roles or properties in Microsoft Teams. Use when you need to change a member's role (e.g., promote to owner or demote to member).\"},{\"slug\":\"MICROSOFT_TEAMS_UPDATE_TEAM_SCHEDULE_SHIFT\",\"name\":\"Update team schedule shift\",\"description\":\"Tool to update an existing shift in a Microsoft Teams team schedule. Use when you need to modify shift details like times, assigned user, or notes.\"},{\"slug\":\"MICROSOFT_TEAMS_UPDATE_TIME_OFF\",\"name\":\"Update time off\",\"description\":\"Tool to replace an existing timeOff entry in a team's schedule. Use when you need to update time off details including dates, reason, or status.\"},{\"slug\":\"MICROSOFT_TEAMS_UPDATE_TIME_OFF_REASON\",\"name\":\"Update time off reason\",\"description\":\"Tool to update a time off reason in a team's schedule. Use when you need to modify the display name, icon, active status, or code of an existing time off reason.\"}]},{\"slug\":\"asana\",\"name\":\"Asana\",\"description\":\"Tool to help teams organize, track, and manage their work.\",\"logo\":\"https://logos.composio.dev/api/asana\",\"rank\":38,\"tools\":[{\"slug\":\"ASANA_ADD_FOLLOWERS_TO_PROJECT\",\"name\":\"Add Followers to Project\",\"description\":\"Tool to add followers to a project in Asana. Use this tool when you need to add one or more users as followers to a specific project. Followers will receive notifications when tasks are added to the project.\"},{\"slug\":\"ASANA_ADD_FOLLOWERS_TO_TASK\",\"name\":\"Add Followers to Task\",\"description\":\"Tool to add followers to a task in Asana. Use this tool when you need to add one or more users as followers to a specific task. This will notify them of updates to the task.\"},{\"slug\":\"ASANA_ADD_ITEM_TO_PORTFOLIO\",\"name\":\"Add item to portfolio\",\"description\":\"Add a project (or other supported item) to an Asana portfolio using the native addItem endpoint. Use when a workflow needs to attach a newly created project to a portfolio without using ASANA_SUBMIT_PARALLEL_REQUESTS.\"},{\"slug\":\"ASANA_ADD_MEMBERS_TO_PROJECT\",\"name\":\"Add Members to Project\",\"description\":\"Tool to add users to a project in Asana. Use this tool when you need to add one or more users as members to a specific project. Members can view and contribute to the project.\"},{\"slug\":\"ASANA_ADD_PROJECT_FOR_TASK\",\"name\":\"Add Project to Task\",\"description\":\"Tool to add a project to a task in Asana. Use when you need to associate a task with a project. Optionally position the task within the project using insert_before, insert_after, or section parameters.\"},{\"slug\":\"ASANA_ADD_SUPPORTING_RELATIONSHIP\",\"name\":\"Add Supporting Relationship to Goal\",\"description\":\"Tool to add a supporting goal relationship to a goal. Use when you want to link a project, task, portfolio, or another goal as a supporting resource to a specific goal in Asana.\"},{\"slug\":\"ASANA_ADD_TAG_TO_TASK\",\"name\":\"Add Tag to Task\",\"description\":\"Tool to add an existing tag to a task in Asana. Use when you need to add a tag for prioritization, routing, or automation workflows. Tags cannot be added via Update Task, so this dedicated endpoint is required.\"},{\"slug\":\"ASANA_ADD_TASK_DEPENDENCIES\",\"name\":\"Add Task Dependencies\",\"description\":\"Tool to add dependency relationships to an Asana task. Use when you need to mark one or more tasks as prerequisites (dependencies) for another task, ensuring the dependency tasks must be completed first.\"},{\"slug\":\"ASANA_ADD_TASK_TO_SECTION\",\"name\":\"Add task to section\",\"description\":\"Adds an existing task to a section, optionally positioning it before or after another task in that section; if no position is specified, the task is added to the end.\"},{\"slug\":\"ASANA_ADD_USER_TO_TEAM\",\"name\":\"Add User for Team\",\"description\":\"Tool to add a user to a team in Asana. Use this when you need to add a user to a specific team by providing their user GID, email, or \\\"me\\\" for the current user.\"},{\"slug\":\"ASANA_ADD_USER_TO_WORKSPACE\",\"name\":\"Add User for Workspace\",\"description\":\"Tool to add a user to a workspace or organization in Asana. Use this when you need to add a user to a specific workspace by providing their user GID, email, or \\\"me\\\" for the current user.\"},{\"slug\":\"ASANA_APPROVE_ACCESS_REQUEST\",\"name\":\"Approve Access Request\",\"description\":\"Tool to approve an access request in Asana. Use when you need to grant access to a resource that requires approval workflow.\"},{\"slug\":\"ASANA_CREATE_ACCESS_REQUEST\",\"name\":\"Create Access Request\",\"description\":\"Tool to create an access request in Asana. Use when you need to request access to a project or portfolio that you don't currently have access to.\"},{\"slug\":\"ASANA_CREATE_ALLOCATION\",\"name\":\"Create Allocation\",\"description\":\"Creates a new allocation. Use when you need to schedule or assign a specific amount of a user's time per week to a task or project within a defined period.\"},{\"slug\":\"ASANA_CREATE_A_PROJECT\",\"name\":\"Create a project\",\"description\":\"Creates a new Asana project in the specified workspace. Requires a `workspace` GID, and additionally a `team` GID if the workspace is an organization.\"},{\"slug\":\"ASANA_CREATE_A_TAG_IN_A_WORKSPACE\",\"name\":\"Create a tag in a workspace\",\"description\":\"Creates a new tag, with properties like name and color defined in the request body, within a specific Asana workspace (using `workspace_gid`); this tag helps categorize tasks, is confined to the workspace, and is not automatically applied to tasks.\"},{\"slug\":\"ASANA_CREATE_A_TASK\",\"name\":\"Create task in asana with specific details\",\"description\":\"Creates a new Asana task; requires 'workspace', 'parent', or 'projects' for association, and 'followers', 'projects', 'tags' are set only at creation.\"},{\"slug\":\"ASANA_CREATE_ATTACHMENT_FOR_OBJECT\",\"name\":\"Create Attachment for Object\",\"description\":\"Tool to upload an attachment or link an external resource to a task, project, or project_brief in Asana. Use when you need to attach a file or external URL to any Asana object.\"},{\"slug\":\"ASANA_CREATE_ATTACHMENT_FOR_TASK\",\"name\":\"Create Attachment for Task\",\"description\":\"Tool to upload an attachment to a task. Use when you need to attach a file to a specific task in Asana.\"},{\"slug\":\"ASANA_CREATE_CUSTOM_FIELD\",\"name\":\"Create Custom Field\",\"description\":\"Tool to create a new custom field in a workspace. Use when you need to define a new field for tracking specific information within Asana tasks.\"},{\"slug\":\"ASANA_CREATE_ENUM_OPTION_FOR_CUSTOM_FIELD\",\"name\":\"Create Enum Option for Custom Field\",\"description\":\"Tool to create a new enum option for a custom field in Asana. Use this when you need to add a new selectable option to an existing custom field.\"},{\"slug\":\"ASANA_CREATE_MEMBERSHIP\",\"name\":\"Create Membership\",\"description\":\"Tool to create a membership by adding a user or team to a project, goal, or portfolio. Use when you need to grant access to an Asana resource.\"},{\"slug\":\"ASANA_CREATE_PROJECT_BRIEF\",\"name\":\"Create Project Brief\",\"description\":\"Tool to create a project brief for a project. Use when you need to add a detailed explanation (what and why) to a project.\"},{\"slug\":\"ASANA_CREATE_PROJECT_FOR_TEAM\",\"name\":\"Create project for team\",\"description\":\"Tool to create a project in a team. Use when you need to create a new project within a specific Asana team.\"},{\"slug\":\"ASANA_CREATE_PROJECT_FOR_WORKSPACE\",\"name\":\"Create project for workspace\",\"description\":\"Tool to create a project in a workspace. Use when you need to create a new project within a specific Asana workspace. Note: The team field is required when creating projects in workspaces.\"},{\"slug\":\"ASANA_CREATE_PROJECT_STATUS_UPDATE\",\"name\":\"Create Project Status Update\",\"description\":\"Tool to create a new status update on a project. Use when you need to communicate the current status, progress, or any blockers related to a specific project.\"},{\"slug\":\"ASANA_CREATE_SECTION_IN_PROJECT\",\"name\":\"Create a section in a project\",\"description\":\"Creates a new SECTION (not a task) in a project. Sections are organizational containers within a project used to group and categorize tasks (e.g., 'To Do', 'In Progress', 'Done', 'Backlog'). The new section can be optionally positioned relative to an existing section in the same project. IMPORTANT: This action creates SECTIONS only. Do NOT use this action to create tasks. To create a task, use the ASANA_CREATE_A_TASK action instead. Task-related fields like 'assignee', 'notes', 'due_date', 'description' are NOT supported by this action.\"},{\"slug\":\"ASANA_CREATE_STATUS_FOR_OBJECT\",\"name\":\"Create Status Update for Object\",\"description\":\"Tool to create a status update on a project, portfolio, or goal. Use when you need to communicate progress, blockers, or current state to all followers of an object.\"},{\"slug\":\"ASANA_CREATE_SUBTASK\",\"name\":\"Create subtask\",\"description\":\"Creates a new Asana subtask under an existing parent task (`task_gid`); `due_on` and `due_at` are mutually exclusive and cannot be set simultaneously.\"},{\"slug\":\"ASANA_CREATE_TAG\",\"name\":\"Create a tag\",\"description\":\"Tool to create a new tag in an Asana workspace. Use when you need to create a tag for categorizing tasks. Tags help organize and filter tasks across projects but are not automatically applied to any tasks.\"},{\"slug\":\"ASANA_CREATE_TASK_COMMENT\",\"name\":\"Create task comment\",\"description\":\"Adds a new text comment (story) to an existing Asana task, appearing in its activity feed.\"},{\"slug\":\"ASANA_CREATE_TEAM\",\"name\":\"Create Team\",\"description\":\"Tool to create a new team in an Asana workspace. Use when you need to establish a new team for collaboration.\"},{\"slug\":\"ASANA_DELETE_ALLOCATION\",\"name\":\"Delete Allocation\",\"description\":\"Tool to delete an allocation by its ID. Use this when you need to remove a specific resource allocation in Asana.\"},{\"slug\":\"ASANA_DELETE_ATTACHMENT\",\"name\":\"Delete Attachment\",\"description\":\"Tool to delete an attachment by its globally unique identifier. Use when you need to remove an existing attachment from Asana.\"},{\"slug\":\"ASANA_DELETE_CUSTOM_FIELD\",\"name\":\"Delete Custom Field\",\"description\":\"Tool to delete a custom field by its globally unique identifier. Use when you need to remove an existing custom field from Asana.\"},{\"slug\":\"ASANA_DELETE_MEMBERSHIP\",\"name\":\"Delete Membership\",\"description\":\"Tool to delete a membership by its GID. Use this when you need to remove a user or team's access to a project, portfolio, goal, or custom field in Asana.\"},{\"slug\":\"ASANA_DELETE_PROJECT\",\"name\":\"Delete a project\",\"description\":\"Delete a project.\"},{\"slug\":\"ASANA_DELETE_PROJECT_BRIEF\",\"name\":\"Delete Project Brief\",\"description\":\"Tool to delete a project brief by its GID. Use when you need to remove a project brief from Asana. Note: This requires the project_brief_gid (not the project_gid).\"},{\"slug\":\"ASANA_DELETE_PROJECT_STATUS\",\"name\":\"Delete Project Status\",\"description\":\"Tool to delete a project status by its GID. Use when you need to remove a specific project status update from Asana.\"},{\"slug\":\"ASANA_DELETE_SECTION\",\"name\":\"Delete a section\",\"description\":\"Tool to delete a section by its GID. Use when you need to permanently remove a section from a project.\"},{\"slug\":\"ASANA_DELETE_STATUS_UPDATE\",\"name\":\"Delete Status Update\",\"description\":\"Tool to delete a status update by its GID. Use when you need to remove a specific status update from Asana.\"},{\"slug\":\"ASANA_DELETE_STORY\",\"name\":\"Delete Story\",\"description\":\"Tool to delete a story by its GID. Use when you need to remove a story from Asana.\"},{\"slug\":\"ASANA_DELETE_TAG\",\"name\":\"Delete a Tag\",\"description\":\"Tool to delete a specific tag by its GID. Use when you need to remove an existing tag from Asana.\"},{\"slug\":\"ASANA_DELETE_TASK\",\"name\":\"Delete a task\",\"description\":\"Delete a task.\"},{\"slug\":\"ASANA_DUPLICATE_PROJECT\",\"name\":\"Duplicate Project\",\"description\":\"Duplicate a project.\"},{\"slug\":\"ASANA_DUPLICATE_TASK\",\"name\":\"Duplicate Task\",\"description\":\"Duplicate a task\"},{\"slug\":\"ASANA_GET_ACCESS_REQUESTS\",\"name\":\"Get Access Requests\",\"description\":\"Tool to retrieve access requests for a target object. Use when you need to get pending access requests for a specific resource like a project or portfolio.\"},{\"slug\":\"ASANA_GET_ALLOCATION\",\"name\":\"Get Allocation\",\"description\":\"Get an allocation by ID. Use when you need to retrieve the details of a specific allocation.\"},{\"slug\":\"ASANA_GET_ALLOCATIONS\",\"name\":\"Get Allocations\",\"description\":\"Tool to get multiple allocations. Requires either 'parent' (project GID) OR both 'assignee' AND 'workspace' together.\"},{\"slug\":\"ASANA_GET_A_PROJECT\",\"name\":\"Get a project\",\"description\":\"Retrieves a specific Asana project by its `project_gid`, with an option to include additional fields for comprehensive details using `opt_fields`; this action does not return tasks within the project.\"},{\"slug\":\"ASANA_GET_A_TASK\",\"name\":\"Get a task\",\"description\":\"Retrieves full details for a specified task GID accessible by the user; use `opt_fields` to customize returned data.\"},{\"slug\":\"ASANA_GET_ATTACHMENT\",\"name\":\"Get Attachment\",\"description\":\"Tool to get a single attachment by its globally unique identifier. Use when you need to retrieve details about a specific file attached to a task or project.\"},{\"slug\":\"ASANA_GET_AUDIT_LOG_EVENTS\",\"name\":\"Get Audit Log Events\",\"description\":\"Tool to get audit log events for a workspace. Use when you need to retrieve a log of actions performed within a specific Asana workspace.\"},{\"slug\":\"ASANA_GET_A_USER_TASK_LIST\",\"name\":\"Get a user task list\",\"description\":\"Retrieves a specific user's task list from Asana by its `user_task_list_gid`, optionally returning extended details like name, owner, and workspace if specified in `opt_fields`.\"},{\"slug\":\"ASANA_GET_CURRENT_USER\",\"name\":\"Get current user\",\"description\":\"Retrieves the authenticated user's full record, including accessible workspaces, often used as an initial call to establish user context for subsequent operations.\"},{\"slug\":\"ASANA_GET_CUSTOM_FIELD\",\"name\":\"Get Custom Field\",\"description\":\"Tool to get a single custom field by its globally unique identifier. Use when you need to retrieve the complete metadata and properties of a specific custom field in Asana.\"},{\"slug\":\"ASANA_GET_CUSTOM_FIELDS_FOR_WORKSPACE\",\"name\":\"Get Custom Fields for Workspace\",\"description\":\"Tool to get all custom fields in a workspace. Use when you need to retrieve a list of custom fields associated with a specific workspace.\"},{\"slug\":\"ASANA_GET_CUSTOM_TYPES\",\"name\":\"Get Custom Types\",\"description\":\"Tool to get all custom types associated with a project. Use when you need to retrieve custom types that extend Asana objects for categorization purposes.\"},{\"slug\":\"ASANA_GET_EVENTS\",\"name\":\"Get Events on a Resource\",\"description\":\"Retrieve events on a resource to monitor changes. Use when you need to track activity or changes related to a specific Asana resource like a task, project, or tag.\"},{\"slug\":\"ASANA_GET_FAVORITES_FOR_USER\",\"name\":\"Get Favorites for User\",\"description\":\"Tool to get a user's favorites within a specified workspace. Returns favorites ordered as they appear in the user's Asana sidebar.\"},{\"slug\":\"ASANA_GET_GOAL\",\"name\":\"Get Goal\",\"description\":\"Retrieve the full record for a single goal by its GID.\"},{\"slug\":\"ASANA_GET_GOAL_RELATIONSHIPS\",\"name\":\"Get Goal Relationships\",\"description\":\"Tool to retrieve goal relationships. Use when you need to get the relationships associated with a specific goal in Asana.\"},{\"slug\":\"ASANA_GET_GOALS\",\"name\":\"Get Goals\",\"description\":\"Tool to retrieve multiple goals. Requires exactly one scope parameter (workspace, team, portfolio, or project) to be specified. Can be optionally filtered by time period or archived status.\"},{\"slug\":\"ASANA_GET_JOB\",\"name\":\"Get Job\",\"description\":\"Tool to retrieve a job by its globally unique identifier. Use when you need to check the status of asynchronous operations like task duplication, project instantiation, or exports.\"},{\"slug\":\"ASANA_GET_MEMBERSHIP\",\"name\":\"Get Membership\",\"description\":\"Tool to retrieve a single membership by its ID. Use this when you need to get details about a specific membership relationship between a user/team and a goal, project, portfolio, or custom field.\"},{\"slug\":\"ASANA_GET_MEMBERSHIPS\",\"name\":\"Get Memberships\",\"description\":\"Tool to retrieve memberships for goals, projects, portfolios, or custom fields. Use this to find out who has access to a specific Asana resource or what resources a specific user/team has access to.\"},{\"slug\":\"ASANA_GET_MULTIPLE_PROJECTS\",\"name\":\"Get multiple projects\",\"description\":\"Returns a list of projects filtered by workspace or team (one required), with optional archived status filter, supporting pagination for large datasets.\"},{\"slug\":\"ASANA_GET_MULTIPLE_TASKS\",\"name\":\"Get multiple tasks\",\"description\":\"Retrieves a list of tasks, allowing filtering by assignee (requires `workspace`), project, section, `completed_since`, and `modified_since`; `workspace` also requires `assignee`.\"},{\"slug\":\"ASANA_GET_MULTIPLE_USERS\",\"name\":\"Get multiple users\",\"description\":\"Returns a list of users in an Asana workspace or organization, optionally filtered by workspace or team GID, with support for pagination and specifying optional fields.\"},{\"slug\":\"ASANA_GET_MULTIPLE_WORKSPACES\",\"name\":\"Get multiple workspaces\",\"description\":\"Retrieves all workspaces accessible by the authenticated user, returning an empty list if the user has no accessible workspaces.\"},{\"slug\":\"ASANA_GET_PORTFOLIO\",\"name\":\"Get Portfolio\",\"description\":\"Retrieve the full record for a single portfolio by its GID. Use this when you need to get detailed information about a specific portfolio.\"},{\"slug\":\"ASANA_GET_PORTFOLIO_ITEMS\",\"name\":\"Get Portfolio Items\",\"description\":\"Retrieve items in a portfolio. Use this to get a list of projects or other portfolios contained within a specific portfolio.\"},{\"slug\":\"ASANA_GET_PORTFOLIO_MEMBERSHIPS\",\"name\":\"Get Portfolio Memberships\",\"description\":\"Tool to retrieve multiple portfolio memberships. Use this tool when you need to list memberships for a specific portfolio, a user within a portfolio, or a user across all portfolios in a workspace.\"},{\"slug\":\"ASANA_GET_PORTFOLIOS\",\"name\":\"Get Portfolios\",\"description\":\"Retrieve multiple portfolios. Use when you need to list portfolios within a specific workspace, optionally filtered by owner.\"},{\"slug\":\"ASANA_GET_PROJECT_BRIEF\",\"name\":\"Get Project Brief\",\"description\":\"Tool to retrieve a project brief by its GID. Use when you need to get the detailed explanation (what and why) of a project. Note: Requires the project_brief_gid (not the project_gid). First call 'Get a project' with opt_fields=['project_brief'] to obtain the project_brief_gid.\"},{\"slug\":\"ASANA_GET_PROJECT_MEMBERSHIP\",\"name\":\"Get Project Membership\",\"description\":\"Tool to get a project membership by ID. Use when you need to retrieve details of a specific project membership.\"},{\"slug\":\"ASANA_GET_PROJECT_MEMBERSHIPS\",\"name\":\"Get Project Memberships For Project\",\"description\":\"Tool to get memberships from a specific project. Use when you need to see who has access to a project and their permission levels.\"},{\"slug\":\"ASANA_GET_PROJECTS_FOR_TASK\",\"name\":\"Get Projects for Task\",\"description\":\"Tool to get all projects a task is in. Use when you need to retrieve project associations for a specific task.\"},{\"slug\":\"ASANA_GET_PROJECTS_FOR_TEAM\",\"name\":\"Get Projects for Team\",\"description\":\"Tool to get a list of projects for a specific team in Asana. Use when you need to retrieve project details associated with a team.\"},{\"slug\":\"ASANA_GET_PROJECT_STATUS\",\"name\":\"Get Project Status\",\"description\":\"Tool to retrieve the full record for a single project status by its GID. Use when you need to get the details of a specific project status update.\"},{\"slug\":\"ASANA_GET_PROJECT_STATUS_UPDATES\",\"name\":\"Get Project Status Updates\",\"description\":\"Tool to get status updates for a specific project. Use when you need to retrieve the latest or historical status reports associated with an Asana project.\"},{\"slug\":\"ASANA_GET_PROJECT_TEMPLATES\",\"name\":\"Get Multiple Project Templates\",\"description\":\"Tool to retrieve multiple project templates. Use when you need to list available project templates in a workspace or team.\"},{\"slug\":\"ASANA_GET_PROJECT_TEMPLATES_FOR_TEAM\",\"name\":\"Get Project Templates for Team\",\"description\":\"Tool to get a team's project templates in Asana. Use when you need to retrieve project templates associated with a specific team.\"},{\"slug\":\"ASANA_GET_REACTIONS_ON_OBJECT\",\"name\":\"Get Reactions on Object\",\"description\":\"Tool to get reactions with a specific emoji base character on an object. Use when you need to retrieve user reactions (emoji responses) on a status update or story.\"},{\"slug\":\"ASANA_GET_SECTION\",\"name\":\"Get Section\",\"description\":\"Retrieve the full record for a single section by its GID. Use this when you need to get details about a specific section within a project.\"},{\"slug\":\"ASANA_GET_SECTIONS_IN_PROJECT\",\"name\":\"Get sections in a project\",\"description\":\"Returns compact records for all sections (used to group tasks) in a specified project.\"},{\"slug\":\"ASANA_GET_STATUS\",\"name\":\"Get Status Update\",\"description\":\"Tool to retrieve the full record for a single status update by its GID. Use when you need to get the details of a specific status update.\"},{\"slug\":\"ASANA_GET_STATUS_UPDATES\",\"name\":\"Get Status Updates\",\"description\":\"Retrieve status updates from an object. Use when you need to get the latest or historical status updates for a specific project, portfolio, or goal.\"},{\"slug\":\"ASANA_GET_STORIES_FOR_TASK\",\"name\":\"Get Stories for Task\",\"description\":\"Tool to get stories (comments, status updates, etc.) for a task. Use when you need to retrieve the history or discussion associated with a specific task.\"},{\"slug\":\"ASANA_GET_STORY\",\"name\":\"Get Story\",\"description\":\"Tool to retrieve a story. Use when you need to get the complete record for a single story.\"},{\"slug\":\"ASANA_GET_TAG\",\"name\":\"Get Tag\",\"description\":\"Tool to get a single tag by its globally unique identifier. Use when you need to retrieve detailed information about a specific tag.\"},{\"slug\":\"ASANA_GET_TAGS\",\"name\":\"Get Tags\",\"description\":\"Get multiple tags in a workspace.\"},{\"slug\":\"ASANA_GET_TAGS_FOR_TASK\",\"name\":\"Get Tags for Task\",\"description\":\"Tool to get all tags associated with a specific task. Use when you need to retrieve tags for categorization, filtering, or understanding task organization.\"},{\"slug\":\"ASANA_GET_TAGS_FOR_WORKSPACE\",\"name\":\"Get Tags For Workspace\",\"description\":\"Tool to get all tags in a specific workspace. Use when you need to retrieve tags for categorizing tasks within a workspace.\"},{\"slug\":\"ASANA_GET_TASK_ATTACHMENTS\",\"name\":\"Get Task Attachments\",\"description\":\"Tool to get the list of attachments for a given task, project, or project_brief. Use when you need to retrieve files attached to a specific Asana object.\"},{\"slug\":\"ASANA_GET_TASK_COUNTS_FOR_PROJECT\",\"name\":\"Get Task Counts For Project\",\"description\":\"Tool to get task count statistics for a project. Use when you need to retrieve the number of tasks, completed tasks, incomplete tasks, and milestone counts for a specific Asana project. Note that all fields are excluded by default - you must specify them in opt_fields to get any data.\"},{\"slug\":\"ASANA_GET_TASKS_FOR_TAG\",\"name\":\"Get tasks for tag\",\"description\":\"Tool to retrieve tasks associated with a specific Asana tag by tag GID. Use when you need to list all tasks that have been tagged with a particular label.\"},{\"slug\":\"ASANA_GET_TASKS_FOR_USER_TASK_LIST\",\"name\":\"Get tasks for user task list\",\"description\":\"Tool to retrieve tasks from a user task list by user task list GID. Use when you need to list tasks assigned to a specific user's task list.\"},{\"slug\":\"ASANA_GET_TASKS_FROM_A_PROJECT\",\"name\":\"Retrieve tasks for project\",\"description\":\"Retrieves tasks from a specified Asana project, allowing filtering by completion status and selection of optional fields for detailed responses.\"},{\"slug\":\"ASANA_GET_TASKS_FROM_SECTION\",\"name\":\"Get tasks from a section\",\"description\":\"Tool to retrieve tasks that belong to a specific Asana section (column/header) by section GID. Use when you need to list tasks within a particular section, such as for agenda or carryover workflows. Board view only feature.\"},{\"slug\":\"ASANA_GET_TASK_SUBTASKS\",\"name\":\"Get Task Subtasks\",\"description\":\"Tool to retrieve multiple task subtasks from a workspace. Use when you need to list or find available task subtasks.\"},{\"slug\":\"ASANA_GET_TASK_TEMPLATES\",\"name\":\"Get Task Templates\",\"description\":\"Tool to retrieve multiple task templates from a workspace. Use when you need to list or find available task templates.\"},{\"slug\":\"ASANA_GET_TEAM\",\"name\":\"Get Team\",\"description\":\"Tool to retrieve details of a specific team by its GID. Use when you need to fetch information about a particular team in Asana.\"},{\"slug\":\"ASANA_GET_TEAM_MEMBERSHIP\",\"name\":\"Get Team Membership\",\"description\":\"Tool to retrieve a complete team membership record by its GID. Use when you need to fetch details about a specific team membership in Asana.\"},{\"slug\":\"ASANA_GET_TEAM_MEMBERSHIPS\",\"name\":\"Get Team Memberships\",\"description\":\"Tool to retrieve compact team membership records. Use when you need to list members of a team, teams a user belongs to, or all team memberships in a workspace.\"},{\"slug\":\"ASANA_GET_TEAM_MEMBERSHIPS_FOR_TEAM\",\"name\":\"Get Team Memberships for Team\",\"description\":\"Tool to get memberships from a specific team. Use when you need to retrieve the list of users who are members of a particular team, including their membership details such as admin status and guest status.\"},{\"slug\":\"ASANA_GET_TEAM_MEMBERSHIPS_FOR_USER\",\"name\":\"Get Team Memberships For User\",\"description\":\"Tool to get team memberships for a specific user. Use when you need to retrieve all teams that a user belongs to within a workspace.\"},{\"slug\":\"ASANA_GET_TEAMS_FOR_USER\",\"name\":\"Get Teams for User\",\"description\":\"Tool to get teams for a specific user in an organization. Returns the team records for all teams in the organization or workspace to which the given user is assigned.\"},{\"slug\":\"ASANA_GET_TEAMS_IN_WORKSPACE\",\"name\":\"Get teams in workspace\",\"description\":\"Returns the compact records for all teams in the workspace visible to the authorized user.\"},{\"slug\":\"ASANA_GET_TIME_PERIOD\",\"name\":\"Get Time Period\",\"description\":\"Tool to retrieve the full record for a single time period by its GID. Use when you need to fetch detailed information about a specific time period, including its start/end dates, display name, and parent period.\"},{\"slug\":\"ASANA_GET_TIME_PERIODS\",\"name\":\"Get Time Periods\",\"description\":\"Tool to retrieve compact or full representations of time periods. Use this when you need to fetch information about specific time periods, such as their start and end dates, display names, and parent periods.\"},{\"slug\":\"ASANA_GET_TIME_TRACKING_ENTRIES\",\"name\":\"Get Time Tracking Entries\",\"description\":\"Tool to get multiple time tracking entries across workspace, tasks, or projects. Use when you need to retrieve time tracking information for filtering by workspace, task, portfolio, user, or date range.\"},{\"slug\":\"ASANA_GET_TIME_TRACKING_ENTRIES_FOR_TASK\",\"name\":\"Get Time Tracking Entries for Task\",\"description\":\"Tool to get time tracking entries for a task. Use when you need to retrieve time tracking information recorded on a specific task.\"},{\"slug\":\"ASANA_GET_TYPEAHEAD_OBJECTS\",\"name\":\"Get Objects via Typeahead\",\"description\":\"Tool to retrieve objects in a workspace via a typeahead search algorithm. Use when you need to quickly find objects like tasks, projects, users, etc., based on a search string. This is useful for implementing auto-completion features.\"},{\"slug\":\"ASANA_GET_USER\",\"name\":\"Get User\",\"description\":\"Get a user by their ID.\"},{\"slug\":\"ASANA_GET_USER_FOR_WORKSPACE\",\"name\":\"Get User in Workspace\",\"description\":\"Tool to get a user in a workspace or organization by their GID. Use when you need to retrieve details about a specific user within a workspace context.\"},{\"slug\":\"ASANA_GET_USERS_FOR_TEAM\",\"name\":\"Get Users for Team\",\"description\":\"Get users in a team.\"},{\"slug\":\"ASANA_GET_USERS_FOR_WORKSPACE\",\"name\":\"Get Users in Workspace\",\"description\":\"Get users in a workspace or organization.\"},{\"slug\":\"ASANA_GET_USER_TASK_LIST\",\"name\":\"Get User Task List\",\"description\":\"Tool to get a single user task list by its globally unique identifier. Use when you need to retrieve information about a specific user's My Tasks list.\"},{\"slug\":\"ASANA_GET_WEBHOOKS\",\"name\":\"Get Webhooks\",\"description\":\"Tool to retrieve multiple webhooks in a workspace. Use when you need to list all webhooks for a workspace or filter webhooks by a specific resource.\"},{\"slug\":\"ASANA_GET_WORKSPACE\",\"name\":\"Get Workspace\",\"description\":\"Tool to retrieve details of a specific workspace by its GID. Use when you need to get information about a particular Asana workspace.\"},{\"slug\":\"ASANA_GET_WORKSPACE_MEMBERSHIP\",\"name\":\"Get Workspace Membership\",\"description\":\"Tool to retrieve a specific workspace membership by its GID. Use when you need to get details about a user's membership in a workspace.\"},{\"slug\":\"ASANA_GET_WORKSPACE_MEMBERSHIPS\",\"name\":\"Get Workspace Memberships\",\"description\":\"Tool to retrieve the workspace memberships for a specific workspace. Use when you need to list members of a workspace.\"},{\"slug\":\"ASANA_GET_WORKSPACE_MEMBERSHIPS_FOR_USER\",\"name\":\"Get Workspace Memberships For User\",\"description\":\"Tool to retrieve workspace memberships for a specific user. Use when you need to list all workspaces a user is a member of.\"},{\"slug\":\"ASANA_GET_WORKSPACE_PROJECTS\",\"name\":\"Get Workspace Projects\",\"description\":\"Tool to retrieve the projects associated with a specific workspace. Use when you need to list all projects within a given Asana workspace.\"},{\"slug\":\"ASANA_INSERT_ENUM_OPTION_FOR_CUSTOM_FIELD\",\"name\":\"Reorder Enum Option for Custom Field\",\"description\":\"Tool to reorder an existing enum option within a custom field by moving it before or after another specified enum option. Use when you need to change the order/position of options in an enum or multi_enum custom field. Note: To create new enum options, use 'Create Enum Option for Custom Field' action instead.\"},{\"slug\":\"ASANA_INSERT_SECTION_FOR_PROJECT\",\"name\":\"Move or Insert Section in Project\",\"description\":\"Tool to move or reorder an existing section within a project by repositioning it before or after another section. Use when you need to change the position/order of sections in a project. Note: This action moves existing sections only. To create new sections, use 'Create Section in Project' action instead.\"},{\"slug\":\"ASANA_INSTANTIATE_PROJECT_TEMPLATE\",\"name\":\"Instantiate Project Template\",\"description\":\"Instantiate (create) a real Asana project from a project template, returning the async job record. Use when you need to create a new project from a template with specific date and role assignments.\"},{\"slug\":\"ASANA_REJECT_ACCESS_REQUEST\",\"name\":\"Reject access request\",\"description\":\"Tool to reject an access request. Use when you need to deny a user's request for access to a project or resource.\"},{\"slug\":\"ASANA_REMOVE_FOLLOWER_FROM_TASK\",\"name\":\"Remove Follower From Task\",\"description\":\"Tool to remove one or more followers from a task. Use when you need to update the list of users following a specific task.\"},{\"slug\":\"ASANA_REMOVE_FOLLOWERS_FOR_PROJECT\",\"name\":\"Remove Followers For Project\",\"description\":\"Tool to remove followers from a project in Asana. Use when you need to remove one or more users as followers from a specific project.\"},{\"slug\":\"ASANA_REMOVE_ITEM_FROM_PORTFOLIO\",\"name\":\"Remove Item from Portfolio\",\"description\":\"Tool to remove an item (e.g., a project) from an Asana portfolio. Use to undo/cleanup portfolio membership, support moves between portfolios, or enforce portfolio hygiene.\"},{\"slug\":\"ASANA_REMOVE_MEMBERS_FOR_PROJECT\",\"name\":\"Remove Members from Project\",\"description\":\"Tool to remove users from a project in Asana. Use this tool when you need to remove one or more users as members from a specific project.\"},{\"slug\":\"ASANA_REMOVE_PROJECT_FROM_TASK\",\"name\":\"Remove Project from Task\",\"description\":\"Tool to remove a project from a task in Asana. Use this when you need to disassociate a task from a specific project.\"},{\"slug\":\"ASANA_REMOVE_TAG_FROM_TASK\",\"name\":\"Remove Tag from Task\",\"description\":\"Tool to remove an existing tag from a task in Asana. Use this tool when you need to detach a tag from a specific task for cleanup or retagging automation.\"},{\"slug\":\"ASANA_REMOVE_USER_FOR_TEAM\",\"name\":\"Remove User For Team\",\"description\":\"Tool to remove a user from a team. Use when you need to revoke team membership for a specific user.\"},{\"slug\":\"ASANA_REMOVE_USER_FOR_WORKSPACE\",\"name\":\"Remove User from Workspace\",\"description\":\"Tool to remove a user from a workspace or organization. Use when you need to revoke a user's access to a specific workspace.\"},{\"slug\":\"ASANA_SEARCH_TASKS_IN_WORKSPACE\",\"name\":\"Search Tasks in Workspace\",\"description\":\"Tool to search tasks across a workspace with advanced filters. Use when performing complex queries such as overdue tasks, by project or custom field, for reporting or automation.\"},{\"slug\":\"ASANA_SET_PARENT_FOR_TASK\",\"name\":\"Set parent for task\",\"description\":\"Tool to set the parent of a task in Asana. Use when you need to make a task a subtask of another task or remove the parent relationship.\"},{\"slug\":\"ASANA_SUBMIT_PARALLEL_REQUESTS\",\"name\":\"Submit Parallel Requests (Batch API)\",\"description\":\"Tool to submit multiple Asana API requests in parallel using the Batch API. Use when you need to perform several operations efficiently, such as fetching multiple tasks or creating multiple subtasks at once.\"},{\"slug\":\"ASANA_UPDATE_ALLOCATION\",\"name\":\"Update Allocation\",\"description\":\"Tool to update an existing allocation by its ID. Use this when you need to modify details like the start date, end date, effort, or assignee for an allocation.\"},{\"slug\":\"ASANA_UPDATE_A_TASK\",\"name\":\"Update a task\",\"description\":\"Updates attributes of an existing Asana task identified by its task_gid.\"},{\"slug\":\"ASANA_UPDATE_CUSTOM_FIELD\",\"name\":\"Update Custom Field\",\"description\":\"Tool to update a custom field by its globally unique identifier. Use when you need to modify properties of an existing custom field in Asana.\"},{\"slug\":\"ASANA_UPDATE_ENUM_OPTION\",\"name\":\"Update Enum Option\",\"description\":\"Tool to update an enum option for a custom field. Use when you need to modify the name, color, or enabled status of an existing enum option.\"},{\"slug\":\"ASANA_UPDATE_PROJECT\",\"name\":\"Update a project\",\"description\":\"Update a project.\"},{\"slug\":\"ASANA_UPDATE_PROJECT_BRIEF\",\"name\":\"Update Project Brief\",\"description\":\"Tool to update a project brief by its GID. Use when you need to modify the content/description of a project brief. Note: Requires the project_brief_gid (not the project_gid). First call 'Get a project' with opt_fields=['project_brief'] to obtain the project_brief_gid.\"},{\"slug\":\"ASANA_UPDATE_SECTION\",\"name\":\"Update Section\",\"description\":\"Update a section's name or position within a project. Use when you need to rename a section or reorder sections by specifying insert_before or insert_after.\"},{\"slug\":\"ASANA_UPDATE_STORY\",\"name\":\"Update Story\",\"description\":\"Tool to update a story on a task. Use when you need to modify the text, html_text, or pin status of an existing story. Only comment stories can have text/html_text updated, and only comment and attachment stories can be pinned.\"},{\"slug\":\"ASANA_UPDATE_TAG\",\"name\":\"Update Tag\",\"description\":\"Tool to update an existing tag by its globally unique identifier. Use when you need to change the name or color of a tag.\"},{\"slug\":\"ASANA_UPDATE_TEAM\",\"name\":\"Update a team\",\"description\":\"Tool to update details of an existing team. Use when you need to change a team's name, description, or organization.\"},{\"slug\":\"ASANA_UPDATE_USER\",\"name\":\"Update User\",\"description\":\"Update a user's custom fields. Note: Asana's API has very limited user update capabilities - most user properties are read-only and managed by users themselves.\"},{\"slug\":\"ASANA_UPDATE_USER_FOR_WORKSPACE\",\"name\":\"Update User for Workspace\",\"description\":\"Tool to update a user in a workspace or organization. Use when you need to modify user-specific custom field values for a workspace.\"},{\"slug\":\"ASANA_UPDATE_WEBHOOK\",\"name\":\"Update a webhook\",\"description\":\"Tool to update an existing Asana webhook's filter configuration. Use when you need to modify which events trigger webhook notifications.\"}]},{\"slug\":\"peopledatalabs\",\"name\":\"People Data Labs\",\"description\":\"PeopleDataLabs provides B2B data enrichment and identity resolution, empowering organizations to build enriched user profiles and validate customer information\",\"logo\":\"https://logos.composio.dev/api/peopledatalabs\",\"rank\":39,\"tools\":[{\"slug\":\"PEOPLEDATALABS_CLEAN_COMPANY_DATA\",\"name\":\"Clean company data\",\"description\":\"Cleans and standardizes company information based on a name, website, or profile URL; providing at least one of these inputs is highly recommended for meaningful results.\"},{\"slug\":\"PEOPLEDATALABS_CLEAN_COMPANY_POST\",\"name\":\"Clean company data (POST)\",\"description\":\"Tool to clean and standardize company data using POST method. Use when you need to standardize company information by providing company name, website, or social profile. Returns standardized company information including name, website, LinkedIn profile, and other company identifiers.\"},{\"slug\":\"PEOPLEDATALABS_CLEAN_LOCATION_DATA\",\"name\":\"Clean location data\",\"description\":\"Cleans and standardizes a raw, unformatted location string into a structured representation, provided the input is a recognizable geographical place.\"},{\"slug\":\"PEOPLEDATALABS_CLEAN_LOCATION_POST\",\"name\":\"Clean location data (POST)\",\"description\":\"Tool to clean and standardize location data using POST method. Use when you need to normalize raw location strings into structured location information including city, region, and country.\"},{\"slug\":\"PEOPLEDATALABS_CLEAN_SCHOOL_DATA\",\"name\":\"Clean school data\",\"description\":\"Cleans and standardizes school information; provide at least one of the school's name, website, or profile for optimal results.\"},{\"slug\":\"PEOPLEDATALABS_CLEAN_SCHOOL_DATA_POST\",\"name\":\"Clean school data (POST)\",\"description\":\"Tool to clean and standardize school data using POST method. Use when you need to clean school information by providing name, website, or profile.\"},{\"slug\":\"PEOPLEDATALABS_ENRICH_BULK_COMPANY_DATA\",\"name\":\"Enrich Bulk Company Data\",\"description\":\"Tool to enrich up to 100 companies in a single request using the Bulk Company Enrichment API. Use when you need to enrich multiple company profiles efficiently. Each request must include at least one company identifier (website, profile, name, ticker, or pdl_id). Results are returned in the same order as the input requests, with individual status codes indicating success (200) or failure (404).\"},{\"slug\":\"PEOPLEDATALABS_ENRICH_BULK_PERSON_DATA\",\"name\":\"Enrich bulk person data\",\"description\":\"Tool to enrich up to 100 person profiles in a single API request using the Bulk Person Enrichment API. Use when you need to enrich multiple people efficiently, as this effectively increases the rate limit by up to 100x compared to individual enrichment calls. Each request in the array can use the same parameters as the single person enrichment endpoint.\"},{\"slug\":\"PEOPLEDATALABS_ENRICH_COMPANY_DATA\",\"name\":\"Enrich Company Data\",\"description\":\"Enriches company data from People Data Labs with details like firmographics and employee counts. CRITICAL: This action REQUIRES at least one company identifier. DO NOT send empty {} requests. You MUST provide at least one of: pdl_id, name, profile, ticker, or website. Valid request examples: - {\\\"name\\\": \\\"Apple Inc.\\\"} - enrich by company name - {\\\"website\\\": \\\"google.com\\\"} - enrich by website URL - {\\\"ticker\\\": \\\"MSFT\\\"} - enrich by stock ticker - {\\\"profile\\\": \\\"linkedin.com/company/microsoft\\\"} - enrich by social profile. Each call consumes API credits; use specific identifiers rather than exploratory requests.\"},{\"slug\":\"PEOPLEDATALABS_ENRICH_IP_DATA\",\"name\":\"Enrich IP Data\",\"description\":\"Enriches an IP address with company, location, metadata, and person data from People Data Labs.\"},{\"slug\":\"PEOPLEDATALABS_ENRICH_JOB_TITLE_DATA\",\"name\":\"Enrich job title data\",\"description\":\"Enhances a job title by providing additional contextual information and details.\"},{\"slug\":\"PEOPLEDATALABS_ENRICH_PERSON_DATA\",\"name\":\"Enrich person data\",\"description\":\"Enriches person data using various identifiers; requires a primary ID (profile, email, phone, email_hash, lid, pdl_id) OR a name (full, or first and last) combined with another demographic detail (e.g., company, school, location).\"},{\"slug\":\"PEOPLEDATALABS_ENRICH_SKILL_DATA\",\"name\":\"Enrich skill data\",\"description\":\"Retrieves detailed, standardized information for a given skill by querying the People Data Labs Skill Enrichment API; for best results, provide a recognized professional skill or area of expertise.\"},{\"slug\":\"PEOPLEDATALABS_GENERATE_SEARCH_QUERY\",\"name\":\"Generate Search Query\",\"description\":\"DEPRECATED: This action is deprecated and will be removed in a future release. Converts natural language queries into structured PDL Elasticsearch queries for people or company searches; generates optimized query structure without executing the search.\"},{\"slug\":\"PEOPLEDATALABS_GET_AUTOCOMPLETE_SUGGESTIONS\",\"name\":\"Autocomplete field suggestions\",\"description\":\"Provides autocompletion suggestions for a specific field (e.g., company, skill, title) based on partial text input.\"},{\"slug\":\"PEOPLEDATALABS_GET_AUTOCOMPLETE_SUGGESTIONS_POST\",\"name\":\"Get autocomplete suggestions (POST)\",\"description\":\"Tool to get autocompletion suggestions using POST method for complex query parameters. Use when building type-ahead interfaces or needing to suggest values for Search API queries. Supports company, location, skill, title, and other fields with configurable result size.\"},{\"slug\":\"PEOPLEDATALABS_GET_COLUMN_DETAILS\",\"name\":\"Get column details\",\"description\":\"Retrieves predefined enum values for a column name from `enum_mappings.json`; `is_enum` in the response will be false if the column is not found or is not an enum type.\"},{\"slug\":\"PEOPLEDATALABS_GET_SCHEMA\",\"name\":\"Get schema\",\"description\":\"Retrieves the schema, including field names, descriptions, and data types, for 'person' or 'company' entity types.\"},{\"slug\":\"PEOPLEDATALABS_GET_SUBJECT_REQUESTS\",\"name\":\"Get subject requests\",\"description\":\"Tool to retrieve subject access requests for data privacy compliance. Use when you need to manage or review data subject requests related to person data in your PeopleDataLabs account.\"},{\"slug\":\"PEOPLEDATALABS_IDENTIFY_PERSON_DATA\",\"name\":\"Identify person data\",\"description\":\"Retrieves detailed profile information for an individual from People Data Labs (PDL), requiring at least one identifier such as email, phone, or profile URL. If using name alone, it must be paired with at least one additional attribute (company, location, school, etc.) — name-only queries return no match.\"},{\"slug\":\"PEOPLEDATALABS_PEOPLE_SEARCH_ELASTIC\",\"name\":\"People Search with Elasticsearch\",\"description\":\"Searches for person profiles in the People Data Labs (PDL) database using an Elasticsearch Domain Specific Language (DSL) query. This action allows for highly targeted searches based on criteria such as job titles, skills, company details, location, experience, and more. Preconditions: - The provided Elasticsearch query (in the `query` field) must be a syntactically correct JSON object representing a valid Elasticsearch query. - The query must utilize fields that are defined in the People Data Labs person schema. - The `dataset` parameter must specify one of the allowed dataset categories.\"},{\"slug\":\"PEOPLEDATALABS_QUERY_PERSON_CHANGELOG\",\"name\":\"Query person changelog\",\"description\":\"Tool to query the changelog of person records between two consecutive dataset versions. Returns information about updates, additions, deletions, merges, and opt-outs for individuals. Use when you need to track changes to person profiles across PDL dataset versions or monitor specific person IDs for updates.\"},{\"slug\":\"PEOPLEDATALABS_SEARCH_COMPANY_ELASTIC\",\"name\":\"Company Search with Elasticsearch\",\"description\":\"Performs a search for company profiles within People Data Labs using a custom Elasticsearch Domain Specific Language (DSL) query. This action allows for detailed and complex filtering based on various attributes of a company, such as name, industry, employee_count, founded year, location, and more. Results can be paginated using the `size` and `scroll_token` parameters. Preconditions: - The `query` parameter must contain a valid Elasticsearch DSL query string, structured as a JSON object. - This action queries the People Data Labs company search endpoint (`/v5/company/search`) and returns company records.\"},{\"slug\":\"PEOPLEDATALABS_SEARCH_COMPANY_POST\",\"name\":\"Search Company Records (POST)\",\"description\":\"Tool to search and filter company records from the full Company Dataset using Elasticsearch or SQL queries via POST method. Use when you need to find multiple companies matching specific criteria with complex filtering.\"}]},{\"slug\":\"shopify\",\"name\":\"Shopify\",\"description\":\"Shopify is an e-commerce platform. This toolkit is GraphQL-first for new Admin API automations while retaining legacy REST compatibility actions for older workflows and numeric-ID interoperability\",\"logo\":\"https://logos.composio.dev/api/shopify\",\"rank\":40,\"tools\":[{\"slug\":\"SHOPIFY_ACTIVATE_ONE_TIME_CHARGE\",\"name\":\"Activate One-Time Charge\",\"description\":\"Activate a one-time application charge in Shopify. Use when you need to finalize billing for an accepted charge. DEPRECATED: This endpoint is deprecated as of API version 2021-01. One-time charges are now immediately activated when approved by a merchant, making this activation step no longer required for newer API versions.\"},{\"slug\":\"SHOPIFY_ADD_PRODUCT_TO_COLLECTION\",\"name\":\"Add product to custom collection (Deprecated)\",\"description\":\"DEPRECATED: Use SHOPIFY_ADDS_A_PRODUCT_TO_A_CUSTOM_COLLECTION instead. Adds a product to an existing *custom collection*, optionally specifying its `position` if the collection is manually sorted.\"},{\"slug\":\"SHOPIFY_ADD_PRODUCT_TO_CUSTOM_COLLECTION\",\"name\":\"Add product to custom collection\",\"description\":\"Add a product to a custom collection by creating a collect resource. Use when you need to link a product to a custom collection. Note: Can only add products to custom collections, not smart collections.\"},{\"slug\":\"SHOPIFY_ADJUST_INVENTORY_LEVEL\",\"name\":\"Adjust inventory levels\",\"description\":\"Adjust the inventory level of an inventory item at a single location. Use when you need to increase or decrease stock quantities at a specific location.\"},{\"slug\":\"SHOPIFY_APPLY_FULFILLMENT_HOLD\",\"name\":\"Apply fulfillment hold\",\"description\":\"Applies a fulfillment hold to an open fulfillment order, halting all fulfillment work. Use when you need to pause fulfillment due to payment issues, fraud concerns, address problems, or inventory shortages. The fulfillment order status will change to on_hold, preventing any fulfillment work from proceeding until the hold is released.\"},{\"slug\":\"SHOPIFY_APPROVE_COMMENT\",\"name\":\"Approve a comment\",\"description\":\"Approves a pending comment and publishes it to a blog article, making it publicly visible to readers. This action changes the comment's status from 'pending' or 'unapproved' to 'published' and sets the published_at timestamp. Use this when moderating blog comments that require approval before appearing on the storefront. Requires the 'write_content' scope.\"},{\"slug\":\"SHOPIFY_BULK_CREATE_PRODUCTS\",\"name\":\"Bulk create products via GraphQL\",\"description\":\"Creates many products (20-50+) in one asynchronous Shopify bulk mutation job. Uses stagedUploadsCreate for JSONL upload, then bulkOperationRunMutation with productCreate, polling until completion and returning per-row success/errors.\"},{\"slug\":\"SHOPIFY_BULK_DELETE_CUSTOMER_ADDRESSES\",\"name\":\"Bulk delete customer addresses (Deprecated)\",\"description\":\"Bulk delete multiple customer addresses in a single operation. This action permanently removes several addresses from a customer's address book at once, which is more efficient than deleting addresses one by one. Use this when you need to clean up multiple invalid or outdated addresses for a customer. Requires the 'write_customers' scope and access to protected customer data.\"},{\"slug\":\"SHOPIFY_BULK_DELETE_METAFIELDS\",\"name\":\"Delete metafields in bulk\",\"description\":\"Deletes multiple metafields in bulk using their owner ID, namespace, and key. If a metafield doesn't exist, the mutation still succeeds but returns null for that identifier in the response.\"},{\"slug\":\"SHOPIFY_BULK_DELETE_METAOBJECTS\",\"name\":\"Bulk delete metaobjects\",\"description\":\"Asynchronously delete metaobjects and their associated metafields in bulk. Use this action to delete multiple metaobjects by their IDs or delete all metaobjects of a specific type. The operation is asynchronous and returns a job ID for tracking completion status.\"},{\"slug\":\"SHOPIFY_BULK_QUERY_OPERATION\",\"name\":\"Run Shopify bulk query operation\",\"description\":\"Run a Shopify GraphQL bulk query operation and return the result file URL and operation metadata. Use when you need to retrieve large datasets (thousands of records) from Shopify without manual pagination, such as bulk fetching products, orders, customers, or inventory. The query must include at least one connection (edges/nodes structure). This action polls the operation status until completion or timeout.\"},{\"slug\":\"SHOPIFY_CALCULATE_REFUND\",\"name\":\"Calculate a refund\",\"description\":\"Calculate accurate refund amounts, taxes, and transactions for a Shopify order before creating an actual refund. Use this action to: - Preview refund calculations for line items with accurate tax breakdowns - Determine shipping refund amounts and maximum refundable values - Get suggested transactions that can be used to create the actual refund The response includes transactions with kind='suggested_refund' which must be changed to kind='refund' before creating an actual refund using the create refund endpoint.\"},{\"slug\":\"SHOPIFY_CANCEL_APP_SUBSCRIPTION\",\"name\":\"Cancel App Subscription\",\"description\":\"Cancel an app subscription in Shopify using the appSubscriptionCancel GraphQL mutation. Use when you need to cancel an existing app subscription, optionally with prorated credits.\"},{\"slug\":\"SHOPIFY_CANCEL_BULK_OPERATION\",\"name\":\"Cancel Shopify bulk operation\",\"description\":\"Cancel a running Shopify bulk operation. Use when you need to stop a long-running bulk query or mutation operation that is no longer needed. Note that there may be a short delay between when cancelation starts and when the operation is actually canceled.\"},{\"slug\":\"SHOPIFY_CANCEL_FULFILLMENT\",\"name\":\"Cancel a fulfillment\",\"description\":\"Cancels an existing fulfillment by its ID, reverting all line items to an unfulfilled state. Use this when a fulfillment was created in error or needs to be redone. The cancellation is permanent and cannot be undone - the line items will return to the unfulfilled state and a new fulfillment must be created if needed. Only fulfillments that haven't been shipped or are in certain states can be cancelled.\"},{\"slug\":\"SHOPIFY_CANCEL_FULFILLMENT_ORDER\",\"name\":\"Cancel a Fulfillment Order\",\"description\":\"Cancels a fulfillment order in Shopify and marks it as closed. This creates a replacement fulfillment order with the same line items, allowing reassignment to a different location. Use this for merchant-managed fulfillments. For third-party fulfillment services, use the cancellation request endpoints instead. This endpoint immediately cancels the order without requiring acceptance from a fulfillment service.\"},{\"slug\":\"SHOPIFY_CANCEL_ORDER\",\"name\":\"Cancel an order\",\"description\":\"Cancels a Shopify order and optionally restocks items and sends email notifications. Use when canceling an order that has not yet been paid or fulfilled. Orders cannot be cancelled if payment status is already paid or if the order has existing fulfillments.\"},{\"slug\":\"SHOPIFY_CLOSE_ORDER\",\"name\":\"Close an order\",\"description\":\"Closes an open Shopify order. Use when all line items have been fulfilled or canceled and all financial transactions are complete.\"},{\"slug\":\"SHOPIFY_COMPLETE_DRAFT_ORDER\",\"name\":\"Complete a draft order\",\"description\":\"Complete a draft order in Shopify and transition it to an actual order. Use when you need to finalize a draft order, reserve inventory, and create a corresponding order. When completing with payment_pending=true, the payment gateway is set to Manual.\"},{\"slug\":\"SHOPIFY_CONNECT_INVENTORY_LEVEL\",\"name\":\"Connect inventory item to location\",\"description\":\"Connects an inventory item to a location, establishing where the item can be stocked and fulfilled. This creates an inventory level with an initial available quantity of 0. Use this when you need to enable a product variant to be stocked at a new location. After connecting, use the 'set' or 'adjust' inventory level actions to update quantities.\"},{\"slug\":\"SHOPIFY_COUNT_ARTICLES\",\"name\":\"Count articles in blog\",\"description\":\"Retrieves a count of all articles from a blog. Use when you need to know how many articles exist in a specific blog, optionally filtered by creation, publication, or update dates and publication status.\"},{\"slug\":\"SHOPIFY_COUNT_BLOGS\",\"name\":\"Get blogs count\",\"description\":\"Retrieves the total count of all blogs in a Shopify store. Use this action when you need to know how many blogs exist in the store without fetching the full list of blog details. This is useful for pagination calculations, analytics, or checking if any blogs exist before performing other operations. Requires 'read_content' or 'write_content' OAuth scope.\"},{\"slug\":\"SHOPIFY_COUNT_CUSTOM_COLLECTIONS\",\"name\":\"Retrieve count of custom collections (Deprecated)\",\"description\":\"Retrieves a count of custom collections with optional filters. Use when you need to know how many custom collections exist in the store, optionally filtered by product, publication status, or date ranges.\"},{\"slug\":\"SHOPIFY_COUNT_DRAFT_ORDERS\",\"name\":\"Get draft orders count\",\"description\":\"Retrieves a count of draft orders from a Shopify store. Use when you need to know how many draft orders exist without fetching full draft order details. Supports filtering by status and date range to count specific subsets of draft orders.\"},{\"slug\":\"SHOPIFY_COUNT_EVENTS\",\"name\":\"Count all the events (Deprecated)\",\"description\":\"Count all events in a Shopify store with comprehensive filtering. Use when you need to determine how many events match specified criteria including date range, resource type, or action verb.\"},{\"slug\":\"SHOPIFY_COUNT_FULFILLMENTS\",\"name\":\"Count fulfillments for order\",\"description\":\"Retrieves a count of fulfillments associated with a specific order. Use when you need to determine how many fulfillments exist for an order, optionally filtered by creation or update dates.\"},{\"slug\":\"SHOPIFY_COUNT_LOCATION\",\"name\":\"Retrieves a count of locations (Deprecated)\",\"description\":\"Retrieves a count of locations. Use when you need to determine how many physical or virtual locations are configured in the Shopify store.\"},{\"slug\":\"SHOPIFY_COUNT_METAFIELDS\",\"name\":\"Count shop metafields\",\"description\":\"Retrieves the shop-level count of metafields. Use resource-specific metafield actions for product, customer, order, collection, page, or article metafields.\"},{\"slug\":\"SHOPIFY_COUNT_ORDER\",\"name\":\"Count orders (Deprecated)\",\"description\":\"DEPRECATED: Use SHOPIFY_RETRIEVES_AN_ORDER_COUNT instead. Retrieves the count of orders in a Shopify store. Use when you need to know how many orders exist, optionally filtered by status, dates, financial status, fulfillment status, or attribution app. Note: Only the last 60 days' worth of orders are accessible by default unless the app has been granted the read_all_orders scope.\"},{\"slug\":\"SHOPIFY_COUNT_PAGES\",\"name\":\"Retrieve page count\",\"description\":\"Retrieve the total count of pages in a Shopify store. Use when you need to determine how many pages exist, optionally filtered by creation date, update date, publication date, publication status, or title.\"},{\"slug\":\"SHOPIFY_COUNT_PRICE_RULES\",\"name\":\"Count price rules\",\"description\":\"Retrieves a count of all price rules. Use when you need to determine how many price rules (discount campaigns) are configured in the store.\"},{\"slug\":\"SHOPIFY_COUNT_PRODUCT_IMAGES\",\"name\":\"Count product images\",\"description\":\"Retrieves the total count of images for a specific Shopify product. Use when you need to know how many images are associated with a product.\"},{\"slug\":\"SHOPIFY_COUNT_PRODUCTS\",\"name\":\"Retrieves a count of products\",\"description\":\"Retrieve a count of products in the Shopify store. Use when you need to get the total number of products, optionally filtered by collection, vendor, product type, status, or date ranges.\"},{\"slug\":\"SHOPIFY_COUNT_PRODUCT_VARIANTS\",\"name\":\"Count product variants\",\"description\":\"Retrieves the total count of variants for a Shopify product. Use when you need to know how many variants exist for a specific product.\"},{\"slug\":\"SHOPIFY_COUNT_SCRIPT_TAGS\",\"name\":\"Count script tags\",\"description\":\"Retrieves a count of all script tags in the shop. Script tags are remote JavaScript files that are loaded into the pages of a shop's storefront or checkout. Use this action to determine the total number of script tags, optionally filtered by a specific source URL. Note: This endpoint is part of the legacy REST Admin API (deprecated). The Shopify GraphQL Admin API should be used for new integrations.\"},{\"slug\":\"SHOPIFY_COUNT_WEBHOOKS\",\"name\":\"Receive a count of all webhooks (Deprecated)\",\"description\":\"Retrieves a count of existing webhook subscriptions. Use when you need to know how many webhooks are configured, optionally filtered by address or topic.\"},{\"slug\":\"SHOPIFY_CREATE_A_METAFIELD\",\"name\":\"Create a metafield\",\"description\":\"Create a metafield for any Shopify resource. Use when you need to attach custom metadata to products, customers, orders, collections, or other supported resources.\"},{\"slug\":\"SHOPIFY_CREATE_A_NEW_PRODUCT_IMAGE\",\"name\":\"Create A New Product Image (Deprecated)\",\"description\":\"Create a new product image for a Shopify product. Use when you need to add an image to a product by providing either an image URL or base64-encoded image data. Products can have up to 250 images in PNG, GIF, or JPG formats.\"},{\"slug\":\"SHOPIFY_CREATE_APP_SUBSCRIPTION\",\"name\":\"Create app subscription\",\"description\":\"Create a recurring or usage-based app subscription for charging Shopify merchants. Use when setting up billing for app features and services. Returns a confirmation URL where the merchant must approve charges before the subscription becomes active.\"},{\"slug\":\"SHOPIFY_CREATE_ARTICLE\",\"name\":\"Create Article\",\"description\":\"Create an article for a blog in Shopify. Use when you need to add blog content to a specific blog. The title field is mandatory - requests without titles return a 422 error.\"},{\"slug\":\"SHOPIFY_CREATE_ARTICLE_COMMENT\",\"name\":\"Create Comment for Article\",\"description\":\"Create a comment for an article in Shopify. Use when you need to add reader comments to blog articles. Requires 'content' access scope and protected customer data access.\"},{\"slug\":\"SHOPIFY_CREATE_BLOG\",\"name\":\"Create a new blog\",\"description\":\"Create a new blog in Shopify. Use when you need to add a blog to the store for publishing articles and content. The title field is mandatory.\"},{\"slug\":\"SHOPIFY_CREATE_COUNTRY\",\"name\":\"Create Country\",\"description\":\"Create a country with tax configuration for the Shopify store. Use when you need to add a new country to the store's shipping or tax settings. **Important Notes:** - The REST Country API is deprecated as of API version 2024-07 - This action requires merchant approval for the 'write_shipping' scope - The 'tax' field is deprecated as of API version 2020-10 and custom tax values can no longer be created or updated - For new implementations, consider using the GraphQL Admin API's \\\"Countries in shipping zone\\\" endpoint instead\"},{\"slug\":\"SHOPIFY_CREATE_CUSTOM_COLLECTION\",\"name\":\"Create a custom collection\",\"description\":\"Create a new custom (manually curated) collection in Shopify. Does not support smart collections. Use when you need to manually curate and group products for easier store browsing. Custom collections require a title and support optional fields like description, image, publication settings, and sort order. After creation, use the returned `collection_id` with SHOPIFY_ADD_PRODUCT_TO_COLLECTION to associate products.\"},{\"slug\":\"SHOPIFY_CREATE_CUSTOMER\",\"name\":\"Create Customer\",\"description\":\"Create a new customer in Shopify. Use to add a customer record to the store with contact details, addresses, and marketing preferences. Requires at least one of: email, phone, or both first_name and last_name. Errors (e.g., duplicate email, invalid fields) are returned in the response body's userErrors array, not as HTTP error codes — always inspect userErrors to detect failures.\"},{\"slug\":\"SHOPIFY_CREATE_CUSTOMER_ACCOUNT_ACTIVATION_URL\",\"name\":\"Generate Customer Account Activation URL\",\"description\":\"Generate a one-time account activation URL for a customer whose account is in 'disabled' state (not yet activated). Use this when you've imported customers and need activation URLs to send in welcome emails. The URL allows customers to set their password and activate their account. Each URL expires after 30 days. Generating a new URL invalidates any previously generated URL for that customer.\"},{\"slug\":\"SHOPIFY_CREATE_CUSTOMER_ADDRESS\",\"name\":\"Create customer address\",\"description\":\"Create a new address for a customer. Use when you need to add an address to an existing customer's address list.\"},{\"slug\":\"SHOPIFY_CREATE_DELEGATE_ACCESS_TOKEN\",\"name\":\"Create delegate access token\",\"description\":\"Create a delegate access token with a subset of the parent token's permissions. Use when you need to securely delegate limited access to subsystems or services. Each delegate token inherits only the specified scopes, ensuring minimal required permissions rather than full app access. Note: Delegate tokens cannot create new delegate tokens.\"},{\"slug\":\"SHOPIFY_CREATE_DISCOUNT_CODE\",\"name\":\"Create Discount Code\",\"description\":\"Creates a discount code for an existing price rule. Price rules define the discount logic (e.g., 10% off, buy X get Y), and discount codes are the actual codes (e.g., 'SUMMER10') customers enter at checkout. Important: The price rule must exist before creating a discount code - use a price rule creation action first if needed. Each price rule can have multiple discount codes associated with it. Use this when you need to generate customer-facing discount codes for an established discount promotion.\"},{\"slug\":\"SHOPIFY_CREATE_DISCOUNT_CODE_BATCH\",\"name\":\"Create Discount Codes Batch\",\"description\":\"Create a discount code creation job for batch processing. Use when you need to asynchronously create up to 100 discount codes for a price rule in a single request.\"},{\"slug\":\"SHOPIFY_CREATE_DRAFT_ORDER\",\"name\":\"Create a new draft order\",\"description\":\"Create a draft order in Shopify. Use when you need to create orders in draft state using product variant line items or custom line items. Draft orders are useful for creating orders on behalf of customers, generating invoices, or reserving inventory.\"},{\"slug\":\"SHOPIFY_CREATE_EVENT_BRIDGE_WEBHOOK_SUBSCRIPTION\",\"name\":\"Create EventBridge webhook subscription\",\"description\":\"Create an AWS EventBridge webhook subscription in Shopify. Use when you need to configure real-time event notifications to AWS EventBridge for events like order creation, product updates, or customer changes. EventBridge webhooks push events to your AWS partner event source immediately when changes occur, eliminating polling. You can filter events and control payload fields to optimize performance.\"},{\"slug\":\"SHOPIFY_CREATE_FULFILLMENT\",\"name\":\"Create Fulfillment\",\"description\":\"Creates a fulfillment for one or many fulfillment orders for a specific order. This completes the shipping process by marking items as fulfilled. IMPORTANT: You must first retrieve fulfillment orders using a \\\"Get fulfillment orders for order\\\" action to obtain the fulfillment_order_id and line item IDs needed for this action. Use when: You need to mark order items as shipped/fulfilled for orders assigned to merchant-managed locations or third-party fulfillment services. Note: As of API version 2024-10, fulfillments can only be created for merchant-managed locations or third-party fulfillment services owned by your app.\"},{\"slug\":\"SHOPIFY_CREATE_FULFILLMENT_EVENT\",\"name\":\"Create Fulfillment Event\",\"description\":\"Creates a tracking event for a fulfillment to update shipment status. These events appear on the customer's order status page to track delivery progress (e.g., \\\"in_transit\\\", \\\"out_for_delivery\\\", \\\"delivered\\\"). Use this to provide real-time tracking updates from shipping carriers. Requires an existing fulfillment - use after creating a fulfillment for an order.\"},{\"slug\":\"SHOPIFY_CREATE_GIFT_CARD\",\"name\":\"Create Gift Card\",\"description\":\"Create a gift card for a Shopify store. Use when you need to issue a new gift card with a specified value. Requires write_gift_cards access scope. Gift card codes can only be retrieved at creation time.\"},{\"slug\":\"SHOPIFY_CREATE_MARKETING_ENGAGEMENTS\",\"name\":\"Create Marketing Event Engagements\",\"description\":\"Create engagement data for a marketing event in Shopify. Use when tracking customer interactions like views, clicks, and ad spend on marketing events before customers reach the website.\"},{\"slug\":\"SHOPIFY_CREATE_MARKETING_EVENT\",\"name\":\"Create Marketing Event\",\"description\":\"Create a marketing event in Shopify to track promotional actions. Use when you need to track marketing campaigns targeting customers across various channels.\"},{\"slug\":\"SHOPIFY_CREATE_METAFIELD\",\"name\":\"Create blog metafield\",\"description\":\"Creates a new metafield for a Shopify blog. Metafields store additional custom information (metadata) on blog resources such as sponsor names, SEO keywords, publication dates, or custom attributes not included in standard blog fields.\"},{\"slug\":\"SHOPIFY_CREATE_ONE_TIME_APPLICATION_CHARGE\",\"name\":\"Create One-Time Application Charge\",\"description\":\"Create a new one-time application charge in Shopify. Use when you need to bill merchants for one-time features, upgrades, or services. After creation, the merchant must approve the charge via the confirmation_url before it becomes active.\"},{\"slug\":\"SHOPIFY_CREATE_ORDER\",\"name\":\"Create an order\",\"description\":\"Create a fully committed (real) order in Shopify without payment processing. Use when programmatically generating orders with line items, customer information, and addresses. Creates a live order immediately — not a draft; use draftOrderCreate for draft workflows.\"},{\"slug\":\"SHOPIFY_CREATE_ORDER_RISK\",\"name\":\"Create order risk\",\"description\":\"Creates a risk assessment record for a Shopify order, documenting fraud detection findings or security concerns. Use this to record risk evaluations from external fraud detection systems or internal risk analysis tools. **Important:** This REST API endpoint is deprecated as of API version 2025-10. For new implementations, use the GraphQL orderRiskAssessmentCreate mutation instead. See: https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderRiskAssessmentCreate **Common use cases:** - Recording fraud detection results from third-party services (e.g., MaxMind, Sift, Signifyd) - Documenting manual fraud reviews - Flagging high-risk orders for merchant review\"},{\"slug\":\"SHOPIFY_CREATE_ORDER_TRANSACTION\",\"name\":\"Create transaction for order\",\"description\":\"Creates a transaction for an order to process payment operations. Use when you need to authorize, capture, refund, void, or complete a sale for an order. For multi-currency orders, the currency field is required when creating refund and capture transactions.\"},{\"slug\":\"SHOPIFY_CREATE_PAGE\",\"name\":\"Create a new page\",\"description\":\"Create a static web page in Shopify. Use when you need to add long-term static content like About Us, Contact, or Privacy Policy pages. The title and body_html fields are required.\"},{\"slug\":\"SHOPIFY_CREATE_PRICE_RULE\",\"name\":\"Create Price Rule\",\"description\":\"Creates a price rule that defines discount logic for Shopify orders. Price rules specify how discounts work (percentage/fixed amount off, which products, which customers, etc.) and can be associated with discount codes for use at checkout. Common use cases: - Percentage off all products (e.g., 20% off sitewide) - Fixed amount off orders (e.g., $10 off orders over $50) - Buy X Get Y (BXGY) discounts - Free shipping offers - Customer segment-specific discounts Note: After creating a price rule, use the discount code creation endpoint to generate codes that customers can apply.\"},{\"slug\":\"SHOPIFY_CREATE_PRODUCT\",\"name\":\"Create a product (Deprecated)\",\"description\":\"DEPRECATED: Use SHOPIFY_CREATES_A_NEW_PRODUCT instead. Creates a new product in a Shopify store; a product title is generally required. Note: The Product REST API is deprecated as of API version 2025-10. While it continues to function, Shopify recommends migrating to the GraphQL Admin API for product management in new implementations. Inventory Management: inventory_quantity is read-only and cannot be set during product creation. To manage inventory, first create the product, then use the InventoryLevel resource with the variant's inventory_item_id (returned in the response) to adjust quantities at specific locations. Response: product data nested at `data.response_data.product`; extract `id` and `variants[0].id` for subsequent image or collection calls.\"},{\"slug\":\"SHOPIFY_CREATE_PRODUCT_IMAGE\",\"name\":\"Create Product Image (Deprecated)\",\"description\":\"DEPRECATED: Use SHOPIFY_CREATE_A_NEW_PRODUCT_IMAGE instead. Creates a new product image for a Shopify product. Use this tool to add images to products either by providing a publicly accessible image URL (src) or by uploading base64-encoded image data (attachment). You can specify the image position (1 is the main image), add alt text for accessibility, and associate the image with specific product variants. Supports PNG, JPG, and GIF formats. Products can have up to 250 images.\"},{\"slug\":\"SHOPIFY_CREATE_PRODUCT_METAFIELD\",\"name\":\"Create product metafield\",\"description\":\"Creates a new metafield for a specific Shopify product. Each namespace+key combination must be unique per product; use the update action if the metafield already exists.\"},{\"slug\":\"SHOPIFY_CREATE_PRODUCT_VARIANT\",\"name\":\"Create a new product variant\",\"description\":\"Create a new product variant for an existing product. Use when adding a new variant with specific option values (like size, color). Each product can have up to 3 options and 100 variants maximum.\"},{\"slug\":\"SHOPIFY_CREATE_PUB_SUB_WEBHOOK_SUBSCRIPTION\",\"name\":\"Create Pub/Sub webhook subscription\",\"description\":\"Create a Google Cloud Pub/Sub webhook subscription in Shopify. Use when you need to configure real-time event notifications to Google Cloud Pub/Sub for events like order creation, product updates, or customer changes. Pub/Sub webhooks push events to your GCP topic immediately when changes occur, eliminating polling. You can filter events and control payload fields to optimize performance.\"},{\"slug\":\"SHOPIFY_CREATE_REDIRECT\",\"name\":\"Create Redirect\",\"description\":\"Create a URL redirect in Shopify. Use when you need to redirect an old path to a new location. When a full URL is provided as the path, it will be saved as an absolute path without the domain.\"},{\"slug\":\"SHOPIFY_CREATE_REFUND\",\"name\":\"Create order refund\",\"description\":\"Creates a refund for a Shopify order. **IMPORTANT: You must call the calculate refund endpoint (SHOPIFY_CREATE_ORDERS_REFUNDS_CALCULATE) first** to generate accurate transaction data with kind='suggested_refund', then change kind to 'refund' before using this action. Requires order_id and transaction details (parent_id, amount, kind='refund', gateway). For multi-currency orders, currency is required. Rate limit: 5 refunds/minute on dev/trial stores.\"},{\"slug\":\"SHOPIFY_CREATE_RESOURCE_FEEDBACK\",\"name\":\"Create Resource Feedback\",\"description\":\"Creates shop-level resource feedback to notify Shopify merchants about app setup requirements or successful configuration. Feedback appears on the merchant's admin home screen. Each new submission automatically replaces previous feedback. Use state='requires_action' to alert merchants about mandatory setup steps, or state='success' to confirm proper configuration.\"},{\"slug\":\"SHOPIFY_CREATES_A_NEW_PRODUCT\",\"name\":\"Create a new product (Deprecated)\",\"description\":\"Create a new product in Shopify. Use when you need to add a new product to the store with details like title, description, variants, options, and images.\"},{\"slug\":\"SHOPIFY_CREATE_SCRIPT_TAG\",\"name\":\"Create Script Tag\",\"description\":\"Create a new script tag in Shopify to load remote JavaScript into your online store. Script tags allow you to add custom functionality to your storefront by loading external JavaScript files. Requires 'write_script_tags' OAuth scope. Note: As of February 1, 2025, creating script tags for order status pages is blocked by Shopify. Use 'online_store' display_scope for storefront functionality.\"},{\"slug\":\"SHOPIFY_CREATE_SMART_COLLECTIONS\",\"name\":\"Create Smart Collection\",\"description\":\"Create a new smart collection with automated product rules. Use when you need to create dynamic collections that automatically include products matching specific criteria (e.g., by vendor, price range, tags). Requires write_products scope.\"},{\"slug\":\"SHOPIFY_CREATES_OR_UPDATES_AN_ASSET_FOR_A_THEME\",\"name\":\"Create or Update Theme Asset\",\"description\":\"Creates or updates a theme asset file (templates, stylesheets, scripts, or images) within a Shopify theme. This action uploads or modifies files in the theme's file structure. For text-based files (HTML, Liquid, CSS, JS), use the 'value' parameter with file content. For binary files (images), use 'attachment' with base64-encoded data or 'src' with an external URL. To duplicate an existing asset, use 'source_key'. **Important**: Exactly one of value, attachment, src, or source_key must be provided per request. **Requirements**: - Requires 'write_themes' scope with merchant approval - Note: REST Admin API is legacy as of October 2024; new apps should use GraphQL Admin API from April 2025\"},{\"slug\":\"SHOPIFY_CREATE_STOREFRONT_ACCESS_TOKEN\",\"name\":\"Create Storefront Access Token\",\"description\":\"Creates a new storefront access token for unauthenticated Storefront API access. The token delegates unauthenticated access scopes to clients that need to access the Storefront API without authentication. Requirements: - The app must be configured as an 'extendable' (Sales Channel) app in the Shopify Partner Dashboard - The app must have at least one unauthenticated access scope granted (e.g., unauthenticated_read_product_listings, unauthenticated_write_checkouts) - The created token inherits all unauthenticated scopes from the app Limitations: Maximum 100 active tokens per shop. Tokens cannot be updated after creation, only deleted.\"},{\"slug\":\"SHOPIFY_CREATE_THEME\",\"name\":\"Create Theme\",\"description\":\"Creates a new theme in Shopify from a ZIP file containing theme assets. Requires a publicly accessible URL to the ZIP file. The theme will default to 'unpublished' status unless the role is explicitly set to 'main' (which publishes the theme immediately after file extraction). Note: This action requires the 'write_themes' scope, which needs merchant approval in Shopify. A store can have a maximum of 20 themes.\"},{\"slug\":\"SHOPIFY_CREATE_WEBHOOK\",\"name\":\"Create Webhook (Deprecated)\",\"description\":\"Creates a new webhook subscription in Shopify to receive real-time notifications when specific events occur in the store. Webhooks allow your application to be notified automatically when events like order creation, product updates, or customer changes happen. The webhook will POST event data to the specified address. Required parameters: address (destination URL) and topic (event type). Optional parameters: format (defaults to 'json'), fields (to limit payload size), metafield_namespaces (to include metafields). Requires 'write_webhooks' scope. May also require topic-specific scopes (e.g., 'read_orders' for orders/* topics).\"},{\"slug\":\"SHOPIFY_CREATE_WEBHOOK_SUBSCRIPTION\",\"name\":\"Create webhook subscription\",\"description\":\"Create a webhook subscription that notifies your app when specific events occur in a Shopify store. Use when you need real-time event notifications for orders, products, customers, or other resources. Supports HTTPS URLs, Google Pub/Sub topics, and AWS EventBridge event sources.\"},{\"slug\":\"SHOPIFY_DELETE_ARTICLE\",\"name\":\"Delete Article\",\"description\":\"Delete an article from a blog in Shopify. Use when you need to permanently remove blog content. This action is irreversible.\"},{\"slug\":\"SHOPIFY_DELETE_BLOG\",\"name\":\"Delete a blog\",\"description\":\"Permanently deletes a blog from a Shopify store using its `blog_id`; this action is irreversible and requires the 'content' access scope.\"},{\"slug\":\"SHOPIFY_DELETE_COLLECT\",\"name\":\"Remove product from collection\",\"description\":\"Removes a product from a custom collection by deleting the collect. Use when you need to unlink a specific product from a custom collection using the collect ID.\"},{\"slug\":\"SHOPIFY_DELETE_COMMENT\",\"name\":\"Remove a comment\",\"description\":\"Remove a comment from a Shopify blog. Use when you need to hide a comment from blog readers while preserving the data. The comment status will be changed to 'removed'. Note: This action requires 'write_content' scope and protected customer data access approval from Shopify, as comments contain customer information (author, email, IP address).\"},{\"slug\":\"SHOPIFY_DELETE_COUNTRY\",\"name\":\"Delete country\",\"description\":\"Deletes a country from the shop's tax configuration. Removes a country that was previously added to the shop's tax settings. The country must have been added via the API or Shopify admin for this operation to succeed. Requires the 'write_shipping' scope. DEPRECATION WARNING: This REST API endpoint was deprecated in API version 2024-07 (effective July 1, 2024). The recommended alternative is the GraphQL Countries in Shipping Zone API. This endpoint may not be available in newer API versions or may have restricted access in many Shopify stores.\"},{\"slug\":\"SHOPIFY_DELETE_CUSTOM_COLLECTION\",\"name\":\"Delete custom collection (Deprecated)\",\"description\":\"DEPRECATED: Use SHOPIFY_DELETES_A_CUSTOM_COLLECTION instead. Permanently deletes a custom collection from a Shopify store using its `collection_id`; this action is irreversible and requires a valid, existing `collection_id`.\"},{\"slug\":\"SHOPIFY_DELETE_CUSTOMER\",\"name\":\"Delete a customer\",\"description\":\"Deletes a customer from the Shopify store. Use when you need to permanently remove a customer who has no existing orders. Cannot delete customers with existing orders.\"},{\"slug\":\"SHOPIFY_DELETE_CUSTOMER_ADDRESS\",\"name\":\"Delete customer address\",\"description\":\"Removes an address from a customer's address list. Cannot delete the customer's default address - to delete a default address, first assign a different address as the default.\"},{\"slug\":\"SHOPIFY_DELETE_DRAFT_ORDER\",\"name\":\"Delete a draft order\",\"description\":\"Delete a draft order from Shopify. Use when you need to remove an existing draft order permanently.\"},{\"slug\":\"SHOPIFY_DELETE_FULFILLMENT_EVENT\",\"name\":\"Delete fulfillment event\",\"description\":\"Deletes a fulfillment event (tracking status update) from an order's fulfillment. Use this action when you need to remove an incorrect or outdated tracking event from a fulfillment. Fulfillment events represent tracking status updates like 'in_transit', 'out_for_delivery', or 'delivered' that are displayed to customers on the order status page. Common use cases: - Removing duplicate tracking events - Correcting erroneous status updates - Cleaning up test events Prerequisites: You must have valid order_id, fulfillment_id, and event_id. These can be obtained from order retrieval actions or fulfillment event list actions. Note: This REST endpoint is deprecated. For new integrations, consider using the GraphQL Admin API. Requires 'write_orders' scope and approval for protected customer data access.\"},{\"slug\":\"SHOPIFY_DELETE_FULFILLMENT_SERVICE\",\"name\":\"Remove fulfillment service\",\"description\":\"Remove an existing fulfillment service from a Shopify store. Use when you need to permanently delete a third-party fulfillment service.\"},{\"slug\":\"SHOPIFY_DELETE_INVENTORY_LEVEL\",\"name\":\"Delete inventory levels\",\"description\":\"Deletes an inventory level of an inventory item at a location. Deleting an inventory level removes that item from the specified location. Every inventory item must have at least one inventory level.\"},{\"slug\":\"SHOPIFY_DELETE_MARKETING_EVENT\",\"name\":\"Delete a marketing event\",\"description\":\"Delete a marketing event from Shopify. Use when you need to remove an existing marketing event from the system.\"},{\"slug\":\"SHOPIFY_DELETE_METAFIELD\",\"name\":\"Delete a metafield by its ID\",\"description\":\"Deletes a metafield by its ID from any Shopify resource. Use this action to permanently remove metafields from: - Shop-level metafields (use resource='shop' or 'metafields') - Product metafields (resource='products') - Collection metafields (resource='collections') - Customer metafields (resource='customers') - Order metafields (resource='orders') - Other resource-specific metafields The deletion is permanent and cannot be undone. Returns an empty response on success.\"},{\"slug\":\"SHOPIFY_DELETE_METAOBJECT\",\"name\":\"Delete metaobject\",\"description\":\"Deletes a metaobject and its associated metafields using GraphQL mutation. Use when you need to permanently remove a metaobject from the Shopify store. The deletion is permanent and cannot be undone.\"},{\"slug\":\"SHOPIFY_DELETE_METAOBJECT_DEFINITION\",\"name\":\"Delete metaobject definition\",\"description\":\"Delete a metaobject definition and all its associated data. Use when you need to completely remove a metaobject definition schema. This mutation also asynchronously deletes all related metafield definitions, metaobjects, and metafields.\"},{\"slug\":\"SHOPIFY_DELETE_ORDER\",\"name\":\"Delete an order\",\"description\":\"Permanently delete an order from Shopify. Use when you need to remove test orders, orders paid with manual payment methods, or draft orders marked as paid. Orders must be archived or canceled before deletion. Orders that interact with an online gateway, are paid via Shopify POS, online checkout, or with gift cards cannot be deleted.\"},{\"slug\":\"SHOPIFY_DELETE_ORDER_RISK\",\"name\":\"Delete order risk\",\"description\":\"Deletes an order risk from an order. Only the application that created the risk can delete it - you cannot delete risks created by other applications. **IMPORTANT DEPRECATION NOTICE**: The Order Risk REST API has been deprecated as of Shopify API version 2025-10 and is no longer accessible. This endpoint will return 403 Forbidden errors when used with API version 2025-10 or later. For new implementations, use the GraphQL orderRiskAssessmentCreate and related mutations instead. See: https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderRiskAssessmentCreate To use this action, you must use Shopify API version 2024-01 or earlier, though migrating to the GraphQL Risk Assessments API is strongly recommended.\"},{\"slug\":\"SHOPIFY_DELETE_PAGE\",\"name\":\"Delete a page\",\"description\":\"Delete a page from a Shopify store permanently. Use when you need to remove an existing page; this operation is irreversible and requires content access scope.\"},{\"slug\":\"SHOPIFY_DELETE_PRICE_RULE\",\"name\":\"Delete price rule\",\"description\":\"Deletes an existing price rule from the Shopify store permanently. Use this action to remove price rules that are no longer needed. Note that deleting a price rule will also delete any discount codes associated with it. This operation is idempotent - deleting an already-deleted price rule will return an error. Common use cases: - Removing expired or outdated promotional campaigns - Cleaning up test price rules from development - Deactivating seasonal sales or limited-time offers To get a price rule ID: use the list price rules action or reference the ID from when you created the price rule.\"},{\"slug\":\"SHOPIFY_DELETE_PRODUCT\",\"name\":\"Delete a product\",\"description\":\"Permanently deletes a product from a Shopify store by its product ID. This action is irreversible - deleted products cannot be recovered. Deleting a product also removes all associated variants, images, inventory, and removes the product from all collections and sales channels store-wide. If the goal is collection-only cleanup, adjust collection membership instead.\"},{\"slug\":\"SHOPIFY_DELETE_PRODUCT_IMAGE\",\"name\":\"Delete product image\",\"description\":\"Deletes a specific image from a product in Shopify, requiring the `product_id` of an existing product and the `image_id` of an image currently associated with that product.\"},{\"slug\":\"SHOPIFY_DELETE_PRODUCT_METAFIELD\",\"name\":\"Delete product metafield\",\"description\":\"Deletes a specific metafield from a Shopify product using the product ID and metafield ID.\"},{\"slug\":\"SHOPIFY_DELETE_PRODUCT_VARIANT\",\"name\":\"Remove product variant\",\"description\":\"Deletes a specific product variant from a Shopify store using its unique product ID and variant ID; this action is irreversible. Use when you need to permanently remove a variant from a product.\"},{\"slug\":\"SHOPIFY_DELETE_REDIRECT\",\"name\":\"Delete redirect\",\"description\":\"Permanently deletes a URL redirect from a Shopify store. Use this tool to remove redirect rules that are no longer needed. A redirect automatically forwards visitors from an old URL path to a new target location. When you delete a redirect, visitors to the old path will no longer be automatically forwarded. Note: This operation is destructive and cannot be undone. If the redirect ID doesn't exist, the API will return a 404 error.\"},{\"slug\":\"SHOPIFY_DELETES_A_CUSTOM_COLLECTION\",\"name\":\"Delete a custom collection\",\"description\":\"Permanently delete a custom collection from a Shopify store. Use when you need to remove a custom collection that is no longer needed. This operation is irreversible and requires the 'write_products' access scope.\"},{\"slug\":\"SHOPIFY_DELETES_A_DISCOUNT_CODE\",\"name\":\"Delete a discount code\",\"description\":\"Delete a discount code from a price rule. Use when you need to remove a specific discount code associated with a price rule.\"},{\"slug\":\"SHOPIFY_DELETE_SAVED_SEARCH\",\"name\":\"Delete a saved search\",\"description\":\"Delete a saved search in Shopify. Use when you need to remove a saved search by its ID. The ID must be provided in GID format (gid://shopify/SavedSearch/[ID]).\"},{\"slug\":\"SHOPIFY_DELETE_SCRIPT_TAG\",\"name\":\"Delete Script Tag\",\"description\":\"Delete a script tag from your Shopify store. Permanently removes a script tag using its unique identifier. Script tags are JavaScript files that load on your storefront. Use this action to clean up deprecated scripts or remove third-party integrations. Requires 'write_script_tags' OAuth scope. Common use cases: - Remove outdated analytics or tracking scripts - Clean up after uninstalling third-party apps - Delete test scripts from development Note: Script tags are automatically deleted when the app that created them is uninstalled.\"},{\"slug\":\"SHOPIFY_DELETE_SMART_COLLECTION\",\"name\":\"Delete smart collection\",\"description\":\"Permanently removes a smart collection from a Shopify store using its `smart_collection_id`; this action is irreversible and requires a valid, existing smart collection ID.\"},{\"slug\":\"SHOPIFY_DELETE_STOREFRONT_ACCESS_TOKEN\",\"name\":\"Delete Storefront Access Token\",\"description\":\"Delete an existing storefront access token from a Shopify store. Use when you need to permanently revoke access for a storefront access token. This operation is irreversible.\"},{\"slug\":\"SHOPIFY_DELETE_THEME\",\"name\":\"Delete theme\",\"description\":\"Deletes a theme from the Shopify store by its ID. Use this tool when you need to permanently remove an unwanted theme. The deleted theme's details are returned in the response for confirmation. **Important limitations:** - Cannot delete a theme that is currently uploading or being updated (processing=true) - Cannot delete the last published theme (role=main) - you must publish another theme first - Cannot delete a theme that doesn't exist (returns 404) - Requires 'write_themes' scope permission **Best practices:** - Only delete unpublished, demo, or development themes - Check theme.role and theme.processing before deletion - Keep at least one published theme at all times\"},{\"slug\":\"SHOPIFY_DELETE_THEME_ASSET\",\"name\":\"Delete theme asset\",\"description\":\"Delete an asset from a Shopify theme. Use when you need to remove a specific asset file (such as CSS, JavaScript, images, or template files) from a theme by providing the theme ID and asset key. Note that required theme assets like layout/theme.liquid cannot be deleted and will result in an error.\"},{\"slug\":\"SHOPIFY_DELETE_WEBHOOK\",\"name\":\"Delete webhook subscription (Deprecated)\",\"description\":\"Delete a webhook subscription from Shopify. Use when you need to remove an existing webhook. Only the app that registered the webhook can delete it; attempting to delete another app's webhook will return a 404 error.\"},{\"slug\":\"SHOPIFY_DELETE_WEBHOOK_SUBSCRIPTION\",\"name\":\"Delete webhook subscription\",\"description\":\"Delete a webhook subscription and stop all future webhooks to its endpoint. Use when you need to remove a webhook subscription that is no longer needed. Returns the deleted subscription's ID for confirmation. Note: If you only use app-specific webhooks, this may not be needed. App-specific webhook subscriptions in shopify.app.toml are automatically managed by Shopify.\"},{\"slug\":\"SHOPIFY_DELETE_WEB_PRESENCE\",\"name\":\"Delete web presence\",\"description\":\"Delete a web presence from Shopify. Use when you need to remove a web presence by its ID.\"},{\"slug\":\"SHOPIFY_DISABLE_GIFT_CARD\",\"name\":\"Disable a Gift Card\",\"description\":\"Disable a gift card in Shopify. Use when you need to permanently deactivate a gift card. WARNING: This operation is irreversible and the gift card cannot be re-enabled once disabled.\"},{\"slug\":\"SHOPIFY_ENABLE_STANDARD_METAOBJECT_DEFINITION\",\"name\":\"Enable standard metaobject definition\",\"description\":\"Enable a standard metaobject definition from its template. Use when you need to activate a predefined Shopify metaobject template for use in your store.\"},{\"slug\":\"SHOPIFY_GET_ABANDONMENT\",\"name\":\"Get abandonment\",\"description\":\"Retrieves an abandonment record from Shopify using its unique ID. Use when you need to query customer abandonment data including type, customer info, email state, and timing details.\"},{\"slug\":\"SHOPIFY_GET_ABANDONMENT_BY_ABANDONED_CHECKOUT_ID\",\"name\":\"Get abandonment by abandoned checkout ID\",\"description\":\"Query abandonment information by abandoned checkout ID using Shopify's GraphQL Admin API. Use when you need to retrieve customer journey data, abandonment type, and email state for a specific abandoned checkout. Returns null if the checkout doesn't exist or has no abandonment tracking.\"},{\"slug\":\"SHOPIFY_GET_ACCESS_SCOPES\",\"name\":\"Get a list of access scopes\",\"description\":\"Retrieves a list of access scopes associated with the access token. Use when you need to view the permissions that merchants have granted during app installation.\"},{\"slug\":\"SHOPIFY_GET_APP\",\"name\":\"Get App\",\"description\":\"Query information about a Shopify app using the GraphQL API. Use when you need to retrieve details about the currently authenticated app or a specific app by its ID.\"},{\"slug\":\"SHOPIFY_GET_APP_BY_HANDLE\",\"name\":\"Get app by handle\",\"description\":\"Query app information by handle using the Shopify Admin GraphQL API. Use when you need to retrieve details about a specific Shopify app using its handle.\"},{\"slug\":\"SHOPIFY_GET_APP_INSTALLATION\",\"name\":\"Get app installation details\",\"description\":\"Query a specific app installation on a Shopify store. Use when you need to retrieve details about an app installation including access scopes, launch URL, and uninstall URL.\"},{\"slug\":\"SHOPIFY_GET_APPLICATION_CHARGE_BY_ID\",\"name\":\"Get Application Charge By ID\",\"description\":\"Retrieve a single application charge by its unique identifier. Use when you need detailed information about a specific one-time charge.\"},{\"slug\":\"SHOPIFY_GET_APPLICATION_CHARGES\",\"name\":\"Get Application Charges\",\"description\":\"Retrieves a list of one-time application charges for the current app installation. Application charges are one-time fees charged to merchants for app usage. This endpoint returns all charges with their status (pending, accepted, active, declined, expired). Use this to monitor billing history, verify charge status, or implement pagination with since_id. Returns an empty list if no charges exist, which is normal for new app installations.\"},{\"slug\":\"SHOPIFY_GET_APPLICATION_CREDITS\",\"name\":\"Get application credits\",\"description\":\"Retrieve all application credits for a shop. Use when you need to view credits issued to merchants that can be used towards future app purchases.\"},{\"slug\":\"SHOPIFY_GET_ARTICLE\",\"name\":\"Get Article\",\"description\":\"Retrieves a single article from a Shopify blog by its ID. Use this action when you need to: - Get detailed information about a specific blog article - Retrieve article content, metadata, or publication status - Access article properties like title, author, tags, or images The optional 'fields' parameter allows you to retrieve only specific article properties, reducing response size and improving performance when you don't need the full article data. Requires the 'read_content' OAuth scope.\"},{\"slug\":\"SHOPIFY_GET_BATCH_DISCOUNT_CODES\",\"name\":\"Get Batch Discount Codes\",\"description\":\"Retrieves discount codes from a batch creation job, showing which succeeded and which failed. **Workflow:** After batch job completes (status='completed'), use this to get the actual codes. 1. Create price rule (get price_rule_id) 2. Create batch job (get batch_id) 3. Poll until completed 4. Use this action to retrieve codes **Response:** Successful codes have id populated and errors={}. Failed codes have id=null and errors with validation details. **Use Cases:** Verify created codes, identify validation errors, get IDs for further operations. **Note:** Requires 'read_price_rules' scope. Max 100 codes per batch.\"},{\"slug\":\"SHOPIFY_GET_BLOG\",\"name\":\"Get Single Blog\",\"description\":\"Retrieve a single blog by its unique identifier. Use when you need to access detailed information about a specific blog in the Shopify store.\"},{\"slug\":\"SHOPIFY_GET_BLOG_ARTICLE_TAGS\",\"name\":\"Get blog article tags\",\"description\":\"Retrieve a list of all article tags from a specific blog. Use when you need to get all unique tags that have been applied to articles in a particular blog, optionally sorted by popularity.\"},{\"slug\":\"SHOPIFY_GET_BULK_OPERATION\",\"name\":\"Get bulk operation status\",\"description\":\"Query the status and details of a Shopify bulk operation by its ID. Use when you need to check the progress, status, or results of a previously initiated bulk operation. Returns metadata including status, completion time, result URLs, and error information if applicable. Note: The bulkOperation query requires API version 2025-10 or later.\"},{\"slug\":\"SHOPIFY_GET_CARRIER_SERVICES\",\"name\":\"Get carrier services\",\"description\":\"Retrieves all active carrier services configured in a Shopify store. Carrier services allow apps to provide real-time shipping rates at checkout. This endpoint returns only carrier services where active=true. Requirements: - Store must be on Advanced Shopify plan or higher, OR - Store must be on Shopify plan with yearly billing (with carrier service feature), OR - Store must be a development store Use this to view active carrier services for shipping rate calculations.\"},{\"slug\":\"SHOPIFY_GET_CATALOGS_COUNT\",\"name\":\"Get catalogs count\",\"description\":\"Query the count of catalogs in the Shopify store. Use when you need to know how many catalogs exist, optionally filtered by type or search query.\"},{\"slug\":\"SHOPIFY_GET_CHECKOUT_PROFILE\",\"name\":\"Get checkout profile\",\"description\":\"Retrieves a checkout profile from Shopify using its unique ID. Use when you need to query checkout profile details including name, publication status, and timestamps.\"},{\"slug\":\"SHOPIFY_GET_CHECKOUTS_COUNT\",\"name\":\"Get checkouts count\",\"description\":\"Retrieves a count of abandoned checkouts from the past 90 days. Use when you need to know how many checkouts are abandoned, optionally filtered by date ranges or status.\"},{\"slug\":\"SHOPIFY_GET_COLLECT_BY_ID\",\"name\":\"Get collect by ID\",\"description\":\"Retrieves a specific collect by its ID. Use when you need to get details about a specific product-collection relationship.\"},{\"slug\":\"SHOPIFY_GET_COLLECTION_BY_ID\",\"name\":\"Get collection by ID\",\"description\":\"Retrieves a specific Shopify collection by its `collection_id`, optionally filtering returned data to specified `fields`.\"},{\"slug\":\"SHOPIFY_GET_COLLECTION_BY_IDENTIFIER\",\"name\":\"Get collection by identifier\",\"description\":\"Query a collection by identifier (ID or handle) using the Shopify GraphQL Admin API. Use when you need to fetch collection details by either its global ID or unique handle.\"},{\"slug\":\"SHOPIFY_GET_COLLECTS\",\"name\":\"Get collects\",\"description\":\"Retrieves a list of collects from a Shopify store, where a collect links a product to a custom collection. Returns only collect mapping records (collect_id, collection_id, product_id, position, etc.), not full product details — use SHOPIFY_GET_PRODUCTS_IN_COLLECTION if product details are needed.\"},{\"slug\":\"SHOPIFY_GET_COLLECTS_COUNT\",\"name\":\"Get collects count\",\"description\":\"Retrieves a count of collects (product-collection relationships). Use when you need to know the total number of collects, optionally filtered by collection_id or product_id.\"},{\"slug\":\"SHOPIFY_GET_COMMENTS_COUNT\",\"name\":\"Get count of comments\",\"description\":\"Retrieves a count of comments. Use when you need to know how many comments exist, optionally filtered by article, blog, status, or date ranges.\"},{\"slug\":\"SHOPIFY_GET_CONSENT_POLICY\",\"name\":\"Get consent policy\",\"description\":\"Query consent policies for privacy compliance requirements. Use when you need to retrieve customer consent requirements for specific regions or countries (GDPR, CCPA, etc.).\"},{\"slug\":\"SHOPIFY_GET_COUNTRIES\",\"name\":\"Get Countries\",\"description\":\"Retrieve a list of countries configured in the Shopify store with tax rates and provinces. Use when you need to get countries and their tax configuration for the store.\"},{\"slug\":\"SHOPIFY_GET_COUNTRIES_COUNT\",\"name\":\"Get countries count\",\"description\":\"Retrieves the count of countries configured in a Shopify store. Use when you need to determine how many countries are available in the store's tax and shipping settings. **DEPRECATION WARNING**: This endpoint is deprecated as of API version 2024-07. Consider using the GraphQL Admin API's 'CountriesInShippingZones' object as an alternative. This REST endpoint will continue to work but may be removed in future API versions.\"},{\"slug\":\"SHOPIFY_GET_COUNTRIES_PARAM_COUNTRY_ID_PROVINCES_COUNT\",\"name\":\"Get provinces count for country\",\"description\":\"Retrieves a count of provinces for a country. Use when you need to determine how many provinces or states are configured for a specific country in Shopify.\"},{\"slug\":\"SHOPIFY_GET_COUNTRIES_PARAM_COUNTRY_ID_PROVINCES_PARAM_PROVI\",\"name\":\"Get Province for Country\",\"description\":\"Get Province for Country\"},{\"slug\":\"SHOPIFY_GET_COUNTRY\",\"name\":\"Get country\",\"description\":\"Retrieve a specific country by its ID from Shopify. Use when you need to get tax information, country details, and province-level tax rates for a particular country.\"},{\"slug\":\"SHOPIFY_GET_COUNTRY_PROVINCES\",\"name\":\"Get provinces for country\",\"description\":\"Retrieve a list of provinces for a specified country. Use when you need to get province information, tax rates, and shipping zones for a specific country.\"},{\"slug\":\"SHOPIFY_GET_CURRENCIES\",\"name\":\"Get Currencies\",\"description\":\"Retrieve a list of currencies enabled on a Shopify store. This action fetches all currencies that the merchant has enabled for multi-currency transactions through Shopify Payments. Each currency includes its ISO 4217 code, the timestamp when its conversion rate was last updated, and its enabled status. Use this when you need to: - Check which currencies are available for customer transactions - Verify currency configurations for the shop - Get conversion rate update timestamps - Determine multi-currency support capabilities Note: This is a read-only endpoint that requires no parameters and returns all enabled currencies for the authenticated shop.\"},{\"slug\":\"SHOPIFY_GET_CUSTOM_COLLECTION_BY_ID\",\"name\":\"Get custom collection by ID\",\"description\":\"Retrieve a single custom collection by its unique ID from Shopify. Use when you need to fetch detailed information about a specific custom collection.\"},{\"slug\":\"SHOPIFY_GET_CUSTOM_COLLECTIONS\",\"name\":\"Get custom collections\",\"description\":\"Retrieves a list of custom collections from a Shopify store. Supports filtering by IDs, handle, title, product ID, publication status, and date ranges (published/updated). Use the fields parameter to retrieve only specific properties, and limit/since_id for pagination. Combining multiple filters (handle, ids, product_id) simultaneously may return empty sets; use broad filters first. Newly created collections may not appear immediately; use GetCollectionById to verify a specific collection shortly after creation.\"},{\"slug\":\"SHOPIFY_GET_CUSTOM_COLLECTIONS_COUNT\",\"name\":\"Get custom collections count\",\"description\":\"Retrieves the total count of custom collections in a Shopify store with optional filters. Use this action to get the number of custom collections, optionally filtered by: - Product ID (collections containing a specific product) - Publication date range (when collections were published) - Publication status (published, unpublished, or any) - Title (exact title match) - Update date range (when collections were last modified) Returns a simple count integer without collection details. For full collection data, use get collection list actions.\"},{\"slug\":\"SHOPIFY_GET_CUSTOMER\",\"name\":\"Retrieve a single customer\",\"description\":\"Retrieve a single customer by their unique identifier. Use when you need to fetch detailed information about a specific customer.\"},{\"slug\":\"SHOPIFY_GET_CUSTOMER_ADDRESS\",\"name\":\"Get Customer Address\",\"description\":\"Retrieve details of a single customer address from Shopify. Use when you need to get complete information about a specific address for a customer, including address lines, city, province, country, postal code, and phone number.\"},{\"slug\":\"SHOPIFY_GET_CUSTOMER_ADDRESSES\",\"name\":\"Get Customer Addresses\",\"description\":\"Retrieves all addresses associated with a specific customer. Returns complete address details including street address, city, province/state, country, postal code, and contact information. Each address includes a unique ID and indicates if it's the customer's default address. Important: This endpoint requires 'Protected Customer Data Access' approval from Shopify. Without this approval, requests will fail with a 403 error. See https://shopify.dev/docs/apps/launch/protected-customer-data for details. Use this action when you need to: (1) View all addresses for a customer, (2) Check a customer's default address, (3) Retrieve address details before updating or deleting.\"},{\"slug\":\"SHOPIFY_GET_CUSTOMER_ORDERS\",\"name\":\"Get customer orders\",\"description\":\"Retrieves all orders for a specific, existing customer in Shopify using their unique customer ID.\"},{\"slug\":\"SHOPIFY_GET_CUSTOMERS_COUNT\",\"name\":\"Get customers count\",\"description\":\"Retrieves a count of all customers. Use when you need to know the total number of customers, optionally filtered by creation or update dates.\"},{\"slug\":\"SHOPIFY_GET_CUSTOMERS_SEARCH\",\"name\":\"Search Customers\",\"description\":\"Search for customers matching a supplied query. Use when you need to find customers based on specific criteria like email, name, location, order count, or spending.\"},{\"slug\":\"SHOPIFY_GET_DISCOUNT_CODE\",\"name\":\"Get Discount Code\",\"description\":\"Retrieves a single discount code for a price rule. Use when you need to get details about a specific discount code including its usage count and timestamps.\"},{\"slug\":\"SHOPIFY_GET_DISCOUNT_CODE_BATCH_JOB\",\"name\":\"Retrieve Discount Code Creation Job\",\"description\":\"Retrieves the status and progress of an asynchronous batch discount code creation job for a specific price rule. Use this to monitor a job that creates up to 100 discount codes at once. Check the 'status' field ('queued', 'running', or 'completed') and 'imported_count'/'failed_count' to track progress. The job is created via POST /price_rules/{price_rule_id}/batch and this endpoint lets you poll for its completion.\"},{\"slug\":\"SHOPIFY_GET_DISCOUNT_CODES_COUNT\",\"name\":\"Get discount codes count\",\"description\":\"Retrieves a count of discount codes for a shop. Use when you need to know how many discount codes exist, optionally filtered by usage statistics.\"},{\"slug\":\"SHOPIFY_GET_DISCOUNT_CODES_LOOKUP\",\"name\":\"Get Discount Code Location\",\"description\":\"Look up a discount code by its code name and retrieve its resource location and IDs. Use this when you have a discount code (e.g., \\\"SUMMER2024\\\") and need to find its price_rule_id and discount_code_id for use with other API endpoints. This is faster than listing all discount codes when you know the specific code name. The API returns a 303 redirect with the location in the header.\"},{\"slug\":\"SHOPIFY_GET_DRAFT_ORDER\",\"name\":\"Receive a single draft order\",\"description\":\"Retrieve detailed information for a specific draft order from a Shopify store. Use when you need to access a draft order's status, customer details, line items, pricing, or shipping information.\"},{\"slug\":\"SHOPIFY_GET_EVENT\",\"name\":\"Get event by ID\",\"description\":\"Retrieve a specific Shopify event by its ID. Events track actions performed on store resources like products, orders, collections, and articles. Use this to get detailed information about a specific event, including what action occurred, when it happened, and which resource was affected. Common use cases: auditing changes, tracking resource history, debugging workflows. Note: This endpoint contains protected customer data and may require explicit approval from Shopify for access. For development/testing, request protected customer data access in the Shopify Partner Dashboard.\"},{\"slug\":\"SHOPIFY_GET_EVENTS\",\"name\":\"Get events list (Deprecated)\",\"description\":\"Retrieves a list of audit trail events from a Shopify store. Events represent actions performed on store resources (products, orders, collections, pages, articles, etc.). Each event captures what happened (verb: create/update/destroy), when it occurred, who performed it, and which resource was affected. This is useful for tracking store activity history, auditing changes, and building activity logs. Use cases: - Track when products were created, updated, or deleted - Monitor order fulfillment activities - Audit changes to collections and content - Build activity timelines for specific resources - Detect recent modifications to store resources Important: Events may not appear immediately (can take a few seconds after the action). Pagination is implemented via Link headers (rel=\\\"next\\\", rel=\\\"previous\\\") in the response, not via page parameters. Note: The REST Admin API is legacy as of October 2024. Consider GraphQL alternatives for new integrations.\"},{\"slug\":\"SHOPIFY_GET_FULFILLMENT\",\"name\":\"Get fulfillments by fulfillment order\",\"description\":\"Retrieves all fulfillments (shipments) associated with a specific fulfillment order. A fulfillment order represents a group of line items that are to be fulfilled from a specific location. This action returns tracking information, shipment status, line item details, and delivery information for each fulfillment. Use this when you need to: - Check tracking numbers and carrier information for shipped items - Monitor shipment status (in_transit, delivered, etc.) - View which line items were included in specific shipments - Get fulfillment location and origin address details Prerequisites: You must first obtain a fulfillment_order_id by using the 'Get fulfillment orders for order' action with an order_id.\"},{\"slug\":\"SHOPIFY_GET_FULFILLMENT_EVENT\",\"name\":\"Get Fulfillment Event\",\"description\":\"Retrieves a specific fulfillment event by its ID, providing detailed shipment tracking information. Use this when you need to check the status and location of a specific tracking event for a fulfilled order. The event contains information such as status (in_transit, out_for_delivery, delivered), timestamps, geographic location data (city, province, country, coordinates), and carrier messages. Fulfillment events track the shipment progress from the carrier and are displayed on the customer's order status page. Each event represents a status update (e.g., package picked up, in transit, out for delivery, delivered). Note: This REST API endpoint is deprecated as of Shopify API 2024-10. Consider using the GET fulfillment events list endpoint or GraphQL API for new integrations. Requires valid order_id, fulfillment_id, and event_id - all three IDs must correspond to existing resources in the store.\"},{\"slug\":\"SHOPIFY_GET_FULFILLMENT_EVENTS\",\"name\":\"Get fulfillment events\",\"description\":\"Retrieves tracking events for a specific fulfillment, showing shipment status updates (e.g., in_transit, out_for_delivery, delivered) with timestamps and location information. Use this when you need to check the tracking history or current delivery status of a fulfilled order. Note: Returns events only for fulfillments that have tracking information from carriers.\"},{\"slug\":\"SHOPIFY_GET_FULFILLMENT_ORDER\",\"name\":\"Get fulfillment orders for order (Deprecated)\",\"description\":\"Retrieve all fulfillment orders for a specific order. Use when you need to check fulfillment status, assigned locations, or line items for an order.\"},{\"slug\":\"SHOPIFY_GET_FULFILLMENT_ORDER_FULFILLMENTS\",\"name\":\"Retrieves fulfillments by fulfillment order (Deprecated)\",\"description\":\"Retrieves all fulfillments associated with a specific fulfillment order. Returns detailed shipment tracking information, delivery status, line items, and fulfillment metadata. Use this action when you need to check the status of completed or in-progress fulfillments for a fulfillment order.\"},{\"slug\":\"SHOPIFY_GET_FULFILLMENT_ORDER_LOCATIONS_FOR_MOVE\",\"name\":\"Get fulfillment order locations for move\",\"description\":\"Retrieve locations that a fulfillment order can potentially move to. Use when you need to identify which locations are available for transferring a specific fulfillment order. The resulting list is sorted alphabetically in ascending order by location name.\"},{\"slug\":\"SHOPIFY_GET_FULFILLMENT_ORDER_MOVE_LOCATIONS\",\"name\":\"Get fulfillment order locations for move (Deprecated)\",\"description\":\"Retrieve a list of locations that a fulfillment order can potentially move to. Use when you need to identify available destination locations for relocating a fulfillment order.\"},{\"slug\":\"SHOPIFY_GET_FULFILLMENT_ORDERS_FOR_ORDER\",\"name\":\"Get fulfillment orders for order\",\"description\":\"Retrieves a list of fulfillment orders for a specific order. Use when you need to get fulfillment order details including line items, delivery method, assigned location, and fulfillment status for a given order.\"},{\"slug\":\"SHOPIFY_GET_FULFILLMENT_SERVICES\",\"name\":\"Get Fulfillment Services\",\"description\":\"Retrieve a list of fulfillment services available on the Shopify store. Use when you need to get information about third-party warehouses that prepare and ship orders on behalf of the store owner.\"},{\"slug\":\"SHOPIFY_GET_GIFT_CARD_BY_ID\",\"name\":\"Get Gift Card By ID\",\"description\":\"Retrieves detailed information about a specific gift card by its ID. Returns the gift card's balance, status, creation date, and other metadata. Note: The full gift card code is never returned by this endpoint - only the last 4 characters are available for security reasons. The full code is only visible at creation time. Requires: read_gift_cards scope (Shopify Plus only, requires Shopify Support approval).\"},{\"slug\":\"SHOPIFY_GET_GIFT_CARDS\",\"name\":\"Retrieves a list of gift cards\",\"description\":\"Retrieve a list of gift cards from Shopify. Use when you need to fetch gift cards with optional filtering by status and pagination support.\"},{\"slug\":\"SHOPIFY_GET_GIFT_CARDS_COUNT\",\"name\":\"Retrieves a count of gift cards\",\"description\":\"Retrieves the total count of gift cards in the store. Use when you need to know how many gift cards exist, optionally filtered by enabled or disabled status.\"},{\"slug\":\"SHOPIFY_GET_INVENTORY_ITEM\",\"name\":\"Get Inventory Item\",\"description\":\"Retrieves a single inventory item by ID. Use when you need to get detailed information about an inventory item including SKU, cost, tracking status, and shipping requirements.\"},{\"slug\":\"SHOPIFY_GET_INVENTORY_ITEMS\",\"name\":\"Get Inventory Items\",\"description\":\"Retrieves a list of inventory items by specified IDs. Use when you need to get inventory item details like SKU, cost, shipping requirements, and tracking status. Note: As of version 2019-10, pagination is implemented using links provided in response headers.\"},{\"slug\":\"SHOPIFY_GET_INVENTORY_LEVELS\",\"name\":\"Get Inventory Levels\",\"description\":\"Retrieves a list of inventory levels for specified items and locations. Use when you need to check inventory quantities at specific locations. At least one of inventory_item_ids or location_ids must be provided as a filter parameter.\"},{\"slug\":\"SHOPIFY_GET_INVENTORY_LEVELS_FOR_LOCATION\",\"name\":\"Get Inventory Levels For Location\",\"description\":\"Retrieves a list of inventory levels for a specific location. Use when you need to check inventory quantities at a particular location. This endpoint implements cursor-based pagination via Link headers in the response.\"},{\"slug\":\"SHOPIFY_GET_LOCATION\",\"name\":\"Get location\",\"description\":\"Retrieve a single location by its ID. Use when you need to get details about a specific physical or virtual place where inventory is stocked and orders are fulfilled.\"},{\"slug\":\"SHOPIFY_GET_LOCATIONS_COUNT\",\"name\":\"Get locations count\",\"description\":\"Query the count of locations in a Shopify store using the GraphQL API. Use when you need to get the total number of locations, optionally filtered by search criteria.\"},{\"slug\":\"SHOPIFY_GET_MARKETING_EVENT\",\"name\":\"Retrieve a single marketing event\",\"description\":\"Retrieves detailed information about a specific marketing event by its ID. Use this action to: - Get full details of a marketing campaign including UTM parameters, budget, and timeline - Check the status and configuration of a specific marketing event - Access information about resources (products, collections) being marketed - Retrieve tracking URLs (manage_url, preview_url) for the event Returns comprehensive event data including event type, marketing channel, budget details, UTM parameters, and associated resources.\"},{\"slug\":\"SHOPIFY_GET_MARKETING_EVENTS_COUNT\",\"name\":\"Get marketing events count\",\"description\":\"Retrieves a count of all marketing events in the store. Use when you need to know the total number of marketing events.\"},{\"slug\":\"SHOPIFY_GET_METAFIELD\",\"name\":\"Get blog metafields\",\"description\":\"Retrieve a list of metafields from a blog resource. Use when you need to fetch metafields attached to a specific Shopify blog.\"},{\"slug\":\"SHOPIFY_GET_METAFIELD_BY_ID\",\"name\":\"Get metafield by ID\",\"description\":\"Retrieve a single metafield from a resource by its ID. Use when you need to fetch metafield details without knowing the parent resource.\"},{\"slug\":\"SHOPIFY_GET_METAFIELDS\",\"name\":\"Get metafields\",\"description\":\"Retrieve a list of metafields. Use when you need to fetch metafields across resources or for specific resources by providing owner_id and owner_resource filters.\"},{\"slug\":\"SHOPIFY_GET_METAFIELDS_COUNT\",\"name\":\"Get shop metafields count (Deprecated)\",\"description\":\"Retrieves the count of shop-level metafields only. This action returns how many metafields are directly attached to the shop itself, not metafields on other resources like products, customers, or orders. Use this when you need a quick count without fetching the full list of shop metafields. Note: To count metafields on specific resources (products, customers, etc.), use the SHOPIFY_GET_RESOURCE_METAFIELDS_COUNT action instead.\"},{\"slug\":\"SHOPIFY_GET_ORDER\",\"name\":\"Get order\",\"description\":\"Retrieve a specific order using its unique identifier. Returns detailed order information including line items, customer data, addresses, financial status, fulfillment status, and more.\"},{\"slug\":\"SHOPIFY_GET_ORDER_FULFILLMENTS\",\"name\":\"Retrieve order fulfillments\",\"description\":\"Retrieve fulfillments associated with a Shopify order. Use when you need to get delivery tracking information, shipment status, or fulfillment details for a specific order.\"},{\"slug\":\"SHOPIFY_GET_ORDER_LIST\",\"name\":\"Get order list (Deprecated)\",\"description\":\"Retrieves a list of orders from Shopify with optional filters and pagination.\"},{\"slug\":\"SHOPIFY_GET_ORDER_REFUND_BY_ID\",\"name\":\"Get specific refund for order\",\"description\":\"Retrieves a specific refund by refund ID for an order. Use this action when you need to: - Get detailed information about a particular refund - Review specific refund transactions and payment details - Check refunded line items, shipping costs, and adjustments - Verify duty and additional fee refunds Key Features: - Returns comprehensive refund data including line items and transactions - Supports field filtering to retrieve only specific data - Optional in_shop_currency parameter for currency conversion - Includes refund_shipping_lines for refunded shipping costs (added in API version 2024-10) Important Notes: - REST Admin API is legacy as of Oct 2024; consider GraphQL API for new integrations - Requires 'read_orders' access scope for authentication - Access to protected customer data may require additional Shopify app approval\"},{\"slug\":\"SHOPIFY_GET_ORDER_REFUNDS\",\"name\":\"Get refunds for order\",\"description\":\"Retrieves a list of all refunds for a specific order. Use this action when you need to: - Review refund history and details for an order - Check refunded amounts, line items, and shipping costs - Verify payment transactions associated with refunds - Track order adjustments, duties, and additional fees refunded Key Features: - Returns all refunds with detailed line items, transactions, and adjustments - Supports field filtering to retrieve only specific data - Optional in_shop_currency parameter for currency conversion - Configurable result limit (1-250, default 50) Important Notes: - This endpoint implements pagination via Link headers (not page parameters) - As of API version 2024-10, refunded shipping costs are accessed via refund_shipping_lines - REST Admin API is legacy as of Oct 2024; consider GraphQL API for new integrations - Requires 'read_orders' access scope for authentication - Access to protected customer data may require additional Shopify app approval\"},{\"slug\":\"SHOPIFY_GET_ORDER_RISK\",\"name\":\"Get Order Risks (Deprecated)\",\"description\":\"Retrieves all fraud risk assessments for a specific order. Returns a list of risk assessments indicating potential fraud. Each risk includes a recommendation (cancel/investigate/accept) and a fraud likelihood score. Only risks with display=true are factored into Shopify's overall order risk calculation. Note: Returns an empty array if the app lacks permission to access order risks (requires read_orders or write_orders scope with merchant approval for protected customer data).\"},{\"slug\":\"SHOPIFY_GET_ORDER_RISKS\",\"name\":\"Get order risks\",\"description\":\"Retrieves all fraud risk assessments for a specific order. Returns a list of risk assessments with recommendations (cancel/investigate/accept) and fraud likelihood scores. Use this when reviewing fraud detection findings for an order. Returns an empty risks array if: - The order has no risk assessments - Authentication fails (401) - App lacks permission to access order risks (403) Raises an error only if the order doesn't exist (404) or other server errors occur. Note: This REST API endpoint is deprecated as of version 2025-10; GraphQL Admin API's OrderRiskAssessment is recommended for new applications.\"},{\"slug\":\"SHOPIFY_GET_ORDERSBY_ID\",\"name\":\"Get order by id (Deprecated)\",\"description\":\"Retrieves a specific Shopify order by its unique ID, which must correspond to an existing order.\"},{\"slug\":\"SHOPIFY_GET_ORDERS_WITH_FILTERS\",\"name\":\"Get orders with filters\",\"description\":\"Retrieves Shopify orders filtered by dates and other filters. Uses server-side filtering. Results are paginated; follow `page_info` cursors until exhausted to retrieve all matching orders — a single request returns at most `limit` orders (max 250) and omits the rest.\"},{\"slug\":\"SHOPIFY_GET_ORDER_TRANSACTIONS_COUNT\",\"name\":\"Get order transactions count\",\"description\":\"Retrieve a count of an order's transactions in Shopify. Use when you need to know how many transactions (authorization, sale, capture, void, refund) are associated with a specific order without fetching the full transaction details.\"}]},{\"slug\":\"linkedin\",\"name\":\"LinkedIn\",\"description\":\"LinkedIn is a professional networking platform enabling job seekers, companies, and thought leaders to connect, share content, and discover business opportunities\",\"logo\":\"https://logos.composio.dev/api/linkedin\",\"rank\":41,\"tools\":[{\"slug\":\"LINKEDIN_CREATE_ARTICLE_OR_URL_SHARE\",\"name\":\"Create article or URL share\",\"description\":\"Tool to create an article or URL share on LinkedIn using the UGC Posts API. Use when you need to share a link with optional commentary on LinkedIn. Supports sharing URLs as articles with customizable visibility settings.\"},{\"slug\":\"LINKEDIN_CREATE_COMMENT_ON_POST\",\"name\":\"Create comment on LinkedIn post\",\"description\":\"Tool to create a first-level or nested comment on a LinkedIn share, UGC post, or parent comment via the Social Actions Comments API. Use when you need to engage with posts by adding comments or replying to existing comments. Supports text comments with optional @-mentions and image attachments.\"},{\"slug\":\"LINKEDIN_CREATE_LINKED_IN_POST\",\"name\":\"Create a LinkedIn post\",\"description\":\"Creates a new post on LinkedIn for the authenticated user or an organization they manage. Requires w_member_social scope for posting as a person, and w_organization_social scope for posting as an organization (with ADMINISTRATOR, DIRECT_SPONSORED_CONTENT_POSTER, or CONTENT_ADMIN role).\"},{\"slug\":\"LINKEDIN_DELETE_LINKED_IN_POST\",\"name\":\"Delete LinkedIn Post\",\"description\":\"Deletes a specific LinkedIn post (share) by its unique `share_id`, which must correspond to an existing share.\"},{\"slug\":\"LINKEDIN_DELETE_POST\",\"name\":\"Delete Post\",\"description\":\"Delete a LinkedIn post using the Posts API REST endpoint. Supports both ugcPost and share URN formats. This action is idempotent - deleting an already-deleted post returns success. Note: LinkedIn's own live /rest/posts DELETE endpoint does NOT actually honor this on its own (a repeat delete 404s rather than returning 204 as LinkedIn's docs claim); this action compensates by treating a 404 as a successful deletion.\"},{\"slug\":\"LINKEDIN_DELETE_UGC_POST\",\"name\":\"Delete UGC Post (Legacy)\",\"description\":\"Delete a UGC post using the legacy UGC Post API endpoint. Use when you need to delete a post using the v2/ugcPosts endpoint. Deletion is idempotent - previously deleted posts also return success.\"},{\"slug\":\"LINKEDIN_GET_AD_TARGETING_FACETS\",\"name\":\"Get ad targeting facets\",\"description\":\"Tool to retrieve available ad targeting facets from LinkedIn Marketing API. Use when you need to discover what targeting options are available for ad campaigns (e.g., locations, industries, job functions).\"},{\"slug\":\"LINKEDIN_GET_AUDIENCE_COUNTS\",\"name\":\"Get audience counts\",\"description\":\"Retrieves audience size counts for specified targeting criteria. Use when estimating reach for LinkedIn ad campaigns or targeted content.\"},{\"slug\":\"LINKEDIN_GET_COMPANY_INFO\",\"name\":\"Get company info\",\"description\":\"Retrieves organizations where the authenticated user has specific roles (ACLs), to determine their management or content posting capabilities for LinkedIn company pages.\"},{\"slug\":\"LINKEDIN_GET_IMAGE\",\"name\":\"Get image details\",\"description\":\"Tool to retrieve details of a LinkedIn image using its URN. Use when you need to check image status, get download URLs, or access image metadata for a single image.\"},{\"slug\":\"LINKEDIN_GET_IMAGES\",\"name\":\"Get images\",\"description\":\"Tool to retrieve image metadata including download URLs, status, and dimensions from LinkedIn's Images API. Use when you need to access image details for posts, profiles, or media library assets.\"},{\"slug\":\"LINKEDIN_GET_MY_INFO\",\"name\":\"Get my info\",\"description\":\"Fetches the authenticated LinkedIn user's profile information including name, headline, profile picture, and other profile details.\"},{\"slug\":\"LINKEDIN_GET_NETWORK_SIZE\",\"name\":\"Get network size\",\"description\":\"Tool to retrieve the follower count for a LinkedIn organization. Use when you need to get the number of members following a specific company or organization on LinkedIn.\"},{\"slug\":\"LINKEDIN_GET_ORG_PAGE_STATS\",\"name\":\"Get organization page statistics\",\"description\":\"Tool to retrieve page statistics for a LinkedIn organization page. Use when you need engagement metrics like page views and custom button clicks. Supports both lifetime statistics (all-time data segmented by demographics) and time-bound statistics (aggregate data for specific time ranges). Requires rw_organization_admin permission with ADMINISTRATOR role for the organization.\"},{\"slug\":\"LINKEDIN_GET_PERSON\",\"name\":\"Get person profile\",\"description\":\"Retrieves a LinkedIn member's profile information by their person ID. Returns lite profile fields (name, profile picture) by default, or basic profile fields (including headline and vanity name) with appropriate permissions.\"},{\"slug\":\"LINKEDIN_GET_POST_CONTENT\",\"name\":\"Get post content\",\"description\":\"Tool to retrieve detailed post content including text, images, videos, and metadata from LinkedIn by post URN. Use when you need to fetch the full content and details of a specific LinkedIn post.\"},{\"slug\":\"LINKEDIN_GET_SHARE_STATS\",\"name\":\"Get share statistics\",\"description\":\"Retrieves share statistics for a LinkedIn organization, including impressions, clicks, likes, comments, and shares. Use to analyze content performance for an organization page. Optionally filter by time intervals to get time-bound statistics.\"},{\"slug\":\"LINKEDIN_GET_VIDEOS\",\"name\":\"Get videos\",\"description\":\"Retrieves video metadata from LinkedIn for a video owned by a person or organization. Supports single video retrieval and batch retrieval (multiple videos). Use when you need to get video details including duration, dimensions, status, download URLs, and media library information. Note: this does not support finding videos by a LinkedIn Ads sponsored account - that's an ads/Campaign-Manager-specific capability outside this toolkit's organic-posting scope.\"},{\"slug\":\"LINKEDIN_INITIALIZE_IMAGE_UPLOAD\",\"name\":\"Initialize image upload\",\"description\":\"Tool to initialize an image upload to LinkedIn and return a presigned upload URL plus the resulting image URN. Use when you need to prepare an image upload for LinkedIn posts. After calling this tool, upload the image bytes to the returned upload_url via PUT request, then use the image URN in CREATE_LINKED_IN_POST action.\"},{\"slug\":\"LINKEDIN_LIST_REACTIONS\",\"name\":\"List reactions on entity\",\"description\":\"Retrieves reactions (likes, celebrations, etc.) on a LinkedIn entity such as a share, post, or comment. Use when you need to see who reacted to content and what type of reactions were used.\"},{\"slug\":\"LINKEDIN_REGISTER_IMAGE_UPLOAD\",\"name\":\"Register image upload\",\"description\":\"Tool to initialize a native LinkedIn image upload for feed shares and return a presigned upload URL plus the resulting digital media asset URN. Use when you need to upload an image to attach to a LinkedIn post. After calling this tool, upload the image bytes to the returned upload_url, then use the asset_urn in LINKEDIN_CREATE_LINKED_IN_POST.\"},{\"slug\":\"LINKEDIN_SEARCH_AD_TARGETING_ENTITIES\",\"name\":\"Search ad targeting entities\",\"description\":\"Search for ad targeting entities using typeahead search. Use when you need to find targeting entities like geographic locations, job titles, industries, or other targeting criteria for LinkedIn ad campaigns.\"}]},{\"slug\":\"google_maps\",\"name\":\"Google Maps\",\"description\":\"Integrate Google Maps to access location data, geocoding, directions, and mapping services in your application.\",\"logo\":\"https://logos.composio.dev/api/google_maps\",\"rank\":42,\"tools\":[{\"slug\":\"GOOGLE_MAPS_AUTOCOMPLETE\",\"name\":\"Autocomplete Place Predictions\",\"description\":\"Returns place and query predictions for text input. Use when implementing as-you-type autocomplete functionality for place searches. Returns up to five predictions ordered by relevance.\"},{\"slug\":\"GOOGLE_MAPS_COMPUTE_ROUTE_MATRIX\",\"name\":\"Compute Route Matrix\",\"description\":\"Calculates travel distance and duration matrix between multiple origins and destinations using the modern Routes API; supports OAuth2 authentication and various travel modes. Matrix is capped at 625 elements (e.g., 25×25); chunk larger sets to avoid RESOURCE_EXHAUSTED errors. Response elements may be returned out of input order — always use originIndex and destinationIndex to map results. Only use elements where condition='ROUTE_EXISTS'; the matrix may be incomplete.\"},{\"slug\":\"GOOGLE_MAPS_DISTANCE_MATRIX_API\",\"name\":\"Distance Matrix (Legacy)\",\"description\":\"DEPRECATED: Legacy API that calculates travel distance and time for a matrix of origins and destinations. This API only works with API keys (no OAuth2 support). Use the modern 'Compute Route Matrix' action instead, which supports OAuth2 authentication. Supports different modes of transportation and options like departure/arrival times. Capped at 100 elements per request (elements = origins × destinations count); split large sets into batches.\"},{\"slug\":\"GOOGLE_MAPS_GEOCODE_ADDRESS\",\"name\":\"Geocode Address\",\"description\":\"DEPRECATED: Legacy API to convert street addresses into geographic coordinates (latitude and longitude). This API works best with API key authentication. For OAuth connections without an API key, you may need to provide the 'key' parameter or use the newer 'Text Search' action instead. Use when you need to geocode an address or location to get its precise latitude/longitude coordinates.\"},{\"slug\":\"GOOGLE_MAPS_GEOCODE_ADDRESS_WITH_QUERY\",\"name\":\"Geocode Address With Query\",\"description\":\"Tool to map addresses to geographic coordinates with query parameter. Use when you need to convert a textual address into latitude/longitude coordinates using the modern v4beta API. Results may match multiple places — always verify `formattedAddress`, `region`, and `addressComponents` in the response before using returned coordinates.\"},{\"slug\":\"GOOGLE_MAPS_GEOCODE_DESTINATIONS\",\"name\":\"Geocode Destinations\",\"description\":\"Tool to perform destination lookup and return detailed destination information including primary place, containing places, sub-destinations, landmarks, entrances, and navigation points. Use when you need comprehensive destination data for an address, place ID, or geographic coordinates.\"},{\"slug\":\"GOOGLE_MAPS_GEOCODE_LOCATION\",\"name\":\"Reverse Geocode Location\",\"description\":\"Tool to convert geographic coordinates (latitude and longitude) to human-readable addresses using reverse geocoding. Use when you need to find the address or place name for a given set of coordinates. A single coordinate pair may return multiple results; verify formattedAddress, region, and addressComponents before committing to a result.\"},{\"slug\":\"GOOGLE_MAPS_GEOCODE_PLACE\",\"name\":\"Geocode Place by ID\",\"description\":\"Tool to perform geocode lookup using a place identifier to retrieve address and coordinates. Use when you need to get detailed geographic information for a specific Google Place ID.\"},{\"slug\":\"GOOGLE_MAPS_GEOCODING_API\",\"name\":\"Geocoding API\",\"description\":\"Convert addresses into geographic coordinates (latitude and longitude) and vice versa (reverse geocoding), or get an address for a Place ID. Uses the Geocoding API v4 (v4beta) which supports OAuth2 authentication. Exactly one of `address`, `latlng`, or `place_id` must be provided per request; omitting all three or mixing incompatible combinations yields no useful results.\"},{\"slug\":\"GOOGLE_MAPS_GEOLOCATE\",\"name\":\"Geolocate Device\",\"description\":\"Tool to determine location based on cell towers and WiFi access points. Use when you need to find the geographic location of a device using network infrastructure data.\"},{\"slug\":\"GOOGLE_MAPS_GET2D_TILE\",\"name\":\"Get 2D Map Tile\",\"description\":\"Tool to retrieve a 2D map tile image at specified coordinates for building custom map visualizations. Use when you need to download individual map tile images for roadmap, satellite, or terrain views. Requires a valid session token from the createSession endpoint.\"},{\"slug\":\"GOOGLE_MAPS_GET3D_TILES_ROOT\",\"name\":\"Get 3D Tiles Root\",\"description\":\"Tool to retrieve the 3D Tiles tileset root configuration for photorealistic 3D map rendering. Use when you need to initialize a 3D renderer with Google's photorealistic tiles following the OGC 3D Tiles specification. The Map Tiles API is billable per request; cache the root response client-side and avoid repeated calls.\"},{\"slug\":\"GOOGLE_MAPS_GET_DIRECTION\",\"name\":\"Get Directions\",\"description\":\"Fetches detailed directions between an origin and a destination, supporting intermediate waypoints and various travel modes. Automatically uses the modern Routes API with OAuth2 when available, falling back to legacy API with API key if provided.\"},{\"slug\":\"GOOGLE_MAPS_GET_PLACE_DETAILS\",\"name\":\"Get Place Details\",\"description\":\"Retrieves comprehensive details for a place using its resource name (places/{place_id} format). Use when you need detailed information about a specific place.\"},{\"slug\":\"GOOGLE_MAPS_GET_ROUTE\",\"name\":\"Get Route\",\"description\":\"Calculates one or more routes between two specified locations. Uses various travel modes and preferences; addresses must be resolvable by Google Maps. Response `duration` is a string with 's' suffix (e.g., `\\\"4557s\\\"`); parse before displaying.\"},{\"slug\":\"GOOGLE_MAPS_GET_TIME_ZONE\",\"name\":\"Get Time Zone\",\"description\":\"Retrieves time zone information for a specific geographic location and timestamp. Use this action when you need to determine the time zone ID, UTC offset, daylight savings offset, or localized time zone name for any point on Earth. The API considers the provided timestamp to accurately determine whether daylight savings is in effect at that moment.\"},{\"slug\":\"GOOGLE_MAPS_LOOKUP_AERIAL_VIDEO\",\"name\":\"Lookup Aerial Video\",\"description\":\"Tool to look up an aerial view video by address or video ID. Returns video metadata including state and URIs for playback. Use when you need to retrieve a previously rendered aerial video or check the status of a video render request. Note that receiving a video is a billable event.\"},{\"slug\":\"GOOGLE_MAPS_MAPS_EMBED_API\",\"name\":\"Embed Google Map\",\"description\":\"Tool to generate an embeddable Google Map URL and HTML iframe code. Use when you need to display a map (place, view, directions, street view, search) on a webpage without JavaScript. Note: This API only works with API keys (no OAuth2 support). It generates embed URLs and does not make direct API calls. Generated embed URLs are publicly accessible; avoid passing sensitive or internal location queries.\"},{\"slug\":\"GOOGLE_MAPS_NEARBY_SEARCH\",\"name\":\"Nearby search\",\"description\":\"Searches for places (e.g., restaurants, parks) within a specified circular area, with options to filter by place types and customize the returned fields and number of results.\"},{\"slug\":\"GOOGLE_MAPS_PLACE_PHOTO\",\"name\":\"Get Place Photo\",\"description\":\"Retrieves high quality photographic content from the Google Maps Places database. Use when you need to download a place photo using a photo_reference obtained from Place Details, Nearby Search, or Text Search requests. Images are scaled proportionally to fit within specified dimensions.\"},{\"slug\":\"GOOGLE_MAPS_RENDER_AERIAL_VIDEO\",\"name\":\"Render Aerial Video\",\"description\":\"Starts rendering an aerial view video for a US postal address. Returns a video ID that can be used with lookupVideo to retrieve the video once rendering completes. Rendering typically takes up to a few hours.\"},{\"slug\":\"GOOGLE_MAPS_TEXT_SEARCH\",\"name\":\"Text Search\",\"description\":\"Searches for places on Google Maps using a textual query (e.g., \\\"restaurants in London\\\", \\\"Eiffel Tower\\\"). Results may include CLOSED_PERMANENTLY or TEMPORARILY_CLOSED places — filter by businessStatus=OPERATIONAL. Include city/region and business type in textQuery to avoid empty or irrelevant results. Deduplicate using id or formattedAddress, not name alone. Throttle to ~1 req/s; OVER_QUERY_LIMIT (HTTP 429) requires exponential backoff.\"},{\"slug\":\"GOOGLE_MAPS_TILES_CREATE_SESSION\",\"name\":\"Create Tiles Session\",\"description\":\"Tool to create a session token required for accessing 2D Tiles and Street View imagery. Use when you need to initialize tile-based map rendering or street view display. The session token is valid for approximately two weeks and must be included in all subsequent tile requests. Each call consumes quota — cache and reuse the returned token across all tile requests within its validity window rather than creating a new session per request.\"}]},{\"slug\":\"one_drive\",\"name\":\"OneDrive\",\"description\":\"OneDrive is Microsoft’s cloud storage solution enabling users to store, sync, and share files across devices, offering offline access, real-time collaboration, and enterprise-grade security\",\"logo\":\"https://logos.composio.dev/api/one_drive\",\"rank\":43,\"tools\":[{\"slug\":\"ONE_DRIVE_ADD_WORKBOOK_WORKSHEET\",\"name\":\"Add Workbook Worksheet\",\"description\":\"Adds a new worksheet to an existing Excel workbook in OneDrive or SharePoint. The worksheet is created with the specified name and appended to the end of the workbook's worksheet collection. Use this action when you need to create a new sheet in an Excel file to organize data, add reports, or separate information into logical sections.\"},{\"slug\":\"ONE_DRIVE_CHECKIN_ITEM\",\"name\":\"Check In Drive Item\",\"description\":\"Tool to check in a checked out driveItem resource, making the version of the document available to others. Use when you need to check in a file that was previously checked out in OneDrive or SharePoint.\"},{\"slug\":\"ONE_DRIVE_CHECKOUT_ITEM\",\"name\":\"Checkout Drive Item\",\"description\":\"Tool to check out a driveItem to prevent others from editing it and make your changes invisible until checked in. Use when you need to lock a file for exclusive editing in SharePoint or OneDrive.\"},{\"slug\":\"ONE_DRIVE_CLEAR_WORKBOOK_RANGE\",\"name\":\"Clear Workbook Range\",\"description\":\"Clears values, formats, or both from a worksheet range in an Excel workbook stored in OneDrive or SharePoint without deleting cells or shifting neighboring data. Use this action when you need to reset a range while preserving the worksheet's cell structure.\"},{\"slug\":\"ONE_DRIVE_COPY_ITEM\",\"name\":\"Copy Item\",\"description\":\"Tool to copy a DriveItem (file or folder) to a new location asynchronously. Use when you need to duplicate an item, optionally renaming it or specifying a different parent folder. The operation is asynchronous; the response provides a URL to monitor the copy progress. Do not assume the copy is complete immediately; verify via ONE_DRIVE_GET_ITEM or by listing the destination, especially for large folder trees.\"},{\"slug\":\"ONE_DRIVE_CREATE_ITEM_PERMISSION\",\"name\":\"Create Drive Item Permission\",\"description\":\"Tool to create a new permission on a OneDrive drive item. Use when you need to grant application or SharePoint group permissions to a file or folder. This endpoint supports creating application permissions and SharePoint site group permissions only.\"},{\"slug\":\"ONE_DRIVE_CREATE_LINK\",\"name\":\"Create Sharing Link\",\"description\":\"Tool to create a sharing link for a DriveItem (file or folder) by its unique ID. Use when you need to generate a shareable link for an item in OneDrive or SharePoint.\"},{\"slug\":\"ONE_DRIVE_CREATE_SHAREPOINT_LIST_ITEM\",\"name\":\"Create SharePoint List Item\",\"description\":\"Create an item in a SharePoint list using Microsoft Graph through the OneDrive connection. Use when you need to add a new row/item to a SharePoint list after resolving the site ID and list ID.\"},{\"slug\":\"ONE_DRIVE_DELETE_ITEM\",\"name\":\"Delete Item\",\"description\":\"Tool to delete a DriveItem (file or folder) by its unique ID from the authenticated user's OneDrive. Use when you need to remove an item from OneDrive. This action moves the item to the recycle bin, not permanently deleting it; storage quota is not freed until the recycle bin is emptied. Bulk deletions can trigger 429 (rate limit) or 5xx responses — limit concurrency and use exponential backoff.\"},{\"slug\":\"ONE_DRIVE_DELETE_ITEM_PERMANENTLY\",\"name\":\"Permanently Delete Drive Item\",\"description\":\"Tool to permanently delete a driveItem by its ID without moving it to the recycle bin. Use when you need to irreversibly remove a file or folder from OneDrive or SharePoint. This action cannot be undone.\"},{\"slug\":\"ONE_DRIVE_DELETE_ITEM_PERMISSION\",\"name\":\"Delete Drive Item Permission\",\"description\":\"Tool to delete a permission from a drive item. Use when you need to revoke sharing access to a file or folder. Only non-inherited sharing permissions can be deleted.\"},{\"slug\":\"ONE_DRIVE_DELETE_SHARE_PERMISSION\",\"name\":\"Delete Shares Permission\",\"description\":\"Tool to delete the permission navigation property for a shared drive item. Use when you need to remove a sharing link permission. This effectively revokes access via the specific share link.\"},{\"slug\":\"ONE_DRIVE_DELETE_SHAREPOINT_ITEM_PERMISSION\",\"name\":\"Delete SharePoint Item Permission\",\"description\":\"Revoke a Microsoft Graph beta permission from a SharePoint list or list item.\"},{\"slug\":\"ONE_DRIVE_DELETE_WORKBOOK_RANGE\",\"name\":\"Delete Workbook Range\",\"description\":\"Deletes a range of cells from a worksheet in an Excel workbook stored in OneDrive. Use this action when you need to remove a specific cell range and shift the remaining cells to fill the gap. This action is irreversible — the deleted range cannot be recovered once removed. The operation requires Files.ReadWrite scope and the workbook must not be locked by another user or process.\"},{\"slug\":\"ONE_DRIVE_DELETE_WORKBOOK_WORKSHEET\",\"name\":\"Delete Workbook Worksheet\",\"description\":\"Deletes a worksheet from a workbook in OneDrive by its ID or name. Use this action when you need to remove a specific worksheet from an Excel workbook stored in OneDrive or SharePoint. This action is irreversible — the worksheet cannot be recovered once deleted. Note that deleting the last visible worksheet in a workbook may result in an error.\"},{\"slug\":\"ONE_DRIVE_DISCARD_CHECKOUT\",\"name\":\"Discard Checkout\",\"description\":\"Tool to discard the checkout of a driveItem, releasing it and discarding any changes made while checked out. Use when you need to cancel a checkout and revert changes on a file in SharePoint or OneDrive.\"},{\"slug\":\"ONE_DRIVE_DOWNLOAD_FILE\",\"name\":\"Download a file\",\"description\":\"Downloads a file from a user's OneDrive using its item ID, which must refer to a file and not a folder. Response contains a content object with the downloaded file, MIME type, and name; raw file data is not returned directly. Parsing content from Excel, Word, PDF, or other formats requires additional tooling. The downloaded file can be passed to downstream tools such as OUTLOOK_SEND_EMAIL or OUTLOOK_CREATE_DRAFT.\"},{\"slug\":\"ONE_DRIVE_DOWNLOAD_FILE_BY_PATH\",\"name\":\"Download file by path\",\"description\":\"Downloads the contents of a file from OneDrive by its path. The API returns a 302 redirect to a pre-authenticated download URL. Use when you know the file path but not the item ID.\"},{\"slug\":\"ONE_DRIVE_DOWNLOAD_ITEM_AS_FORMAT\",\"name\":\"Download item as format\",\"description\":\"Tool to download the contents of a driveItem converted to a specific format (e.g., PDF or HTML). Use when you need to convert Office documents to PDF or Loop/Fluid files to HTML before downloading. Supports accessing items by item_id or by path, and can target specific drives via drive_id.\"},{\"slug\":\"ONE_DRIVE_DOWNLOAD_ITEM_VERSION\",\"name\":\"Download Drive Item Version Content\",\"description\":\"Tool to download the contents of a specific previous version of a drive item (file). Returns the actual file content. Note: You cannot download the current version using this endpoint - it only works for previous versions.\"},{\"slug\":\"ONE_DRIVE_FOLLOW_ITEM\",\"name\":\"Follow Drive Item\",\"description\":\"Tool to follow a driveItem (file or folder) in OneDrive or SharePoint. Use when you need to add an item to the user's followed items list for tracking updates.\"},{\"slug\":\"ONE_DRIVE_GET_DOCUMENT_COMMENTS\",\"name\":\"Get document comments\",\"description\":\"Extracts comments from a Word .docx file in OneDrive. The action downloads the document, parses the OOXML comments part, and returns structured comment data inline. When possible, it also includes the selected text and paragraph context from the document body so agents can understand what each comment refers to.\"},{\"slug\":\"ONE_DRIVE_GET_DRIVE\",\"name\":\"Get Drive\",\"description\":\"Retrieves the properties and relationships of a Drive resource by its unique ID. Use this action when you need to get details about a specific OneDrive, user's OneDrive, group's document library, or a site's document library. Only drives accessible to the authenticated user are returned; missing drives indicate insufficient OAuth scope or tenant permissions.\"},{\"slug\":\"ONE_DRIVE_GET_DRIVE_ITEM_BY_SHARING_URL\",\"name\":\"Get DriveItem by Sharing URL\",\"description\":\"Tool to resolve a OneDrive/SharePoint sharing URL (or shareId) to a DriveItem with driveId and itemId. Use when you have a sharing link from Teams, chat, or 1drv.ms and need the item's metadata or IDs for downstream actions like permissions or download.\"},{\"slug\":\"ONE_DRIVE_GET_FOLLOWED_ITEM\",\"name\":\"Get Drives Following\",\"description\":\"Tool to retrieve a specific followed driveItem from a drive. Use when you need to get details about a file or folder that the user has marked to follow.\"},{\"slug\":\"ONE_DRIVE_GET_GROUP_DRIVE\",\"name\":\"Get Group Drive\",\"description\":\"Tool to retrieve the document library (drive) for a Microsoft 365 group. Use when you need to access the default document library associated with a specific group.\"},{\"slug\":\"ONE_DRIVE_GET_ITEM\",\"name\":\"Get Item Metadata\",\"description\":\"Retrieves the metadata of a DriveItem by its unique ID. Use this tool to get information about a specific file or folder in OneDrive when you have its ID. If a `drive_id` is not provided, it defaults to the user's main drive.\"},{\"slug\":\"ONE_DRIVE_GET_ITEM_PERMISSIONS\",\"name\":\"Get Item Permissions\",\"description\":\"Retrieves the permissions of a DriveItem by its unique ID within a specific Drive. Use when you need to check who has access to a file or folder and what level of access they have. Response nests permission entries under `data.value`; check top-level `success`/`error` flags before processing results. Results include inherited permissions, owner entries, and anonymous link entries — not just explicitly granted permissions. Sharing links may have differing scopes (org-only vs. anonymous); verify `link.scope` before treating a permission as externally accessible.\"},{\"slug\":\"ONE_DRIVE_GET_ITEM_THUMBNAILS\",\"name\":\"Get Item Thumbnails\",\"description\":\"Tool to retrieve the thumbnails associated with a DriveItem. Use when you need to display visual previews of files. Response contains a `value` array with size keys (`small`, `medium`, `large`); thumbnails may not be generated for all file types or newly uploaded items, so handle an empty or missing `value` array. Returned thumbnail URLs are external HTTP endpoints with independent availability.\"},{\"slug\":\"ONE_DRIVE_GET_ITEM_VERSIONS\",\"name\":\"Get Item Versions\",\"description\":\"Tool to retrieve the version history of a DriveItem by its unique ID. Use when you need to access or list previous versions of a file. Version history may be unavailable or empty for folders or items in drives without versioning enabled.\"},{\"slug\":\"ONE_DRIVE_GET_RECENT_ITEMS\",\"name\":\"Get Recent Items\",\"description\":\"DEPRECATED: Microsoft has deprecated the `GET /me/drive/recent` endpoint backing this action; it already runs in a degraded state and stops returning data after November 2026. This action is retained for backward compatibility and will be removed once the upstream API is fully retired. Get files and folders recently accessed by the user. Returns items based on activity history (opened, edited, viewed), sorted by most recent first — NOT by modification time; use ONE_DRIVE_ONEDRIVE_LIST_ITEMS or ONE_DRIVE_LIST_ROOT_DRIVE_CHANGES for strictly modification-based queries. Use when you need to see what the user worked on recently (e.g., 'Show me files I worked on today'). Different from search - this tracks activity, not content. Results may contain duplicate names; disambiguate using lastModifiedDateTime, parentReference.path, and the file/folder property before acting on a specific item.\"},{\"slug\":\"ONE_DRIVE_GET_ROOT\",\"name\":\"Get Drive Root Folder\",\"description\":\"Tool to retrieve metadata for the root folder of the signed-in user's OneDrive. Use when you need information about the user's OneDrive root directory, such as size, child count, or web URL.\"},{\"slug\":\"ONE_DRIVE_GET_SHARE\",\"name\":\"Get Shared Item by ShareId\",\"description\":\"Tool to access a shared DriveItem or collection of shared items using a shareId or encoded sharing URL. Returns the sharedDriveItem resource with metadata about the shared item and its owner. Use when you have a shareId or sharing token and need information about what was shared.\"},{\"slug\":\"ONE_DRIVE_GET_SHARED_ITEMS\",\"name\":\"Get Shared Items\",\"description\":\"DEPRECATED: Use ONE_DRIVE_SEARCH_DRIVE_ITEMS to find a specific shared file or ONE_DRIVE_LIST_ONEDRIVE_SHARED_ITEMS to list files shared from other people's OneDrive accounts. Microsoft Graph sharedWithMe is degraded until November 2026 and will stop returning data after that.\"},{\"slug\":\"ONE_DRIVE_GET_SHAREPOINT_LIST_ITEMS\",\"name\":\"Get SharePoint List Items\",\"description\":\"Tool to get the items (list items) within a specific SharePoint list on a site. Use when you need to retrieve data from a SharePoint list.\"},{\"slug\":\"ONE_DRIVE_GET_SITE\",\"name\":\"Get Site Details\",\"description\":\"Retrieves metadata for a specific SharePoint site by its ID. Use this action when you need to get details like display name, web URL, and creation/modification dates for a known SharePoint site.\"},{\"slug\":\"ONE_DRIVE_GET_SITE_PAGE_CONTENT\",\"name\":\"Get SharePoint Site Page Content\",\"description\":\"Gets the content of a modern SharePoint site page. Use when you need to retrieve the details and content of a specific page within a SharePoint site.\"},{\"slug\":\"ONE_DRIVE_GET_SPECIAL_FOLDER\",\"name\":\"Get Drive Special Folder\",\"description\":\"Tool to retrieve a special folder in OneDrive by name. Use when you need to access well-known folders (documents, photos, approot, etc.) without looking up by path or ID.\"},{\"slug\":\"ONE_DRIVE_GET_USER\",\"name\":\"Get User Profile\",\"description\":\"Retrieves the properties and profile information for a specific Microsoft user by their user ID or user principal name. Use this action when you need to get detailed information about a user's profile, including their contact details, job information, and account status. This action requires the User.Read or User.ReadBasic.All OAuth scope to access user profile data.\"},{\"slug\":\"ONE_DRIVE_GET_WORKBOOK_USED_RANGE\",\"name\":\"Get Workbook Used Range\",\"description\":\"Retrieves the used range of a worksheet in an Excel workbook stored in OneDrive or SharePoint without requiring the caller to know an explicit A1 range address. Use this action to read the active data region of a worksheet, optionally ignoring formatting-only cells.\"},{\"slug\":\"ONE_DRIVE_GET_WORKBOOK_WORKSHEET\",\"name\":\"Get Workbook Worksheet\",\"description\":\"Retrieves a specific worksheet from an Excel workbook stored in OneDrive or SharePoint using Microsoft Graph API. Use this action when you need to get details about a particular worksheet, including its ID, name, position, and visibility. The worksheet can be identified by either its unique ID or its display name.\"},{\"slug\":\"ONE_DRIVE_GRANT_SHARE_PERMISSION\",\"name\":\"Grant Shares Permission\",\"description\":\"Tool to grant users access to a link represented by a permission using an encoded sharing URL. Use when you need to give specific users access to a shared OneDrive or SharePoint resource.\"},{\"slug\":\"ONE_DRIVE_GRANT_SHAREPOINT_ITEM_PERMISSION\",\"name\":\"Grant SharePoint Item Permission\",\"description\":\"Grant an application permission on a SharePoint list or list item using Microsoft Graph beta.\"},{\"slug\":\"ONE_DRIVE_INVITE_USER_TO_ITEM\",\"name\":\"Invite User to Drive Item\",\"description\":\"Tool to invite users or grant permissions to a specific item in a OneDrive drive. Use when you need to share a file or folder with other users and define their access level (e.g., read or write).\"},{\"slug\":\"ONE_DRIVE_LIST_ACTIVITIES\",\"name\":\"List Drive Activities\",\"description\":\"Tool to retrieve recent activities on the authenticated user's OneDrive. Use when you need to track recent changes or actions performed across the drive.\"},{\"slug\":\"ONE_DRIVE_LIST_ALL_DRIVE_ITEMS\",\"name\":\"List All Drive Items\",\"description\":\"Lists a complete OneDrive or SharePoint drive safely, one Microsoft Graph delta page per invocation. Start without `page_token`, then pass each `next_page_token` back until `sync_complete` is true. The terminal `delta_token` can be saved and passed back later to fetch changes since the completed snapshot. Delta enumeration is stable under concurrent writes and avoids the request burst caused by recursively fetching every folder in one execution.\"},{\"slug\":\"ONE_DRIVE_LIST_BUNDLES\",\"name\":\"List Drive Bundles\",\"description\":\"Tool to retrieve a list of bundle resources from a specified drive. Bundles are collections of files (e.g., photo albums). Use when you need to list bundles in a drive.\"},{\"slug\":\"ONE_DRIVE_LIST_DRIVES\",\"name\":\"List Drives\",\"description\":\"Tool to retrieve a list of Drive resources available to the authenticated user, or for a specific user, group, or site. Use when you need to find out what drives are accessible. Returns only drives within the signed-in account's permission scope; missing drives indicate insufficient permissions or different tenant scope. Results are paginated — pass the returned next_page_token back as page_token across all pages to avoid missing drives. Returned drives represent document libraries and may not reflect full SharePoint site structure; use SHARE_POINT_GET_SITE_COLLECTION_INFO or SHARE_POINT_SEARCH_QUERY for broader coverage. Use driveType and webUrl to distinguish personal, system, and SharePoint-backed drives.\"},{\"slug\":\"ONE_DRIVE_LIST_FOLDER_CHILDREN\",\"name\":\"List Folder Children\",\"description\":\"List the direct children (files/folders) of a OneDrive/SharePoint folder by DriveItem ID or path. Returns reliable pagination tokens for large folders. Use when you need to enumerate folder contents deterministically, find companion artifacts (e.g., .vtt/.docx files), or browse within a known folder.\"},{\"slug\":\"ONE_DRIVE_LIST_ITEM_ACTIVITIES\",\"name\":\"List Drive Item Activities\",\"description\":\"Tool to list recent activities for a specific item in a OneDrive drive. Use when you need to track changes or actions performed on a file or folder.\"},{\"slug\":\"ONE_DRIVE_LIST_ONEDRIVE_SHARED_ITEMS\",\"name\":\"List OneDrive Shared Items\",\"description\":\"List files shared from other people's OneDrive accounts using Microsoft Graph Search match-all and a OneDrive-personal URL heuristic. This excludes SharePoint-site shares by design; use ONE_DRIVE_SEARCH_DRIVE_ITEMS for broad keyword/KQL search across OneDrive and SharePoint.\"},{\"slug\":\"ONE_DRIVE_LIST_ROOT_DRIVE_CHANGES\",\"name\":\"List Root Drive Changes\",\"description\":\"Tool to list changes in the root of the user's primary drive using a delta token. Use when you need to track file and folder modifications, additions, or deletions in the main OneDrive directory. First call without `token` returns all current items plus an `@odata.deltaLink`; store that token and pass it on subsequent calls to retrieve only incremental changes. Losing the deltaLink token forces a full resync. Responses include deleted items (check `deleted` property) and the root item itself alongside files and folders.\"},{\"slug\":\"ONE_DRIVE_LIST_SHARE_PERMISSIONS\",\"name\":\"List Shares Permission\",\"description\":\"Tool to retrieve permission details for a shared OneDrive or SharePoint item using a share ID. Use when you have an encoded sharing URL and need to check the permission level, password protection, and access details.\"},{\"slug\":\"ONE_DRIVE_LIST_SHAREPOINT_ITEM_PERMISSIONS\",\"name\":\"List SharePoint Item Permissions\",\"description\":\"List Microsoft Graph beta permissions from a SharePoint list or list item.\"},{\"slug\":\"ONE_DRIVE_LIST_SHAREPOINT_LIST_ITEMS_DELTA\",\"name\":\"List SharePoint List Items Delta\",\"description\":\"Tool to track changes to items in a SharePoint list using a delta query. Use when you need to get newly created, updated, or deleted list items without performing a full read of the entire item collection.\"},{\"slug\":\"ONE_DRIVE_LIST_SITE_COLUMNS\",\"name\":\"List Site Columns\",\"description\":\"Tool to list all column definitions for a SharePoint site. Use this when you need to retrieve the schema or structure of columns within a specific SharePoint site.\"},{\"slug\":\"ONE_DRIVE_LIST_SITE_ITEMS_DELTA\",\"name\":\"List Site Drive Items Delta\",\"description\":\"Tool to track changes to DriveItems in the default document library of a SharePoint site. Use when you need to get a list of items that have been added, modified, or deleted since a previous state or to get an initial enumeration of all items.\"},{\"slug\":\"ONE_DRIVE_LIST_SITE_LISTS\",\"name\":\"List Site Lists\",\"description\":\"Tool to list all lists under a specific SharePoint site. Use when you need to enumerate lists within a known site. Returns only Microsoft Graph-supported lists — internal/system lists are excluded, so results may be a strict subset of all site lists (e.g., 13 returned where 108 exist). Results are in the `data.value` array. IMPORTANT: Only works with organizational Microsoft 365 accounts (Azure AD/Entra ID). NOT supported for personal Microsoft accounts (MSA/Outlook.com/Hotmail). Personal OneDrive users cannot access SharePoint sites through this endpoint.\"},{\"slug\":\"ONE_DRIVE_LIST_SITE_SUBSITES\",\"name\":\"List Site Subsites\",\"description\":\"Tool to list all subsites of a SharePoint site. Use when you need to retrieve a collection of subsites for a given parent site. IMPORTANT: This action only works with organizational Microsoft 365 accounts (Azure AD/Entra ID accounts). It is NOT supported for personal Microsoft accounts (MSA/Outlook.com/Hotmail accounts). Personal OneDrive users cannot access SharePoint sites through this endpoint. An empty `value` array in the response means the site has no subsites, not a failure.\"},{\"slug\":\"ONE_DRIVE_LIST_SUBSCRIPTIONS\",\"name\":\"List Subscriptions\",\"description\":\"Tool to list the current subscriptions for the authenticated user or app. Use this to retrieve details of existing webhook subscriptions. Results may span multiple drives and resources; filter client-side by resource URL or type to narrow to a specific scope. An empty `value` array means no subscriptions exist, not a failed call.\"},{\"slug\":\"ONE_DRIVE_LIST_WORKBOOK_WORKSHEETS\",\"name\":\"List Workbook Worksheets\",\"description\":\"Retrieves a list of all worksheets in an Excel workbook stored in OneDrive or SharePoint. Returns worksheet metadata including IDs, names, positions, and visibility states. Use this action when you need to enumerate available worksheets in a workbook, find a specific worksheet by name, or understand the workbook structure before performing operations on worksheet data.\"},{\"slug\":\"ONE_DRIVE_MOVE_ITEM\",\"name\":\"Move Item\",\"description\":\"Tool to move a file or folder to a new parent folder in OneDrive. Use when you need to reorganize your files or folders by changing their location. You can optionally rename the item during the move. If a file with the same name exists at the destination, the API returns `nameAlreadyExists`; use the `name` parameter to provide a unique name or resolve the conflict beforehand.\"},{\"slug\":\"ONE_DRIVE_ONEDRIVE_CREATE_FOLDER\",\"name\":\"Create folder\",\"description\":\"Creates a new folder in the user's OneDrive with configurable conflict behavior, optionally within a specified parent_folder (by ID or full path from root) which, if not the root, must exist and be accessible.\"},{\"slug\":\"ONE_DRIVE_ONEDRIVE_CREATE_TEXT_FILE\",\"name\":\"Create a new text file\",\"description\":\"Creates a new plain-text file with specified content in the authenticated user's personal OneDrive, using either the folder's unique ID or its absolute path relative to the user's OneDrive root (paths are automatically resolved to IDs); note that OneDrive may rename or create a new version if the filename already exists. All files are written as plain text regardless of extension — specifying .docx or .xlsx does not produce a true Office document. This action only works with the user's personal OneDrive (/me/drive) and does not support SharePoint document libraries or shared drives.\"},{\"slug\":\"ONE_DRIVE_ONEDRIVE_FIND_FILE\",\"name\":\"Find Item\",\"description\":\"Non-recursively finds an item (file or folder) in a specified OneDrive folder; if `folder` is provided as a path, it must actually exist. Results in large folders may be paginated via `@odata.nextLink`; iterate all pages to avoid missing files. For searches where the subfolder is unknown, use ONE_DRIVE_SEARCH_ITEMS instead.\"},{\"slug\":\"ONE_DRIVE_ONEDRIVE_FIND_FOLDER\",\"name\":\"Find Folder\",\"description\":\"Finds folders by name within an accessible parent folder in OneDrive, or lists all its direct child folders if no name is specified. Search is non-recursive: only immediate children of `folder` are checked, not deeper hierarchy levels.\"},{\"slug\":\"ONE_DRIVE_ONEDRIVE_LIST_ITEMS\",\"name\":\"List OneDrive items\",\"description\":\"Retrieves one page of files and folders as `driveItem` resources from the root of a specified user's OneDrive. Returns up to `top` items plus a `next_page_token`; pass that token back as `page_token` to fetch the next page, and repeat until it is absent. Non-recursive: returns only root-level items; subfolder contents require separate calls. Results may include `remoteItem` pointers (shared items from other drives) — use `remoteItem.driveId` and `remoteItem.id` for those in downstream calls. Distinguish files from folders by presence of `file` or `folder` property. Always use `id` values returned by this tool directly; never construct item IDs manually. Items may be absent from results due to permission restrictions, not drive absence.\"},{\"slug\":\"ONE_DRIVE_ONEDRIVE_UPLOAD_FILE\",\"name\":\"Upload file\",\"description\":\"Uploads a file to a specified OneDrive folder, automatically creating the destination folder if it doesn't exist, renaming on conflict, and supporting large files via chunking.\"},{\"slug\":\"ONE_DRIVE_PREVIEW_DRIVE_ITEM\",\"name\":\"Preview Drive Item\",\"description\":\"Generates or retrieves a short-lived, permission-bound embeddable URL for a preview of a specific item. URLs expire and must be regenerated per session — do not cache. Use when you need to display a temporary preview of a file.\"},{\"slug\":\"ONE_DRIVE_READ_WORKBOOK_RANGE\",\"name\":\"Read Workbook Range\",\"description\":\"Reads a range of cells from an Excel workbook worksheet stored in OneDrive or SharePoint using Microsoft Graph API. Returns cell values, formulas, formatting, and metadata for the specified range. Use this action when you need to extract data from specific cells in an Excel file, whether reading a single cell, a rectangular range, an entire column, or an entire row. The range address must be specified in A1 notation (e.g., 'A1:B5').\"},{\"slug\":\"ONE_DRIVE_RESTORE_DRIVE_ITEM\",\"name\":\"Restore Deleted Item\",\"description\":\"Tool to restore a deleted OneDrive driveItem (file or folder) from the recycle bin. Use when you need to recover a deleted item to its original location or to a specified parent folder, optionally renaming it during restoration. IMPORTANT LIMITATION: This API is ONLY available for OneDrive Personal accounts. It does NOT work with OneDrive for Business or SharePoint. For Business/SharePoint accounts, use the SharePoint REST API endpoints (/_api/web/recyclebin) instead.\"},{\"slug\":\"ONE_DRIVE_RESTORE_ITEM_VERSION\",\"name\":\"Restore Item Version\",\"description\":\"Restores a previous version of a DriveItem (file) by creating a new version with the content of the specified version. Use this action when you need to revert a file to an earlier version. The restoration is permanent and creates a new current version — the file cannot be automatically reverted after this operation, though you can restore again to a different version if needed. This action is irreversible in the sense that it immediately changes the current file content.\"},{\"slug\":\"ONE_DRIVE_SEARCH_DRIVE_ITEMS\",\"name\":\"Search Drive Items\",\"description\":\"Search OneDrive and accessible SharePoint files with Microsoft Graph Search. This does not produce a complete shared-with-me list; use deprecated ONE_DRIVE_GET_SHARED_ITEMS only when full shared-with-me enumeration is required before Microsoft removes that API in November 2026. Requires OneDrive permissions plus Sites.Read.All because SharePoint-backed files can appear in results.\"},{\"slug\":\"ONE_DRIVE_SEARCH_ITEMS\",\"name\":\"Search Items\",\"description\":\"Search OneDrive for files and folders by keyword. Searches filenames, metadata, and file content to find matching items. Use when you need to find specific files based on keywords, file types, or content. Supports filtering, sorting, and pagination. Results are mixed files and folders — filter client-side using file vs folder properties. Disambiguate similarly named items using parentReference.path, lastModifiedDateTime, and size before passing item IDs downstream. Newly created or recently moved files may not appear due to indexing delays; fall back to ONE_DRIVE_LIST_FOLDER_CHILDREN if expected items are missing. No server-side date filtering — apply lastModifiedDateTime/createdDateTime filtering in your own logic. HTTP 429 responses include a Retry-After header; use exponential backoff.\"},{\"slug\":\"ONE_DRIVE_UNFOLLOW_ITEM\",\"name\":\"Delete Drive Following\",\"description\":\"Tool to unfollow a driveItem by removing it from the user's followed items collection. Use when you need to stop following a file or folder that was previously marked to follow.\"},{\"slug\":\"ONE_DRIVE_UPDATE_DRIVE_ITEM_METADATA\",\"name\":\"Update Drive Item Metadata\",\"description\":\"Tool to update the metadata of a specific item (file or folder) in OneDrive. Use this to rename items, change descriptions, or move items to a new parent folder.\"},{\"slug\":\"ONE_DRIVE_UPDATE_DRIVE_ITEMS_PERMISSIONS\",\"name\":\"Update Drive Item Permissions\",\"description\":\"Tool to update the roles of an existing permission on a OneDrive drive item. Use when you need to change the access level (read, write, owner) for a specific permission on a file or folder.\"},{\"slug\":\"ONE_DRIVE_UPDATE_FILE_CONTENT\",\"name\":\"Update File Content\",\"description\":\"Tool to update an existing file's content in OneDrive. When called without a `file` parameter, creates an upload session and returns its uploadUrl (legacy behavior — caller drives the PUT uploads). When called with a `file`, the action streams the file's bytes in chunks via the upload session and returns the final updated DriveItem. The item's ID is preserved (existing share links remain valid) unless conflict_behavior=rename causes the server to create a new item.\"},{\"slug\":\"ONE_DRIVE_UPDATE_SHAREPOINT_ITEM_PERMISSION\",\"name\":\"Update SharePoint Item Permission\",\"description\":\"Update an application permission on a SharePoint list or list item using Microsoft Graph beta.\"},{\"slug\":\"ONE_DRIVE_UPDATE_SHAREPOINT_LIST_ITEM_FIELDS\",\"name\":\"Update SharePoint List Item Fields\",\"description\":\"Update field values on a SharePoint list item using Microsoft Graph through the OneDrive connection. Use when you need to modify one or more columns on an existing SharePoint list item.\"},{\"slug\":\"ONE_DRIVE_UPDATE_WORKBOOK_RANGE\",\"name\":\"Update Workbook Range\",\"description\":\"Updates a range in a workbook worksheet using Microsoft Graph API. Use this action when you need to write data, formulas, or number formats to specific cells in an Excel workbook stored in OneDrive or SharePoint. The address parameter supports various formats including single cells, cell ranges, entire columns, or entire rows.\"},{\"slug\":\"ONE_DRIVE_UPDATE_WORKBOOK_WORKSHEET\",\"name\":\"Update Workbook Worksheet\",\"description\":\"Updates properties of a worksheet in an Excel workbook stored in OneDrive. Use this action when you need to rename a worksheet, change its position (tab order), or modify its visibility state. At least one of name, position, or visibility must be provided in the request. The worksheet is identified by its ID or display name within the specified workbook.\"},{\"slug\":\"ONE_DRIVE_WRITE_WORKBOOK_CELL\",\"name\":\"Write Workbook Cell\",\"description\":\"Updates the value, formula, or format of a specific cell in an Excel workbook stored in OneDrive. Use this action when you need to write data to a single cell at a specific row and column position. The row and column parameters are 0-indexed (row 0 is the first row, column 0 is column A).\"}]},{\"slug\":\"docusign\",\"name\":\"DocuSign\",\"description\":\"DocuSign provides eSignature and digital agreement solutions, enabling businesses to send, sign, track, and manage documents electronically\",\"logo\":\"https://logos.composio.dev/api/docusign\",\"rank\":44,\"tools\":[{\"slug\":\"DOCUSIGN_ADD_CONTACTS_TO_CONTACTS_LIST\",\"name\":\"Add contacts to contacts list\",\"description\":\"Adds multiple contacts to a user's contacts list in DocuSign. This endpoint allows for bulk addition of contacts with detailed information, including cloud provider details, phone numbers, email addresses, and notary-specific information. It's particularly useful for populating a user's address book efficiently or synchronizing contacts from external sources. The endpoint supports various contact types, including regular contacts, shared contacts, and signing groups. Use this when you need to add or update multiple contacts simultaneously in a DocuSign account. Note that while it can handle a variety of contact information, it does not provide functionality for removing or deactivating contacts.\"},{\"slug\":\"DOCUSIGN_ADD_EMAIL_OVERRIDES_TO_ENVELOPE\",\"name\":\"Add Email Overrides To Envelope\",\"description\":\"Adds or modifies email override settings for a specific DocuSign envelope, allowing customization of the reply-to email address and name, as well as BCC email addresses for archiving purposes. This endpoint should be used when you need to change email settings for an individual envelope, overriding the account-level configurations. It's particularly useful for setting up specialized archiving or customizing the reply-to information for specific envelopes. Note that these changes only affect email communications that occur after the addition is made, and the BCC feature is limited to users with appropriate permissions. For security reasons, additional signer authentication is recommended when using the BCC for Email Archive feature.\"},{\"slug\":\"DOCUSIGN_ADD_ENVELOPE_ATTACHMENTS\",\"name\":\"Add envelope attachments\",\"description\":\"Adds one or more envelope attachments to a draft or in-process envelope in DocuSign. This endpoint allows developers to include additional files with an envelope that are not converted to PDF and are only accessible through the API. It's useful for attaching supporting documents or metadata files that should not be part of the main signing process. The endpoint supports up to 12 attachments per envelope, with a maximum file size of 50 MB each. Note that these attachments are not visible in the DocuSign web application and are intended for programmatic use only.\"},{\"slug\":\"DOCUSIGN_ADD_EXISTING_BRAND_TO_GROUP\",\"name\":\"Add existing brand to group\",\"description\":\"This endpoint adds one or more existing brands to a specified group in DocuSign. It allows users to associate multiple brands with a group, enabling customized branding for different groups within an account. The endpoint should be used when there's a need to update the brands associated with a particular group, such as when reorganizing branding strategies or expanding brand options for specific user groups. It's important to note that this endpoint only adds existing brands to a group and does not create new brands or modify brand details.\"},{\"slug\":\"DOCUSIGN_ADD_FILE_TO_WORKSPACE\",\"name\":\"Add file to workspace\",\"description\":\"This endpoint adds a file to a specific folder within a DocuSign workspace. It allows users to upload and organize files in their DocuSign account, enabling better document management and collaboration. The method should be used when integrating file upload functionality with DocuSign workspaces, such as when adding new documents to a project or sharing files with team members. It's important to note that this endpoint only handles the file addition process and does not provide functions for file modification or deletion.\"},{\"slug\":\"DOCUSIGN_ADD_MEMBERS_TO_SIGNING_GROUP\",\"name\":\"Add members to signing group\",\"description\":\"This endpoint adds one or more new members to a specified signing group within a DocuSign account. Signing groups allow multiple users to act as potential signers for a document, where any member of the group can sign on behalf of the group. This tool should be used when you need to expand or update the membership of an existing signing group. The endpoint allows you to add up to 50 members to a signing group, which is the maximum limit. When adding members, you must provide their email addresses and usernames. It's important to note that DocuSign recommends separating signer recipients and non-signer recipients (such as carbon copy recipients) into different signing groups to maintain clarity in the signing process.\"},{\"slug\":\"DOCUSIGN_ADD_NEW_USERS_TO_A_SPECIFIED_ACCOUNT\",\"name\":\"Add new users to a specified account\",\"description\":\"This endpoint adds new users to a specified DocuSign account, allowing bulk creation of up to 500 users in a single call. It's ideal for quickly setting up multiple users with customized permissions and settings. The endpoint requires at least a username and email for each user, but supports additional configuration options. It returns detailed information about created users, including IDs and status.\"},{\"slug\":\"DOCUSIGN_ADD_OR_UPDATE_ACCOUNT_STAMPS\",\"name\":\"Addorupdateaccountstamps\",\"description\":\"Add or update account-level stamps (Japanese Hanko-style stamps) in DocuSign. Stamps are pre-configured signature images that can be applied to documents. This action supports creating new stamps or updating existing ones by including the signatureId. **Common use cases:** - Create name stamps (NameHanko format) for quick document signing - Create name+date stamps (NameDateHanko format) for timestamped signatures - Update stamp properties like size, format, or resize permissions - Manage multiple stamps in bulk operations **Required fields for creating stamps:** - signatureName: Display name for the stamp - stampType: Must be 'stamp' (not 'signature') - stampFormat: Either 'NameHanko' or 'NameDateHanko' **To update existing stamps:** Include the signatureId along with updated fields. Note: This manages stamp definitions only, not the actual signing of documents.\"},{\"slug\":\"DOCUSIGN_ADD_OR_UPDATE_USER_CUSTOM_SETTINGS\",\"name\":\"Add or update user custom settings\",\"description\":\"Adds or updates custom user settings for a specified DocuSign user. This endpoint allows for flexible storage and retrieval of user-specific information that can be used in your own system, separate from standard DocuSign account settings. It supports grouping of settings using the X-DocuSign-User-Settings-Key header for more organized management. The endpoint has a 4,000 character limit for all custom settings per user, including XML and JSON structure.\"},{\"slug\":\"DOCUSIGN_ADD_OR_UPDATE_USER_SIGNATURE\",\"name\":\"Addorupdateusersignature\",\"description\":\"This endpoint allows you to add or update a user's signature in DocuSign. It provides comprehensive management of signature properties, including the signature image, font, initials, and stamp details. Use this endpoint when you need to create a new signature for a user or modify an existing one. The endpoint supports various signature types (standard signatures, initials, and stamps) and allows for detailed customization of signature appearance and behavior. It's particularly useful for maintaining up-to-date and personalized signature information for DocuSign users. Note that users can only manage their own signatures; even users with admin rights cannot modify another user's signature settings.\"},{\"slug\":\"DOCUSIGN_ADD_PART_TO_CHUNKED_UPLOAD\",\"name\":\"Add part to chunked upload\",\"description\":\"Adds a chunk or part to an existing chunked upload in DocuSign. This endpoint is used for uploading large files in smaller pieces, allowing for documents that exceed standard file size limits. It should be used after initiating a new chunked upload and uploading the first part. The method is particularly useful for handling large PDFs and other documents. It's important to note that parts should ideally be uploaded in sequential order, and the entire chunked upload must be completed and used within 20 minutes of initialization. This endpoint cannot replace already received parts or add to committed uploads.\"},{\"slug\":\"DOCUSIGN_ADD_STEP_TO_ENVELOPE_WORKFLOW\",\"name\":\"Add step to envelope workflow\",\"description\":\"This endpoint adds a new step to an existing envelope's workflow in DocuSign. It allows for the configuration of complex workflow rules, including delayed routing, conditional recipients, and specific actions based on envelope status or recipient actions. Use this endpoint when you need to modify an envelope's workflow by adding additional steps or rules after the envelope has been created. This is particularly useful for implementing advanced routing logic or adding pauses in the signing process. The endpoint does not modify existing steps in the workflow; it only adds new ones.\"},{\"slug\":\"DOCUSIGN_ADD_TEMPLATES_TO_DOCUMENT_IN_ENVELOPE\",\"name\":\"Add templates to document in envelope\",\"description\":\"This endpoint adds pre-configured templates to a specific document within an existing envelope in DocuSign. It allows you to apply standardized content, such as tabs and anchor text, from templates to documents, streamlining the process of preparing documents for signature. Use this when you need to modify an existing envelope by incorporating template content into its documents. The endpoint is particularly useful for maintaining consistency across documents and automating the addition of necessary fields. Note that applying templates may affect envelope recipients, depending on the template content and the 'preserve_template_recipient' parameter setting. This endpoint does not create new envelopes or documents; it only modifies existing ones.\"},{\"slug\":\"DOCUSIGN_ADD_TEMPLATES_TO_ENVELOPE\",\"name\":\"Add templates to envelope\",\"description\":\"This endpoint adds templates to an existing DocuSign envelope. It's used to apply pre-defined document templates, including content and settings, to standardize workflows. The operation can affect existing recipients based on the 'preserve_template_recipient' parameter. It's suitable for adding comprehensive template changes to an envelope, not for creating new envelopes or minor modifications.\"},{\"slug\":\"DOCUSIGN_ADD_USER_SIGNATURE_AND_INITIALS_IMAGES\",\"name\":\"Add user signature and initials images\",\"description\":\"Add or update a user's signature and initials images in DocuSign. This action creates default signature images based on the user's name and a DocuSign font style. When using JSON content type (as this action does), DocuSign automatically generates signature images based on the signatureName and signatureFont parameters. Supported signature fonts include: 7_DocuSign, 1_DocuSign, 6_DocuSign, 8_DocuSign, 3_DocuSign, Mistral, 4_DocuSign, 2_DocuSign, 5_DocuSign, and Rage Italic. Note: Custom image uploads using base64-encoded data require multipart/form-data content type, which is not supported by this JSON-based action. For custom signature images, you need to use a different method. Important: The userId must match the authenticated user's ID. Users can only modify their own signatures. Each update may generate a new signatureId, so applications should rely on the signature name for consistent identification.\"},{\"slug\":\"DOCUSIGN_ADD_USERS_TO_EXISTING_GROUP\",\"name\":\"Add users to existing group\",\"description\":\"Adds one or more existing DocuSign users to an existing group within a specified account. This endpoint is used to manage group memberships by adding users to a predefined group. It requires the account ID and group ID as path parameters, and accepts a list of user information in the request body. The operation returns detailed information about the added users and the result set. Use this endpoint when you need to update group memberships or organize users into specific groups for access control or administrative purposes. Note that this endpoint only adds existing users to a group; it does not create new users or groups.\"},{\"slug\":\"DOCUSIGN_APPLY_ACTION_TO_BULK_SEND_ENVELOPES\",\"name\":\"Apply action to bulk send envelopes\",\"description\":\"This endpoint allows users to apply specific actions (resend, correct, or void) to all envelopes within a specified DocuSign bulk send batch. It's designed for managing large-scale document signing processes efficiently, enabling users to update the status or take action on multiple envelopes simultaneously. This tool is particularly useful when you need to resend failed envelopes, correct errors in a batch of envelopes, or void an entire batch of envelopes. It should be used carefully, as the actions applied will affect all envelopes in the specified batch.\"},{\"slug\":\"DOCUSIGN_CHANGE_USERS_IN_ACCOUNT\",\"name\":\"Changeusersinaccount\",\"description\":\"This endpoint allows you to update information for one or more users within a DocuSign account. It is used to modify various user attributes such as personal information, settings, permissions, and notification preferences. The endpoint is particularly useful for account administrators who need to manage multiple users or update specific user settings en masse. It can handle updates for a single user or batch updates for multiple users in one request. The endpoint provides granular control over user settings, allowing for detailed customization of user profiles and permissions within the DocuSign environment. However, it's important to note that some settings may be limited by the account's plan or the user's role within the organization.\"},{\"slug\":\"DOCUSIGN_CLOSE_USERS_IN_ACCOUNT\",\"name\":\"Closeusersinaccount\",\"description\":\"Closes one or more users in a DocuSign account, preventing them from accessing account features without permanently deleting them. This endpoint is useful for temporarily disabling user access, such as when an employee is on leave or has changed roles. It allows for easy re-activation of users through the Users:update method. The operation affects multiple users in a single request, streamlining bulk user management tasks.\"},{\"slug\":\"DOCUSIGN_COMMIT_CHUNKED_UPLOAD_FOR_ENVELOPES\",\"name\":\"Commit chunked upload for envelopes\",\"description\":\"This endpoint commits a chunked upload in DocuSign, finalizing the upload process and preparing the uploaded content for use in other API calls. It should be used after all parts of a large document have been uploaded using the chunked upload method. The endpoint performs integrity checks on the uploaded content and, if successful, marks the chunked upload as ready for use. It's crucial to note that once committed, no additional parts can be added to the upload. This method is particularly useful when dealing with large documents that exceed standard upload size limits, allowing for more efficient handling of sizeable files in the DocuSign workflow.\"},{\"slug\":\"DOCUSIGN_CONFIGURE_CLOUD_STORAGE_REDIRECT_URL\",\"name\":\"Configure cloud storage redirect url\",\"description\":\"Configures the OAuth redirect URL for one or more cloud storage providers (Box, Dropbox, GoogleDrive, SkyDrive/OneDrive, Salesforce) for a specific user in DocuSign. This action sets up the authentication flow between DocuSign and cloud storage services by specifying where users should be redirected after authenticating with the cloud storage provider. The redirect URL must be within the docusign.com or docusign.net domains for security. The response includes authentication URLs with the redirect URL appended as a query parameter. Direct users to these URLs to complete the OAuth flow and connect their cloud storage accounts to DocuSign. Use this when integrating cloud storage services to enable users to access documents from external providers within DocuSign workflows.\"},{\"slug\":\"DOCUSIGN_CREATE_ACCOUNT_CUSTOM_FIELD\",\"name\":\"Create account custom field\",\"description\":\"Creates a new custom field at the account level in DocuSign, making it available for all new envelopes associated with the account. This endpoint enables account administrators to define custom fields for enhanced envelope management and grouping. The created custom field can be of type 'text' or 'list', and can be set as required or optional. It's particularly useful for standardizing data collection across all envelopes within an account and can optionally be applied to existing templates.\"},{\"slug\":\"DOCUSIGN_CREATE_A_COLLABORATIVE_WORKSPACE\",\"name\":\"Create a collaborative workspace\",\"description\":\"Creates a new collaborative workspace in DocuSign for document management and team collaboration. A workspace provides a centralized area for file sharing and collaborative work on agreements. Use this when setting up a new project or team workspace. The creator becomes the workspace owner automatically. After creation, you can add members and upload files using separate actions. Minimal required input: accountId and workspaceName. Optional settings include workspaceDescription and commentsAllowed for enabling document comments.\"},{\"slug\":\"DOCUSIGN_CREATE_BCC_EMAIL_ARCHIVE_CONFIGURATION\",\"name\":\"Create BCC Email Archive Configuration\",\"description\":\"Creates a BCC email archive configuration for a DocuSign account, enabling automatic archiving of DocuSign-generated emails. This endpoint allows you to set up a BCC email address that will receive copies of all DocuSign notifications for the specified account. It's particularly useful for organizations that need to maintain comprehensive email records for compliance or auditing purposes. **Key Details:** - Only requires the 'email' parameter - the BCC email address to receive archived emails - Supports up to 5 active and pending email archive addresses per account - Each email address must be added one at a time - After creation, an activation email is sent to the BCC address for confirmation **Important:** The BCC Email Archives feature must be enabled for your DocuSign account before using this action. If not enabled, you'll receive a \\\"BCC_EMAIL_ARCHIVES_NOT_ACTIVATED\\\" error. Contact DocuSign support to enable this feature if needed.\"},{\"slug\":\"DOCUSIGN_CREATE_BRAND_PROFILES_FOR_ACCOUNT\",\"name\":\"Create brand profiles for account\",\"description\":\"Creates a new brand profile for a DocuSign account to customize the signing and sending experience with your organization's visual identity and branding elements. This action allows you to define brand properties such as company name, brand languages, colors for UI elements (buttons, headers), and custom landing pages. The accountId is automatically populated from authentication credentials. Brand logos must be uploaded separately using the brand logo management endpoints after creating the brand profile. **Requirements:** The DocuSign account must have 'canSelfBrandSign' or 'canSelfBrandSend' settings enabled. Without these permissions, the API will return a 400 error. Contact your DocuSign administrator to enable branding features if needed. **Typical workflow:** 1) Create brand profile with this action, 2) Upload logos via updateLogo endpoint, 3) Apply brand to envelopes during creation.\"},{\"slug\":\"DOCUSIGN_CREATE_BULK_SEND_REQUEST\",\"name\":\"Create bulk send request\",\"description\":\"Initiates a bulk send process in DocuSign to send a single template or envelope to multiple recipients in a single batch operation. This is ideal for large-scale document distribution scenarios such as sending contracts to numerous clients or company-wide notices. **Prerequisites:** 1. Create a bulk send list first (using createBulkSendList API) with recipient data 2. Ensure you have a template with recipient roles matching the bulk list's roleNames 3. The bulk send list must contain at least one recipient entry **How it works:** - The bulk send list defines recipient data (names, emails, role assignments) - The template defines the document structure and recipient roles - DocuSign creates one envelope per entry in the bulk send list - All envelopes are queued asynchronously for processing **Important:** Test compatibility using createBulkSendTestRequest before sending. The returned batchId can be used to track the bulk send operation status.\"},{\"slug\":\"DOCUSIGN_CREATE_BULK_SEND_TEST_REQUEST\",\"name\":\"Create bulk send test request\",\"description\":\"This endpoint creates a Bulk Send Test Request to validate the compatibility between a bulk send list and an envelope or template for DocuSign's bulk sending feature. It performs comprehensive checks on envelope state, recipients, tabs, and custom fields to ensure a successful bulk send operation. Use this endpoint before initiating an actual bulk send to identify and resolve any potential issues. The test returns a boolean indicating whether the send can proceed, along with detailed validation error information if applicable. This endpoint is essential for maintaining the integrity and efficiency of bulk sending processes in DocuSign.\"},{\"slug\":\"DOCUSIGN_CREATE_CONNECT_CONFIGURATION_FOR_ACCOUNT\",\"name\":\"Create connect configuration for account\",\"description\":\"This endpoint creates a custom Connect configuration for a specified DocuSign account, enabling webhook notifications for envelope and recipient events. It allows users to set up real-time updates for eSignature workflows without the need for polling. The configuration can be customized for different delivery modes, data formats, and event triggers, providing flexibility in how and when notifications are received.\"},{\"slug\":\"DOCUSIGN_CREATE_CUSTOM_DOCUMENT_FIELDS_IN_ENVELOPE\",\"name\":\"Create custom document fields in envelope\",\"description\":\"Creates custom document fields in an existing envelope document within DocuSign. This endpoint allows you to add metadata to specific documents in an envelope, which can be used for tracking, sorting, and reporting purposes. It's particularly useful when you need to associate additional information with a document that isn't captured by standard DocuSign fields. The custom fields are not used by DocuSign for processing but are returned in the envelope status. This endpoint should be used after an envelope has been created and when you need to add or update custom metadata for a specific document within that envelope.\"},{\"slug\":\"DOCUSIGN_CREATE_CUSTOM_FIELDS_FOR_ENVELOPE\",\"name\":\"Create custom fields for envelope\",\"description\":\"This endpoint allows you to create or update custom fields for a specific DocuSign envelope. It is used to add or modify additional metadata to envelopes, which can be utilized for sorting, organizing, searching, and other downstream processes. The endpoint supports both list-type custom fields (with predefined options) and text-type custom fields (for free-form entry). This operation is applicable to draft and in-process envelopes only and should not be used for completed envelopes. Custom fields added through this endpoint will be visible in the Envelope Settings section of the DocuSign console but will not be visible to envelope recipients.\"},{\"slug\":\"DOCUSIGN_CREATE_CUSTOM_FIELDS_IN_TEMPLATE_DOCUMENT\",\"name\":\"Create custom fields in template document\",\"description\":\"Creates custom document fields in an existing template document within DocuSign. This endpoint allows users to add metadata to specific documents in a template, enhancing document management and workflow customization. It is particularly useful for prepopulating custom data fields that will be applied to all new envelopes created using this template. The endpoint requires the account ID, document ID, and template ID to identify the exact document within a specific template. Custom fields are added as name-value pairs, allowing for flexible metadata structuring within the constraints of DocuSign's field limitations.\"},{\"slug\":\"DOCUSIGN_CREATE_CUSTOM_TAB_WITH_PROPERTIES\",\"name\":\"Createcustomtabwithproperties\",\"description\":\"Creates a custom tab with pre-defined properties for use in DocuSign envelopes. This endpoint allows users to define reusable tab types with specific configurations such as font styles, validation patterns, and positioning rules. Custom tabs can be created for various field types including text, checkboxes, radio buttons, and signature fields. This tool is particularly useful for standardizing frequently used tab configurations across multiple documents and improving efficiency in envelope creation.\"},{\"slug\":\"DOCUSIGN_CREATE_DOCUMENT_RESPONSIVE_HTML_PREVIEW\",\"name\":\"Create Document Responsive HTML Preview\",\"description\":\"Creates a responsive HTML preview for a specific document in an envelope. Generates a mobile-friendly preview showing how the document renders on different devices. Useful for testing smart sections, collapsible content, and responsive tables before sending. **Requirements:** Envelope and document must already exist. Use CREATE_ENVELOPE_FROM_TEMPLATE first. **Optional:** Provide HTML definition settings (displayAnchors, source) to customize display. **Returns:** HTML preview of the responsive document version.\"},{\"slug\":\"DOCUSIGN_CREATE_ENVELOPE_FROM_TEMPLATE\",\"name\":\"Create Envelope From Template\",\"description\":\"Creates a signing envelope from a pre-existing DocuSign template. This action maps specific recipients to template roles and creates an envelope, either as a draft (status='created') or sent immediately (status='sent'). Prerequisites: - Use DOCUSIGN_LIST_ALL_TEMPLATES to get template IDs and role names - Role names in template_roles must match template roles exactly (case-sensitive) - Include 'recipients' parameter in list templates to see available role names Common Use Cases: - Send contracts, NDAs, or agreements for electronic signature - Create multi-party approval workflows with sequential signing - Distribute documents to carbon copy recipients Returns envelope_id for tracking and management.\"},{\"slug\":\"DOCUSIGN_CREATE_GROUPS_FOR_ACCOUNT\",\"name\":\"Creategroupsforaccount\",\"description\":\"Creates one or more groups for a specified DocuSign account. This endpoint is used for managing user access and permissions by organizing users into groups. Groups can be associated with permission profiles to streamline user management for large numbers of users. The endpoint accepts an array of group objects, each containing a group name and optionally a permission profile ID. It's particularly useful for setting up new organizational structures, managing template access, or preparing for bulk user management. Note that only the 'groupName' and 'permissionProfileId' properties are used in the request; all other properties in the group objects are ignored. To associate permission profiles with groups, you need to first obtain the permission profile IDs using the AccountPermissionProfiles: list endpoint.\"},{\"slug\":\"DOCUSIGN_CREATE_IDPROOF_RESOURCE_TOKEN_FOR_RECIPIENT\",\"name\":\"Createidproofresourcetokenforrecipient\",\"description\":\"Generates a 2-minute resource token to access recipient identity verification data via DocuSign's ID Evidence API. **Requirements:** Recipient must have completed identity verification (phone auth, ID scan, etc.) during envelope signing. Fails if envelope is draft or verification incomplete. **Usage:** Get token and proof_base_uri, then call ID Evidence API with \\\"Bearer {token}\\\" to retrieve verification details (ID scans, selfies, phone records). **Response:** resource_token (expires 2 min), proof_base_uri (API base URL like https://proof-d.docusign.net). Use for compliance/audit to programmatically verify recipient identity data.\"},{\"slug\":\"DOCUSIGN_CREATE_NEW_ACCOUNT_PERMISSION_PROFILE\",\"name\":\"Createnewaccountpermissionprofile\",\"description\":\"This endpoint creates a new permission profile for a DocuSign account, defining specific sets of permissions for user groups. It allows administrators to establish role-based access control within their DocuSign environment. The profile controls a wide range of user capabilities, from basic envelope sending to advanced account management functions. Use this endpoint when setting up new roles or modifying existing permission structures. Note that creating a profile doesn't automatically assign users to it; separate actions are required for user assignment.\"},{\"slug\":\"DOCUSIGN_CREATE_NOTARY_JURISDICTION_OBJECT\",\"name\":\"Create Notary Jurisdiction\",\"description\":\"Registers a notary jurisdiction for the current DocuSign user, enabling electronic notarizations for a specific U.S. state. A user can only have ONE jurisdiction at a time. Required fields: commissionExpiration (MM/DD/YYYY format), commissionId, registeredName, sealType, and jurisdiction details (jurisdictionId, name, county). Seal type must match jurisdiction requirements: some states like California require user-uploaded seals, while others support system-created seals. Supports 24 U.S. jurisdictions (IDs: 5-California, 6-Colorado, 9-Florida, 10-Georgia, 12-Idaho, 13-Illinois, 14-Indiana, 15-Iowa, 17-Kentucky, 23-Minnesota, 25-Missouri, 30-New Jersey, 32-New York, 33-North Carolina, 35-Ohio, 37-Oregon, 38-Pennsylvania, 40-South Carolina, 43-Texas, 44-Utah, 47-Washington, 48-West Virginia, 49-Wisconsin, 62-Florida Commissioner of Deeds).\"},{\"slug\":\"DOCUSIGN_CREATE_OR_UPDATE_USER_AUTHORIZATIONS\",\"name\":\"Createorupdateuserauthorizations\",\"description\":\"Creates or updates user authorizations in DocuSign, allowing an agent user to perform actions on behalf of a principal user. Grants permissions like Send, Manage, Sign, or Edit. Requirements: principal must be authenticated user or caller must be admin; agent users must be active; principal and agent must differ; agentUser.accountId and agentUser.userId are required. Returns HTTP 201 with results array showing success/error for each authorization attempt.\"},{\"slug\":\"DOCUSIGN_CREATE_PREVIEW_OF_RESPONSIVE_HTML\",\"name\":\"Create Preview of Responsive HTML\",\"description\":\"Creates a preview of the responsive HTML version of a specific template document in DocuSign. This endpoint allows users to visualize how a PDF document will be converted to responsive HTML across various device types before sending it for signing. It's particularly useful for ensuring that template documents are properly formatted for responsive signing, enhancing the signing experience across different devices. The preview can be customized using various display settings and anchors, enabling users to create collapsible sections, responsive tables, and other interactive elements in the signing document.\"},{\"slug\":\"DOCUSIGN_CREATE_PREVIEW_OF_RESPONSIVE_HTML_IN_ENVELOPE\",\"name\":\"Create Preview of Responsive HTML in Envelope\",\"description\":\"Creates a preview of the responsive HTML versions of all documents in an envelope, allowing users to review how PDF documents will appear as responsive HTML across different device types before sending. This endpoint is particularly useful for ensuring document compatibility and readability on various screen sizes and devices, enhancing the signing experience for recipients. It leverages smart sections and display anchors to customize document appearance and behavior, including collapsible sections and responsive tables.\"},{\"slug\":\"DOCUSIGN_CREATE_RECIPIENT_MANUAL_REVIEW_LINK\",\"name\":\"Create Recipient Manual Review Link\",\"description\":\"Creates a URL for manually reviewing a recipient's identity in DocuSign. This endpoint is used when automatic identity verification has failed and manual review is required. It returns a URL that allows the sender to access a page for manually verifying the recipient's ID. This method should only be used for recipients in workflows that support manual review and whose automatic verification has failed with a specific status code. The returned URL is essential for completing the identity verification process in cases where automatic methods were insufficient.\"},{\"slug\":\"DOCUSIGN_CREATE_RECIPIENT_PREVIEW_FOR_ENVELOPE\",\"name\":\"Createrecipientpreviewforenvelope\",\"description\":\"Creates a URL for previewing the recipient's view of a draft envelope or template. This endpoint allows senders to simulate the recipient's experience by generating an embeddable preview URL. It's useful for verifying the appearance and functionality of an envelope before sending it to recipients. The preview can help identify any issues with document layout, field placements, or signing order, ensuring a smooth signing experience for the recipients.\"},{\"slug\":\"DOCUSIGN_CREATE_RECIPIENT_VIEW_URL\",\"name\":\"Create Recipient View URL\",\"description\":\"Creates a URL for embedding the DocuSign recipient view UI within an application, allowing users to sign documents directly in the app. This endpoint is specifically used for envelopes in the 'sent' status and generates a temporary URL that expires after 5 minutes. It provides a seamless way to integrate electronic signature capabilities into your workflow, ensuring a secure and legally binding signing process. The method requires proper authentication of the recipient's identity and offers various customization options for the embedded experience.\"},{\"slug\":\"DOCUSIGN_CREATE_SENDER_VIEW_URL_FOR_ENVELOPE\",\"name\":\"Create sender view url for envelope\",\"description\":\"Creates a URL for the sender view of a DocuSign envelope, enabling the embedding of DocuSign UI within an external application. This endpoint is crucial for integrating envelope sending functionality, allowing users to prepare and send envelopes directly from your application. The returned URL provides a customizable sender view for an envelope in the 'Created' state, with options to tailor the user interface and behavior. It's important to note that the URL must be used immediately after generation and is valid for only one use. The endpoint offers extensive customization options through the 'settings' object, allowing control over UI elements, button behaviors, and access levels. For mobile integrations, especially iOS devices, it's recommended to use a WebView instead of an iframe due to screen space limitations.\"},{\"slug\":\"DOCUSIGN_CREATE_SIGNING_GROUP\",\"name\":\"Create signing group\",\"description\":\"Creates one or more signing groups in a DocuSign account. This endpoint allows account administrators to set up predefined groups of recipients for document signing. Multiple signing groups can be created in a single API call, enhancing efficiency in setting up complex signing workflows. Use this when you need to establish teams or departments that can collectively receive and sign documents, with any member able to sign on behalf of the group.\"},{\"slug\":\"DOCUSIGN_CREATE_TEMPLATE_DOCUMENT_CUSTOM_FIELDS\",\"name\":\"Create Template Custom Fields\",\"description\":\"Creates custom fields on a DocuSign template to capture additional metadata. Custom fields allow you to: - Add dropdown lists (listCustomFields) where senders select from predefined options - Add text fields (textCustomFields) where senders enter free-form text - Set default values and mark fields as required or optional - Control visibility in the envelope creation interface - Integrate with external systems like Salesforce using merge fields These fields are attached to the template and will appear when creating envelopes from that template, allowing senders to provide additional context or metadata before sending documents for signature. Note: You must provide at least one of listCustomFields or textCustomFields.\"},{\"slug\":\"DOCUSIGN_CREATE_TEMPLATE_RECIPIENT_PREVIEW_URL\",\"name\":\"Create template recipient preview url\",\"description\":\"Generate a preview URL showing how a template will appear to recipients. This action creates an embeddable URL that displays a template from the recipient's perspective, allowing senders to verify the signing experience before sending the actual document. This is particularly useful for: - Previewing tab placement and field positions - Validating the recipient workflow and experience - Testing template configuration before production use - Providing a \\\"preview\\\" feature in template management interfaces The returned URL can be embedded in an iframe or opened in a new window. The preview is read-only and does not affect the actual template. Note: This is for templates only, not for envelopes or sent documents. Use create_recipient_preview_for_envelope for envelope previews.\"},{\"slug\":\"DOCUSIGN_CREATE_TEMPLATE_RESPONSIVE_HTML_PREVIEW\",\"name\":\"Create Template Responsive HTML Preview\",\"description\":\"Creates a preview of the responsive HTML versions of all documents associated with a DocuSign template. This endpoint enables users to generate and customize the HTML preview of PDF documents across various device types before sending them for signing. It is particularly useful for ensuring that documents are easily readable and signable on different screen sizes and devices. The preview allows for fine-tuning of display settings, anchors, and other responsive elements to optimize the signing experience.\"},{\"slug\":\"DOCUSIGN_CREATE_TEMPLATE_WORKFLOW_STEP\",\"name\":\"Create Template Workflow Step\",\"description\":\"Adds a new workflow step to an existing DocuSign template. This action enables sophisticated document routing automation within templates, including: - Pausing workflows before specific routing steps - Implementing delayed sending with scheduled resume dates - Setting up conditional recipient routing based on form field values - Creating multi-stage approval or review processes The workflow step controls the timing and conditions for sending documents to recipients. Common use cases include approval chains, compliance reviews, and conditional routing based on document data. Note: Only one workflow step type (delayed routing OR recipient routing) can be configured per step. Workflow steps are triggered based on routing order positions within the template.\"},{\"slug\":\"DOCUSIGN_CREATE_URLFOR_TEMPLATE_EDIT_VIEW\",\"name\":\"Createurlfortemplateeditview\",\"description\":\"Creates a URL for embedding the DocuSign Template Edit view within an application. This endpoint enables developers to integrate DocuSign's template creation and editing functionality directly into their applications, allowing users to manage templates without leaving the app environment. The generated URL provides access to the DocuSign Template UI, where users can create, modify, and save templates. This method is particularly useful for applications that need to offer template management capabilities while maintaining a seamless user experience. It's important to note that this endpoint focuses solely on generating the URL for template editing and does not handle the actual template modifications.\"},{\"slug\":\"DOCUSIGN_CREATE_USER_AUTHORIZATION_FOR_AGENT_USER\",\"name\":\"Create User Authorization For Agent User\",\"description\":\"Creates a user authorization in DocuSign, enabling an agent user to perform specific actions on behalf of a principal user within the same account. This endpoint is essential for setting up delegated access, allowing users to share envelope management, signing, or sending capabilities. It's particularly useful for streamlining workflow processes in scenarios where one user needs to act on behalf of another, such as an assistant managing documents for an executive. The authorization can be time-bound and is subject to account-level permissions. Note that only account administrators or the principal user can create these authorizations, and each principal can only share signing permission with one agent user at a time.\"},{\"slug\":\"DOCUSIGN_DELETE_ACCOUNT_BRAND\",\"name\":\"Delete account brand\",\"description\":\"This endpoint deletes a specific brand from a DocuSign account. It should be used when you need to permanently remove a brand configuration from an account, such as when a brand is no longer needed or has been replaced. The operation requires that branding for either signing or sending (or both) is enabled for the account. This is indicated by the account settings 'canSelfBrandSend' or 'canSelfBrandSign' being set to true. The deletion is irreversible, so it should be used with caution. If successful, the brand will be completely removed from the account and can no longer be applied to documents or emails. This endpoint does not return the deleted brand details; it only confirms the successful deletion or returns an error if the operation fails.\"},{\"slug\":\"DOCUSIGN_DELETE_ACCOUNT_CUSTOM_FIELD\",\"name\":\"Delete account custom field\",\"description\":\"Deletes an existing account custom field from a DocuSign account. This endpoint should be used when you need to remove a custom field that is no longer required or relevant for your account. It permanently removes the custom field, so use with caution. The deletion can optionally be applied to templates as well. This operation is part of the account management functionality and affects how custom metadata can be used in future envelope creations.\"},{\"slug\":\"DOCUSIGN_DELETE_ACCOUNT_PERMISSION_PROFILE\",\"name\":\"Delete account permission profile\",\"description\":\"This endpoint deletes a specific permission profile from a DocuSign account. It is used to remove outdated or unnecessary permission profiles, helping to streamline account management. The endpoint requires that the profile being deleted has no associated users, unless they are being reassigned to a new profile. It's particularly useful when restructuring account permissions or during account cleanup processes. The method will fail if there are associated users and no reassignment is specified. It's important to note that this action is irreversible, so caution should be exercised when using this endpoint. This endpoint should not be used for temporary permission changes; instead, it's meant for permanent removal of a permission profile.\"},{\"slug\":\"DOCUSIGN_DELETE_ACCOUNT_STAMP\",\"name\":\"Delete account stamp\",\"description\":\"Deletes a specific account stamp (signature) from a DocuSign account. This endpoint should be used when you need to permanently remove a stamp from an account, such as when it's no longer needed or has been replaced. The operation is irreversible, so use it with caution. It's particularly useful for maintaining account hygiene by removing outdated or unused stamps. Note that this endpoint only deletes the stamp; it does not affect any documents that may have already been signed using this stamp.\"},{\"slug\":\"DOCUSIGN_DELETE_BCC_EMAIL_ARCHIVE_CONFIGURATION\",\"name\":\"Delete bcc email archive configuration\",\"description\":\"This endpoint deletes a BCC (Blind Carbon Copy) email archive configuration from a specified DocuSign account. When invoked, it changes the status of the targeted configuration to 'closed' and immediately stops the archiving of DocuSign-generated email messages to the associated BCC email address. This operation is useful for managing email archiving settings, particularly when an archiving configuration is no longer needed or needs to be replaced. It's important to note that this action is irreversible, and once deleted, the specific configuration cannot be reactivated – a new one would need to be created if archiving is required again in the future. This endpoint should be used cautiously, as it will impact the email archiving process for the account.\"},{\"slug\":\"DOCUSIGN_DELETE_BRAND_FROM_GROUP\",\"name\":\"Delete Brand from Group\",\"description\":\"This endpoint allows users to delete one or more brands from a specified group within a DocuSign account. It is used to manage brand associations with groups, enabling customization of branding for different envelopes and signing experiences. The operation removes the specified brands from the group, updating the group's brand configurations. Use this endpoint when you need to disassociate brands from a particular group, such as during reorganization or brand consolidation processes. Note that this action does not delete the brands from the account entirely, but only removes their association with the specified group.\"},{\"slug\":\"DOCUSIGN_DELETE_BRAND_LOGO_BY_TYPE\",\"name\":\"Delete Brand Logo By Type\",\"description\":\"This endpoint deletes a specific logo from an account brand in DocuSign. It allows users to remove primary, secondary, or email logos associated with their brand, helping maintain brand consistency across DocuSign documents. The endpoint should be used when updating or removing branding elements from a DocuSign account. Note that branding for either signing or sending must be enabled for the account (canSelfBrandSend, canSelfBrandSign, or both must be true) for this endpoint to function properly. This operation is irreversible, so caution should be exercised when using it.\"},{\"slug\":\"DOCUSIGN_DELETE_BRAND_PROFILES\",\"name\":\"Delete brand profiles\",\"description\":\"This endpoint allows you to delete one or more brand profiles from a DocuSign account. It is used to remove custom branding configurations that are no longer needed. The method requires either the 'canSelfBrandSign' or 'canSelfBrandSend' setting to be enabled for the account. It's important to note that this operation is irreversible, so care should be taken when using this endpoint. The response provides detailed information about the deleted brands, including their IDs, names, and associated resources.\"},{\"slug\":\"DOCUSIGN_DELETE_CHUNKED_UPLOAD\",\"name\":\"Delete chunked upload\",\"description\":\"Deletes a chunked upload that has been committed but not yet consumed in the DocuSign system. This endpoint is useful for managing large file uploads and maintaining quota efficiency. It should be used when a chunked upload is no longer needed and hasn't been used in other API calls. The endpoint cannot delete chunked uploads that have already been consumed or those that have expired. It's recommended to explicitly delete unused chunked uploads rather than waiting for automatic expiration to manage your quota effectively. Note that this API is currently in beta status and may be subject to changes.\"},{\"slug\":\"DOCUSIGN_DELETE_CONNECT_CONFIGURATION\",\"name\":\"Delete connect configuration\",\"description\":\"Deletes a specified DocuSign Connect configuration from the given account. This endpoint should be used when you need to remove an existing Connect integration setup. It requires account administrator privileges and that Connect is enabled on the account. The operation is irreversible, so use with caution. This endpoint doesn't return the deleted configuration details; it only confirms successful deletion or returns an error.\"},{\"slug\":\"DOCUSIGN_DELETE_CONNECT_FAILURE_LOG_ENTRY\",\"name\":\"Delete connect failure log entry\",\"description\":\"Deletes one or all Connect failure log entries for a specified DocuSign account. This endpoint is used for maintenance and cleanup of Connect integration logs, allowing account administrators to remove specific failure records or clear all failure logs. It should be used when troubleshooting Connect integration issues or performing routine log management. The endpoint requires account administrator privileges and Connect must be enabled on the account. It's important to note that this operation is irreversible, so care should be taken when deleting log entries, especially when using the 'all' option.\"},{\"slug\":\"DOCUSIGN_DELETE_CONNECT_LOG_ENTRIES\",\"name\":\"Delete Connect Log Entries\",\"description\":\"Deletes Connect log entries for a DocuSign account. This endpoint allows account administrators to manage and clean up Connect event logs, which record webhook delivery attempts and outcomes. **Use Case:** Remove Connect log entries for data management, privacy compliance, or housekeeping purposes. **Requirements:** - Account administrator privileges - Connect must be enabled on the account - Provide a list of log IDs to delete specific entries **Important:** This operation is irreversible. Deleted log entries cannot be recovered. Ensure you have identified the correct log IDs before deletion. Use the list/get Connect logs endpoints first to identify the logs you want to delete. **Note:** The endpoint behavior may vary based on the logIds parameter: - With logIds: Deletes specific log entries - Without logIds: Behavior depends on API implementation (may delete all or return error)\"},{\"slug\":\"DOCUSIGN_DELETE_CONNECT_OAUTH_CONFIGURATION\",\"name\":\"Delete connect oauth configuration\",\"description\":\"Deletes the Connect OAuth configuration for a specified DocuSign account. This endpoint is used to remove the OAuth settings that allow DocuSign Connect to securely integrate with other applications and send webhook notifications. It should be used when you need to disable or reconfigure the Connect OAuth integration for an account. This operation is irreversible and will immediately stop any active Connect OAuth-based integrations for the specified account. Only account administrators can perform this action, and Connect must be enabled on the account for this endpoint to work. It's important to note that this deletion only affects the OAuth configuration for Connect and does not impact other DocuSign integrations or the account itself.\"},{\"slug\":\"DOCUSIGN_DELETE_CONTACT_FROM_ACCOUNT\",\"name\":\"Delete contact from account\",\"description\":\"Deletes a specific contact from a DocuSign account. This endpoint should be used when you need to remove a contact's information from an account's address book. It requires both the account ID and the specific contact ID to be provided. Upon successful deletion, it returns an updated list of contacts for the account. This operation is irreversible, so it should be used with caution. The endpoint does not provide any confirmation or undo functionality, so ensure the correct contact ID is specified before making the call.\"},{\"slug\":\"DOCUSIGN_DELETE_CUSTOM_DOCUMENT_FIELDS\",\"name\":\"Delete custom document fields\",\"description\":\"Deletes custom document fields from an existing envelope document in DocuSign. This endpoint allows you to remove specific metadata or custom data strings associated with a document within an envelope. It's useful for updating or cleaning up custom information that is no longer relevant or needed. The operation is performed on a specific document within a specific envelope, identified by their respective IDs. Use this endpoint when you need to manage or update the custom fields of a document, ensuring that only necessary and current information is retained.\"},{\"slug\":\"DOCUSIGN_DELETE_CUSTOM_DOCUMENT_FIELDS_FROM_TEMPLATE\",\"name\":\"Deletecustomdocumentfieldsfromtemplate\",\"description\":\"Deletes specified custom document fields from an existing template document in DocuSign. This endpoint is useful for maintaining and updating templates by removing unnecessary or outdated custom fields. It should be used when you need to clean up or modify the structure of a template document. The operation is irreversible, so caution should be exercised when using it. This endpoint only removes custom fields and does not affect other aspects of the template or document.\"},{\"slug\":\"DOCUSIGN_DELETE_CUSTOM_FIELDS_IN_TEMPLATE\",\"name\":\"Delete custom fields in template\",\"description\":\"Deletes specified custom fields from a DocuSign template. This action removes envelope-level custom fields (both list and text types) that are no longer needed. **How it works:** - Specify which custom fields to delete by providing their fieldId values - You can delete multiple list and/or text custom fields in a single request - The template must not be locked by another user or application - Get field IDs using the retrieve template custom fields endpoint **Response:** Returns the list of deleted custom field IDs (not the remaining fields). **Use case:** Useful for maintaining templates by removing outdated custom fields, simplifying template structure, and keeping only relevant metadata fields for new envelopes created from this template. **Note:** This deletes template-level custom fields. For document-level custom fields within a template, use the delete custom document fields endpoint instead.\"},{\"slug\":\"DOCUSIGN_DELETE_CUSTOM_TAB_INFORMATION\",\"name\":\"Delete custom tab information\",\"description\":\"Deletes a specified custom tab from a DocuSign account. This endpoint should be used when you need to remove a custom tab that is no longer needed or is obsolete. It permanently removes the custom tab from the account, so it should be used with caution. The operation requires both the account ID and the specific custom tab ID to ensure precise deletion. This endpoint is particularly useful for maintaining a clean and relevant set of custom tabs in your DocuSign account, especially when managing large numbers of custom fields. Note that this operation cannot be undone, so it's advisable to confirm the deletion with the user before proceeding.\"},{\"slug\":\"DOCUSIGN_DELETE_CUSTOM_USER_SETTINGS\",\"name\":\"Delete custom user settings\",\"description\":\"Deletes specified custom user settings for a DocuSign user by their names. Custom user settings allow flexible storage and retrieval of user-specific information within DocuSign (separate from standard account settings). This endpoint removes one or more custom settings by specifying their names in the customSettings array. **Key Points:** - Specify which settings to delete by providing their names in the customSettings array - If customSettings is omitted, all ungrouped custom settings are deleted - For grouped settings, include the X-DocuSign-User-Settings-Key header with the group name - Users can only access and modify their own custom settings (even admins cannot access other users' settings) - The userId must be a valid user GUID; the special value \\\"me\\\" is not supported **Common Use Cases:** - Remove obsolete user preferences or configurations - Clean up user-specific data during account maintenance - Reset custom user settings to defaults\"},{\"slug\":\"DOCUSIGN_DELETE_DELAYED_ROUTING_RULE_FOR_ENVELOPE_STEP\",\"name\":\"Delete Delayed Routing Rule For Envelope Step\",\"description\":\"This endpoint deletes the delayed routing object for a specific envelope's workflow step in DocuSign. It allows users to remove scheduled delays in the routing process of an envelope. The endpoint should be used when you need to cancel a planned delay in the envelope's workflow, but it cannot be called once the delay is already in progress. After deletion, the workflow step will still contain a 'pause_before' action, requiring manual unpausing of the envelope when the step is reached. For complete removal of the step, use the deleteEnvelopeWorkflowStepDefinition endpoint instead. This tool is crucial for managing and adjusting envelope workflows in DocuSign, particularly when dealing with time-sensitive documents or when workflow changes are necessary.\"},{\"slug\":\"DOCUSIGN_DELETE_DELAYED_ROUTING_RULES_FOR_TEMPLATE\",\"name\":\"Delete delayed routing rules for template\",\"description\":\"Deletes the delayed routing rules for a specific template workflow step in DocuSign. This endpoint should be used when you need to remove timing or conditional routing logic from a template, allowing for immediate progression to the next step in the workflow. It's particularly useful when updating or simplifying complex template workflows. Use with caution as this operation is irreversible and may impact the behavior of documents generated from this template in the future. This endpoint does not affect already sent envelopes or documents.\"},{\"slug\":\"DOCUSIGN_DELETE_DRAFT_ENVELOPE_ATTACHMENTS\",\"name\":\"Delete draft envelope attachments\",\"description\":\"Deletes one or more envelope attachments from a draft envelope in DocuSign. This endpoint allows users to remove attachments that are no longer needed or were added in error before the envelope is sent. It's important to note that this operation only works on draft envelopes and is distinct from managing signer attachments. The endpoint supports deleting multiple attachments in a single request, making it efficient for bulk operations. As this is a beta API, it may be subject to changes in future versions.\"},{\"slug\":\"DOCUSIGN_DELETE_ENOTE_CONFIGURATION\",\"name\":\"Delete eNote Configuration\",\"description\":\"Deletes an existing eNote configuration associated with a specific DocuSign account. This endpoint is part of the ENoteConfigurations API and is currently in beta status. It should be used when you need to remove an eNote configuration that is no longer needed or is incorrect. The operation is irreversible, so caution should be exercised before deletion. This endpoint only deletes the configuration; it does not affect any existing eNotes or other account settings. Be aware that as this is a beta API, it may be subject to changes or instability. Always test thoroughly in a non-production environment before using in critical systems.\"},{\"slug\":\"DOCUSIGN_DELETE_ENVELOPE_CUSTOM_FIELDS\",\"name\":\"Delete Envelope Custom Fields\",\"description\":\"This endpoint deletes envelope custom fields for draft and in-process envelopes in DocuSign. It allows users to remove both list custom fields (predefined options) and text custom fields (free-form text) associated with a specific envelope. The operation requires the account ID and envelope ID to identify the target envelope. After deletion, the endpoint returns the updated custom fields structure, reflecting the changes made. This functionality is useful for managing and updating envelope metadata, particularly for sorting, organizing, and searching envelopes or integrating with external systems like Salesforce.\"},{\"slug\":\"DOCUSIGN_DELETE_ENVELOPE_EMAIL_SETTINGS\",\"name\":\"Delete Envelope Email Settings\",\"description\":\"Deletes all existing email override settings for a specific envelope in DocuSign. This endpoint reverts the envelope's email configuration back to the account's default settings, affecting only future email communications. It's useful when you need to remove customized email settings for an envelope, such as reply-to address overrides or BCC recipients. The deletion is permanent and cannot be undone, so use with caution. This operation requires appropriate account permissions and should be used when standardizing email communications for an envelope or removing outdated customizations.\"},{\"slug\":\"DOCUSIGN_DELETE_ENVELOPE_LOCK\",\"name\":\"Delete Envelope Lock\",\"description\":\"Deletes the lock from a specified envelope, allowing it to be modified again. **Important Requirements:** - Only the user who originally locked the envelope can delete the lock - The lock is automatically released when the lock duration expires - Deleting a lock without the X-DocuSign-Edit header will simply unlock the envelope - To save changes made during the lock period, include the X-DocuSign-Edit header with the lockToken **Use Cases:** - Release an envelope lock after completing edits - Allow other users to modify an envelope - Clean up locks that are no longer needed **Note:** You cannot delete a lock created by another user. The authenticated user must be the same user who created the lock.\"},{\"slug\":\"DOCUSIGN_DELETE_ENVELOPE_SCHEDULED_SENDING_RULES\",\"name\":\"Delete envelope scheduled sending rules\",\"description\":\"Deletes the scheduled sending rules for a specific envelope's workflow in DocuSign. This endpoint should be used when you need to cancel or remove previously set rules for scheduled sending of an envelope. It's particularly useful for managing automated document workflows where timing adjustments are necessary. The operation is irreversible and should be used with caution. Importantly, this endpoint cannot be called once the scheduled sending countdown has begun, limiting its use to the period before the scheduled send time approaches. This tool helps in maintaining flexibility in document scheduling within the DocuSign system.\"},{\"slug\":\"DOCUSIGN_DELETE_ENVELOPE_TRANSFER_RULE\",\"name\":\"Delete envelope transfer rule\",\"description\":\"Deletes a specific envelope transfer rule from a DocuSign account. This endpoint allows account administrators to remove previously created rules that automatically transfer ownership of envelopes between users. It should be used when a transfer rule is no longer needed or requires updating. The operation is permanent and cannot be undone, so caution should be exercised. This endpoint requires administrator privileges and the \\\"Transfer Custody\\\" feature to be enabled for the account. It will not provide information about the deleted rule or affect existing transferred envelopes.\"},{\"slug\":\"DOCUSIGN_DELETE_ENVELOPE_WORKFLOW_DEFINITION\",\"name\":\"Delete envelope workflow definition\",\"description\":\"This endpoint deletes the workflow definition for a specified envelope in DocuSign. It's used to remove any scheduled or automated processes associated with the envelope, such as delayed sending or routing. When called, it cancels any scheduled send and resets the envelope status to 'created'. This is useful for modifying envelopes that were set up with automated workflows but now require changes. After deletion, to send the envelope, you must update its status to 'sent' using a separate Envelopes::Update method. Use this endpoint cautiously, as it will remove all workflow settings for the envelope and cannot be undone.\"},{\"slug\":\"DOCUSIGN_DELETE_ENVELOPE_WORKFLOW_STEP\",\"name\":\"Delete envelope workflow step\",\"description\":\"Deletes a specific workflow step from an envelope in DocuSign. This endpoint allows you to remove a single step from an envelope's workflow definition, potentially altering the envelope's processing lifecycle. Use this when you need to modify an envelope's workflow by removing unnecessary or outdated steps. It's particularly useful for simplifying complex workflows or correcting mistakenly added steps. Be cautious when using this endpoint, as deleting a workflow step is irreversible and may impact the envelope's processing sequence. Ensure you have the correct workflowStepId before proceeding with the deletion to avoid unintended consequences.\"},{\"slug\":\"DOCUSIGN_DELETE_EXISTING_WORKSPACE_LOGICALLY\",\"name\":\"Delete existing workspace logically\",\"description\":\"Marks a DocuSign workspace as deleted by changing its status to \\\"status_deleted\\\". This is a logical deletion that makes the workspace inaccessible to users but preserves the workspace data in the system. The workspace will no longer appear in active workspace lists and users cannot access its files or collaborate within it. Required: workspaceId (the accountId is automatically populated from auth metadata) Returns: Full workspace details including the updated status \\\"status_deleted\\\", workspace name, description, creation date, last modified date, and account billing info. Use case: Remove a workspace from active use when a project ends or team is dissolved, while retaining the workspace data for potential recovery or compliance purposes. Note: Once deleted, the workspace cannot be accessed through normal operations. Attempting to delete an already deleted workspace will result in a 400 error.\"},{\"slug\":\"DOCUSIGN_DELETE_MEMBERS_FROM_SIGNING_GROUP\",\"name\":\"Delete members from signing group\",\"description\":\"Removes one or more members from a specified DocuSign signing group. This endpoint allows you to manage the composition of your signing groups by deleting users who no longer need access. It should be used when you want to remove specific individuals from a signing group, such as when an employee leaves the organization or changes roles. The endpoint requires the account ID and signing group ID to identify the correct group, and accepts a list of users to be removed. It's important to note that this operation is irreversible, so care should be taken to ensure the correct users are being removed. This endpoint does not provide the ability to add new members or modify existing member information.\"},{\"slug\":\"DOCUSIGN_DELETE_MULTIPLE_CONTACTS_FROM_ACCOUNT\",\"name\":\"Deletemultiplecontactsfromaccount\",\"description\":\"Deletes multiple contacts associated with a specific DocuSign account. This endpoint allows for bulk removal of contacts from an account's address book, streamlining contact management operations. It's particularly useful for cleaning up outdated or unnecessary contacts, or when reorganizing large contact lists. The endpoint accepts a list of contact IDs and returns details of the deleted contacts or error information if the deletion was unsuccessful for any contact. Note that this operation is irreversible, so it should be used with caution. It's recommended to verify the contacts to be deleted before making the API call.\"},{\"slug\":\"DOCUSIGN_DELETE_NOTARY_JURISDICTION\",\"name\":\"Delete notary jurisdiction\",\"description\":\"Deletes a specified notary jurisdiction from the DocuSign system. This endpoint should be used when you need to remove a notary jurisdiction from your DocuSign account, typically when a notary is no longer active in a particular jurisdiction or when correcting erroneously added jurisdictions. The operation is irreversible, so it should be used with caution. It's important to note that this endpoint only deletes the jurisdiction and does not affect the notary's overall status or their ability to operate in other jurisdictions. The endpoint supports a limited set of jurisdictions, primarily U.S. states, and will return an error if an unsupported jurisdiction ID is provided. After successful deletion, any attempts to use the deleted jurisdiction for notary activities will fail.\"},{\"slug\":\"DOCUSIGN_DELETE_ONE_OR_MORE_SIGNING_GROUPS\",\"name\":\"Delete one or more signing groups\",\"description\":\"Deletes one or more signing groups from a specified DocuSign account. This endpoint allows for bulk deletion of signing groups, which are collections of users authorized to sign documents on behalf of the group. It should be used when you need to remove outdated or unnecessary signing groups from your account. The operation is irreversible, so caution should be exercised when using this endpoint. It's important to note that this action does not delete the individual users within the groups, only the group associations.\"},{\"slug\":\"DOCUSIGN_DELETE_PAGE_FROM_DOCUMENT_IN_ENVELOPE\",\"name\":\"Delete page from document in envelope\",\"description\":\"Deletes a specific page from a document within a DocuSign envelope. This endpoint removes a single page from a document based on its page number. The page is permanently deleted and this operation cannot be undone. **Important Requirements:** - The envelope must be in draft status (not yet sent) - The document must have multiple pages (cannot delete the only page) - Page numbers start at 1 for the first page - The specified page number must exist in the document **Use Cases:** - Removing incorrect or unnecessary pages from documents before sending - Cleaning up documents that were added to an envelope in error - Modifying multi-page documents during envelope preparation **Note:** This operation is destructive and permanent. Always verify the correct page number before deletion. Once sent, envelopes typically cannot have pages deleted due to audit trail requirements.\"},{\"slug\":\"DOCUSIGN_DELETE_PAGE_FROM_TEMPLATE_DOCUMENT\",\"name\":\"Delete page from template document\",\"description\":\"Deletes a specific page from a document within a DocuSign template. This endpoint allows you to remove a single page from a template document, which can be useful for updating or refining existing templates. Use this when you need to modify the structure of a template by removing unnecessary or outdated pages. Note that this operation is irreversible, so ensure you have a backup or are certain about deleting the page. This tool only deletes a single page at a time and does not provide options for bulk page deletion or document replacement.\"},{\"slug\":\"DOCUSIGN_DELETE_POWER_FORM_BY_ID\",\"name\":\"Delete powerform by id\",\"description\":\"This endpoint deletes a specific PowerForm identified by its unique ID within a DocuSign account. PowerForms are pre-configured document templates that can be accessed via a custom URL, allowing for easy collection of signatures and form data. Use this endpoint when you need to permanently remove a PowerForm from your account, such as when it's no longer needed or has been replaced by a new version. Be cautious when using this endpoint, as the deletion is irreversible and will remove all associated data and access to the PowerForm. Ensure you have the correct PowerForm ID and account context before proceeding with the deletion to avoid unintended data loss. This operation is typically used for maintenance, compliance, or organizational purposes within your DocuSign account management workflow.\"},{\"slug\":\"DOCUSIGN_DELETE_REQUEST_LOG_FILES\",\"name\":\"Delete request log files\",\"description\":\"Deletes all request log files for the authenticated user in DocuSign. This endpoint clears the diagnostic log buffer by removing all current request/response log entries. API request logging in DocuSign captures up to 50 request/response pairs for troubleshooting purposes. Use this action to clear the log buffer after downloading logs or when the buffer is full (logging is automatically disabled when the 50-entry limit is reached). Important notes: - Only logs for the authenticated user are deleted (not account-wide logs) - Deleted logs cannot be recovered - download logs first if needed - The operation requires no parameters and returns an empty response on success - Private information (passwords, integration keys) is never logged, even before deletion - Use with the DOCUSIGN_TOGGLE_API_REQUEST_LOGGING action to manage logging settings Returns an HTTP 204 No Content response on successful deletion.\"},{\"slug\":\"DOCUSIGN_DELETE_SCHEDULED_SENDING_RULES\",\"name\":\"Delete scheduled sending rules\",\"description\":\"Deletes all scheduled sending rules associated with a specific DocuSign template's workflow. This endpoint should be used when you need to remove automated sending schedules for a template, reverting it to manual sending only. It's particularly useful for updating or removing outdated scheduling configurations. Be cautious when using this endpoint, as it permanently removes all scheduled sending rules for the specified template, and this action cannot be undone. Ensure that you have the correct template ID and that removing the scheduled sending is indeed the intended action, as it may impact automated document workflows within your organization.\"},{\"slug\":\"DOCUSIGN_DELETE_SIGNATURE_FOR_CAPTIVE_RECIPIENTS\",\"name\":\"Delete signature for captive recipients\",\"description\":\"Deletes the signature for one or more captive (embedded) recipients in DocuSign. This endpoint is primarily used for testing and development purposes to reset signatures associated with embedded recipients (identified by clientUserId). After deletion, a new signature can be created the next time the clientUserId is used in an embedded signing session. **Use Cases:** - Testing embedded signing workflows repeatedly with the same test user - Resetting test data in development environments - Clearing signature state before re-testing signing ceremonies **Important Notes:** - This operation permanently removes signature data - Not intended for regular production use - use with caution - The recipients must have been created as embedded/captive recipients (with clientUserId set) - The recipientPart parameter must be set to \\\"signature\\\" (lowercase) **Required Information:** - Account ID (automatically populated) - Client User ID of the captive recipient - Email address of the recipient - Full name of the recipient\"},{\"slug\":\"DOCUSIGN_DELETE_SPECIFIC_CONNECT_LOG_ENTRY\",\"name\":\"Delete specific connect log entry\",\"description\":\"Deletes a specified entry or all entries from the DocuSign Connect log for a given account. This endpoint is crucial for managing and cleaning up Connect logs, which contain records of events and updates in eSignature workflows. It should be used when you need to remove specific log entries, perhaps for data management or privacy reasons, or when you want to clear all logs for an account. The operation requires account administrator privileges and the Connect feature must be enabled on the account. It's important to note that this action is irreversible, so use it with caution, especially when deleting all logs.\"},{\"slug\":\"DOCUSIGN_DELETE_SPECIFIED_ACCOUNT\",\"name\":\"Delete specified account\",\"description\":\"Deletes (closes) a specified DocuSign account. This operation permanently closes the account and can only be performed by an account admin. Once an account is closed, it cannot be reopened by users and must be reactivated by DocuSign support. Use this endpoint with caution as it has significant implications for access to documents and user data associated with the account. The optional redact_user_data parameter allows for additional data privacy measures during deletion. This endpoint should be used when an organization needs to completely shut down their DocuSign account, such as when ceasing operations or consolidating multiple accounts.\"},{\"slug\":\"DOCUSIGN_DELETE_STAMP_IMAGE_FOR_ACCOUNT\",\"name\":\"Delete stamp image for account\",\"description\":\"This endpoint deletes a specific stamp image associated with an account signature in DocuSign. It is used to remove the visual representation of a stamp from a user's account, which can be useful for updating or removing outdated stamps. The endpoint requires the account ID, the type of image being deleted (stamp, signature, or initials), and the specific signature ID. It's important to note that this action is irreversible, so it should be used with caution. The endpoint will return detailed information about the signature after deletion, including any remaining associated images and properties. This tool should be used when a user needs to remove a stamp image from their account, but not when they want to modify or update an existing stamp image.\"},{\"slug\":\"DOCUSIGN_DELETE_TEMPLATE_FROM_ENVELOPE_DOCUMENT\",\"name\":\"Deletetemplatefromenvelopedocument\",\"description\":\"Deletes a template from a document within an envelope. Removes a previously applied template from a specific document. This is useful when: - Replacing one template with another - Reverting a document to its original state - Correcting template application errors ⚠️ This operation is permanent and cannot be undone. Requirements: - The envelope must be in a modifiable state (draft, created, or sent) - The template must have been previously applied to the document - You need the envelope ID, document ID, and template ID\"},{\"slug\":\"DOCUSIGN_DELETE_TEMPLATE_LOCK\",\"name\":\"Delete template lock\",\"description\":\"Deletes the lock from a specified DocuSign template, releasing it for editing by others. **Important Requirements:** - The lock token is required to authenticate ownership of the lock - Only the user/application that created the lock can delete it - The lock is automatically released when the lock duration expires - The lock token is automatically added to the X-DocuSign-Edit header **Use Cases:** - Release a template lock after completing edits - Allow other users to modify a template that you previously locked - Clean up locks that are no longer needed before they expire naturally **Security Note:** You cannot delete a lock created by another user. The authenticated user must be the same user who created the lock, verified via the lock token.\"},{\"slug\":\"DOCUSIGN_DELETE_TEMPLATE_WORKFLOW_STEP\",\"name\":\"Delete template workflow step\",\"description\":\"Deletes a specific workflow step from a template's workflow definition in DocuSign. This endpoint allows users to customize and refine their document workflows by removing individual steps from existing templates. It should be used when modifying the structure of a template's workflow, such as removing an unnecessary approval step or simplifying the signing process. The operation is permanent and cannot be undone, so users should exercise caution when deleting workflow steps. This endpoint is particularly useful for maintaining and optimizing document workflows in response to changing business processes or requirements.\"},{\"slug\":\"DOCUSIGN_DELETE_USER_AUTH_FOR_CLOUD_STORAGE_PROVIDERS\",\"name\":\"Deleteuserauthforcloudstorageproviders\",\"description\":\"This endpoint deletes the user authentication information for one or more cloud storage providers associated with a specific DocuSign user account. It's used to revoke access to connected cloud storage services, requiring the user to re-authenticate the next time they attempt to access these providers through DocuSign. This operation is particularly useful for managing security, updating integrations, or removing unused cloud storage connections. The endpoint requires specific account and user identifiers and accepts a list of storage providers to be affected. It's important to note that this action only removes the authentication link within DocuSign and does not affect the user's actual account with the cloud storage provider.\"},{\"slug\":\"DOCUSIGN_DELETE_USER_AUTHORIZATION\",\"name\":\"Delete user authorization\",\"description\":\"Deletes a specific user authorization within the DocuSign system. This endpoint is used to revoke or remove permissions previously granted to a user. It requires either account administrator privileges or being the principal user of the specified authorization. The operation is irreversible, so it should be used cautiously. This tool is particularly useful for managing access control and maintaining security by removing outdated or unnecessary user permissions. It does not provide information about existing authorizations or create new ones; it solely focuses on deletion.\"},{\"slug\":\"DOCUSIGN_DELETE_USER_AUTHORIZATIONS\",\"name\":\"Deleteuserauthorizations\",\"description\":\"The DeleteUserAuthorizations endpoint is used to remove one or more user authorizations for a specified principal user within a DocuSign account. This tool allows account administrators or the principal user themselves to revoke specific permissions or access rights previously granted to the user. It's particularly useful for managing user access control, updating user roles, or removing outdated permissions. The endpoint requires the account ID and user ID to be specified, along with a list of authorization IDs to be deleted. It returns a detailed response indicating the success or failure of each deletion attempt, including any error messages. This endpoint should be used cautiously as it directly impacts user access within the DocuSign system.\"},{\"slug\":\"DOCUSIGN_DELETE_USER_CLOUD_STORAGE_AUTHENTICATION\",\"name\":\"Delete user cloud storage authentication\",\"description\":\"This endpoint deletes the user authentication information for a specified cloud storage provider in DocuSign. It's used to remove the stored credentials that allow a user to access their cloud storage within the DocuSign platform. After deletion, the next time the user attempts to access this cloud storage provider through DocuSign, they will need to go through the full authentication process again. This endpoint is particularly useful for security purposes, such as when you need to revoke access or troubleshoot authentication issues. It's important to note that this operation only affects the specified user and cloud storage provider combination, and does not impact other users or other cloud storage integrations for the same user.\"},{\"slug\":\"DOCUSIGN_DELETE_USER_GROUP\",\"name\":\"Deleteusergroup\",\"description\":\"Deletes one or more existing user groups from a specified DocuSign account. This endpoint should be used when you need to remove user groups that are no longer needed or have become obsolete. It requires the account ID and the group ID(s) of the group(s) to be deleted. The operation is irreversible, so use it with caution. This endpoint only deletes the group itself and does not affect the individual users who were members of the group. After deletion, any permissions or settings associated with the group will no longer apply to its former members.\"},{\"slug\":\"DOCUSIGN_DELETE_USER_INITIALS_OR_SIGNATURE_IMAGE\",\"name\":\"Delete user initials or signature image\",\"description\":\"This endpoint deletes a specified initials image or signature image for a user in DocuSign. It allows users to remove either their initials image or signature image from their DocuSign account. The endpoint should be used when a user wants to update or remove their existing signature or initials image. It's important to note that this endpoint can only delete one type of image per call - to delete both initials and signature images, the endpoint must be called twice. The endpoint requires user authentication and can only be used to delete the authenticated user's own images. The response includes detailed information about the user's signature, including creation date, image URIs, and signature properties.\"},{\"slug\":\"DOCUSIGN_DELETE_USER_PROFILE_IMAGE\",\"name\":\"Delete user profile image\",\"description\":\"Deletes the profile image of a specified user within a DocuSign account. This endpoint should be used when a user wants to remove their current profile picture from their DocuSign account. It's important to note that this operation can only be performed by the user on their own profile; even users with admin rights cannot delete another user's profile image. The endpoint requires both the account ID and the user ID to be specified, ensuring that the operation is performed on the correct user within the correct account. After successful deletion, the user's profile will no longer have an associated image. This endpoint does not provide the ability to upload a new image; it only removes the existing one.\"},{\"slug\":\"DOCUSIGN_DELETE_USERS_FROM_GROUP\",\"name\":\"Delete users from group\",\"description\":\"Deletes one or more users from a specified group within a DocuSign account. This endpoint allows for bulk removal of users from a group, streamlining group management operations. It requires the account ID, group ID, and a list of users to be deleted. The endpoint is useful for maintaining group memberships, such as when employees leave a company or change roles. It returns detailed information about the deleted users and the operation's success. Note that this operation permanently removes users from the specified group and should be used cautiously.\"},{\"slug\":\"DOCUSIGN_DELETE_WORKFLOW_DEFINITION_FOR_TEMPLATE\",\"name\":\"Delete workflow definition for template\",\"description\":\"Deletes the workflow definition associated with a specific template in DocuSign. This endpoint is used to remove any existing workflow settings from a template, such as scheduled sending or delayed routing. It's particularly useful when you need to reset a template's workflow or prepare it for new workflow configurations. The operation is idempotent, meaning it will return a successful response even if the template doesn't have a workflow definition. This feature allows for safe, repeated calls without causing errors.\"},{\"slug\":\"DOCUSIGN_DELETE_WORKSPACE_FILES_OR_FOLDERS\",\"name\":\"Delete workspace files or folders\",\"description\":\"This endpoint allows for the deletion of one or more files or sub-folders from a DocuSign workspace folder or root. It's used to remove unwanted or obsolete items from a workspace, helping to maintain organization and manage storage. The operation can handle bulk deletions, making it efficient for cleaning up multiple items at once. It's important to note that this action is irreversible, so users should exercise caution when selecting items for deletion. The workspace must have an 'active' status for this operation to succeed. This endpoint should not be used for temporary file management or as a means of archiving, as deleted items cannot be recovered through the API.\"},{\"slug\":\"DOCUSIGN_DEPRECATED_ENDPOINT_FOR_TAB_BLOB\",\"name\":\"Deprecated endpoint for tab blob\",\"description\":\"This deprecated endpoint is used to update tab-related data (tab blobs) within a specific envelope in a DocuSign account. It is important to note that this endpoint should not be used in new integrations or applications due to its deprecated status. The endpoint requires both an account identifier and an envelope identifier to target the correct set of tabs for updating. While it can modify tab data, the exact nature of the modifications and the format of the tab blob are not specified in the provided schema. The endpoint returns a simple success response or an error response with details if the operation fails. Developers should seek alternative, supported methods for managing tabs in DocuSign envelopes.\"},{\"slug\":\"DOCUSIGN_EXPORT_BRAND_TO_XMLFILE\",\"name\":\"Exportbrandtoxmlfile\",\"description\":\"Exports a DocuSign brand's configuration as an XML string. Use this action to retrieve comprehensive brand data including brand ID, name, company name, color scheme (background/text colors), logos (Base64-encoded), language settings, and custom links/landing pages. The XML format makes it suitable for backup, analysis, migration, or integration with other systems. Note: This operation requires branding to be enabled for the account (canSelfBrandSend or canSelfBrandSign must be true). Not all brands can be successfully exported - if a brand returns a 400 error, it may lack the necessary configuration or permissions for export.\"},{\"slug\":\"DOCUSIGN_FETCH_RECIPIENT_NAMES_FOR_EMAIL\",\"name\":\"Fetch Recipient Names For Email\",\"description\":\"Retrieves a list of all names associated with a specified email address in DocuSign. This endpoint is useful for identifying multiple recipients or name variants linked to a single email. It can be used to verify recipient information before sending documents for signature or to manage recipient data in your DocuSign integration. The endpoint returns not only the names but also indicates if the email is used by multiple users and if new names can be added to it. This information is valuable for maintaining accurate recipient records and ensuring proper document routing in complex signing scenarios.\"},{\"slug\":\"DOCUSIGN_GENERATE_EDIT_VIEW_URLFOR_ENVELOPE\",\"name\":\"Generateeditviewurlforenvelope\",\"description\":\"Generates a URL for accessing and editing an existing envelope within the DocuSign UI, allowing for embedded editing functionality in external applications. This endpoint is identical to the createSender endpoint and is recommended to be replaced by it. The generated URL provides a customizable view for editing envelope details, recipients, and documents.\"},{\"slug\":\"DOCUSIGN_GENERATE_ENVELOPE_CORRECTION_URL\",\"name\":\"Generateenvelopecorrectionurl\",\"description\":\"Generates a URL that allows embedding the envelope correction view of the DocuSign UI within an application. This endpoint enables customization of the correction view appearance and functionality through query parameters. The returned URL provides temporary, one-time access to the envelope correction interface, allowing users to modify and update envelope details securely within your application. **Important Requirements:** - The envelope must be in 'sent' or 'delivered' status (not draft/created) - The user must have permission to correct envelopes (sender or shared access) - A returnUrl is required to redirect users after completing corrections - The correction view is used for envelopes already in the signing workflow **Note:** For draft envelopes, use the sender view or edit view instead.\"},{\"slug\":\"DOCUSIGN_GENERATE_RECIPIENT_SHARED_VIEW_URL\",\"name\":\"Generate Recipient Shared View URL\",\"description\":\"Generates a URL for embedding the DocuSign recipient view of a shared envelope in your application. IMPORTANT: This endpoint requires the envelope to be explicitly shared with users on the same DocuSign account. The envelope must be shared first using DocuSign's envelope sharing feature. Required: envelopeId (shared envelope), recipientId (from envelope), userId (account member with shared access), authenticationMethod (default: 'None'). Use for team collaboration, delegation, and administrative support workflows. Not recommended for mobile iframes; use WebView on iOS instead.\"},{\"slug\":\"DOCUSIGN_GET_ACCOUNT_BILLING_CHARGES_LIST\",\"name\":\"Get account billing charges list\",\"description\":\"Retrieves a detailed list of recurring and usage charges for a specified DocuSign account. This endpoint provides comprehensive information about the account's billing structure, including charge names, types, pricing, and usage quantities for various DocuSign services. It's particularly useful for account administrators to analyze current usage, understand the pricing structure, and make informed decisions about service utilization. The response includes data on charges such as envelope usage, seat allocations, and additional services like ID checks or in-person signings. Note that this endpoint requires account administrator privileges and does not provide historical billing data or future projections.\"},{\"slug\":\"DOCUSIGN_GET_ACCOUNT_PASSWORD_RULES\",\"name\":\"Get account password rules\",\"description\":\"Retrieves the current password rules and security settings for a specified DocuSign account. This endpoint provides detailed information about password expiration policies, lockout durations, password strength requirements, and security question configurations. It is useful for account administrators to review and understand the current security posture of their DocuSign account. The retrieved information can be used to ensure compliance with organizational security policies or to plan password policy updates. This endpoint does not modify any settings; it is for informational purposes only.\"},{\"slug\":\"DOCUSIGN_GET_ACCOUNT_STAMP_IMAGE\",\"name\":\"Get account stamp image\",\"description\":\"Retrieves the image file for a specific account stamp, signature, or initials in DocuSign. This endpoint allows users to obtain the visual representation of stamps or signatures associated with their DocuSign account. It's particularly useful when you need to display or embed these images in other documents or applications. The endpoint returns the actual image file in GIF format, not just metadata. It supports retrieving different types of images (stamp, signature, or initials) and offers an option to include or exclude the chrome (frame) around the image.\"},{\"slug\":\"DOCUSIGN_GET_AGENT_USER_AUTHORIZATIONS\",\"name\":\"Get Agent User Authorizations\",\"description\":\"Returns the authorizations for which the specified user is the agent user. An agent user can act on behalf of other users (principal users) in the account. This endpoint retrieves the list of principal users and their authorization details, including permissions like Send, Manage, Sign, and Edit. Supports filtering by permission level, active status, and pagination for large result sets.\"},{\"slug\":\"DOCUSIGN_GET_BCC_EMAIL_ARCHIVE_CONFIGURATIONS\",\"name\":\"Get bcc email archive configurations\",\"description\":\"Retrieves a list of BCC (Blind Carbon Copy) email archive configurations associated with a specified DocuSign account. This endpoint allows users to fetch details about email addresses used for archiving DocuSign-generated emails. It supports pagination for large result sets and provides comprehensive information about each BCC email archive configuration, including its status, creation date, and associated user details. This tool is useful for auditing or managing BCC email archiving settings within a DocuSign account.\"},{\"slug\":\"DOCUSIGN_GET_BCCEMAIL_ARCHIVE_HISTORY\",\"name\":\"Get BCC Email Archive History\",\"description\":\"Retrieves the history of changes made to a specific BCC email archive configuration for a DocuSign account. This endpoint allows users to track modifications, including creation, updates, and closure of email addresses used for archiving DocuSign-generated emails. It provides detailed information about each change, including who made the change, when it was made, and the nature of the change. The endpoint supports pagination for efficient retrieval of large result sets.\"},{\"slug\":\"DOCUSIGN_GET_BRAND_LOGO_BY_TYPE\",\"name\":\"Get brand logo by type\",\"description\":\"Retrieves a specific logo used in a brand for a DocuSign account. This endpoint allows you to fetch the image file for a primary, secondary, or email logo associated with a particular brand in your DocuSign account. It's useful for maintaining consistent branding across DocuSign documents and communications. The endpoint requires branding to be enabled for the account (either for signing, sending, or both). Use this when you need to display or verify the current logo for a specific brand and logo type within your DocuSign integration.\"},{\"slug\":\"DOCUSIGN_GET_BRANDS_INFORMATION_FOR_GROUP\",\"name\":\"Get brands information for group\",\"description\":\"Retrieves detailed brand information associated with a specific group within a DocuSign account. This endpoint provides a comprehensive view of the brand settings, including default brands for recipients and senders, as well as a list of all available brands with their properties. It's particularly useful for administrators managing multiple brands across different groups within an organization. The endpoint should be used when there's a need to review or audit brand assignments, customize group-specific branding, or prepare for brand updates within a group context. It does not modify any brand settings but offers a read-only view of the current brand configuration for the specified group.\"},{\"slug\":\"DOCUSIGN_GET_BULK_SEND_BATCH_STATUS\",\"name\":\"Get bulk send batch status\",\"description\":\"Get the status and progress of a DocuSign bulk send batch operation. This action retrieves comprehensive status information for a bulk send batch, including counts of sent, queued, and failed envelopes. Use this to monitor the progress of large-scale document distribution operations. **Key Response Fields:** - batchSize: Total envelopes in the batch - sent: Successfully sent envelopes - queued: Envelopes still being processed - failed: Failed envelope count - bulkErrors: Details about any failures **Usage Notes:** - Bulk send processing is asynchronous; poll this endpoint to check progress - The batch is complete when batchSize equals (sent + failed) - Recommended polling interval: 30-60 minutes for large batches - Use the bulkSendBatchId returned from creating a bulk send request\"},{\"slug\":\"DOCUSIGN_GET_BULK_SEND_LISTS_INFORMATION\",\"name\":\"Get bulk send lists information\",\"description\":\"Retrieves a list of Bulk Send Lists belonging to the current user in a specified DocuSign account. This endpoint provides basic information about each Bulk Send List, including its unique identifier, creator, creation date, and name. It is particularly useful for managing and tracking bulk send operations, allowing users to get an overview of their available Bulk Send Lists. This tool should be used when you need to inventory or manage Bulk Send Lists for high-volume document distribution. It does not provide detailed information about the contents of each list or allow for modification of the lists. The response is limited to basic summary information and does not include the actual recipients or documents associated with each list.\"},{\"slug\":\"DOCUSIGN_GET_DOCUSIGN_ACCOUNT_CONTACTS\",\"name\":\"Get docusign account contacts\",\"description\":\"Retrieves detailed information about a specific contact from a DocuSign account's address book. Use this action when you need to look up a contact's details including their name, email addresses, phone numbers, organization, notary certifications, and signing group associations. Requires the contact's unique ID which can be obtained from listing contacts or previous operations. The contact data can be sourced from the default DocuSign address book or connected cloud storage providers like DocuSign Rooms. Note: Phone numbers for shared contacts may have limited visibility to users other than the contact creator.\"},{\"slug\":\"DOCUSIGN_GET_DOWNGRADE_PLAN_INFO_FOR_ACCOUNT\",\"name\":\"Get Downgrade Plan Info For Account\",\"description\":\"Retrieves detailed billing information related to a downgrade request for a specific DocuSign account. This endpoint provides essential data about the requested downgrade plan, including the new plan details, payment method, effective date, and current status of the downgrade request. It should be used when managing account billing changes, specifically when an account holder has initiated or is considering a plan downgrade. The tool is particularly useful for account administrators or billing departments to review and process downgrade requests. Note that this endpoint only provides information about existing downgrade requests and does not initiate new downgrades or make changes to the account's current plan.\"},{\"slug\":\"DOCUSIGN_GET_ELECTRONIC_DISCLOSURE_FOR_RECIPIENT\",\"name\":\"Get Electronic Disclosure for Recipient\",\"description\":\"Retrieves the HTML-formatted Electronic Record and Signature Disclosure (ERSD) for a specific envelope recipient in DocuSign. This endpoint allows you to obtain the customized disclosure that may differ from the account-level disclosure based on the signing brand applied to the envelope and the recipient's language settings. It is particularly useful when you need to present the exact disclosure that a recipient will see before they sign a document, ensuring compliance with electronic signature regulations and providing transparency in the signing process.\"},{\"slug\":\"DOCUSIGN_GET_ELECTRONIC_RECORD_AND_SIGNATURE_DISCLOSURE\",\"name\":\"Getelectronicrecordandsignaturedisclosure\",\"description\":\"Retrieves the HTML-formatted Electronic Record and Signature Disclosure (ERSD) associated with a specific DocuSign account. This endpoint allows you to fetch the current version of the ERSD, which is crucial for obtaining a consumer's consent to receive notices and disclosures electronically. It supports multiple languages through the 'langCode' parameter, enabling you to retrieve the disclosure in various supported languages or automatically detect the user's browser language. This tool is particularly useful when setting up new accounts, updating disclosures, or ensuring compliance with multi-language requirements. Note that while it retrieves the default English disclosure by default, custom disclosures in different languages can be accessed if they have been created for the account. The response includes comprehensive details about the disclosure, including withdrawal options, company information, and the full HTML-formatted ERSD text.\"},{\"slug\":\"DOCUSIGN_GET_ENOTE_INTEGRATION_SETTINGS\",\"name\":\"Getenoteintegrationsettings\",\"description\":\"Retrieves the eNote integration settings for a specified DocuSign account. This endpoint provides crucial information about the eNote configuration status, Connect configuration status, and necessary credentials for eNote functionality. It should be used when setting up or verifying the eNote integration for an account. The endpoint returns details such as API key, organization name, and user credentials, which are essential for configuring the eNote feature. Note that this endpoint is in beta, so its behavior or response structure may change in future updates. It's important to ensure that the account has the \\\"Allow eNote for eOriginal\\\" plan item enabled for full functionality.\"},{\"slug\":\"DOCUSIGN_GET_ENVELOPE\",\"name\":\"Get Envelope\",\"description\":\"Gets the status and basic information about an envelope from DocuSign. This action retrieves detailed information about a specific envelope, including: - Envelope status (created, sent, delivered, completed, declined, voided) - Creation and sent timestamps - Subject and message - Recipient information and their status - Document details - Envelope metadata\"},{\"slug\":\"DOCUSIGN_GET_ENVELOPE_DOC_GEN_FORM_FIELDS\",\"name\":\"Get Envelope DocGen Form Fields\",\"description\":\"Retrieves document generation form fields from an envelope's documents. DocGen form fields are placeholder fields (tags) in template documents that can be dynamically populated with data before sending. This action returns the list of available form fields including their names, types, validation rules, and current values. Use this to discover which fields can be populated via the UPDATE_ENVELOPE_DOC_GEN_FORM_FIELDS action. Common use cases: - Retrieve form field definitions before populating them with data - Inspect field types and validation requirements - Check current values of form fields in a draft envelope Note: Returns an empty response if the envelope has no DocGen form fields.\"},{\"slug\":\"DOCUSIGN_GET_ENVELOPE_DOCUMENT_FIELDS\",\"name\":\"Get Envelope Document Fields\",\"description\":\"Retrieves custom document fields from a specific document within a DocuSign envelope. Custom document fields are metadata key-value pairs attached to individual documents in an envelope. They are different from: - Envelope custom fields (which apply to the entire envelope) - Tabs/fields (which are fillable form fields for recipients) Use this action to retrieve metadata associated with a specific document, such as department codes, project IDs, or other custom categorization data. Prerequisites: - A valid envelope_id (create using DOCUSIGN_CREATE_ENVELOPE_FROM_TEMPLATE) - A valid document_id (obtain from DOCUSIGN_GET_ENVELOPE) - The document must exist in the specified envelope The document_id must be a string representation of a positive integer (1-2147483647). Typically documents are numbered sequentially starting from '1'. Returns a dictionary containing the 'documentFields' array with field objects.\"},{\"slug\":\"DOCUSIGN_GET_ENVELOPE_LOCK_INFORMATION\",\"name\":\"Get envelope lock information\",\"description\":\"Retrieves general information about an envelope lock in DocuSign. This endpoint is used to obtain details about the lock on a specific envelope, including the lock token, duration, owner, and expiration time. It's particularly useful for recovering lock information when managing concurrent access to envelopes. The caller must be the same user who initially locked the envelope. Use this endpoint when you need to verify the lock status of an envelope or retrieve the lock token for subsequent operations. It does not modify the lock itself but provides essential information for lock management.\"},{\"slug\":\"DOCUSIGN_GET_ENVELOPE_NOTIFICATION_DEFAULTS\",\"name\":\"Get Envelope Notification Defaults\",\"description\":\"Retrieves the default email notification settings for envelopes at the account level. This endpoint returns account-wide defaults for envelope notifications including: - Reminder settings (frequency, email subject/body for reminders) - Expiration settings (days until expiration, warning days) - Delivery preferences and notification triggers - Default behaviors for various envelope lifecycle events These settings are applied to new envelopes unless explicitly overridden at the envelope level. Useful for understanding account notification configuration, auditing settings, or as a reference when customizing envelope-specific notifications. Note: Requires appropriate account permissions to access notification settings.\"},{\"slug\":\"DOCUSIGN_GET_ENVELOPE_WORKFLOW_DEFINITION\",\"name\":\"Getenvelopeworkflowdefinition\",\"description\":\"Retrieves the workflow definition for a specified envelope in DocuSign. This endpoint provides detailed information about the envelope's workflow steps, scheduled sending settings, and delayed routing configurations. It is useful for developers who need to understand or analyze the current state and progression of an envelope's workflow. The endpoint returns a comprehensive workflow object, including the current step, scheduled resume date, and an array of all workflow steps with their respective statuses and configurations.\"},{\"slug\":\"DOCUSIGN_GET_ENVELOPE_WORKFLOW_DELAYED_ROUTING_DEFINITION\",\"name\":\"Getenvelopeworkflowdelayedroutingdefinition\",\"description\":\"Retrieves the delayed routing rules for a specific workflow step within a DocuSign envelope. This endpoint allows users to access information about when and how an envelope is scheduled to be sent to recipients associated with a particular workflow step. It's useful for checking the current delay settings, scheduled send time, and status of a delayed routing step. The endpoint returns detailed information about the resume date, delay rules, and current status of the delayed routing. It should be used when you need to verify or inspect the delayed routing configuration for a specific envelope and workflow step. Note that this endpoint will return a 404 error if the specified workflow step does not have a delayed routing object associated with it.\"},{\"slug\":\"DOCUSIGN_GET_GROUPS_INFORMATION_FOR_ACCOUNT\",\"name\":\"Getgroupsinformationforaccount\",\"description\":\"Retrieves detailed information about groups associated with a specific DocuSign account. This endpoint allows users to fetch a list of groups, including their IDs, names, types, and user counts. It's particularly useful for account administrators who need to manage user access, set permissions, or organize users within their DocuSign environment. The endpoint supports pagination, filtering by group type, and text-based searching, making it versatile for various group management tasks. Note that while it provides group information, it does not directly return the list of users within each group; a separate API call is required for that purpose.\"},{\"slug\":\"DOCUSIGN_GET_LIST_OF_ACCOUNT_PERMISSION_PROFILES\",\"name\":\"Getlistofaccountpermissionprofiles\",\"description\":\"This endpoint retrieves a comprehensive list of permission profiles associated with a specified DocuSign account. It provides detailed information about each profile, including its unique identifier, name, last modification timestamp, and an extensive set of permission settings. This tool is essential for account administrators who need to review, audit, or manage user access levels and capabilities within their DocuSign environment. It can be used to understand the current permission structure, identify profiles that may need updates, or verify that the appropriate access levels are set for different user groups.\"},{\"slug\":\"DOCUSIGN_GET_MEMBERS_OF_A_SIGNING_GROUP\",\"name\":\"Get members of a signing group\",\"description\":\"Retrieves the list of members in a specified DocuSign Signing Group. This endpoint provides detailed information about users in a particular Signing Group, including their email addresses and usernames. Use this tool to audit or manage Signing Group composition, which is crucial for maintaining proper document routing and signing workflows. Note that this endpoint only provides information and does not allow group modification.\"},{\"slug\":\"DOCUSIGN_GET_NOTARY_JOURNALS\",\"name\":\"Get notary journals\",\"description\":\"Tool to retrieve notary journal entries for the current user. Use when you need to access a user's notary journal records, which contain information about notarized documents including signer names, document names, jurisdictions, and timestamps.\"},{\"slug\":\"DOCUSIGN_GET_NOTARY_JURISDICTION_OBJECT\",\"name\":\"Get Notary Jurisdiction Object\",\"description\":\"Retrieves detailed information about a specific notary jurisdiction for the authenticated user. This endpoint should be used when a notary needs to access information about their registered jurisdiction, including commission details, seal requirements, and jurisdiction-specific rules. It provides crucial data for notaries to understand their authority and limitations within a particular area. The endpoint can only be accessed by authenticated users who are registered notaries, and the requested jurisdiction must be one that the notary is authorized for. It does not provide information about jurisdictions the notary is not registered for or allow modifications to the jurisdiction data.\"},{\"slug\":\"DOCUSIGN_GET_NOTARY_USER_SETTINGS\",\"name\":\"Get Notary User Settings\",\"description\":\"Retrieves notary settings and configuration for the currently authenticated user. This endpoint returns comprehensive notary account information including personal details (name, email, userId), notary status (enabled/disabled), and optionally jurisdiction details when include_jurisdictions is set to \\\"true\\\". **Important**: This endpoint requires: - The authenticated user must be registered as a notary in DocuSign - Appropriate OAuth scopes for notary operations - The account must have notary features enabled Returns information such as: userId, firstName, lastName, email, enabled status, creation/modification timestamps, and jurisdiction details (if requested). Use this when you need to verify a user's notary status, check their enabled jurisdictions, or retrieve notary account configuration details.\"},{\"slug\":\"DOCUSIGN_GET_ORIGINAL_HTML_DEFINITION_FOR_TEMPLATE\",\"name\":\"Get Original HTML Definition for Template\",\"description\":\"Retrieves the original HTML definition for a specified DocuSign template. This endpoint is used to obtain the properties that define how to generate the responsive-formatted HTML for the template's documents. It provides detailed information about display settings, anchors, and collapsible sections that control the appearance and behavior of the template during signing. This tool is essential for developers who need to understand or modify the responsive signing experience for a specific template.\"},{\"slug\":\"DOCUSIGN_GET_PAGE_IMAGE_FROM_ENVELOPE\",\"name\":\"Getpageimagefromenvelope\",\"description\":\"Retrieves an image of a specific page from a document within a DocuSign envelope. This endpoint is used to fetch a visual representation of a document page, which can be useful for previewing or displaying document contents without accessing the full document. The returned image is in PNG format and can be customized in terms of resolution and dimensions. This tool is ideal for applications that need to show document previews or allow users to view specific pages of a document without downloading the entire file. It should not be used for document modification or to extract text content from the document.\"},{\"slug\":\"DOCUSIGN_GET_PDFTRANSCRIPT_OF_ENVELOPE_COMMENTS\",\"name\":\"Get PDF Transcript of Envelope Comments\",\"description\":\"Retrieves a PDF transcript containing all comments added by senders and recipients to documents within a specific envelope in a DocuSign account. This endpoint is useful for obtaining a comprehensive record of all discussions and annotations related to the documents in an envelope. It should be used when a consolidated view of all comments is needed, such as for review, auditing, or record-keeping purposes. The response is a PDF file returned as a byte stream, which can be saved or processed as needed. Note that the comments feature must be enabled in the account settings (set 'enableSigningExtensionComments' to true in accountSettingsInformation) for this endpoint to function. This tool does not provide individual comments or allow for adding or modifying comments.\"},{\"slug\":\"DOCUSIGN_GET_PERMISSION_PROFILE_FOR_ACCOUNT\",\"name\":\"Get Permission Profile for Account\",\"description\":\"This endpoint retrieves detailed information about a specific permission profile in a DocuSign account. It provides a comprehensive view of permissions, settings, and capabilities assigned to a profile. Useful for auditing or reviewing permissions granted to user groups, it returns data on account role settings, user settings, API access levels, and other configuration options. Note that this endpoint is read-only and cannot modify profile settings.\"},{\"slug\":\"DOCUSIGN_GET_POWER_FORM_SENDERS\",\"name\":\"Get powerform senders\",\"description\":\"Retrieves a list of users who have sent PowerForms within a specified DocuSign account. This endpoint is useful for monitoring PowerForm usage, tracking sender activity, and gathering insights on user engagement with PowerForms. It returns detailed information about each sender, including their account details, email, and login status. The response is paginated, allowing for efficient retrieval of large datasets. This tool should be used when you need to audit PowerForm sender activity or generate reports on PowerForm usage within an account.\"},{\"slug\":\"DOCUSIGN_GET_RECIPIENT_DOCUMENT_VISIBILITY\",\"name\":\"Get Recipient Document Visibility\",\"description\":\"Retrieves document visibility settings for a specific recipient within a DocuSign envelope. This endpoint allows you to check which documents are visible to a particular recipient and their access rights (editable or read-only). Use this method when you need to verify or audit the document access configuration for a recipient in an envelope. It's particularly useful in workflows where different recipients may have varying levels of access to documents within the same envelope. The method returns detailed visibility information but does not modify any settings.\"},{\"slug\":\"DOCUSIGN_GET_REQUEST_LOGGING_LOG_FILE\",\"name\":\"Get request logging log file\",\"description\":\"Downloads the complete log file for a specific API request from DocuSign's Diagnostics service. This action is essential for debugging and troubleshooting API interactions by providing detailed request/response information. The log file contains: - Full HTTP request details (method, URL, headers, body) - Complete HTTP response (status, headers, body) - Timing information - Other diagnostic metadata Note: API request logging must be enabled in your DocuSign account to generate log entries. You can enable it using the 'toggle_api_request_logging' action. After logging is enabled, use 'retrieve_apirequest_log_files' to get a list of available log IDs, then use this action to download specific log files. The log helps you: - Debug API integration issues - Verify request/response data - Troubleshoot authentication problems - Investigate unexpected API behavior\"},{\"slug\":\"DOCUSIGN_GET_REQUEST_LOGS\",\"name\":\"Get Request Logs\",\"description\":\"Retrieves a list of API request log entries as a JSON object. Use when you need to view diagnostic information about API requests made to DocuSign.\"},{\"slug\":\"DOCUSIGN_GET_REQUEST_LOG_SETTINGS\",\"name\":\"Get Request Log Settings\",\"description\":\"Tool to retrieve current API request logging settings for the authenticated user. Use when you need to check logging configuration or remaining log entries.\"},{\"slug\":\"DOCUSIGN_GET_RESOURCE_INFORMATION\",\"name\":\"Get Resource Information\",\"description\":\"Retrieves the base resources available for the DocuSign eSignature REST API. Use when you need to discover available API endpoints and resources.\"},{\"slug\":\"DOCUSIGN_GET_SERVICE_INFORMATION\",\"name\":\"Get Service Information\",\"description\":\"Gets the current version and other information about the DocuSign eSignature REST API. Use this to retrieve service information including API versions and build details. This returns the available REST API versions (v1, v2, v2.1) with their endpoint URLs, the current build version string, and linked DocuSign sites.\"},{\"slug\":\"DOCUSIGN_GET_SIGNATURE_INFORMATION_FOR_RECIPIENT\",\"name\":\"Get signature information for recipient\",\"description\":\"Retrieves signature information for a specific recipient in a DocuSign envelope. Returns signature metadata including: signature ID, name, type, initials, adoption and modification timestamps, signature image URI, base64-encoded image data, and stamp properties if applicable. **Use when you need to:** - Verify or audit recipient signature details after signing - Display signature images or metadata in your application - Retrieve current signature state within an envelope **Required parameters:** - envelopeId: The envelope ID containing the recipient - recipientId: The recipient's ID (often \\\"1\\\" for first signer) - accountId: Auto-populated from authentication (optional) Note: Returns signature data only, not general recipient status. Recipient must be a signer or sign-in-person recipient type.\"},{\"slug\":\"DOCUSIGN_GET_SIGNING_GROUP_INFORMATION\",\"name\":\"Get signing group information\",\"description\":\"Retrieves detailed information about a specific signing group in a DocuSign account. Returns comprehensive data including the group's name, type (sharedSigningGroup, privateSigningGroup, or systemSigningGroup), email address, creation/modification timestamps, and a complete list of member users with their names and email addresses. This is a read-only operation useful for: - Auditing signing group composition and membership - Verifying group configuration before using in envelope workflows - Administrative tasks and troubleshooting - Integrating signing group data into custom applications The accountId parameter is optional - if not provided, it will be automatically derived from your authentication context. Only the signingGroupId is required.\"},{\"slug\":\"DOCUSIGN_GET_SPECIFIC_BRAND_RESOURCE_FILE\",\"name\":\"Get specific brand resource file\",\"description\":\"Retrieves a specific branding resource file (XML format) for customizing DocuSign experiences. Brand resource files control text and visual elements for sending, signing, email, and captive signing experiences. IMPORTANT: Resource files must be pre-configured for the brand. This is an advanced feature enabled through DocuSign admin or account manager. Use the \\\"return_brand_resource_metadata_for_account\\\" action first to verify which resource types are available before calling this action. Supports localization via language codes and can return either the full master resource file or only modified elements.\"},{\"slug\":\"DOCUSIGN_GET_SPECIFIED_ACCOUNT_STAMP_INFO\",\"name\":\"Getspecifiedaccountstampinfo\",\"description\":\"Retrieves detailed information about a specific account stamp (signature) in DocuSign. This endpoint allows users to fetch comprehensive data about a signature, including its creation and modification dates, image URIs, associated users, and formatting details. It's particularly useful when you need to access or verify the properties of a specific signature within an account. The endpoint provides a wealth of information but requires both the account ID and the specific signature ID to function.\"},{\"slug\":\"DOCUSIGN_GET_SUPPORTED_LANGUAGES_FOR_RECIPIENTS\",\"name\":\"Getsupportedlanguagesforrecipients\",\"description\":\"Retrieves a comprehensive list of supported languages that can be set for individual recipients when creating a DocuSign envelope. This endpoint allows developers to access the available language options for customizing the standard email format and signing view for each recipient. It's particularly useful when implementing localization features or providing language choices to users in multi-lingual environments. The endpoint returns both the human-readable language names and their corresponding language codes, which can be used in subsequent API calls to set recipient languages. Note that this only affects DocuSign's standard text elements and does not translate custom email content.\"},{\"slug\":\"DOCUSIGN_GET_TABS_BLOB_FOR_ENVELOPE\",\"name\":\"Gettabsblobforenvelope\",\"description\":\"This deprecated endpoint retrieves the tabs blob associated with a specific envelope in DocuSign. It allows developers to access detailed information about the tabs (such as signature fields, text fields, etc.) within a document envelope. However, as this endpoint is no longer recommended for use, developers should seek alternative methods for accessing tab information in new implementations. The endpoint requires both an account ID and an envelope ID to identify the specific envelope and account for which to retrieve the tabs blob. Use this endpoint cautiously and only if absolutely necessary for legacy systems, as it may be removed in future API versions.\"},{\"slug\":\"DOCUSIGN_GET_TAB_SETTINGS_FOR_ACCOUNT\",\"name\":\"Gettabsettingsforaccount\",\"description\":\"Retrieves the current tab settings and functionality enabled for a specific DocuSign account. This endpoint provides detailed information about various tab types (such as checkbox, radio, text) and related features (like tab order, data labels, text formatting) that are currently active or inactive for the account. It's particularly useful for administrators or developers who need to understand the available tab options before creating or modifying documents within the account. The response includes both the enabled/disabled status of each setting and associated metadata, offering insights into compliance requirements and editability of these settings. This tool should be used when there's a need to audit or verify the account's tab configuration, especially before implementing new document workflows or integrations that rely on specific tab functionalities.\"},{\"slug\":\"DOCUSIGN_GET_TEMPLATE\",\"name\":\"Get Template\",\"description\":\"Gets a template definition from the specified account. You can include additional template attributes in the response by using the include parameter: - powerforms: Includes information about PowerForms - tabs: Includes information about tabs - documents: Includes information about documents - favorite_template_status: Includes the template favoritedByMe property\"},{\"slug\":\"DOCUSIGN_GET_TEMPLATE_DELAYED_ROUTING_RULES\",\"name\":\"Get template delayed routing rules\",\"description\":\"Retrieves the delayed routing rules for a specific workflow step within a DocuSign template. This endpoint allows users to fetch the scheduled sending and routing information for a particular step in a template's workflow. It's useful for understanding when and how an envelope will be sent to recipients associated with the workflow step. The endpoint should be used when you need to review or verify the delayed routing settings for a template, particularly in automated document workflows. Note that if the specified workflow step does not have a delayed routing object, this method will return a 404 error.\"},{\"slug\":\"DOCUSIGN_GET_TEMPLATE_DOCUMENT_HTML_DEFINITION\",\"name\":\"Get Template Document HTML Definition\",\"description\":\"Retrieves the HTML definition for a specific document within a DocuSign template. This endpoint is used to obtain the properties that define how to generate responsive-formatted HTML for the document, including display anchors, collapsible sections, and other formatting settings. It's particularly useful when implementing responsive signing features or when you need to understand the structure and display properties of a template document. The response includes detailed information about HTML definitions, such as display settings, anchors, and formatting options, which can be used to render the document in a responsive manner across different devices and screen sizes.\"},{\"slug\":\"DOCUSIGN_GET_TEMPLATE_LOCK_INFORMATION\",\"name\":\"Get template lock information\",\"description\":\"Retrieves lock information for a DocuSign template. Returns details about an existing template lock including the lock token, duration, expiration time, and information about the user who locked the template. The lock token is required in the X-DocuSign-Edit header for subsequent update operations. Note: Only the user who locked the template (with the same integrator key) can retrieve the lock token. Other users will receive lock information without the token. Use this action to: - Verify if a template is currently locked - Recover lock information after interruption - Get the lock token for making updates to a locked template\"},{\"slug\":\"DOCUSIGN_GET_TEMPLATE_NOTIFICATION_INFORMATION\",\"name\":\"Get template notification information\",\"description\":\"Retrieves the envelope notification, reminders, and expiration information for an existing template in DocuSign. This endpoint allows users to get detailed settings about how notifications are configured for envelopes created from the specified template. It provides information on expiration settings, reminder configurations, and whether account default settings are being used. This tool is useful for reviewing and auditing template notification settings before creating envelopes or when troubleshooting notification-related issues with template-based envelopes. The response includes complex objects for expirations and reminders, giving a comprehensive view of the template's notification setup.\"},{\"slug\":\"DOCUSIGN_GET_TEMPLATE_RECIPIENT_DOCUMENT_VISIBILITY\",\"name\":\"Get template recipient document visibility\",\"description\":\"Retrieves document visibility settings for a specific recipient in a DocuSign template. Returns which documents are visible to a recipient and their access rights (view/edit). Document visibility controls show or hide specific documents from recipients in multi-document templates, ensuring sensitive information is only shared with authorized parties. **Important:** Document Visibility must be enabled for your account by an administrator. Documents cannot be hidden from recipients if they have tabs assigned to them. Carbon Copy, Certified Delivery, Editor, and Agent recipients can always see all documents. Returns a list of documentVisibility objects with: documentId, visible (\\\"true\\\"/\\\"false\\\"), rights (access level), and recipientId.\"},{\"slug\":\"DOCUSIGN_GET_TEMPLATE_SCHEDULED_SENDING_SETTINGS\",\"name\":\"Get template scheduled sending settings\",\"description\":\"Retrieves the scheduled sending settings for a specified DocuSign template. This endpoint allows developers to access and review the configuration that determines when and how envelopes based on the template will be sent. It's particularly useful for automating document workflows and managing the timing of envelope distribution. The endpoint returns detailed information about the scheduled sending rules, including any delays or specific send dates, as well as the current status of the scheduled sending job. It should be used when you need to inspect or verify the scheduled sending configuration of a template, especially in scenarios involving automated or timed document processing. Note that this endpoint will return a 404 error if the template's workflow does not have a scheduled sending object, indicating that no scheduled sending has been configured for the template.\"},{\"slug\":\"DOCUSIGN_GET_TEMPLATES_FOR_ENVELOPE_DOCUMENT\",\"name\":\"Get templates for envelope document\",\"description\":\"Retrieves the templates associated with a specific document within a DocuSign envelope. This endpoint is useful for identifying and managing templates linked to individual documents in an envelope, which can be beneficial for template management and document processing workflows. It should be used when you need to retrieve template information for a particular document in an existing envelope, such as for template auditing or document-specific template applications. The endpoint returns detailed information about each associated template, including its ID, name, and matching details, but does not provide the actual template content or allow for template modifications.\"},{\"slug\":\"DOCUSIGN_GET_TEMPLATES_USED_IN_ENVELOPE\",\"name\":\"Get templates used in envelope\",\"description\":\"This endpoint retrieves a list of server-side templates used in a specific DocuSign envelope. It provides detailed information about each template, including its name, ID, and other relevant attributes. The endpoint is particularly useful for understanding which templates have been applied to an envelope or finding matching templates for an existing envelope. It can be used to audit envelope contents, analyze template usage, or prepare for envelope modifications. The response includes an array of template summaries, offering a comprehensive view of how templates are utilized within the specified envelope.\"},{\"slug\":\"DOCUSIGN_GET_UNSUPPORTED_FILE_TYPES_LIST\",\"name\":\"Get unsupported file types list\",\"description\":\"Retrieves the list of file types (extensions and MIME types) that DocuSign does not support for upload. Use this to validate file types before upload or to display supported formats to users. The list may change as DocuSign updates its supported file types.\"},{\"slug\":\"DOCUSIGN_GET_URLFOR_EMBEDDING_DOCUSIGN_UI\",\"name\":\"Get URL for Embedding DocuSign UI\",\"description\":\"Generate a URL to embed the DocuSign console view within your application. This action creates a URL that provides access to the DocuSign web interface, allowing users to interact with DocuSign features directly from your application without leaving your UI. **Use Cases:** - Display DocuSign console home page (when no envelopeId provided) - View specific sent envelope documents (with sent envelope ID) - Edit and send draft envelopes via sender view (with draft envelope ID) **Security Note:** This provides full access to the DocuSign account's console interface. Use appropriate access controls in your application when exposing these URLs to users. **Best Practice:** When using with draft envelopes, provide a returnUrl to give users a way to navigate back to your application after completing their task.\"},{\"slug\":\"DOCUSIGN_GET_USER_AUTHORIZATION_DETAILS\",\"name\":\"Get user authorization details\",\"description\":\"Retrieves detailed information about a specific user authorization in DocuSign. This endpoint allows account administrators or the principal user to fetch comprehensive data about an authorization, including the agent user, principal user, permission levels, and relevant timestamps. It's particularly useful for auditing purposes, reviewing access grants, and managing user permissions within the DocuSign system. The endpoint requires specific identifiers to ensure the correct authorization is accessed and that the requester has the necessary permissions to view the data.\"},{\"slug\":\"DOCUSIGN_GET_USER_AUTHORIZATIONS_FOR_PRINCIPAL\",\"name\":\"Getuserauthorizationsforprincipal\",\"description\":\"Retrieves user authorizations for a specified principal user within a DocuSign account. This endpoint allows account administrators or the principal user themselves to view and manage user access and permissions. It provides detailed information about each authorization, including the agent user, permission levels, and validity periods. Use this endpoint when you need to audit user access, manage permissions, or review the authorization history for a specific user. The response includes pagination support for handling large sets of authorizations.\"},{\"slug\":\"DOCUSIGN_GET_USER_CLOUD_STORAGE_PROVIDER_CONFIGURATION\",\"name\":\"Get user cloud storage provider configuration\",\"description\":\"Retrieves the cloud storage provider configuration for a specific cloud storage service (identified by serviceId) for a user within a DocuSign account. This endpoint returns configuration details for the specified provider, such as service name and serviceId. Note: This endpoint primarily works with DocuSign-native cloud storage providers (like Rooms). External OAuth-based providers (Box, Dropbox, GoogleDrive, Salesforce, OneDrive) typically return 400 errors even with valid serviceIds, likely because they require authentication flow completion first. For retrieving all cloud storage providers, use the 'Retrieve Cloud Storage Provider Configuration' action instead (GET without serviceId). Users can only access their own cloud storage configuration, even with admin rights.\"},{\"slug\":\"DOCUSIGN_GET_USER_INFORMATION_BY_ID\",\"name\":\"Get user information by id\",\"description\":\"Retrieves detailed information about a specific user within a DocuSign account. This endpoint provides comprehensive data about the user, including personal details, account settings, and permissions. It's useful for account administrators and system integrations needing to verify or sync user configurations. Note that users can only access their own information, even with admin rights.\"},{\"slug\":\"DOCUSIGN_GET_USERS_IN_GROUP\",\"name\":\"Get users in group\",\"description\":\"Retrieves a paginated list of users belonging to a specific group within a DocuSign account. This endpoint is useful for managing and auditing group memberships, allowing administrators to view detailed information about users associated with a particular group. It supports pagination to handle large groups efficiently, making it suitable for applications that need to display or process user data in manageable chunks. The endpoint returns comprehensive user information, including account details, email, user status, and membership specifics.\"},{\"slug\":\"DOCUSIGN_GET_WATERMARK_DETAILS_FOR_ACCOUNT\",\"name\":\"Get Watermark Details for Account\",\"description\":\"Retrieves and previews the watermark details for a specific DocuSign account. This endpoint allows users to view the current watermark configuration, including its visual properties and enabled status. It's useful for verifying existing watermark settings or preparing to update them. The endpoint returns comprehensive information about the watermark but does not modify any settings. Use this when you need to inspect or audit the current watermark configuration for an account.\"},{\"slug\":\"DOCUSIGN_GET_WORKFLOW_STEP_FOR_ENVELOPE\",\"name\":\"Get Workflow Step for Envelope\",\"description\":\"Retrieves detailed information about a specific workflow step for a DocuSign envelope. This endpoint allows you to fetch comprehensive data about a single step in an envelope's workflow, including its action, status, delayed routing settings, and recipient routing rules. It's particularly useful when you need to examine or troubleshoot the configuration of a specific workflow step within an envelope. The endpoint provides insights into how the step is triggered, its current status, and any conditional routing or delay rules applied to it. Use this when you need to understand the exact behavior and settings of a particular workflow step in your DocuSign envelope.\"},{\"slug\":\"DOCUSIGN_GET_WORKSPACE_FILE\",\"name\":\"Get workspace file\",\"description\":\"Retrieves a binary version of a file from a DocuSign workspace. This endpoint allows you to access and download files stored within a specific workspace, folder, and account. It's particularly useful for retrieving document content for further processing or viewing outside the DocuSign platform. The endpoint offers options to download the file as an attachment or convert it to PDF format. Use this when you need to extract file content from a DocuSign workspace, either for backup purposes, local editing, or integration with other systems. Note that this endpoint retrieves the raw file content and does not provide metadata about the file or its signing status.\"},{\"slug\":\"DOCUSIGN_GET_WORKSPACE_FOLDER_CONTENTS\",\"name\":\"Get workspace folder contents\",\"description\":\"Retrieves the contents of a specific workspace folder in DocuSign, including sub-folders and files. This endpoint provides detailed information about the items within the folder, such as metadata, user permissions, and hierarchical structure. It can be used to navigate and explore the contents of a workspace, allowing for efficient management of documents and folders. The endpoint offers various optional parameters to customize the response, enabling users to include or exclude specific types of information based on their needs.\"},{\"slug\":\"DOCUSIGN_INITIATE_NEW_CHUNKED_UPLOAD\",\"name\":\"Initiate new chunked upload\",\"description\":\"Initiates a new chunked upload in DocuSign by sending the first part of the content. This endpoint is designed to handle large file uploads by breaking them into smaller, manageable pieces. It's particularly useful for adding documents to envelopes in DocuSign's electronic signature workflow. The method returns a response with the chunked upload ID, URI, and other metadata, which can be used to add more parts to the upload. Note that this API is currently in beta status and subject to change.\"},{\"slug\":\"DOCUSIGN_LIST_ALL_TEMPLATES\",\"name\":\"Get Account Templates\",\"description\":\"Gets the definition of a template or templates in the specified account. Note: If the count parameter is not used, listTemplates has a default limit of 2,000 templates. If the account has more than 2,000 templates, listTemplates will return the first 2,000 templates. To retrieve more than 2,000 templates, repeat the API call, specifying start_position and count to control the number of templates retrieved.\"},{\"slug\":\"DOCUSIGN_LIST_BILLING_INVOICES\",\"name\":\"List billing invoices\",\"description\":\"Retrieves a list of billing invoices for a specified DocuSign account. This endpoint allows account administrators to fetch detailed invoice information, including total amounts, due dates, and itemized charges. It supports optional date range filtering and provides a paginated response for efficient handling of large datasets. Use this endpoint to review billing history, verify charges, or gather financial data for accounting purposes. The response includes comprehensive invoice details, making it valuable for financial reconciliation and reporting.\"},{\"slug\":\"DOCUSIGN_LIST_BRANDS_FOR_ACCOUNT\",\"name\":\"List brands for account\",\"description\":\"Retrieves a comprehensive list of brands associated with a DocuSign account, including default brand profiles. This endpoint provides detailed information about each brand, such as visual elements, language settings, and resource URLs for customizing various DocuSign experiences. It's particularly useful for managing and reviewing account-level branding options. The endpoint requires either the 'canSelfBrandSign' or 'canSelfBrandSend' setting to be enabled for the account. Use this when you need to audit, manage, or implement brand customizations across your DocuSign account.\"},{\"slug\":\"DOCUSIGN_LIST_BULK_SEND_BATCH_SUMMARIES\",\"name\":\"Listbulksendbatchsummaries\",\"description\":\"Retrieves a summary of bulk send batches for a DocuSign account. This endpoint allows users to query and filter bulk send batch information, providing details such as batch status, size, and processing information. It's particularly useful for monitoring the progress of large-scale document sending operations and managing bulk send workflows. The endpoint supports pagination and various filtering options to customize the result set according to specific needs.\"},{\"slug\":\"DOCUSIGN_LIST_CLOUD_STORAGE_ITEMS\",\"name\":\"Listcloudstorageitems\",\"description\":\"Retrieves a list of items (files and folders) from a specific folder in a cloud storage provider integrated with DocuSign. This endpoint enables browsing and searching cloud storage contents directly within DocuSign, making it easier to select documents for signing workflows. Prerequisites: - The cloud storage provider must be connected and authenticated for the user - Valid serviceId and folderId must be provided from the connected storage Supported cloud storage providers include: Box, Dropbox, Google Drive, OneDrive, Salesforce, and DocuSign Rooms. The endpoint supports pagination, sorting, and text-based filtering of results. Users can only access their own cloud storage items, ensuring data privacy and security.\"},{\"slug\":\"DOCUSIGN_LIST_ENVELOPE_AND_DOCUMENT_CUSTOM_FIELDS\",\"name\":\"List Account Custom Fields\",\"description\":\"Retrieves all account-level custom fields defined for a DocuSign account. Account custom fields are envelope custom fields that can be applied across multiple envelopes, enabling account administrators to group, track, and manage envelopes consistently. The response includes two types of custom fields: - Text custom fields: Free-form text input fields - List custom fields: Dropdown fields with predefined options Each custom field contains metadata such as field ID, name, visibility settings, required status, and current values. This is useful for: - Auditing existing custom field configurations - Reviewing available custom fields before creating envelopes - Preparing for custom field updates or migrations - Understanding envelope metadata structure for reporting Note: This endpoint retrieves account-level custom field definitions, not the values set on individual envelopes. To get custom field values for a specific envelope, use the envelope custom fields endpoint instead.\"},{\"slug\":\"DOCUSIGN_LIST_ENVELOPE_ATTACHMENTS_BY_ENVELOPE_ID\",\"name\":\"List Envelope Attachments By Envelope Id\",\"description\":\"Retrieves a list of envelope attachments associated with a specified envelope in DocuSign. This endpoint is used to fetch developer-only files attached to an envelope, providing details such as attachment IDs, types, and access controls. It's important to note that this operation returns envelope attachments, which are different from signer attachments (user-visible documents). Use this endpoint when you need to manage or review administrative files linked to an envelope. The API is currently in beta status, so it may be subject to changes in future versions. The response includes an array of attachment objects, each containing information like accessControl, attachmentId, and attachmentType. Error details are provided for both successful and failed requests.\"},{\"slug\":\"DOCUSIGN_LIST_OAUTH_USERINFO\",\"name\":\"Get OAuth User Info\",\"description\":\"Tool to retrieve authenticated user's account information from DocuSign OAuth. Use this to validate the OAuth access token and obtain essential account details including user ID (sub), name, email, and the list of DocuSign accounts with their base URIs and account IDs for subsequent API calls.\"},{\"slug\":\"DOCUSIGN_LIST_PAST_DUE_INVOICES\",\"name\":\"List past due invoices\",\"description\":\"Retrieves a list of past due invoices for a specified DocuSign account and indicates if payment can be made through the REST API. This endpoint is designed for account administrators to manage outstanding financial obligations. It provides comprehensive invoice details including total amounts, balances, due dates, and itemized charges. Use this when you need to review overdue payments, assess the account's financial status, or determine if immediate action is required for outstanding invoices. The endpoint does not process payments directly but informs if payment through the API is possible. Note that this tool requires account administrator privileges to access sensitive billing information.\"},{\"slug\":\"DOCUSIGN_LIST_PAYMENT_GATEWAY_ACCOUNTS_INFO\",\"name\":\"Listpaymentgatewayaccountsinfo\",\"description\":\"Retrieves a list of all payment gateway accounts associated with a specific DocuSign account, along with detailed information about each account. This endpoint is useful for obtaining an overview of the payment gateways configured for an account, including their status, supported currencies, and payment methods. It should be used when you need to manage or review payment gateway configurations within a DocuSign account. As this is a beta endpoint, be aware that its structure or behavior may change in future updates.\"},{\"slug\":\"DOCUSIGN_LIST_REGISTERED_NOTARY_JURISDICTIONS\",\"name\":\"List registered notary jurisdictions\",\"description\":\"Retrieves a paginated list of registered notary jurisdictions for the current user, who must be a notary. This endpoint provides detailed information about each jurisdiction where the notary is registered, including commission details, seal settings, and supported features. It is useful for managing and reviewing a notary's registrations across multiple states. The response includes navigation URIs for handling pagination, allowing for efficient retrieval of large result sets. This endpoint should be used when a notary needs to review their registered jurisdictions or when an application needs to display or process a notary's registration information across multiple states.\"},{\"slug\":\"DOCUSIGN_LIST_SIGNATURE_PROVIDERS_FOR_ACCOUNT\",\"name\":\"Listsignatureprovidersforaccount\",\"description\":\"Retrieves a list of signature providers available for a specified DocuSign account. This endpoint allows users to obtain detailed information about electronic and digital signature providers, including standards-based signatures, that can be used within the account. It's particularly useful when setting up or managing signature workflows, especially those involving identity verification. The endpoint returns provider names, display names, IDs, and any required options, enabling developers to integrate various signature providers into their DocuSign-based applications or workflows.\"},{\"slug\":\"DOCUSIGN_LIST_USERS_FOR_ACCOUNT\",\"name\":\"List users for account\",\"description\":\"Retrieves a list of users for a specified DocuSign account. This endpoint allows for detailed querying of user information, including their account status, email addresses, and various account settings. It's particularly useful for account administrators who need to manage users or gather information about the account's user base. The endpoint supports pagination and filtering, enabling efficient retrieval of specific subsets of users. When called with the 'additional_info' parameter set to true, it provides comprehensive user data, including granular permissions and custom settings. This makes it valuable for auditing user access levels or preparing for bulk updates to user configurations. Keep in mind that the response can be quite large, especially for accounts with many users or when requesting additional info. It's recommended to use pagination parameters (count and start_position) for large accounts to manage response sizes and API performance.\"},{\"slug\":\"DOCUSIGN_LIST_WORKSPACE_FILE_PAGES\",\"name\":\"Listworkspacefilepages\",\"description\":\"Retrieves a workspace file as rasterized pages from a DocuSign workspace. This endpoint allows users to fetch file pages as images with customizable resolution and dimensions. It supports pagination for handling large files efficiently. Use this method when you need to view or process workspace files as images, such as for preview generation or image-based analysis. The endpoint is particularly useful for viewing documents without downloading the entire file, enabling faster loading and reduced bandwidth usage. Note that this method does not provide text extraction or document editing capabilities; it's purely for image-based representation of file pages.\"},{\"slug\":\"DOCUSIGN_LIST_WORKSPACES\",\"name\":\"List workspaces\",\"description\":\"Retrieves a list of DocuSign workspaces and their associated information for a specified account. This endpoint allows users to get a comprehensive view of all workspaces they have access to, including details such as workspace IDs, names, descriptions, creation dates, and user information. It's particularly useful for applications that need to display or manage multiple workspaces, or for auditing purposes to review workspace configurations and user access. The endpoint provides paginated results, allowing for efficient retrieval of large numbers of workspaces.\"},{\"slug\":\"DOCUSIGN_LOCK_AN_ENVELOPE_FOR_EDITING\",\"name\":\"Lock an envelope for editing\",\"description\":\"This endpoint locks an envelope for editing, preventing other users or recipients from changing it. It's used to ensure exclusive access to an envelope during updates. The method returns a lock token that must be included in subsequent PUT requests to modify the locked envelope. Use this endpoint when you need to make changes to an envelope and want to prevent concurrent edits. The lock has a limited duration and can be extended if needed. It's particularly useful for complex envelope modifications or when coordinating changes among multiple users. Note that template passwords may be required for certain locked envelopes, and there's a maximum lock duration of 30 minutes.\"},{\"slug\":\"DOCUSIGN_LOCK_TEMPLATE_FOR_EDITING\",\"name\":\"Lock Template for Editing\",\"description\":\"Locks a specified DocuSign template for editing to prevent concurrent modifications. This endpoint acquires an exclusive lock on a template, ensuring that only the lock holder can make changes during the lock period. The response includes a lockToken that must be included in the X-DocuSign-Edit header for all subsequent update operations on the locked template. Key features: - Returns a lockToken for exclusive editing access - Prevents race conditions in collaborative environments - Lock automatically expires after the specified duration - Default lock duration is typically 300 seconds (5 minutes) Use this action before modifying a template to ensure data integrity and prevent conflicts with other users attempting to edit the same template simultaneously.\"},{\"slug\":\"DOCUSIGN_MODIFY_ACCOUNT_NOTIFICATION_SETTINGS\",\"name\":\"Modify Account Notification Settings\",\"description\":\"Updates the default email notification settings for envelope senders and signers in a DocuSign account. This endpoint allows customization of when and what type of notifications users receive regarding envelope status changes (e.g., signed, declined, completed), comments, and other events. Use this action when you need to: - Configure when senders receive notifications (e.g., when signers change, delivery fails) - Configure when signers receive notifications (e.g., envelope activation, completion) - Set comment notification preferences - Update notification settings for specific events like document purges or offline signing Note: These are account-level default settings. Individual envelope notification settings can override these defaults when sending specific envelopes.\"}]},{\"slug\":\"discordbot\",\"name\":\"Discord Bot\",\"description\":\"Discordbot refers to automated programs on Discord servers, performing tasks like moderation, music playback, and user engagement to enhance community interactions\",\"logo\":\"https://logos.composio.dev/api/discordbot\",\"rank\":45,\"tools\":[{\"slug\":\"DISCORDBOT_ADD_GROUP_DM_USER\",\"name\":\"Add recipient to group channel\",\"description\":\"Adds a user to a Discord group DM channel. Requires a user OAuth2 access token with the gdm.join scope. Bot tokens cannot be used for this endpoint.\"},{\"slug\":\"DISCORDBOT_ADD_GUILD_MEMBER\",\"name\":\"Add guild member\",\"description\":\"Adds a user to a Discord guild using their OAuth2 access token (which must have guilds.join scope). Returns the guild member object on 201 Created, or indicates the user is already a member on 204.\"},{\"slug\":\"DISCORDBOT_ADD_GUILD_MEMBER_ROLE\",\"name\":\"Assign role to guild member\",\"description\":\"Assigns a role to a guild member. Requires MANAGE_ROLES permission and the role must be lower in hierarchy than the bot's highest role. Returns 204 on success.\"},{\"slug\":\"DISCORDBOT_ADD_MY_MESSAGE_REACTION\",\"name\":\"Add Reaction To Message\",\"description\":\"Adds an emoji reaction from the bot to a message. Requires READ_MESSAGE_HISTORY, and ADD_REACTIONS if no one else has reacted with this emoji yet.\"},{\"slug\":\"DISCORDBOT_ADD_THREAD_MEMBER\",\"name\":\"Add thread member\",\"description\":\"Adds a user to a specific, unarchived thread. The user must have access to the parent channel.\"},{\"slug\":\"DISCORDBOT_BAN_USER_FROM_GUILD\",\"name\":\"Ban user from guild\",\"description\":\"Permanently bans a user from a Discord guild, optionally deleting their recent messages.\"},{\"slug\":\"DISCORDBOT_BULK_BAN_USERS_FROM_GUILD\",\"name\":\"Bulk ban users from guild\",\"description\":\"Bans up to 200 users from a Discord guild, optionally deleting their recent messages. Requires BAN_MEMBERS permission.\"},{\"slug\":\"DISCORDBOT_BULK_DELETE_MESSAGES\",\"name\":\"Bulk Delete Messages\",\"description\":\"Bulk deletes messages in a Discord channel. Requires MANAGE_MESSAGES permission. Messages must be less than 14 days old. Between 2 and 100 messages can be deleted at once.\"},{\"slug\":\"DISCORDBOT_CREATE_APPLICATION_COMMAND\",\"name\":\"Create global application command\",\"description\":\"Creates a new global Discord application command. Global commands can take up to an hour to propagate. Command names must be unique per type within the application scope.\"},{\"slug\":\"DISCORDBOT_CREATE_AUTO_MODERATION_RULE\",\"name\":\"Create auto moderation rule\",\"description\":\"Creates a new auto moderation rule for a Discord guild. Requires MANAGE_GUILD permission. Use this to set up filters for profanity, spam, excessive mentions, or custom keywords.\"},{\"slug\":\"DISCORDBOT_CREATE_CHANNEL_INVITE\",\"name\":\"Create channel invite\",\"description\":\"Creates a new invite link for a Discord channel. Requires CREATE_INSTANT_INVITE permission.\"},{\"slug\":\"DISCORDBOT_CREATE_DM\",\"name\":\"Initiate user channel with recipient\",\"description\":\"Creates a new direct message (DM) channel or retrieves an existing one, using recipient_id for a 1-on-1 DM or access_tokens for a group DM; this action only establishes or fetches the channel and does not send messages.\"},{\"slug\":\"DISCORDBOT_CREATE_GUILD\",\"name\":\"Create new guild\",\"description\":\"Creates a new Discord guild (server). The bot must be in fewer than 10 guilds to use this endpoint. Icon must be a base64 encoded 128x128 image, and if afk_channel_id is set, afk_timeout must also be set.\"},{\"slug\":\"DISCORDBOT_CREATE_GUILD_APPLICATION_COMMAND\",\"name\":\"Create guild application command\",\"description\":\"Creates a new guild-specific application command. Command names must be unique per type within the guild (max 100 total commands).\"},{\"slug\":\"DISCORDBOT_CREATE_GUILD_CHANNEL\",\"name\":\"Create guild channel\",\"description\":\"Creates a new Discord channel (text, voice, category, etc.) within a guild. Requires MANAGE_CHANNELS permission.\"},{\"slug\":\"DISCORDBOT_CREATE_GUILD_EMOJI\",\"name\":\"Create guild emoji\",\"description\":\"Creates a new custom emoji in a specified Discord guild, requiring CREATE_EXPRESSIONS permission and adherence to guild emoji limits.\"},{\"slug\":\"DISCORDBOT_CREATE_GUILD_FROM_TEMPLATE\",\"name\":\"Create guild from template\",\"description\":\"Creates a new Discord guild by applying channels, roles, and settings from a specified guild template code.\"},{\"slug\":\"DISCORDBOT_CREATE_GUILD_ROLE\",\"name\":\"Create role with guild id\",\"description\":\"Creates a new role in a Discord guild with customizable name, permissions, color, hoist, mentionability, and icon. Requires MANAGE_ROLES permission. The icon and unicode_emoji fields are mutually exclusive.\"},{\"slug\":\"DISCORDBOT_CREATE_GUILD_SCHEDULED_EVENT\",\"name\":\"Create guild scheduled event\",\"description\":\"Creates a new scheduled event in a Discord guild. Events can be hosted in stage channels, voice channels, or external locations. STAGE_INSTANCE/VOICE require channel_id, while EXTERNAL requires entity_metadata with a location and scheduled_end_time.\"},{\"slug\":\"DISCORDBOT_CREATE_GUILD_STICKER\",\"name\":\"Create guild sticker\",\"description\":\"Uploads a PNG, APNG, GIF, or Lottie JSON file (max 512KB) as a new custom sticker to the specified Discord guild; requires Manage Expressions permission.\"},{\"slug\":\"DISCORDBOT_CREATE_GUILD_TEMPLATE\",\"name\":\"Create guild template\",\"description\":\"Creates a template of an existing Discord guild's structure (settings, roles, channels) but not its content (messages, members).\"},{\"slug\":\"DISCORDBOT_CREATE_INTERACTION_RESPONSE\",\"name\":\"Post interaction callback\",\"description\":\"Sends a response to a Discord interaction (e.g., slash command, component). Ensure response type is context-appropriate and initial reply is within 3 seconds.\"},{\"slug\":\"DISCORDBOT_CREATE_MESSAGE\",\"name\":\"Send Message To Channel\",\"description\":\"Sends a message to a Discord channel. Supports text content, embeds, stickers, components, and replies. Requires SEND_MESSAGES permission and at least one of content, embeds, sticker_ids, or components.\"},{\"slug\":\"DISCORDBOT_CREATE_STAGE_INSTANCE\",\"name\":\"Create stage instance\",\"description\":\"Creates a new Stage instance in a Stage channel for hosting live audio events. Requires MANAGE_CHANNELS, MUTE_MEMBERS, and MOVE_MEMBERS permissions. A Stage channel can only have one active instance at a time.\"},{\"slug\":\"DISCORDBOT_CREATE_THREAD\",\"name\":\"Create new thread in channel\",\"description\":\"Creates a new thread in a text, announcement, forum, or media channel.\"},{\"slug\":\"DISCORDBOT_CREATE_THREAD_FROM_MESSAGE\",\"name\":\"Create thread from message\",\"description\":\"Creates a new thread from a specific message in a Discord channel, requiring CREATE_PUBLIC_THREADS permission.\"},{\"slug\":\"DISCORDBOT_CREATE_WEBHOOK\",\"name\":\"Create channel webhook\",\"description\":\"Creates a new webhook in a specified Discord channel, requiring MANAGE_WEBHOOKS permission.\"},{\"slug\":\"DISCORDBOT_CROSSPOST_MESSAGE\",\"name\":\"Crosspost Message\",\"description\":\"Crossposts a message from an announcement channel to all channels following it. The message must not have been previously crossposted and must not be a system message.\"},{\"slug\":\"DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS\",\"name\":\"Delete All Reactions\",\"description\":\"Removes all reactions from a message. Requires MANAGE_MESSAGES permission. This removes reactions from all users, not just the bot.\"},{\"slug\":\"DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS_BY_EMOJI\",\"name\":\"Delete All Reactions By Emoji\",\"description\":\"Removes all reactions for a specific emoji from a message. Requires MANAGE_MESSAGES permission. Removes reactions from all users, not just the bot.\"},{\"slug\":\"DISCORDBOT_DELETE_APPLICATION_COMMAND\",\"name\":\"Delete global application command\",\"description\":\"Permanently deletes a global application command. This is irreversible and the command will no longer appear in Discord clients. Global command deletions can take up to 1 hour to propagate.\"},{\"slug\":\"DISCORDBOT_DELETE_AUTO_MODERATION_RULE\",\"name\":\"Delete auto moderation rule\",\"description\":\"Permanently deletes a specific auto moderation rule from a Discord guild. Requires MANAGE_GUILD permission.\"},{\"slug\":\"DISCORDBOT_DELETE_CHANNEL\",\"name\":\"Delete channel by id\",\"description\":\"Permanently deletes a Discord channel by its ID. This action is irreversible. Returns the deleted channel object (not 204).\"},{\"slug\":\"DISCORDBOT_DELETE_CHANNEL_PERMISSION_OVERWRITE\",\"name\":\"Delete channel permission override\",\"description\":\"Removes channel-specific permission overwrites for a user or role, reverting them to default permissions inherited from the server or category. Requires MANAGE_ROLES permission. This action is irreversible.\"},{\"slug\":\"DISCORDBOT_DELETE_GROUP_DM_USER\",\"name\":\"Remove user from group DM\",\"description\":\"Removes a recipient from a Discord group DM channel. Requires OAuth2 user access tokens with the gdm.join scope. Only the group DM owner or managing application can remove recipients.\"},{\"slug\":\"DISCORDBOT_DELETE_GUILD\",\"name\":\"Delete guild by id\",\"description\":\"Permanently deletes a specified Discord guild (server). The authenticated user must be the owner of the guild. This action is irreversible.\"},{\"slug\":\"DISCORDBOT_DELETE_GUILD_APPLICATION_COMMAND\",\"name\":\"Delete guild application command\",\"description\":\"Permanently deletes a guild-specific application command. This is irreversible.\"},{\"slug\":\"DISCORDBOT_DELETE_GUILD_EMOJI\",\"name\":\"Delete guild emoji by id\",\"description\":\"Permanently deletes a specified custom emoji from a guild, requiring Manage Expressions permissions; cannot delete default emojis and is irreversible.\"},{\"slug\":\"DISCORDBOT_DELETE_GUILD_INTEGRATION\",\"name\":\"Delete guild integration\",\"description\":\"Permanently deletes a specific integration from a Discord guild, removing any associated webhooks and kicking the bot if present. Requires MANAGE_GUILD permission.\"},{\"slug\":\"DISCORDBOT_DELETE_GUILD_MEMBER\",\"name\":\"Delete guild member by id\",\"description\":\"Removes (kicks) a member from a Discord guild. The user must be an existing member of the specified guild. Requires KICK_MEMBERS permission.\"},{\"slug\":\"DISCORDBOT_DELETE_GUILD_MEMBER_ROLE\",\"name\":\"Delete guild member role\",\"description\":\"Removes a specified role from a member of a Discord guild. Requires MANAGE_ROLES permission and the role must be lower in hierarchy than the bot's highest role. Idempotent - succeeds even if member does not have the role.\"},{\"slug\":\"DISCORDBOT_DELETE_GUILD_ROLE\",\"name\":\"Delete role from guild\",\"description\":\"Permanently deletes a specified role from a Discord guild, revoking it from all members. Requires MANAGE_ROLES permission and the target role must be lower in hierarchy than the bot's highest role.\"},{\"slug\":\"DISCORDBOT_DELETE_GUILD_SCHEDULED_EVENT\",\"name\":\"Delete guild scheduled event\",\"description\":\"Permanently deletes a specific scheduled event from a Discord guild. This action is irreversible.\"},{\"slug\":\"DISCORDBOT_DELETE_GUILD_STICKER\",\"name\":\"Delete guild sticker\",\"description\":\"Permanently deletes a custom sticker from a Discord guild; the specified guild and sticker must exist, and this action is irreversible.\"},{\"slug\":\"DISCORDBOT_DELETE_GUILD_TEMPLATE\",\"name\":\"Delete guild template by code\",\"description\":\"Deletes an existing guild template by its unique code from a specified guild, returning the deleted template's details.\"},{\"slug\":\"DISCORDBOT_DELETE_MESSAGE\",\"name\":\"Delete Message\",\"description\":\"Permanently deletes a message from a Discord channel. The bot can delete its own messages or, with MANAGE_MESSAGES permission, delete messages from other users.\"},{\"slug\":\"DISCORDBOT_DELETE_MY_MESSAGE_REACTION\",\"name\":\"Remove My Reaction\",\"description\":\"Removes the bot's own emoji reaction from a message. Only removes the bot's reaction, not other users' reactions.\"},{\"slug\":\"DISCORDBOT_DELETE_ORIGINAL_WEBHOOK_MESSAGE\",\"name\":\"Delete original webhook message\",\"description\":\"Permanently deletes the original (@original) message posted by a webhook or interaction response.\"},{\"slug\":\"DISCORDBOT_DELETE_STAGE_INSTANCE\",\"name\":\"Delete stage instance\",\"description\":\"Permanently deletes the Stage instance for a given stage channel, ending the live audio event.\"},{\"slug\":\"DISCORDBOT_DELETE_THREAD_MEMBER\",\"name\":\"Remove thread member\",\"description\":\"Removes a user from a specified, unarchived thread. Requires MANAGE_THREADS permission.\"},{\"slug\":\"DISCORDBOT_DELETE_USER_MESSAGE_REACTION\",\"name\":\"Remove User Reaction\",\"description\":\"Removes a specific user's emoji reaction from a message. Requires MANAGE_MESSAGES permission.\"},{\"slug\":\"DISCORDBOT_DELETE_WEBHOOK\",\"name\":\"Delete webhook by id\",\"description\":\"Permanently deletes a Discord webhook by its unique ID. This action is irreversible.\"},{\"slug\":\"DISCORDBOT_DELETE_WEBHOOK_BY_TOKEN\",\"name\":\"Delete webhook by token\",\"description\":\"Permanently deletes a Discord webhook using its ID and token, without bot authentication.\"},{\"slug\":\"DISCORDBOT_DELETE_WEBHOOK_MESSAGE\",\"name\":\"Delete webhook message\",\"description\":\"Deletes a message previously sent by a Discord webhook.\"},{\"slug\":\"DISCORDBOT_EXECUTE_GITHUB_COMPATIBLE_WEBHOOK\",\"name\":\"Execute GitHub-compatible webhook\",\"description\":\"Forwards GitHub event notifications to a Discord channel via a GitHub-compatible webhook endpoint.\"},{\"slug\":\"DISCORDBOT_EXECUTE_SLACK_COMPATIBLE_WEBHOOK\",\"name\":\"Execute Slack-compatible webhook\",\"description\":\"Sends messages to Discord via its Slack-compatible webhook endpoint, supporting Slack attachment formatting.\"},{\"slug\":\"DISCORDBOT_EXECUTE_WEBHOOK\",\"name\":\"Execute webhook\",\"description\":\"Executes a Discord webhook to send messages, embeds, or interactive components to a channel or thread.\"},{\"slug\":\"DISCORDBOT_FOLLOW_CHANNEL\",\"name\":\"Add follower to channel via webhook\",\"description\":\"Follows an Announcement Channel to relay its messages to a target channel via webhook. The bot must have MANAGE_WEBHOOKS permission in the target channel.\"},{\"slug\":\"DISCORDBOT_GET_ACTIVE_GUILD_THREADS\",\"name\":\"List active threads in guild\",\"description\":\"Retrieves all active (non-archived) threads in a Discord guild that the bot can access.\"},{\"slug\":\"DISCORDBOT_GET_APPLICATION\",\"name\":\"Get application details\",\"description\":\"Retrieves the full details of a Discord application by its application_id.\"},{\"slug\":\"DISCORDBOT_GET_APPLICATION_COMMAND\",\"name\":\"Get global application command\",\"description\":\"Retrieves a specific global application command by its application ID and command ID.\"},{\"slug\":\"DISCORDBOT_GET_APPLICATION_ROLE_CONNECTIONS_METADATA\",\"name\":\"Get application role connections metadata\",\"description\":\"Retrieves all role connection metadata records for a Discord application. Returns an empty list if none are configured.\"},{\"slug\":\"DISCORDBOT_GET_APPLICATION_USER_ROLE_CONNECTION\",\"name\":\"Get user role connection\",\"description\":\"Fetches the role connection object for the current user for a specified Discord application. Requires OAuth2 with the role_connections.write scope.\"},{\"slug\":\"DISCORDBOT_GET_AUTO_MODERATION_RULE\",\"name\":\"Get auto moderation rule\",\"description\":\"Retrieves the complete configuration of a specific auto moderation rule within a Discord guild.\"},{\"slug\":\"DISCORDBOT_GET_BOT_GATEWAY\",\"name\":\"Get bot gateway\",\"description\":\"Retrieves the WSS URL, recommended shard count, and session start limits for connecting a bot to the Discord Gateway.\"},{\"slug\":\"DISCORDBOT_GET_CHANNEL\",\"name\":\"Retrieve channel details\",\"description\":\"Retrieves detailed metadata for a specific Discord channel by its channel_id. Returns only channel metadata, not message content or member lists.\"},{\"slug\":\"DISCORDBOT_GET_GATEWAY\",\"name\":\"Get gateway URL\",\"description\":\"Retrieves the WebSocket URL to connect to Discord's Gateway for receiving real-time events. This is a public endpoint that does not require authentication.\"},{\"slug\":\"DISCORDBOT_GET_GUILD\",\"name\":\"Retrieve guild details\",\"description\":\"Retrieves detailed information for a specified Discord guild (server) by its guild_id, optionally including approximate member and presence counts if with_counts is true.\"},{\"slug\":\"DISCORDBOT_GET_GUILD_APPLICATION_COMMAND\",\"name\":\"Get guild application command\",\"description\":\"Retrieves detailed information for a specific application command within a Discord guild.\"},{\"slug\":\"DISCORDBOT_GET_GUILD_APPLICATION_COMMAND_PERMISSIONS\",\"name\":\"Get guild command permissions\",\"description\":\"Retrieves the permissions for a specific application command within a guild.\"},{\"slug\":\"DISCORDBOT_GET_GUILD_BAN\",\"name\":\"Get guild ban\",\"description\":\"Fetches the ban details for a specific user in a Discord guild, if that user is currently banned.\"},{\"slug\":\"DISCORDBOT_GET_GUILD_EMOJI\",\"name\":\"Fetch emoji by guild and id\",\"description\":\"Retrieves details for a specific custom emoji within a specified Discord guild, requiring valid and accessible guild and emoji IDs.\"},{\"slug\":\"DISCORDBOT_GET_GUILD_MEMBER\",\"name\":\"Retrieve guild member by user id\",\"description\":\"Retrieves detailed information for a specific member of a Discord guild, provided the bot belongs to the guild and has necessary permissions.\"},{\"slug\":\"DISCORDBOT_GET_GUILD_PREVIEW\",\"name\":\"Preview guild by id\",\"description\":\"Fetches a public preview of a Discord guild by its ID, if the guild has the preview feature enabled.\"},{\"slug\":\"DISCORDBOT_GET_GUILD_SCHEDULED_EVENT\",\"name\":\"Get guild scheduled event\",\"description\":\"Retrieves a specific scheduled event from a Discord guild by its ID, optionally including the count of subscribed users.\"},{\"slug\":\"DISCORDBOT_GET_GUILDS_ONBOARDING\",\"name\":\"Get guild onboarding\",\"description\":\"Retrieves the onboarding settings for a specified Discord guild, including prompts, options, default channels, and enabled status.\"},{\"slug\":\"DISCORDBOT_GET_GUILD_STICKER\",\"name\":\"Retrieve sticker from guild\",\"description\":\"Retrieves a specific sticker from a Discord guild using the guild and sticker IDs; requires the sticker to exist in the guild.\"},{\"slug\":\"DISCORDBOT_GET_GUILD_TEMPLATE\",\"name\":\"Retrieve guild template with code\",\"description\":\"Retrieves the complete structure and details of a Discord guild template using its unique code.\"},{\"slug\":\"DISCORDBOT_GET_GUILD_VANITY_URL\",\"name\":\"Retrieve guild vanity url\",\"description\":\"Retrieves the vanity URL invite code and usage count for a Discord guild. Requires MANAGE_GUILD permission and the VANITY_URL feature.\"},{\"slug\":\"DISCORDBOT_GET_GUILD_WEBHOOKS\",\"name\":\"Retrieve guild webhooks\",\"description\":\"Retrieves all webhooks for a specified Discord guild, requiring MANAGE_WEBHOOKS permission.\"},{\"slug\":\"DISCORDBOT_GET_GUILD_WELCOME_SCREEN\",\"name\":\"Retrieve guild welcome screen\",\"description\":\"Retrieves the welcome screen configuration for a Discord guild with the Community feature enabled. Returns the welcome screen description and up to 5 suggested channels.\"},{\"slug\":\"DISCORDBOT_GET_GUILD_WIDGET\",\"name\":\"Retrieve guild widget json\",\"description\":\"Retrieves the public JSON widget data for a Discord guild, if the widget is enabled for that guild.\"},{\"slug\":\"DISCORDBOT_GET_GUILD_WIDGET_PNG\",\"name\":\"Get Guild Widget PNG\",\"description\":\"Tool to retrieve a PNG image widget for a Discord guild. Use when you need a visual representation of the guild widget that can be displayed on external websites. The widget must be enabled in the guild's server settings.\"},{\"slug\":\"DISCORDBOT_GET_GUILD_WIDGET_SETTINGS\",\"name\":\"Retrieve guild widget settings\",\"description\":\"Retrieves the widget settings for a specified Discord guild, indicating if the widget is enabled and its configured channel ID.\"},{\"slug\":\"DISCORDBOT_GET_MESSAGE\",\"name\":\"Get Message\",\"description\":\"Retrieves a specific message from a Discord channel by channel and message ID.\"},{\"slug\":\"DISCORDBOT_GET_MY_APPLICATION\",\"name\":\"Get my application\",\"description\":\"Retrieves detailed information about the current authenticated Discord application via /applications/@me.\"},{\"slug\":\"DISCORDBOT_GET_MY_OAUTH2_APPLICATION\",\"name\":\"Get my OAuth2 application\",\"description\":\"Retrieves detailed information about the OAuth2 application associated with the current authentication.\"},{\"slug\":\"DISCORDBOT_GET_ORIGINAL_WEBHOOK_MESSAGE\",\"name\":\"Retrieve original webhook message\",\"description\":\"Retrieves the original (@original) message from a Discord webhook or interaction response.\"},{\"slug\":\"DISCORDBOT_GET_PUBLIC_KEYS\",\"name\":\"Get OAuth2 public keys\",\"description\":\"Retrieves Discord's OAuth2 public keys in JWK format for verifying access tokens. Keys may rotate, so refresh caches periodically.\"},{\"slug\":\"DISCORDBOT_GET_STAGE_INSTANCE\",\"name\":\"Get stage instance\",\"description\":\"Retrieves the active Stage instance for a specified stage channel. Returns 404 if no active Stage instance exists.\"},{\"slug\":\"DISCORDBOT_GET_STICKER\",\"name\":\"Get sticker\",\"description\":\"Retrieves a specific Discord sticker by its unique ID.\"},{\"slug\":\"DISCORDBOT_GET_THREAD_MEMBER\",\"name\":\"Retrieve thread member by id\",\"description\":\"Retrieves a member from a specified thread using their user ID, optionally including guild member details.\"},{\"slug\":\"DISCORDBOT_GET_USER\",\"name\":\"Get user\",\"description\":\"Fetches public information for a Discord user by their user ID.\"},{\"slug\":\"DISCORDBOT_GET_WEBHOOK\",\"name\":\"Retrieve webhook by id\",\"description\":\"Retrieves detailed information for a Discord webhook by its unique ID.\"},{\"slug\":\"DISCORDBOT_GET_WEBHOOK_BY_TOKEN\",\"name\":\"Retrieve webhook by token\",\"description\":\"Retrieves a Discord webhook's configuration using its ID and token, without requiring bot authentication.\"},{\"slug\":\"DISCORDBOT_GET_WEBHOOK_MESSAGE\",\"name\":\"Retrieve webhook message\",\"description\":\"Retrieves a specific message previously sent by a Discord webhook.\"},{\"slug\":\"DISCORDBOT_INVITE_RESOLVE\",\"name\":\"Resolve invite by code\",\"description\":\"Resolves a Discord invite code to get its details, optionally including member counts and expiration.\"},{\"slug\":\"DISCORDBOT_INVITE_REVOKE\",\"name\":\"Revoke invite by code\",\"description\":\"Revokes a Discord invite using its code, permanently preventing new joins via this link.\"},{\"slug\":\"DISCORDBOT_JOIN_THREAD\",\"name\":\"Join thread\",\"description\":\"Joins the authenticated user to a thread specified by channel_id.\"},{\"slug\":\"DISCORDBOT_LEAVE_GUILD\",\"name\":\"Leave Guild\",\"description\":\"Enables the bot to leave a specified Discord guild (server). This action is irreversible and the bot must be re-invited to rejoin.\"},{\"slug\":\"DISCORDBOT_LEAVE_THREAD\",\"name\":\"Leave thread\",\"description\":\"Removes the currently authenticated user from a specified thread.\"},{\"slug\":\"DISCORDBOT_LIST_APPLICATION_COMMANDS\",\"name\":\"List global application commands\",\"description\":\"Fetches all global application commands for the specified Discord application. Does not include guild-specific commands.\"},{\"slug\":\"DISCORDBOT_LIST_AUTO_MODERATION_RULES\",\"name\":\"List auto moderation rules\",\"description\":\"Retrieves all auto moderation rules for a specified Discord guild. Requires MANAGE_GUILD permission.\"},{\"slug\":\"DISCORDBOT_LIST_CHANNEL_INVITES\",\"name\":\"List channel invites\",\"description\":\"Fetches all active invites for a given Discord channel. Requires MANAGE_CHANNELS permission.\"},{\"slug\":\"DISCORDBOT_LIST_CHANNEL_WEBHOOKS\",\"name\":\"List Channel Webhooks\",\"description\":\"Retrieves all webhooks configured in a given Discord channel. Requires the MANAGE_WEBHOOKS permission.\"},{\"slug\":\"DISCORDBOT_LIST_GUILD_APPLICATION_COMMAND_PERMISSIONS\",\"name\":\"List guild command permissions\",\"description\":\"Retrieves all guild-level permission settings for all commands of a specific application within a guild.\"},{\"slug\":\"DISCORDBOT_LIST_GUILD_APPLICATION_COMMANDS\",\"name\":\"List guild application commands\",\"description\":\"Fetches all application commands registered for a specific guild. Does not include global commands.\"},{\"slug\":\"DISCORDBOT_LIST_GUILD_AUDIT_LOG_ENTRIES\",\"name\":\"Get guild audit logs\",\"description\":\"Retrieves audit log entries for a specified Discord guild, requiring VIEW_AUDIT_LOG permission. Supports filtering by user, action type, and pagination.\"},{\"slug\":\"DISCORDBOT_LIST_GUILD_BANS\",\"name\":\"List guild bans\",\"description\":\"Fetches a list of users banned from a specified Discord guild. Requires BAN_MEMBERS permission.\"},{\"slug\":\"DISCORDBOT_LIST_GUILD_CHANNELS\",\"name\":\"Retrieve guild channels\",\"description\":\"Fetches all channels (text, voice, category, etc.) for a specified Discord guild. Does not include threads or message content.\"},{\"slug\":\"DISCORDBOT_LIST_GUILD_EMOJIS\",\"name\":\"Retrieve guild emojis\",\"description\":\"Fetches all custom emoji objects for a specified Discord guild if the bot has access; returns only custom guild emojis, not standard Unicode or Nitro emojis.\"},{\"slug\":\"DISCORDBOT_LIST_GUILD_INTEGRATIONS\",\"name\":\"List guild integrations\",\"description\":\"Lists all integration objects for a specified Discord guild. Requires MANAGE_GUILD permission.\"},{\"slug\":\"DISCORDBOT_LIST_GUILD_INVITES\",\"name\":\"List guild invites\",\"description\":\"Retrieves all currently active invite codes for a specified Discord guild.\"},{\"slug\":\"DISCORDBOT_LIST_GUILD_MEMBERS\",\"name\":\"Get guild members\",\"description\":\"Retrieves a list of members for a Discord guild. Requires GUILD_MEMBERS intent. Supports pagination via limit and after parameters.\"},{\"slug\":\"DISCORDBOT_LIST_GUILD_ROLES\",\"name\":\"List guild roles\",\"description\":\"Fetches all roles in a Discord guild, providing details for each role including permissions, color, position, and other attributes.\"},{\"slug\":\"DISCORDBOT_LIST_GUILD_SCHEDULED_EVENTS\",\"name\":\"List guild scheduled events\",\"description\":\"Retrieves a list of scheduled events for a specified Discord guild, optionally including subscribed user counts.\"},{\"slug\":\"DISCORDBOT_LIST_GUILD_SCHEDULED_EVENT_USERS\",\"name\":\"List scheduled event users\",\"description\":\"Fetches users who have expressed interest in a specific scheduled event within a Discord guild. Supports pagination and optional guild member data.\"},{\"slug\":\"DISCORDBOT_LIST_GUILD_STICKERS\",\"name\":\"Retrieve guild stickers\",\"description\":\"Retrieves all custom sticker objects for a Discord guild; does not include standard/Nitro stickers.\"},{\"slug\":\"DISCORDBOT_LIST_GUILD_TEMPLATES\",\"name\":\"Get guild templates by guild id\",\"description\":\"Retrieves all guild templates for an existing Discord guild, specified by its ID. Requires MANAGE_GUILD permission.\"},{\"slug\":\"DISCORDBOT_LIST_GUILD_VOICE_REGIONS\",\"name\":\"List guild voice regions\",\"description\":\"Fetches a list of available voice regions for a specified Discord guild.\"},{\"slug\":\"DISCORDBOT_LIST_MESSAGE_REACTIONS_BY_EMOJI\",\"name\":\"List Reactions By Emoji\",\"description\":\"Lists users who reacted to a message with a specific emoji. Supports pagination.\"},{\"slug\":\"DISCORDBOT_LIST_MESSAGES\",\"name\":\"Fetch Messages From Channel\",\"description\":\"Retrieves messages from a Discord channel, ordered newest first. Supports pagination via before/after/around parameters.\"},{\"slug\":\"DISCORDBOT_LIST_MY_PRIVATE_ARCHIVED_THREADS\",\"name\":\"List my private archived threads\",\"description\":\"Retrieves private archived threads from a channel that the current user is a member of.\"},{\"slug\":\"DISCORDBOT_LIST_PINNED_MESSAGES\",\"name\":\"List Pinned Messages\",\"description\":\"Retrieves all pinned messages from a Discord channel. Returns up to 50 pinned messages.\"},{\"slug\":\"DISCORDBOT_LIST_PRIVATE_ARCHIVED_THREADS\",\"name\":\"List private archived threads\",\"description\":\"Lists private archived threads in a Discord channel, sorted by most recent archival. Requires view access.\"},{\"slug\":\"DISCORDBOT_LIST_PUBLIC_ARCHIVED_THREADS\",\"name\":\"List public archived threads\",\"description\":\"Lists public archived threads in a Discord channel, sorted by most recent archival.\"},{\"slug\":\"DISCORDBOT_LIST_STICKER_PACKS\",\"name\":\"List sticker packs\",\"description\":\"Fetches all available Nitro sticker packs from Discord, excluding custom or guild-specific sticker packs.\"},{\"slug\":\"DISCORDBOT_LIST_THREAD_MEMBERS\",\"name\":\"List thread members\",\"description\":\"Retrieves members of a specified Discord thread, with an option to include full guild member objects.\"},{\"slug\":\"DISCORDBOT_LIST_VOICE_REGIONS\",\"name\":\"List voice regions\",\"description\":\"Lists all available Discord voice regions that can be used when setting a voice or stage channel's region.\"},{\"slug\":\"DISCORDBOT_PIN_MESSAGE\",\"name\":\"Pin Message\",\"description\":\"Pins a message in a Discord channel. Requires MANAGE_MESSAGES permission. A channel can have at most 50 pinned messages.\"},{\"slug\":\"DISCORDBOT_PREVIEW_PRUNE_GUILD\",\"name\":\"Preview guild prune\",\"description\":\"Previews the number of members that would be pruned from a Discord guild based on inactivity days and optional roles; does not remove members.\"},{\"slug\":\"DISCORDBOT_PRUNE_GUILD\",\"name\":\"Prune inactive guild members\",\"description\":\"Removes inactive members from a Discord guild. Requires KICK_MEMBERS permission. Set compute_prune_count=false for large guilds to avoid timeouts.\"},{\"slug\":\"DISCORDBOT_PUT_GUILDS_ONBOARDING\",\"name\":\"Update guild onboarding configuration\",\"description\":\"Configures or updates a Discord guild's new member onboarding flow, including prompts, options, default channels, and enabled status.\"},{\"slug\":\"DISCORDBOT_SEARCH_GUILD_MEMBERS\",\"name\":\"Search guild members by username or nickname\",\"description\":\"Searches for members in a specific Discord guild by matching a query string against usernames and nicknames. Returns matching guild member objects.\"},{\"slug\":\"DISCORDBOT_SET_CHANNEL_PERMISSION_OVERWRITE\",\"name\":\"Modify channel permissions\",\"description\":\"Updates or creates a permission overwrite for a role (type 0) or member (type 1) within a Discord channel using allow and deny bitwise values. Requires MANAGE_ROLES permission.\"},{\"slug\":\"DISCORDBOT_SYNC_GUILD_TEMPLATE\",\"name\":\"Sync guild template\",\"description\":\"Synchronizes a guild template with its source guild, updating it to match the source's current configuration; does not affect guilds already created from this template.\"},{\"slug\":\"DISCORDBOT_TEST_AUTH\",\"name\":\"Test bot token authentication\",\"description\":\"Tool to validate the configured Discord bot token by fetching the current authenticated bot user. Use when diagnosing repeated 401 errors to determine if the issue is an invalid token (this endpoint returns 401) or missing guild membership/permissions/wrong channel_id (this endpoint returns 200 but other operations fail).\"},{\"slug\":\"DISCORDBOT_TRIGGER_TYPING_INDICATOR\",\"name\":\"Trigger typing indicator\",\"description\":\"Shows the bot is typing in a Discord channel. The indicator stops after 10 seconds or upon message send. Use when actively preparing a response.\"},{\"slug\":\"DISCORDBOT_UNBAN_USER_FROM_GUILD\",\"name\":\"Unban user from guild\",\"description\":\"Revokes a ban for a user from a Discord guild, allowing them to rejoin. Requires BAN_MEMBERS permission.\"},{\"slug\":\"DISCORDBOT_UNPIN_MESSAGE\",\"name\":\"Unpin Message\",\"description\":\"Unpins a message from a Discord channel. The message is not deleted, only removed from the pinned list. Requires MANAGE_MESSAGES permission.\"},{\"slug\":\"DISCORDBOT_UPDATE_APPLICATION\",\"name\":\"Update application\",\"description\":\"Updates a Discord application's settings using its application_id.\"},{\"slug\":\"DISCORDBOT_UPDATE_APPLICATION_COMMAND\",\"name\":\"Update global application command\",\"description\":\"Updates properties of a global application command. Omitted properties remain unchanged. The options field, if provided, overwrites all existing options.\"},{\"slug\":\"DISCORDBOT_UPDATE_APPLICATION_USER_ROLE_CONNECTION\",\"name\":\"Update user application role connection\",\"description\":\"Updates the current user's application role connection metadata for Discord's Linked Roles feature. Requires OAuth2 with the role_connections.write scope.\"},{\"slug\":\"DISCORDBOT_UPDATE_AUTO_MODERATION_RULE\",\"name\":\"Update auto moderation rule\",\"description\":\"Updates an existing auto moderation rule in a Discord guild. Only fields provided in the request body are changed. Requires MANAGE_GUILD permission.\"},{\"slug\":\"DISCORDBOT_UPDATE_CHANNEL\",\"name\":\"Update channel settings\",\"description\":\"Updates a Discord channel's settings (name, topic, permissions, etc.). Requires MANAGE_CHANNELS permission. All body parameters are optional -- only include fields you want to change.\"},{\"slug\":\"DISCORDBOT_UPDATE_GUILD\",\"name\":\"Update guild settings\",\"description\":\"Updates settings for a Discord guild (server). Requires the MANAGE_GUILD permission. All parameters except guild_id are optional -- only include the settings you want to change.\"},{\"slug\":\"DISCORDBOT_UPDATE_GUILD_APPLICATION_COMMAND\",\"name\":\"Update guild application command\",\"description\":\"Updates properties of a guild-specific application command. Omitted properties remain unchanged.\"},{\"slug\":\"DISCORDBOT_UPDATE_GUILD_EMOJI\",\"name\":\"Update guild emoji\",\"description\":\"Updates a custom emoji's name and/or role restrictions in a Discord guild; cannot create or delete emojis, and role updates for managed emojis may be restricted by their integration.\"},{\"slug\":\"DISCORDBOT_UPDATE_GUILD_MEMBER\",\"name\":\"Modify guild member details\",\"description\":\"Updates a guild member's attributes including nickname, roles, voice state, timeout status, and flags. Only provided fields will be updated. Requires appropriate permissions for each operation.\"},{\"slug\":\"DISCORDBOT_UPDATE_GUILD_ROLE\",\"name\":\"Modify guild role\",\"description\":\"Updates a Discord guild role's attributes (name, permissions, color, etc.). Requires MANAGE_ROLES permission. Unspecified attributes remain unchanged. The icon and unicode_emoji fields are mutually exclusive.\"},{\"slug\":\"DISCORDBOT_UPDATE_GUILD_SCHEDULED_EVENT\",\"name\":\"Update guild scheduled event\",\"description\":\"Updates an existing scheduled event in a Discord guild. Only fields provided in the request body are changed. Supports updating name, description, schedule, status, location, and other event attributes.\"},{\"slug\":\"DISCORDBOT_UPDATE_GUILD_STICKER\",\"name\":\"Update guild sticker info\",\"description\":\"Modifies a guild sticker's name, description, or tags. Requires MANAGE_EXPRESSIONS permission.\"},{\"slug\":\"DISCORDBOT_UPDATE_GUILD_TEMPLATE\",\"name\":\"Update guild template\",\"description\":\"Updates a Discord guild template's name and/or description; omitted fields retain current values, and an empty string for description clears it.\"},{\"slug\":\"DISCORDBOT_UPDATE_GUILD_WELCOME_SCREEN\",\"name\":\"Update guild welcome screen\",\"description\":\"Updates a guild's welcome screen configuration, including description, enabled status, and up to 5 welcome channels. Requires MANAGE_GUILD permission and the COMMUNITY feature.\"},{\"slug\":\"DISCORDBOT_UPDATE_GUILD_WIDGET_SETTINGS\",\"name\":\"Update guild widget settings\",\"description\":\"Updates a Discord guild's widget settings, such as its enabled state or invite channel. Requires MANAGE_GUILD permission.\"},{\"slug\":\"DISCORDBOT_UPDATE_MESSAGE\",\"name\":\"Edit Message\",\"description\":\"Edits a message previously sent by the bot. Only provide fields you want to change; use null or empty list to clear values.\"},{\"slug\":\"DISCORDBOT_UPDATE_MY_APPLICATION\",\"name\":\"Update my application\",\"description\":\"Updates settings for the current authenticated Discord application via /applications/@me.\"},{\"slug\":\"DISCORDBOT_UPDATE_MY_GUILD_MEMBER\",\"name\":\"Update bot's nickname in guild\",\"description\":\"Modifies the current bot's member profile (nickname) in a Discord guild. The bot must be a member of the guild and have CHANGE_NICKNAME permission.\"},{\"slug\":\"DISCORDBOT_UPDATE_MY_USER\",\"name\":\"Update current bot user profile\",\"description\":\"Updates the current bot user's Discord username and/or avatar. Only works with bot tokens. Username changes are rate-limited to 2 per hour.\"},{\"slug\":\"DISCORDBOT_UPDATE_ORIGINAL_WEBHOOK_MESSAGE\",\"name\":\"Update original webhook message\",\"description\":\"Updates the original (@original) message previously sent by a webhook or interaction response.\"},{\"slug\":\"DISCORDBOT_UPDATE_SELF_VOICE_STATE\",\"name\":\"Update own voice state\",\"description\":\"Updates the bot's own voice state in a guild Stage channel, such as toggling suppress or requesting to speak. The bot must already be connected to a stage channel via the Gateway API.\"},{\"slug\":\"DISCORDBOT_UPDATE_VOICE_STATE\",\"name\":\"Update user voice state\",\"description\":\"Updates another user's voice state in a Discord stage channel. Only works for stage channels, not regular voice channels. Primarily used to toggle suppress state for speaking permissions. Requires MUTE_MEMBERS permission.\"},{\"slug\":\"DISCORDBOT_UPDATE_WEBHOOK\",\"name\":\"Update webhook details\",\"description\":\"Updates properties of an existing Discord webhook such as name, avatar, or channel.\"},{\"slug\":\"DISCORDBOT_UPDATE_WEBHOOK_BY_TOKEN\",\"name\":\"Update webhook by token\",\"description\":\"Updates a Discord webhook's name and/or avatar using its ID and token, without bot authentication.\"},{\"slug\":\"DISCORDBOT_UPDATE_WEBHOOK_MESSAGE\",\"name\":\"Update webhook message\",\"description\":\"Updates a message previously sent by a webhook, allowing modification of content, embeds, attachments, or components.\"}]},{\"slug\":\"salesforce\",\"name\":\"Salesforce\",\"description\":\"Salesforce is a leading CRM platform integrating sales, service, marketing, and analytics to build customer relationships and drive business growth\",\"logo\":\"https://logos.composio.dev/api/salesforce\",\"rank\":46,\"tools\":[{\"slug\":\"SALESFORCE_ACCOUNT_CREATION_WITH_CONTENT_TYPE_OPTION\",\"name\":\"Create Salesforce Account\",\"description\":\"DEPRECATED: Creates a new Salesforce Account using a JSON POST request, requiring 'Name'; specific fields (e.g., custom, DunsNumber) may have org-level prerequisites.\"},{\"slug\":\"SALESFORCE_ADD_CONTACT_TO_CAMPAIGN\",\"name\":\"Add contact to campaign\",\"description\":\"Adds a contact to a campaign by creating a CampaignMember record to track campaign engagement. Fails if the contact is already a member of the campaign; pre-check membership via SOQL before calling.\"},{\"slug\":\"SALESFORCE_ADD_LEAD_TO_CAMPAIGN\",\"name\":\"Add lead to campaign\",\"description\":\"Adds a lead to a campaign by creating a CampaignMember record, allowing you to track campaign engagement. Both `campaign_id` and `lead_id` must be valid Salesforce IDs of active, existing records — names or emails cannot be substituted, and deleted or inactive records will cause the call to fail. This is a persistent CRM write; confirm the correct lead and campaign before calling.\"},{\"slug\":\"SALESFORCE_ADD_OPPORTUNITY_LINE_ITEM\",\"name\":\"Add product to opportunity\",\"description\":\"Adds a product (line item) to an opportunity. The product must exist in a pricebook entry that's associated with the opportunity's pricebook.\"},{\"slug\":\"SALESFORCE_APPLY_LEAD_ASSIGNMENT_RULES\",\"name\":\"Apply lead assignment rules\",\"description\":\"Applies configured lead assignment rules to a specific lead, automatically routing it to the appropriate owner based on your organization's rules. Allow a brief propagation delay before querying updated ownership or field values after rule application.\"},{\"slug\":\"SALESFORCE_ASSOCIATE_CONTACT_TO_ACCOUNT\",\"name\":\"Associate contact to account\",\"description\":\"Associates a contact with an account by updating the contact's AccountId field. Overwrites any existing AccountId on the contact. For broader contact field updates alongside the account association, use SALESFORCE_UPDATE_CONTACT instead.\"},{\"slug\":\"SALESFORCE_CLONE_OPPORTUNITY_WITH_PRODUCTS\",\"name\":\"Clone opportunity with products\",\"description\":\"Clones an opportunity and optionally its products (line items). Creates a new opportunity with the same field values and products as the original.\"},{\"slug\":\"SALESFORCE_CLONE_RECORD\",\"name\":\"Clone record\",\"description\":\"Creates a copy of an existing Salesforce record by reading its data, removing system fields, and creating a new record. Optionally apply field updates to the clone.\"},{\"slug\":\"SALESFORCE_CLOSE_OR_ABORT_JOB\",\"name\":\"Close or abort a job\",\"description\":\"Tool to close or abort a Salesforce Bulk API v2 ingest job. Use when you need to finalize job processing by closing (state: UploadComplete) or cancel a job by aborting (state: Aborted). This is required for every ingest job - closing queues data for processing, while aborting cancels the job and deletes uploaded data.\"},{\"slug\":\"SALESFORCE_COMPLETE_TASK\",\"name\":\"Complete task\",\"description\":\"Marks a task as completed with optional completion notes. This is a convenience action that updates the task status to 'Completed'.\"},{\"slug\":\"SALESFORCE_COMPOSITE_GRAPH_ACTION\",\"name\":\"Execute Composite Graph (Deprecated)\",\"description\":\"DEPRECATED: Use SALESFORCE_POST_COMPOSITE_GRAPH instead. Tool to execute multiple Salesforce REST API requests in a single call using composite graphs. Use when you need to perform a series of related operations that should either all succeed or all fail together. Composite graphs support up to 500 subrequests per graph (compared to 25 for regular composite requests) and allow referencing outputs from previous subrequests using @{referenceId.fieldName} syntax.\"},{\"slug\":\"SALESFORCE_CREATE_ACCOUNT\",\"name\":\"Create account\",\"description\":\"Creates a new account in Salesforce with the specified information. Returns the created Account's ID at `data.response_data.id`.\"},{\"slug\":\"SALESFORCE_CREATE_A_RECORD\",\"name\":\"Create a record\",\"description\":\"Tool to create a Salesforce record using the UI API. Use when you need to create any type of Salesforce record with layout metadata and formatted field values.\"},{\"slug\":\"SALESFORCE_CREATE_BULK_INGEST_JOB\",\"name\":\"Create bulk ingest job\",\"description\":\"Create a Bulk API 2.0 ingest job (POST /jobs/ingest). Returns a job in the 'Open' state with an id and contentUrl. This is the first step of a bulk load: create the job here, upload CSV data to it (upload_job_data), then close it (close_or_abort_a_job with state=UploadComplete) to queue processing. Without this action the rest of the ingest-job family has no obtainable job_id.\"},{\"slug\":\"SALESFORCE_CREATE_BULK_QUERY_JOB\",\"name\":\"Create bulk query job\",\"description\":\"Create a Bulk API 2.0 query job (POST /jobs/query) for a SOQL query over a large result set. Returns a job with an id; poll get_job_info_query until state is 'JobComplete', then retrieve CSV results with get_job_query_result. Without this action the Bulk query family has no obtainable job_id.\"},{\"slug\":\"SALESFORCE_CREATE_CAMPAIGN\",\"name\":\"Create campaign\",\"description\":\"Creates a new campaign in Salesforce. Only `name` is universally required, but org-level validation rules commonly enforce `type`, `status`, `start_date`, and `end_date` as well — omitting them may cause creation to fail.\"},{\"slug\":\"SALESFORCE_CREATE_CAMPAIGN_RECORD_VIA_POST\",\"name\":\"Create campaign record\",\"description\":\"DEPRECATED: Creates a new campaign record in Salesforce; if 'ParentId' is provided, it must be a valid ID of an existing Campaign record, and if 'OwnerId' is provided, it must be a valid ID of an active User.\"},{\"slug\":\"SALESFORCE_CREATE_CONTACT\",\"name\":\"Create contact\",\"description\":\"Creates a new contact in Salesforce with the specified information. Writes to live CRM data — obtain explicit user confirmation before executing. Failures may reflect org-specific validation rules, permission restrictions, or duplicate rules rather than invalid inputs.\"},{\"slug\":\"SALESFORCE_CREATE_CUSTOM_FIELD\",\"name\":\"Create custom field\",\"description\":\"Tool to create a custom field on a Salesforce object using the Tooling API. Use when you need to add a new field (Text, Number, Checkbox, Date, Picklist, Lookup, etc.) to any standard or custom object without deploying metadata packages. The Tooling API provides direct field creation for rapid development and automation tasks.\"},{\"slug\":\"SALESFORCE_CREATE_CUSTOM_OBJECT\",\"name\":\"Create custom object\",\"description\":\"Tool to create a custom object in Salesforce using the Metadata API. Use when you need to dynamically create new object types (tables) in Salesforce with custom fields and configurations.\"},{\"slug\":\"SALESFORCE_CREATE_LEAD\",\"name\":\"Create lead\",\"description\":\"Creates a new lead in Salesforce. `LastName` and `Company` are required. Org-level validation rules (e.g., email format, custom required fields) may reject requests beyond these; inspect the error response body for the failing field. The created lead `id` is returned in a response wrapper, not at the top level.\"},{\"slug\":\"SALESFORCE_CREATE_LEAD_WITH_SPECIFIED_CONTENT_TYPE\",\"name\":\"Create lead\",\"description\":\"DEPRECATED: Creates a new Lead in Salesforce, requiring `LastName` and `Company` unless person accounts are enabled and `Company` is null.\"},{\"slug\":\"SALESFORCE_CREATE_NEW_CONTACT_WITH_JSON_HEADER\",\"name\":\"Create a new contact\",\"description\":\"DEPRECATED: Creates a new Contact in Salesforce; 'LastName' is required, an existing 'AccountId' must be used if provided, and any custom fields (ending with '__c') must be predefined.\"},{\"slug\":\"SALESFORCE_CREATE_NOTE\",\"name\":\"Create note\",\"description\":\"Creates a new note attached to a Salesforce record with the specified title and content. Does not deduplicate — identical calls create duplicate notes. High-volume creation can trigger REQUEST_LIMIT_EXCEEDED; apply exponential backoff on retries.\"},{\"slug\":\"SALESFORCE_CREATE_NOTE_RECORD_WITH_CONTENT_TYPE_HEADER\",\"name\":\"Create a note record\",\"description\":\"DEPRECATED: Creates a new Note record in Salesforce, associated with an existing Salesforce object via `ParentId`, automatically including a `Content-Type: application/json` header.\"},{\"slug\":\"SALESFORCE_CREATE_OPPORTUNITY\",\"name\":\"Create opportunity\",\"description\":\"Creates a new opportunity in Salesforce with the specified information.\"},{\"slug\":\"SALESFORCE_CREATE_OPPORTUNITY_RECORD\",\"name\":\"Create opportunity record\",\"description\":\"DEPRECATED: Creates a new Opportunity record in Salesforce; `Name`, `StageName`, and `CloseDate` are mandatory, and ensure any referenced IDs (e.g., `AccountId`, `CampaignId`) are valid and corresponding Salesforce features are enabled if used.\"},{\"slug\":\"SALESFORCE_CREATE_S_OBJECT_RECORD\",\"name\":\"Create SObject record\",\"description\":\"Tool to create a new Salesforce SObject record. Use when you need to create any type of standard or custom Salesforce object record by specifying the object type and field values.\"},{\"slug\":\"SALESFORCE_CREATE_SOBJECT_TREE\",\"name\":\"Create sObject tree\",\"description\":\"Tool to create one or more sObject trees with root records of the specified type. Use when creating nested parent-child record hierarchies in a single atomic operation (e.g., Account with Contacts and Opportunities). Supports up to 200 total records across all trees, up to 5 levels deep, with maximum 5 different object types. All records succeed or all fail together.\"},{\"slug\":\"SALESFORCE_CREATE_TASK\",\"name\":\"Create task\",\"description\":\"Creates a new task in Salesforce to track activities, to-dos, and follow-ups related to contacts, leads, or other records. Ensure who_id, what_id, and owner_id reference existing records before calling; invalid IDs cause silent linkage failures or validation errors.\"},{\"slug\":\"SALESFORCE_DELETE_ACCOUNT\",\"name\":\"Delete account\",\"description\":\"Permanently deletes an account from Salesforce. This action cannot be undone.\"},{\"slug\":\"SALESFORCE_DELETE_A_LEAD_OBJECT_BY_ITS_ID\",\"name\":\"Delete a lead object by its id\",\"description\":\"DEPRECATED: Permanently deletes an existing Lead object from Salesforce using its unique ID.\"},{\"slug\":\"SALESFORCE_DELETE_CAMPAIGN\",\"name\":\"Delete campaign\",\"description\":\"Permanently deletes a campaign from Salesforce. This action cannot be undone.\"},{\"slug\":\"SALESFORCE_DELETE_CONTACT\",\"name\":\"Delete contact\",\"description\":\"Permanently deletes a contact from Salesforce. This action cannot be undone. Associated records (activities, opportunities) lose the contact reference upon deletion — ensure related data is migrated or acceptable to lose before proceeding. Returns HTTP 204 with empty body on success.\"},{\"slug\":\"SALESFORCE_DELETE_FILE\",\"name\":\"Delete file\",\"description\":\"Tool to permanently delete a file from Salesforce. Use when you need to remove a file and its content. This operation cannot be undone.\"},{\"slug\":\"SALESFORCE_DELETE_JOB_QUERY\",\"name\":\"Delete job query\",\"description\":\"Tool to delete a Salesforce Bulk API v2 query job. Use when you need to permanently remove a job and its associated data. Only the user who created the job can delete it, and the job must be in a completed state.\"},{\"slug\":\"SALESFORCE_DELETE_LEAD\",\"name\":\"Delete lead\",\"description\":\"Permanently deletes a lead from Salesforce. This action cannot be undone.\"},{\"slug\":\"SALESFORCE_DELETE_NOTE\",\"name\":\"Delete note\",\"description\":\"Permanently deletes a note from Salesforce. This action cannot be undone.\"},{\"slug\":\"SALESFORCE_DELETE_OPPORTUNITY\",\"name\":\"Delete opportunity\",\"description\":\"Permanently deletes an opportunity from Salesforce. This action cannot be undone.\"},{\"slug\":\"SALESFORCE_DELETE_SOBJECT\",\"name\":\"Delete sObject record\",\"description\":\"Tool to delete a single Salesforce record by its ID. Use when you need to permanently remove a specific record from Salesforce. This operation is idempotent - deleting the same record multiple times returns success. Works with standard and custom objects.\"},{\"slug\":\"SALESFORCE_DELETE_SOBJECT_COLLECTIONS\",\"name\":\"Delete multiple records (SObject Collections)\",\"description\":\"Tool to delete up to 200 records in one request with optional rollback. Use when you need to delete multiple records efficiently, reducing API calls.\"},{\"slug\":\"SALESFORCE_EXECUTE_GLOBAL_QUICK_ACTION\",\"name\":\"Execute global quick action\",\"description\":\"Execute a global (non-object-specific) quick action (POST /quickActions/{actionName}). The 'Get quick actions' action lists the available global quick actions, but only object-scoped quick actions could be executed before — this runs the global ones. Distinct from the sObject-scoped execute (POST /sobjects/{type}/quickActions/{name}).\"},{\"slug\":\"SALESFORCE_EXECUTE_INVOCABLE_ACTION\",\"name\":\"Execute invocable action\",\"description\":\"Invoke any standard or custom invocable action by name (POST /actions/standard/{name} or /actions/custom/{name}). The 'Get standard/custom invocable actions' actions enumerate the available actions (including Flows and Apex invocable methods), but previously only emailSimple and invocableApplyLeadAssignmentRules could actually be run — this executes any of them generically. Returns one result per input.\"},{\"slug\":\"SALESFORCE_EXECUTE_SOBJECT_QUICK_ACTION\",\"name\":\"Execute sObject Quick Action\",\"description\":\"Tool to execute a specific quick action on an sObject to create records with pre-configured defaults. Use when you need to leverage Salesforce Quick Actions to streamline record creation with field mappings and default values.\"},{\"slug\":\"SALESFORCE_EXECUTE_SOQL_QUERY\",\"name\":\"Execute SOQL query (Deprecated)\",\"description\":\"DEPRECATED: Use SALESFORCE_RUN_SOQL_QUERY instead. Executes the provided SOQL query against Salesforce; the query must begin with 'SELECT'.\"},{\"slug\":\"SALESFORCE_EXECUTE_SOSL_SEARCH\",\"name\":\"Execute SOSL search\",\"description\":\"Execute a SOSL search to search across multiple Salesforce objects. Use when you need to search for text across multiple object types simultaneously.\"},{\"slug\":\"SALESFORCE_FETCH_ACCOUNT_BY_ID_WITH_QUERY\",\"name\":\"Fetch account by ID with query\",\"description\":\"DEPRECATED: Use this action to retrieve a Salesforce Account by its unique ID, which must be a valid and existing Salesforce Account ID; you can optionally specify a comma-delimited list of fields to return.\"},{\"slug\":\"SALESFORCE_GET_A_BATCH_OF_RECORDS\",\"name\":\"Get batch of UI API records\",\"description\":\"Tool to retrieve multiple Salesforce records in a single request with customizable field selection. Use when you need to fetch data for multiple records at once (up to 200 records).\"},{\"slug\":\"SALESFORCE_GET_ACCOUNT\",\"name\":\"Get account\",\"description\":\"Retrieves a specific account by ID from Salesforce, returning all available fields.\"},{\"slug\":\"SALESFORCE_GET_ALL_CUSTOM_OBJECTS\",\"name\":\"Get all objects\",\"description\":\"Retrieves Salesforce objects (standard and custom) with detailed metadata. Each object includes a 'custom' field to identify custom objects. Note: the underlying Global Describe (/sobjects) is not paginated — it returns every object in one call — so the page/page_size parameters here are CLIENT-SIDE convenience slicing of that full list, not a server cursor. The full list is fetched on every call, and a page past the end returns an empty slice. Use when you need to discover available objects or their capabilities.\"},{\"slug\":\"SALESFORCE_GET_ALL_FIELDS_FOR_OBJECT\",\"name\":\"Get all fields for an object\",\"description\":\"Retrieves all fields (standard and custom) for a Salesforce object with complete metadata including field types, constraints, picklist values, and relationships.\"},{\"slug\":\"SALESFORCE_GET_ALL_NAVIGATION_ITEMS\",\"name\":\"Get all navigation items\",\"description\":\"Gets all navigation items (tabs) that the user has access to. Use when you need to retrieve available navigation tabs for display or navigation purposes.\"},{\"slug\":\"SALESFORCE_GET_API\",\"name\":\"Get API resources by version\",\"description\":\"Tool to discover available REST API resources for a specified Salesforce API version. Use when you need to find available endpoints and their URIs for a specific API version.\"},{\"slug\":\"SALESFORCE_GET_APP\",\"name\":\"Get an app\",\"description\":\"Tool to get metadata about a specific Salesforce app by ID. Use when you need to retrieve app configuration details and navigation items for a particular application.\"},{\"slug\":\"SALESFORCE_GET_APPS\",\"name\":\"Get apps\",\"description\":\"Tool to get metadata for all apps a user has access to. Use when you need to list available Salesforce applications or check app navigation items. Metadata for the selected app includes tabs on the app's navigation bar, while other apps don't include tab details.\"},{\"slug\":\"SALESFORCE_GET_CAMPAIGN\",\"name\":\"Get campaign\",\"description\":\"Retrieves a specific campaign by ID from Salesforce, returning all available fields.\"},{\"slug\":\"SALESFORCE_GET_CHATTER_RESOURCES\",\"name\":\"Get Chatter resources\",\"description\":\"Tool to access Chatter resources directory. Use when you need to discover available Chatter feeds, groups, users, email digest controls, emojis, extensions, or streams.\"},{\"slug\":\"SALESFORCE_GET_CHILD_RECORDS\",\"name\":\"Get child records\",\"description\":\"Tool to get child records for a specified parent record and child relationship name. Use when you need to retrieve related records from a parent-child relationship in Salesforce, such as getting all Contacts for an Account or all Opportunities for an Account. Results are paginated with configurable page size.\"},{\"slug\":\"SALESFORCE_GET_COMPACT_LAYOUTS\",\"name\":\"Get Compact Layouts\",\"description\":\"Tool to retrieve compact layout information for multiple Salesforce objects. Use when you need to display object data in compact form for Lightning Experience, mobile apps, or custom interfaces.\"},{\"slug\":\"SALESFORCE_GET_COMPOSITE_RESOURCES\",\"name\":\"Get composite resources\",\"description\":\"Tool to retrieve a list of available composite resources in Salesforce. Use when you need to discover which composite API endpoints are available for batch operations.\"},{\"slug\":\"SALESFORCE_GET_COMPOSITE_SOBJECTS\",\"name\":\"Get multiple records by IDs\",\"description\":\"Retrieves multiple records of the same object type by IDs with a request body. Use when you need to retrieve more records than URL length limits allow (up to 2000 records vs ~800 via GET).\"},{\"slug\":\"SALESFORCE_GET_CONSENT_ACTION\",\"name\":\"Get consent preferences\",\"description\":\"Tool to check consent preferences for a SINGLE action (e.g. email, track, fax, phone, solicit, shouldForget) across one or more records (Contact, Lead, User, Person Account, or Individual). Returns a result per identifier; the 'proceed' object is keyed by the requested action, not a fixed set of actions. To query multiple actions at once, use the /consent/multiaction endpoint instead.\"},{\"slug\":\"SALESFORCE_GET_CONTACT\",\"name\":\"Get contact\",\"description\":\"Retrieves a specific contact by ID from Salesforce, returning all available fields.\"},{\"slug\":\"SALESFORCE_GET_CONTACT_BY_ID\",\"name\":\"Retrieve specific contact by id\",\"description\":\"Retrieves a Salesforce Contact by its unique ID; the ID must correspond to an existing Contact record in Salesforce.\"},{\"slug\":\"SALESFORCE_GET_DASHBOARD\",\"name\":\"Get dashboard\",\"description\":\"Gets detailed metadata for a specific dashboard including its components, layout, and filters.\"},{\"slug\":\"SALESFORCE_GET_FILE_CONTENT\",\"name\":\"Get file content\",\"description\":\"Returns the binary content of a Salesforce file, including references to external files. Use when you need to download or retrieve the actual file data from Salesforce.\"},{\"slug\":\"SALESFORCE_GET_FILE_INFORMATION\",\"name\":\"Get file information\",\"description\":\"Tool to retrieve comprehensive metadata and information about a specified file in Salesforce. Use when you need detailed file information including ownership, sharing settings, download URLs, and rendition status.\"},{\"slug\":\"SALESFORCE_GET_FILE_SHARES\",\"name\":\"Get file shares\",\"description\":\"Returns information about the objects with which the specified file has been shared. Use when you need to understand who has access to a specific file in Salesforce.\"},{\"slug\":\"SALESFORCE_GET_GLOBAL_ACTIONS\",\"name\":\"Get global actions\",\"description\":\"Tool to retrieve actions displayed in the Salesforce Global Actions menu with metadata. Use when you need to discover available global actions, quick actions, or custom buttons in the UI.\"},{\"slug\":\"SALESFORCE_GET_JOB_FAILED_RECORD_RESULTS\",\"name\":\"Get job failed record results\",\"description\":\"Tool to retrieve failed records from a Salesforce Bulk API 2.0 ingest job. Use when you need to get records that failed during a bulk operation, including error messages and original data.\"},{\"slug\":\"SALESFORCE_GET_JOB_SUCCESSFUL_RECORD_RESULTS\",\"name\":\"Get job successful record results\",\"description\":\"Tool to retrieve successfully processed records from a Salesforce Bulk API 2.0 ingest job. Use when you need to get records that were successfully created or updated during a bulk operation.\"},{\"slug\":\"SALESFORCE_GET_JOB_UNPROCESSED_RECORD_RESULTS\",\"name\":\"Get job unprocessed record results\",\"description\":\"Tool to retrieve unprocessed records from a Salesforce Bulk API 2.0 ingest job. Use when you need to get records that were not processed during a bulk operation, typically due to job abortion or interruption.\"},{\"slug\":\"SALESFORCE_GET_LAST_SELECTED_APP\",\"name\":\"Get last selected app\",\"description\":\"Retrieves the app the current user last selected or the app the user sees by default. Use when you need to determine which application the user is currently working in or should be using.\"},{\"slug\":\"SALESFORCE_GET_LEAD\",\"name\":\"Get lead\",\"description\":\"Retrieves a specific lead by ID from Salesforce, returning all available fields.\"},{\"slug\":\"SALESFORCE_GET_LIST_VIEW_ACTIONS\",\"name\":\"Get List View Header Actions\",\"description\":\"Tool to retrieve header actions on list views. Use when you need to get available actions, buttons, and quick actions displayed on a specific list view header in Salesforce.\"},{\"slug\":\"SALESFORCE_GET_LIST_VIEW_METADATA_BATCH\",\"name\":\"Get batch of list view metadata\",\"description\":\"Tool to retrieve metadata for multiple list views in a single batch request. Use when you need to get list view configuration, columns, filters, and sorting for multiple list views at once.\"},{\"slug\":\"SALESFORCE_GET_LIST_VIEW_METADATA_BY_NAME\",\"name\":\"Get list view metadata\",\"description\":\"Returns list view metadata by object and list view API name. Use when you need to retrieve complete metadata information for a specific list view, including display columns, filters, sort order, permissions, and user preferences.\"},{\"slug\":\"SALESFORCE_GET_LIST_VIEW_RECORDS_BY_ID\",\"name\":\"Get list view records by ID\",\"description\":\"Returns record data for a list view by its ID. Use when you need to retrieve records from a specific Salesforce list view.\"},{\"slug\":\"SALESFORCE_GET_LIST_VIEW_RECORDS_BY_NAME\",\"name\":\"Get list view records by API name\",\"description\":\"Retrieves paginated record data for a specified list view using the object and list view API names. Use when you need to fetch records that match a specific list view's filters and sorting criteria. Returns the same data that powers Lightning Experience list views.\"},{\"slug\":\"SALESFORCE_GET_LIST_VIEW_RESULTS\",\"name\":\"Get list view results\",\"description\":\"Retrieves the results of a list view for a specified sObject. Returns column definitions and record data with a 2,000 record limit per response.\"},{\"slug\":\"SALESFORCE_GET_LOOKUP_FIELD_SUGGESTIONS\",\"name\":\"Get lookup field suggestions\",\"description\":\"Tool to retrieve lookup field suggestions for editing lookup fields with search filtering. Use when searching for records to populate a lookup field, supporting typeahead, recent, and full-text search.\"},{\"slug\":\"SALESFORCE_GET_LOOKUP_SUGGESTIONS_CASE_CONTACT\",\"name\":\"Get lookup field suggestions with POST\",\"description\":\"Tool to get lookup field suggestions with POST request. Use when editing lookup fields with dependent lookup filtering or when you need to pass source record context in the request body.\"},{\"slug\":\"SALESFORCE_GET_MRU_LIST_VIEW_METADATA\",\"name\":\"Get MRU list view metadata\",\"description\":\"Tool to retrieve MRU list view metadata for a Salesforce object. Use when you need to understand the structure and configuration of the most recently used list view for an object.\"},{\"slug\":\"SALESFORCE_GET_MRU_LIST_VIEW_RECORDS\",\"name\":\"Get most recently used list view records\",\"description\":\"Tool to retrieve record data for an object's most recently used (MRU) list view. Use when you need to get the records that a user has recently accessed for a specific Salesforce object type.\"},{\"slug\":\"SALESFORCE_GET_NOTE\",\"name\":\"Get note\",\"description\":\"Retrieves a specific note by ID from Salesforce, returning all available fields. Notes with IsPrivate=true require the integration user to have sufficient permissions; inaccessible private notes will not be returned.\"},{\"slug\":\"SALESFORCE_GET_NOTE_BY_ID_WITH_FIELDS\",\"name\":\"Retrieve Note with conditions\",\"description\":\"DEPRECATED: Retrieves a Salesforce Note object by its ID, optionally specifying which fields to return; the Note ID must exist.\"},{\"slug\":\"SALESFORCE_GET_OBJECT_LIST_VIEWS\",\"name\":\"Get list views for an object\",\"description\":\"Returns a collection of list views associated with a Salesforce object. Use when you need to discover available list views for an object like Account, Contact, or Opportunity.\"},{\"slug\":\"SALESFORCE_GET_OPPORTUNITY\",\"name\":\"Get opportunity\",\"description\":\"Retrieves a specific opportunity by ID from Salesforce, returning all available fields.\"},{\"slug\":\"SALESFORCE_GET_ORG_LIMITS\",\"name\":\"Get organization limits\",\"description\":\"Tool to retrieve organization limits with max and remaining allocations. Use when you need to check API usage, storage limits, or other resource consumption in Salesforce.\"},{\"slug\":\"SALESFORCE_GET_PHOTO_ACTIONS\",\"name\":\"Get photo actions\",\"description\":\"Tool to retrieve available photo actions for Salesforce pages. Use when you need to get photo management actions for user or group pages. Currently, only group and user pages support photo actions.\"},{\"slug\":\"SALESFORCE_GET_PICKLIST_VALUES_BY_RECORD_TYPE\",\"name\":\"Get Values for All Picklist Fields\",\"description\":\"Tool to get values for all picklist fields of a record type, including dependent picklists. Use when you need to retrieve available picklist options for a specific object and record type, especially for dependent picklist hierarchies.\"},{\"slug\":\"SALESFORCE_GET_QUERY_JOB_INFO\",\"name\":\"Get job info query\",\"description\":\"Tool to retrieve information about a Salesforce Bulk API v2 query job. Use when you need to check the status and details of a query job.\"},{\"slug\":\"SALESFORCE_GET_QUERY_JOB_RESULTS\",\"name\":\"Get job query result\",\"description\":\"Retrieves results for a completed Bulk API v2 query job in CSV format. Supports pagination for large datasets via maxRecords and locator parameters.\"},{\"slug\":\"SALESFORCE_GET_QUICK_ACTIONS\",\"name\":\"Get quick actions\",\"description\":\"Tool to retrieve global and object-specific quick actions from Salesforce. Use when you need to list all available quick actions in the organization.\"},{\"slug\":\"SALESFORCE_GET_RECORD_COUNTS\",\"name\":\"Get record count for objects\",\"description\":\"Tool to retrieve total record counts for specified Salesforce objects. Use when you need to check storage usage or understand data volume for specific sObjects.\"},{\"slug\":\"SALESFORCE_GET_RECORD_EDIT_PAGE_ACTIONS\",\"name\":\"Get record edit page actions\",\"description\":\"Tool to get available actions on record edit pages. Use when you need to retrieve metadata about actions (standard actions, custom actions, quick actions, productivity actions) displayed on the record edit page for specific records.\"},{\"slug\":\"SALESFORCE_GET_RELATED_LIST_ACTIONS\",\"name\":\"Get related list actions\",\"description\":\"Tool to get actions on related lists for record detail pages. Use when you need to retrieve metadata about all available actions (standard buttons, quick actions, custom buttons, and productivity actions) that can be performed on records within a specific related list context.\"},{\"slug\":\"SALESFORCE_GET_RELATED_LIST_PREFERENCES_BATCH\",\"name\":\"Get batch of related list user preferences\",\"description\":\"Tool to get a batch of related list user preferences from Salesforce. Use when retrieving display preferences, column widths, or sort orders for multiple related lists simultaneously.\"},{\"slug\":\"SALESFORCE_GET_RELATED_LIST_RECORDS_CONTACTS\",\"name\":\"Get related list records with request body\",\"description\":\"Tool to retrieve related list records with request body parameters for filtering and pagination. Use when you need to get records from a related list associated with a parent record with complex query parameters. Returns up to 1,999 records per related list with pagination support.\"},{\"slug\":\"SALESFORCE_GET_REPORT\",\"name\":\"Get report metadata\",\"description\":\"Gets detailed metadata for a specific report including its structure, columns, filters, and groupings. Only fields included in the report layout are returned; use SALESFORCE_RUN_SOQL_QUERY when specific fields outside the report layout are required.\"},{\"slug\":\"SALESFORCE_GET_REPORT_INSTANCE\",\"name\":\"Get report instance results\",\"description\":\"Gets the results of a report instance created by running a report. Poll `attributes.status` until it equals 'Success' before parsing results. Response data is nested under `factMap` and `reportExtendedMetadata`; an empty `factMap` or zero rows is a valid successful result, not an error.\"},{\"slug\":\"SALESFORCE_GET_SEARCH_LAYOUT\",\"name\":\"Get search result layouts\",\"description\":\"Retrieves search result layout information for specified sObjects. Use when you need to understand which fields are displayed in search results for objects.\"},{\"slug\":\"SALESFORCE_GET_SEARCH_SUGGESTIONS\",\"name\":\"Search suggested queries\",\"description\":\"Returns a list of suggested searches based on the user's query string. Use when you want to help users discover relevant search terms before performing a search.\"},{\"slug\":\"SALESFORCE_GET_SOBJECT_BY_EXTERNAL_ID\",\"name\":\"Get sObject by external ID\",\"description\":\"Tool to retrieve a Salesforce record by matching an external ID field value. Use when you need to find a record using a custom external identifier instead of the Salesforce ID. The field specified must be marked as an External ID in Salesforce.\"},{\"slug\":\"SALESFORCE_GET_SOBJECT_COLLECTIONS\",\"name\":\"Get multiple sObject records\",\"description\":\"Tool to retrieve multiple records of the same sObject type in a single API call. Use when you need to fetch up to 200 records by their IDs. Returns an array of sObjects with the specified fields.\"},{\"slug\":\"SALESFORCE_GET_SOBJECT_LIST_VIEW\",\"name\":\"Get sObject list view information\",\"description\":\"Tool to retrieve basic information about a specific list view for an sObject. Use when you need to get list view metadata including its ID, label, developer name, and URLs for accessing results and detailed descriptions.\"},{\"slug\":\"SALESFORCE_GET_SOBJECT_LIST_VIEWS\",\"name\":\"Get list views for sObject\",\"description\":\"Tool to retrieve list views for a specified sObject. Use when you need to discover available filtered views of records for objects like Account, Contact, Lead, or Opportunity.\"},{\"slug\":\"SALESFORCE_GET_SOBJECT_PLATFORMACTION\",\"name\":\"Get PlatformAction SObject metadata\",\"description\":\"Retrieves metadata description of PlatformAction SObject. Use when you need to understand the structure and fields of PlatformAction for querying UI actions.\"},{\"slug\":\"SALESFORCE_GET_S_OBJECT_QUICK_ACTION_DEFAULT_VALUES\",\"name\":\"Get sObject Quick Action Default Values by ID\",\"description\":\"Retrieves default field values for a quick action in a specific record context. Use when you need to pre-populate fields when creating related records through quick actions.\"},{\"slug\":\"SALESFORCE_GET_SOBJECT_QUICK_ACTION_DEFAULT_VALUES\",\"name\":\"Get sObject Quick Action Default Values\",\"description\":\"Retrieves default field values for a specific quick action on an sObject. Use when you need to understand what fields will be automatically populated when executing the quick action.\"},{\"slug\":\"SALESFORCE_GET_S_OBJECT_RECORD\",\"name\":\"Get sObject record by ID\",\"description\":\"Tool to retrieve a single Salesforce record by ID from any sObject type. Use when you need to get detailed information about a specific record.\"},{\"slug\":\"SALESFORCE_GET_SOBJECT_RELATIONSHIP\",\"name\":\"Get records using sObject relationships\",\"description\":\"Retrieves records by traversing sObject relationships using friendly URLs. Use when you need to get related records through a relationship field (e.g., all Contacts for an Account).\"},{\"slug\":\"SALESFORCE_GET_S_OBJECTS_DESCRIBE_LAYOUTS_RECORD_TYPE_ID\",\"name\":\"Get layouts for object with record type\",\"description\":\"Tool to retrieve layout metadata for a specific record type on an object. Use when you need detailed information about page layouts, field positioning, sections, quick actions, related lists, and buttons for a particular record type.\"},{\"slug\":\"SALESFORCE_GET_SOBJECTS_SOBJECT_DESCRIBE_APPROVALLAYOUTS\",\"name\":\"Get approval layouts for object\",\"description\":\"Retrieves approval layouts for a specified Salesforce object. Use when you need to understand which fields are displayed in approval pages or to dynamically build approval interfaces.\"},{\"slug\":\"SALESFORCE_GET_S_OBJECTS_UPDATED\",\"name\":\"Get updated sObject records\",\"description\":\"Tool to retrieve a list of sObject records that have been updated within a given timeframe. Use when you need to synchronize records or track changes to specific sObject types over a time period.\"},{\"slug\":\"SALESFORCE_GET_SUPPORT\",\"name\":\"Get support knowledge\",\"description\":\"Retrieves the root of the Support Knowledge REST API. Use when you need to access knowledge articles and data category information.\"},{\"slug\":\"SALESFORCE_GET_SUPPORTED_OBJECTS_DIRECTORY\",\"name\":\"Get directory of supported objects\",\"description\":\"Tool to get a Salesforce org's active theme and directory of supported objects. Use when you need to discover available objects that are supported by the User Interface API, including their CRUD permissions, labels, and theme information.\"},{\"slug\":\"SALESFORCE_GET_SUPPORT_KNOWLEDGE_ARTICLES\",\"name\":\"Get support knowledge articles\",\"description\":\"Retrieves user's visible knowledge articles and data categories from Salesforce Knowledge. Use when you need to access published, draft, or archived articles based on user permissions.\"},{\"slug\":\"SALESFORCE_GET_THEME\",\"name\":\"Get theme\",\"description\":\"Tool to get icons and colors for Salesforce UI themes. Use when you need to retrieve theme information for objects in the organization.\"},{\"slug\":\"SALESFORCE_GET_UI_API_ACTIONS_LOOKUP_ACCOUNT\",\"name\":\"Get lookup field actions\",\"description\":\"Tool to get lookup field actions for a Salesforce object. Use when you need to retrieve available actions for lookup fields on a specific object type (e.g., Account, Contact).\"},{\"slug\":\"SALESFORCE_GET_UIAPI_ACTIONS_MRU_LIST_ACCOUNT\",\"name\":\"Get MRU List View Actions\",\"description\":\"Tool to retrieve header actions available on the MRU (Most Recently Used) list view for a specified Salesforce object. Use when you need to get available actions, buttons, and quick actions for an object's list view.\"},{\"slug\":\"SALESFORCE_GET_UI_API_ACTIONS_RECORD_RELATED_LIST\",\"name\":\"Get related list actions\",\"description\":\"Tool to get available actions on related lists for a record detail page. Use when you need to retrieve metadata about actions (standard actions, custom actions, quick actions, productivity actions) displayed on related lists for a specific parent record.\"},{\"slug\":\"SALESFORCE_GET_UI_API_APPS_USER_NAV_ITEMS\",\"name\":\"Get Personalized Navigation Items\",\"description\":\"Tool to get personalized navigation items for a specific Salesforce app. Use when you need to retrieve the navigation tabs that a user has access to within an application.\"},{\"slug\":\"SALESFORCE_GET_UIAPI_LIST_INFO_ACCOUNT_ALL_ACCOUNTS\",\"name\":\"Get Account AllAccounts list view metadata\",\"description\":\"Retrieves list view metadata for the Account AllAccounts view using Salesforce UI API. Use when you need to understand the structure, columns, filters, and sorting of the standard AllAccounts list view.\"},{\"slug\":\"SALESFORCE_GET_UIAPI_LIST_INFO_ACCOUNT_RECENT\",\"name\":\"Get List View Metadata\",\"description\":\"Tool to get list view metadata from Salesforce UI API. Use when you need to retrieve configuration details for a list view including columns, filters, sorting, and permissions.\"},{\"slug\":\"SALESFORCE_GET_UIAPI_LIST_INFO_ACCOUNT_SEARCH_RESULT\",\"name\":\"Get Account SearchResult list view metadata\",\"description\":\"Retrieves list view metadata for the Account __SearchResult view using Salesforce UI API. Use when you need to understand the structure, columns, filters, and sorting of search results for Accounts.\"},{\"slug\":\"SALESFORCE_GET_UI_API_LIST_INFO_RECENT\",\"name\":\"Get List Views for Object\",\"description\":\"Tool to get list views for a Salesforce object. Use when you need to retrieve available list views with options to filter by recent usage and search.\"},{\"slug\":\"SALESFORCE_GET_UIAPIMRU_LIST_INFO_ACCOUNT\",\"name\":\"Get MRU List Info for Account\",\"description\":\"Tool to get Most Recently Used (MRU) list view metadata for Account object. Use when you need to retrieve list view settings, display columns, and preferences. Note: This endpoint is deprecated and no longer updates.\"},{\"slug\":\"SALESFORCE_GET_UI_API_MRU_LIST_RECORDS_ACCOUNT\",\"name\":\"Get MRU List Records for Account\",\"description\":\"Tool to get Most Recently Used (MRU) list view records for Account object. Use when you need to retrieve recently accessed Account records. Note: This endpoint is deprecated and no longer updates. It is not part of the Services under your Main Services Agreement with Salesforce and is for evaluation purposes only, not for production use.\"},{\"slug\":\"SALESFORCE_GET_UI_API_RECORD_UI\",\"name\":\"Get record UI data and metadata\",\"description\":\"Tool to retrieve layout, field metadata, and record data in a single response. Use when you need comprehensive information including UI layout configuration, object metadata, and actual record values with child relationships.\"},{\"slug\":\"SALESFORCE_GET_UIAPI_RELATED_LIST_PREFERENCES\",\"name\":\"Get related list user preferences\",\"description\":\"Tool to retrieve user preferences for a specific related list on an object. Use when you need to get display settings, column widths, or sort preferences for related lists in Salesforce UI.\"},{\"slug\":\"SALESFORCE_GET_USER_INFO\",\"name\":\"Get user info\",\"description\":\"Retrieves information about the current user or a specific user in Salesforce.\"},{\"slug\":\"SALESFORCE_HEAD_ACTIONS_CUSTOM\",\"name\":\"Get custom actions headers\",\"description\":\"Tool to return HTTP headers for custom invocable actions without response body. Use when you need to check resource availability and metadata before executing full requests or to validate resource state conditionally.\"},{\"slug\":\"SALESFORCE_HEAD_ACTIONS_STANDARD\",\"name\":\"Get standard actions headers\",\"description\":\"Tool to return HTTP headers for standard invocable actions metadata without response body. Use when you need to perform efficient cache validation, check for metadata changes, or reduce bandwidth usage before retrieving full action metadata.\"},{\"slug\":\"SALESFORCE_HEAD_APPMENU_SALESFORCE1\",\"name\":\"Get AppMenu Salesforce1 headers\",\"description\":\"Tool to return HTTP headers for AppMenu Salesforce1 mobile navigation items without response body. Use when you need to check resource metadata, validate cache (via ETag or Last-Modified), or test endpoint availability without data transfer overhead.\"},{\"slug\":\"SALESFORCE_HEAD_PROCESS_RULES_S_OBJECT\",\"name\":\"Get process rules headers\",\"description\":\"Tool to return HTTP headers for process rules of an sObject without retrieving the response body. Use when you need to check if process rules exist for an sObject or retrieve metadata like ETag and Last-Modified headers.\"},{\"slug\":\"SALESFORCE_HEAD_QUICK_ACTIONS\",\"name\":\"Get Quick Actions headers\",\"description\":\"Tool to return HTTP headers for Quick Actions resource without response body. Use when you need to inspect metadata before retrieving full Quick Actions content or to validate resource availability.\"},{\"slug\":\"SALESFORCE_HEAD_SOBJECT_QUICK_ACTION_DEFAULT_VALUES\",\"name\":\"Get quick action default values headers by ID\",\"description\":\"Tool to return HTTP headers for sObject quick action default values by context ID without response body. Use when you need to check resource availability, verify cache validation headers (ETag, Last-Modified), or optimize API calls by avoiding unnecessary data transfer.\"},{\"slug\":\"SALESFORCE_HEAD_SOBJECTS_GLOBAL_DESCRIBE_LAYOUTS\",\"name\":\"Get global publisher layouts headers\",\"description\":\"Tool to return HTTP headers for all global publisher layouts without response body. Use when implementing cache validation strategies, efficient resource polling, or checking if layouts have been modified without transferring layout data.\"},{\"slug\":\"SALESFORCE_HEAD_SOBJECTS_QUICK_ACTION\",\"name\":\"Get sObject quick action headers\",\"description\":\"Tool to return HTTP headers for a specific sObject quick action without response body. Use when you need to check ETag or Last-Modified headers before fetching full content or to validate quick action availability.\"},{\"slug\":\"SALESFORCE_HEAD_SOBJECTS_USER_PASSWORD\",\"name\":\"Get User password headers\",\"description\":\"Tool to return HTTP headers for User password resource without response body. Use when you need to check user password metadata and expiration status efficiently without retrieving the full response content.\"},{\"slug\":\"SALESFORCE_LIST_ACCOUNTS\",\"name\":\"List accounts\",\"description\":\"Lists accounts from Salesforce using SOQL query, allowing flexible filtering, sorting, and field selection. Results paginate via nextRecordsUrl with up to ~2000 rows per page. REQUEST_LIMIT_EXCEEDED requires exponential backoff; INVALID_FIELD or INSUFFICIENT_ACCESS_OR_READONLY errors indicate profile or field-level restrictions — simplify SELECT/WHERE clauses.\"},{\"slug\":\"SALESFORCE_LIST_ANALYTICS_TEMPLATES\",\"name\":\"List Analytics templates\",\"description\":\"Tool to list CRM Analytics templates available in the org. Use when you need to discover available templates for creating Analytics apps.\"},{\"slug\":\"SALESFORCE_LIST_CAMPAIGNS\",\"name\":\"List campaigns\",\"description\":\"Lists campaigns from Salesforce using SOQL query, allowing flexible filtering, sorting, and field selection. Results returned under `response_data.records`; use `Id` (not `Name`) to identify campaigns in downstream operations.\"},{\"slug\":\"SALESFORCE_LIST_CONTACTS\",\"name\":\"List contacts\",\"description\":\"Lists contacts from Salesforce using SOQL query, allowing flexible filtering, sorting, and field selection. Results are returned under `response_data.records`; check `response_data.done` and `response_data.totalSize` for pagination — use OFFSET or `nextRecordsUrl` until `done=true` to retrieve all records.\"},{\"slug\":\"SALESFORCE_LIST_CUSTOM_INVOCABLE_ACTIONS\",\"name\":\"Get custom invocable actions\",\"description\":\"Retrieves the list of custom actions including Flow actions, Apex actions, and invocable processes. Use when you need to discover available custom invocable actions in your Salesforce organization.\"},{\"slug\":\"SALESFORCE_LIST_DASHBOARDS\",\"name\":\"List dashboards\",\"description\":\"Lists dashboards with basic metadata including name, ID, and URLs. Note: the Analytics REST API (GET /analytics/dashboards) returns only up to ~200 recently-viewed dashboards, not the org's entire dashboard catalog.\"},{\"slug\":\"SALESFORCE_LIST_EMAIL_TEMPLATES\",\"name\":\"List email templates\",\"description\":\"Lists available email templates in Salesforce with filtering and search capabilities.\"},{\"slug\":\"SALESFORCE_LIST_LEADS\",\"name\":\"List leads\",\"description\":\"Lists leads from Salesforce using SOQL query, allowing flexible filtering, sorting, and field selection. Results are paginated; follow nextRecordsUrl in the response to retrieve subsequent pages — the first page may silently omit matching records beyond the page limit.\"},{\"slug\":\"SALESFORCE_LIST_NOTES\",\"name\":\"List notes\",\"description\":\"Lists notes from Salesforce using SOQL query, allowing flexible filtering, sorting, and field selection. Designed specifically for Note and ContentNote objects.\"},{\"slug\":\"SALESFORCE_LIST_OPPORTUNITIES\",\"name\":\"List opportunities\",\"description\":\"Lists opportunities from Salesforce using SOQL query, allowing flexible filtering, sorting, and field selection. Results are paginated up to ~2000 rows per batch; check `done`, `totalSize`, and `nextRecordsUrl` fields to detect and retrieve additional pages, or use a SOQL `LIMIT` clause to cap results. For complex queries rejected by this tool, use `SALESFORCE_RUN_SOQL_QUERY` instead.\"},{\"slug\":\"SALESFORCE_LIST_PRICEBOOK_ENTRIES\",\"name\":\"List pricebook entries\",\"description\":\"Lists pricebook entries from Salesforce using SOQL query, allowing flexible filtering, sorting, and field selection. Use this to map product names to pricebook entry IDs needed for opportunity line items. When using returned IDs with SALESFORCE_ADD_OPPORTUNITY_LINE_ITEM, always filter with WHERE IsActive = true — inactive entries cause REQUIRED_FIELD_MISSING or INVALID_CROSS_REFERENCE_KEY errors.\"},{\"slug\":\"SALESFORCE_LIST_PRICEBOOKS\",\"name\":\"List pricebooks\",\"description\":\"Lists pricebooks from Salesforce using SOQL query, allowing flexible filtering, sorting, and field selection. Use this to map pricebook names to IDs.\"},{\"slug\":\"SALESFORCE_LIST_REPORTS\",\"name\":\"List reports\",\"description\":\"Lists reports with basic metadata including name, ID, and URLs. Note: the Analytics REST API (GET /analytics/reports) returns only up to ~200 recently-viewed reports, not the org's entire report catalog.\"},{\"slug\":\"SALESFORCE_LIST_STANDARD_INVOCABLE_ACTIONS\",\"name\":\"Get standard invocable actions\",\"description\":\"Retrieves the list of standard actions that can be statically invoked. Use when you need to discover available standard invocable actions like posting to Chatter, sending email, or sending custom notifications.\"},{\"slug\":\"SALESFORCE_LOG_CALL\",\"name\":\"Log call\",\"description\":\"Logs a completed phone call as a task in Salesforce with call-specific details like duration, type, and disposition.\"},{\"slug\":\"SALESFORCE_LOG_EMAIL_ACTIVITY\",\"name\":\"Log email activity\",\"description\":\"Creates an EmailMessage record to log email activity in Salesforce, associating it with related records. Requires EmailMessage insert permissions enabled at the org level; some orgs block this entirely.\"},{\"slug\":\"SALESFORCE_MASS_TRANSFER_OWNERSHIP\",\"name\":\"Mass transfer ownership\",\"description\":\"Transfers ownership of multiple records to a new owner in a single operation using Salesforce's composite API for better performance. Operation has no rollback; all provided records are reassigned immediately.\"},{\"slug\":\"SALESFORCE_PARAMETERIZED_SEARCH\",\"name\":\"Parameterized Search\",\"description\":\"Tool to execute RESTful search using parameters instead of SOSL clause. Use when you need to search across Salesforce objects with simple GET requests (URL parameters) or complex POST requests (JSON body with advanced filtering). POST method supports DataCategories, networks, orderBy constraints, and per-object filtering.\"},{\"slug\":\"SALESFORCE_PATCH_COMPOSITE_SOBJECTS\",\"name\":\"Upsert records using external ID\",\"description\":\"Tool to upsert up to 200 records using external ID field matching. Use when you need to create or update multiple records efficiently in a single API call based on an external ID field.\"},{\"slug\":\"SALESFORCE_POST_COMPOSITE_GRAPH\",\"name\":\"Execute Composite Graph\",\"description\":\"Tool to execute multiple related REST API requests in a single transactional call with up to 500 subrequests per graph. Use when you need to perform multiple Salesforce operations atomically where all operations must succeed or fail together. Supports referencing output from one request as input to subsequent requests using @{referenceId.fieldName} syntax.\"},{\"slug\":\"SALESFORCE_POST_COMPOSITE_SOBJECTS\",\"name\":\"Create records using sObject Collections\",\"description\":\"Tool to create up to 200 records in one request using sObject Collections. Use when you need to create multiple records of potentially different sObject types efficiently in a single API call.\"},{\"slug\":\"SALESFORCE_POST_PARAMETERIZED_SEARCH\",\"name\":\"Parameterized Search\",\"description\":\"Tool to execute parameterized search across Salesforce objects with advanced filtering. Use when you need to search for records using specific search terms with fine-grained control over which objects to search, which fields to return, and additional filtering criteria.\"},{\"slug\":\"SALESFORCE_QUERY\",\"name\":\"Execute SOQL Query (Deprecated)\",\"description\":\"DEPRECATED: Use SALESFORCE_RUN_SOQL_QUERY instead. Tool to execute SOQL queries against Salesforce. Use when you need to retrieve data from Salesforce objects using SOQL syntax. Returns up to 2000 records per request with pagination support via nextRecordsUrl.\"},{\"slug\":\"SALESFORCE_QUERY_ALL\",\"name\":\"Query All (including deleted)\",\"description\":\"Tool to execute SOQL queries including soft-deleted and archived records. Use when you need to query records that have been deleted via merge or delete operations, or when accessing archived Task and Event records.\"},{\"slug\":\"SALESFORCE_QUERY_CONTACTS_BY_NAME\",\"name\":\"Query contacts by name\",\"description\":\"DEPRECATED: Finds Salesforce Contact records by name using a case-insensitive search.\"},{\"slug\":\"SALESFORCE_QUERY_MORE\",\"name\":\"Query more (next page of SOQL results)\",\"description\":\"Retrieve the next page of SOQL results using a query locator (GET /query/{queryLocator}). SOQL queries return at most ~2000 rows per response plus a nextRecordsUrl when more remain; this action follows that locator. Call it repeatedly, passing each response's nextRecordsUrl, until done=true. Without it, run_soql_query / query results beyond the first page are unreachable.\"},{\"slug\":\"SALESFORCE_QUERY_REPORT\",\"name\":\"Query report\",\"description\":\"DEPRECATED: Executes a Salesforce report synchronously by its `id` and `reportType`, optionally with dynamic ad-hoc adjustments like filters or groupings, and returns its data without modifying the saved report.\"},{\"slug\":\"SALESFORCE_REMOVE_ACCOUNT_BY_UNIQUE_IDENTIFIER\",\"name\":\"Remove account by unique identifier\",\"description\":\"DEPRECATED: Deletes an existing Salesforce Account using its unique ID, returning an empty response on success (HTTP 204).\"},{\"slug\":\"SALESFORCE_REMOVE_A_SPECIFIC_CONTACT_BY_ID\",\"name\":\"Remove a specific contact by id\",\"description\":\"DEPRECATED: Permanently deletes a specific Contact from Salesforce using its unique ID, which must correspond to an existing record.\"},{\"slug\":\"SALESFORCE_REMOVE_CAMPAIGN_OBJECT_BY_ID\",\"name\":\"Remove campaign object by id\",\"description\":\"DEPRECATED: Permanently deletes a specific Campaign SObject in Salesforce using its unique ID.\"},{\"slug\":\"SALESFORCE_REMOVE_FROM_CAMPAIGN\",\"name\":\"Remove from campaign\",\"description\":\"Removes a lead or contact from a campaign by deleting the CampaignMember record. Provide either the member_id (lead/contact ID) or the specific campaign_member_id.\"},{\"slug\":\"SALESFORCE_REMOVE_NOTE_OBJECT_BY_ID\",\"name\":\"Remove note object by id\",\"description\":\"DEPRECATED: Permanently deletes an existing Salesforce Note object identified by its unique ID.\"},{\"slug\":\"SALESFORCE_REMOVE_OPPORTUNITY_BY_ID\",\"name\":\"Remove opportunity by id\",\"description\":\"DEPRECATED: Permanently deletes an existing Salesforce Opportunity by its ID; if the Opportunity does not exist, a 'not found' (404) error occurs.\"},{\"slug\":\"SALESFORCE_RETRIEVE_ACCOUNT_DATA_AND_ERROR_RESPONSES\",\"name\":\"Retrieve account data and error responses\",\"description\":\"DEPRECATED: Retrieves comprehensive metadata for the Salesforce Account sObject, detailing its properties, recent records, and related resource URLs.\"},{\"slug\":\"SALESFORCE_RETRIEVE_CAMPAIGN_DATA_WITH_ERROR_HANDLING\",\"name\":\"Retrieve campaign data with error handling\",\"description\":\"DEPRECATED: Retrieves comprehensive information and metadata for the Salesforce Campaign sObject, provided it is enabled and accessible in the organization, and features robust error handling.\"},{\"slug\":\"SALESFORCE_RETRIEVE_CONTACT_INFO_WITH_STANDARD_RESPONSES\",\"name\":\"Retrieve contact object metadata\",\"description\":\"DEPRECATED: Retrieves comprehensive metadata (e.g., fields, data types, picklist values) for the Salesforce Contact SObject; this action does not retrieve individual contact records.\"},{\"slug\":\"SALESFORCE_RETRIEVE_LEAD_BY_ID\",\"name\":\"Retrieve lead by id\",\"description\":\"Retrieves details for a Salesforce Lead by its ID; the specified Lead ID must exist in Salesforce.\"},{\"slug\":\"SALESFORCE_RETRIEVE_LEAD_DATA_WITH_VARIOUS_RESPONSES\",\"name\":\"Retrieve lead data with various responses\",\"description\":\"DEPRECATED: Retrieves Lead sObject data from Salesforce, such as recently viewed leads or general Lead object information.\"},{\"slug\":\"SALESFORCE_RETRIEVE_NOTE_OBJECT_INFORMATION\",\"name\":\"Retrieve note object information\",\"description\":\"DEPRECATED: Retrieves comprehensive metadata for the Salesforce 'Note' SObject, if it is enabled and accessible, to understand its structure and capabilities.\"},{\"slug\":\"SALESFORCE_RETRIEVE_OPPORTUNITIES_DATA\",\"name\":\"Retrieve opportunities data\",\"description\":\"Retrieves all available Opportunity records, representing potential revenue-generating deals, from Salesforce.\"},{\"slug\":\"SALESFORCE_RETRIEVE_OPPORTUNITY_BY_ID_WITH_OPTIONAL_FIELDS\",\"name\":\"Retrieve opportunity by id with optional fields\",\"description\":\"DEPRECATED: Retrieves a Salesforce Opportunity by its ID; the Opportunity ID must exist.\"},{\"slug\":\"SALESFORCE_RETRIEVE_SPECIFIC_CAMPAIGN_OBJECT_DETAILS\",\"name\":\"Retrieve specific campaign object details\",\"description\":\"DEPRECATED: Retrieves details for a specific Salesforce Campaign object by its ID, optionally limiting to specified fields; the Campaign object must exist.\"},{\"slug\":\"SALESFORCE_RETRIEVE_SPECIFIC_CONTACT_BY_ID\",\"name\":\"Retrieve specific contact by id\",\"description\":\"(DEPRECATED: use `SALESFORCE_GET_CONTACT_BY_ID`) Retrieves a Salesforce Contact by its unique ID; the ID must correspond to an existing Contact record in Salesforce.\"},{\"slug\":\"SALESFORCE_RUN_REPORT\",\"name\":\"Run report\",\"description\":\"Runs a report synchronously (GET /analytics/reports/{id}?includeDetails=true) and returns the results in one call. This does NOT create an asynchronous report instance — for that, use the async run resource. Results are returned in a nested structure (factMap, reportExtendedMetadata), not a flat record list; an empty factMap/rows is a valid result. Avoid repeated calls when freshness allows.\"},{\"slug\":\"SALESFORCE_RUN_REPORT_ASYNC\",\"name\":\"Run report async\",\"description\":\"Run a Salesforce report asynchronously (POST /analytics/reports/{id}/instances). Returns an instance id and status; the report runs in the background. Retrieve results later with get_report_instance using the returned instance id. Use this (instead of the synchronous run_report) for large reports or to avoid blocking. Without this action, get_report_instance had no obtainable instance id.\"},{\"slug\":\"SALESFORCE_RUN_SOQL_QUERY\",\"name\":\"Run SOQL query\",\"description\":\"Executes a SOQL query against Salesforce data. Returns records matching the query with pagination support.\"},{\"slug\":\"SALESFORCE_SEARCH\",\"name\":\"Execute SOSL search\",\"description\":\"DEPRECATED: Use SALESFORCE_EXECUTE_SOSL_SEARCH instead. Executes a SOSL search query across multiple Salesforce objects. Use when you need to search for text across multiple object types simultaneously.\"},{\"slug\":\"SALESFORCE_SEARCH_ACCOUNTS\",\"name\":\"Search accounts\",\"description\":\"Search for Salesforce accounts using criteria like name, industry, type, location, or contact information. Always provide at least one filter parameter; omitting all filters returns a broad, slow listing. Owner/territory filtering is unsupported — use SALESFORCE_RUN_SOQL_QUERY for ownership-based filters. Use SALESFORCE_GET_ACCOUNT to fetch complete field data for a specific record. Unsupported filter fields may be silently ignored — verify results reflect intended criteria.\"},{\"slug\":\"SALESFORCE_SEARCH_CAMPAIGNS\",\"name\":\"Search campaigns\",\"description\":\"Search for Salesforce campaigns using multiple criteria like name, type, status, date range, or active status. Requires access to the Campaign object (Marketing User feature must be enabled in the org). For complex sorting (multi-field ORDER BY), use SALESFORCE_RUN_SOQL_QUERY instead.\"},{\"slug\":\"SALESFORCE_SEARCH_CONTACTS\",\"name\":\"Search contacts\",\"description\":\"Search Salesforce Contact records (not Leads — use SALESFORCE_SEARCH_LEADS for those) using name, email, phone, account, or title. All parameters support partial/fuzzy matching, so results may include unrelated records; post-filter client-side for exact matches. Partial matches and common names can return multiple contacts — always confirm the correct contact by its 18-character Id before passing to write operations like SALESFORCE_LOG_CALL or SALESFORCE_CREATE_TASK. A response with totalSize=0 is a valid 'not found' outcome. Provide at least one search criterion; omitting all returns a broad, slow result set. Returned Ids are 18-character strings and must be used as-is in downstream tools.\"},{\"slug\":\"SALESFORCE_SEARCH_KNOWLEDGE_ARTICLES\",\"name\":\"Search suggested article title matches\",\"description\":\"Search for Salesforce Knowledge articles with titles matching the search query. Returns auto-suggest results for Knowledge articles based on title matches.\"},{\"slug\":\"SALESFORCE_SEARCH_LEADS\",\"name\":\"Search leads\",\"description\":\"Search for Salesforce leads using criteria like name, email, phone, company, title, status, or lead source. At least one search criterion should be provided — omitting all parameters results in a broad, slow listing of arbitrary records. Partial matches on name, email, and company may return multiple candidates; confirm Email or Company field values before using a lead ID in downstream operations.\"},{\"slug\":\"SALESFORCE_SEARCH_NOTES\",\"name\":\"Search notes\",\"description\":\"Search for Salesforce notes using multiple criteria like title, body content, parent record, owner, or creation date. Provide at least one filter criterion — omitting all filters returns a broad, slow, noisy listing.\"},{\"slug\":\"SALESFORCE_SEARCH_OPPORTUNITIES\",\"name\":\"Search opportunities\",\"description\":\"Search for Salesforce opportunities using multiple criteria like name, account, stage, amount, close date, or status. Apply at least one filter to avoid broad result sets. Partial-match searches may return multiple similar records; verify the correct record by Id before downstream use.\"},{\"slug\":\"SALESFORCE_SEARCH_TASKS\",\"name\":\"Search tasks\",\"description\":\"Search for Salesforce tasks using multiple criteria like subject, status, priority, assigned user, related records, or dates. Always provide at least one filter criterion — no filters produces broad, slow results. For complex filtering not supported here, use SALESFORCE_RUN_SOQL_QUERY.\"},{\"slug\":\"SALESFORCE_SEND_EMAIL\",\"name\":\"Send email\",\"description\":\"Sends an email through Salesforce with options for recipients, attachments, and activity logging. Can partially succeed — check per-recipient success/failure status rather than treating the call as all-or-nothing. For large recipient lists, use SALESFORCE_SEND_MASS_EMAIL instead.\"},{\"slug\":\"SALESFORCE_SEND_EMAIL_FROM_TEMPLATE\",\"name\":\"Send email from template\",\"description\":\"Sends an email using a predefined Salesforce email template with merge field support.\"},{\"slug\":\"SALESFORCE_SEND_MASS_EMAIL\",\"name\":\"Send mass email\",\"description\":\"Sends an email to each recipient immediately and irreversibly, using a template or custom subject/body (requires either a valid template_id or both subject and body). Recipients are processed in batches of up to 150 via the emailSimple action. IMPORTANT: this sends one individual email per recipient, so it consumes the org's daily single-email allocation and can hit send/rate limits on large recipient lists — it is not a true bulk/marketing-email mechanism. The response is a `results` array with one entry per recipient; inspect each entry's `success` and `errors`, since individual recipients can fail even when the overall call succeeds.\"},{\"slug\":\"SALESFORCE_SET_USER_PASSWORD\",\"name\":\"Set user password\",\"description\":\"Set or reset a Salesforce user's password. Provide new_password to set a specific value (silent). Omit new_password to RESET: this is destructive — it invalidates the user's current password and emails them a reset link, and does NOT return a password. This endpoint never returns a generated password.\"}]},{\"slug\":\"calendly\",\"name\":\"Calendly\",\"description\":\"Calendly is an appointment scheduling tool that automates meeting invitations, availability checks, and reminders, helping individuals and teams avoid email back-and-forth\",\"logo\":\"https://logos.composio.dev/api/calendly\",\"rank\":47,\"tools\":[{\"slug\":\"CALENDLY_CANCEL_SCHEDULED_EVENT\",\"name\":\"Cancel scheduled event\",\"description\":\"Tool to cancel a scheduled Calendly event by creating a cancellation record. Use when you need to permanently cancel an existing, active event. The cancellation will trigger notifications to all invitees.\"},{\"slug\":\"CALENDLY_CREATE_EVENT_INVITEE\",\"name\":\"Create event invitee (Deprecated)\",\"description\":\"DEPRECATED: Use CALENDLY_POST_INVITEE instead. Tool to programmatically schedule Calendly meetings without UI redirects. Use when you need to book a meeting on behalf of an invitee via API. Requires a paid Calendly plan.\"},{\"slug\":\"CALENDLY_CREATE_EVENT_TYPE\",\"name\":\"Create Event Type\",\"description\":\"Tool to create a new one-on-one event type (kind: solo) in Calendly. Use when you need to programmatically create a new event type for scheduling meetings.\"},{\"slug\":\"CALENDLY_CREATE_ONE_OFF_EVENT_TYPE\",\"name\":\"Create One-Off Event Type\",\"description\":\"Creates a temporary Calendly one-off event type for unique meetings outside regular availability, requiring valid host/co-host URIs, a future date/range for `date_setting`, and a positive `duration`.\"},{\"slug\":\"CALENDLY_CREATE_SCHEDULING_LINK\",\"name\":\"Create scheduling link\",\"description\":\"Create a single-use scheduling link. Creates a scheduling link that can be used to book an event. The link allows invitees to schedule up to the specified maximum number of events. Once the limit is reached, the link becomes inactive.\"},{\"slug\":\"CALENDLY_CREATE_SHARE\",\"name\":\"Create share\",\"description\":\"Creates a customizable, one-time share link for a Calendly event type, allowing specific overrides to its settings (e.g., duration, availability, location) without altering the original event type.\"},{\"slug\":\"CALENDLY_CREATE_SINGLE_USE_SCHEDULING_LINK\",\"name\":\"Create single use scheduling link\",\"description\":\"Creates a one-time, single-use scheduling link for an active Calendly event type, expiring after one booking.\"},{\"slug\":\"CALENDLY_CREATE_WEBHOOKS\",\"name\":\"Create webhook subscription\",\"description\":\"Tool to create a webhook subscription for receiving Calendly event notifications. Use when you need to set up automated notifications for events like meeting bookings or cancellations. Organization scope triggers webhooks for all events organization-wide, while user/group scopes limit triggering to specific users or groups.\"},{\"slug\":\"CALENDLY_DELETE_INVITEE_DATA\",\"name\":\"Delete invitee data\",\"description\":\"Permanently removes all invitee data associated with the provided emails from past organization events, for data privacy compliance (requires Enterprise subscription; deletion may take up to one week).\"},{\"slug\":\"CALENDLY_DELETE_INVITEE_NO_SHOW\",\"name\":\"Delete invitee no show\",\"description\":\"Deletes an Invitee No-Show record by its `uuid` to reverse an invitee's 'no-show' status; the `uuid` must refer to an existing record.\"},{\"slug\":\"CALENDLY_DELETE_ORGANIZATION_MEMBERSHIP\",\"name\":\"Delete organization membership\",\"description\":\"Tool to remove a user from a Calendly organization by membership UUID. Use when you need to revoke a user's access to an organization. Requires admin rights; organization owners cannot be removed.\"},{\"slug\":\"CALENDLY_DELETE_SCHEDULED_EVENT_DATA\",\"name\":\"Delete scheduled event data\",\"description\":\"For Enterprise users, initiates deletion of an organization's scheduled event data between a `start_time` and `end_time` (inclusive, where `start_time` must be \u003c= `end_time`); actual data deletion may take up to 7 days to complete.\"},{\"slug\":\"CALENDLY_DELETE_WEBHOOK_SUBSCRIPTION\",\"name\":\"Delete webhook subscription\",\"description\":\"Deletes an existing webhook subscription to stop Calendly sending event notifications to its registered callback URL; this operation is idempotent.\"},{\"slug\":\"CALENDLY_GET_CURRENT_USER\",\"name\":\"Get current user (Deprecated)\",\"description\":\"DEPRECATED: Use CALENDLY_GET_USER instead. Retrieves detailed information about the currently authenticated Calendly user.\"},{\"slug\":\"CALENDLY_GET_EVENT\",\"name\":\"Get event\",\"description\":\"Use to retrieve a specific Calendly scheduled event by its UUID, provided the event exists in the user's Calendly account.\"},{\"slug\":\"CALENDLY_GET_EVENT_INVITEE\",\"name\":\"Get event invitee\",\"description\":\"Retrieves detailed information about a specific invitee of a scheduled event, using their unique UUIDs.\"},{\"slug\":\"CALENDLY_GET_EVENT_TYPE\",\"name\":\"Get event type\",\"description\":\"Retrieves details for a specific Calendly event type, identified by its UUID, which must be valid and correspond to an existing event type.\"},{\"slug\":\"CALENDLY_GET_EVENT_TYPE_AVAILABILITY\",\"name\":\"Get event type availability\",\"description\":\"Tool to retrieve availability schedules configured for a specific Calendly event type. Use when you need to get the availability rules including day-of-week schedules and date-specific overrides.\"},{\"slug\":\"CALENDLY_GET_GROUP\",\"name\":\"Get group\",\"description\":\"Retrieves all attributes of a specific Calendly group by its UUID; the group must exist.\"},{\"slug\":\"CALENDLY_GET_GROUP_RELATIONSHIP\",\"name\":\"Get group relationship\",\"description\":\"Retrieves a specific Calendly group relationship by its valid and existing UUID, providing details on user-group associations and membership.\"},{\"slug\":\"CALENDLY_GET_INVITEE_NO_SHOW\",\"name\":\"Get invitee no show\",\"description\":\"Retrieves details for a specific Invitee No Show record by its UUID; an Invitee No Show is marked when an invitee does not attend a scheduled event.\"},{\"slug\":\"CALENDLY_GET_ORGANIZATION\",\"name\":\"Get organization\",\"description\":\"Tool to retrieve information about a specific Calendly organization. Use when you need to get organization details such as name, slug, or timestamps.\"},{\"slug\":\"CALENDLY_GET_ORGANIZATION_INVITATION\",\"name\":\"Get organization invitation\",\"description\":\"Retrieves a specific Calendly organization invitation using its UUID and the parent organization's UUID.\"},{\"slug\":\"CALENDLY_GET_ORGANIZATION_MEMBERSHIP\",\"name\":\"Get organization membership\",\"description\":\"Retrieves a specific Calendly organization membership by its UUID, returning all its attributes.\"},{\"slug\":\"CALENDLY_GET_ROUTING_FORM\",\"name\":\"Get routing form\",\"description\":\"Retrieves a specific routing form by its UUID, providing its configuration details including questions and routing logic.\"},{\"slug\":\"CALENDLY_GET_ROUTING_FORM_SUBMISSION\",\"name\":\"Get routing form submission\",\"description\":\"Tool to retrieve details about a specific routing form submission by its UUID. Use when you need submission details including questions, answers, and routing results.\"},{\"slug\":\"CALENDLY_GET_SAMPLE_WEBHOOK_DATA\",\"name\":\"Get sample webhook data\",\"description\":\"Tool to retrieve sample webhook payload data for testing webhook subscriptions. Use when you need to verify webhook setup and understand the data structure before creating actual webhook subscriptions.\"},{\"slug\":\"CALENDLY_GET_USER\",\"name\":\"Get user\",\"description\":\"Retrieves comprehensive details for an existing Calendly user.\"},{\"slug\":\"CALENDLY_GET_USER_AVAILABILITY_SCHEDULE\",\"name\":\"Get user availability schedule\",\"description\":\"Retrieves an existing user availability schedule by its UUID; this schedule defines the user's default hours of availability.\"},{\"slug\":\"CALENDLY_GET_WEBHOOK_SUBSCRIPTION\",\"name\":\"Get webhook subscription\",\"description\":\"Retrieves the details of an existing webhook subscription, identified by its UUID, including its callback URL, subscribed events, scope, and state.\"},{\"slug\":\"CALENDLY_INVITEE_NO_SHOW\",\"name\":\"Mark invitee as no-show\",\"description\":\"Tool to mark an invitee as a no-show for a scheduled event. Use when an invitee fails to attend their scheduled meeting and you need to record their absence in Calendly.\"},{\"slug\":\"CALENDLY_LIST_ACTIVITY_LOG_ENTRIES\",\"name\":\"List activity log entries\",\"description\":\"Retrieves a list of activity log entries for a specified Calendly organization (requires an active Enterprise subscription), supporting filtering, sorting, and pagination.\"},{\"slug\":\"CALENDLY_LIST_EVENT_INVITEES\",\"name\":\"List event invitees\",\"description\":\"Retrieves a list of invitees for a specified Calendly event UUID, with options to filter by status or email, and sort by creation time.\"},{\"slug\":\"CALENDLY_LIST_EVENTS\",\"name\":\"List events (Deprecated)\",\"description\":\"DEPRECATED: Use CALENDLY_LIST_SCHEDULED_EVENTS instead. Retrieves a list of scheduled Calendly events. Exactly one of `user`, `organization`, or `group` must be provided to scope the query. The `invitee_email` parameter is a filter and cannot be used as a scope. Admin rights may be needed when filtering by `organization` or `group`.\"},{\"slug\":\"CALENDLY_LIST_EVENT_TYPE_AVAILABLE_TIMES\",\"name\":\"List event type available times\",\"description\":\"Fetches available time slots for a Calendly event type within a specified time range; results are not paginated.\"},{\"slug\":\"CALENDLY_LIST_EVENT_TYPE_MEMBERSHIPS\",\"name\":\"List event type hosts\",\"description\":\"Tool to retrieve a list of event type hosts (memberships) for a specific event type. Use when you need to see which users are configured as hosts for an event type.\"},{\"slug\":\"CALENDLY_LIST_EVENT_TYPES\",\"name\":\"List Event Types\",\"description\":\"Tool to list all Event Types associated with a specified User or Organization. Use when you need to retrieve event types for a user or organization. Use scheduling_url from results directly; do not manually construct event type URLs.\"},{\"slug\":\"CALENDLY_LIST_GROUP_RELATIONSHIPS\",\"name\":\"List group relationships\",\"description\":\"Retrieves a list of group relationships defining an owner's role (e.g., member, admin) within a group; an owner can have one membership per group but multiple admin roles across different groups.\"},{\"slug\":\"CALENDLY_LIST_GROUPS\",\"name\":\"List groups\",\"description\":\"Returns a list of groups for a specified Calendly organization URI, supporting pagination.\"},{\"slug\":\"CALENDLY_LIST_ORGANIZATION_INVITATIONS\",\"name\":\"List organization invitations\",\"description\":\"Retrieves a list of invitations for a specific organization, identified by its UUID.\"},{\"slug\":\"CALENDLY_LIST_ORGANIZATION_MEMBERSHIPS\",\"name\":\"List organization memberships\",\"description\":\"Retrieves a list of organization memberships.\"},{\"slug\":\"CALENDLY_LIST_OUTGOING_COMMUNICATIONS\",\"name\":\"List outgoing communications\",\"description\":\"Retrieves a list of outgoing SMS communications for a specified organization; requires an Enterprise subscription and if filtering by creation date, both `min_created_at` and `max_created_at` must be provided to form a valid range.\"},{\"slug\":\"CALENDLY_LIST_ROUTING_FORMS\",\"name\":\"List routing forms\",\"description\":\"Retrieves routing forms for a specified organization; routing forms are questionnaires used to direct invitees to appropriate booking pages or external URLs.\"},{\"slug\":\"CALENDLY_LIST_ROUTING_FORM_SUBMISSIONS\",\"name\":\"List routing form submissions\",\"description\":\"Tool to list all submissions associated with a specific routing form. Returns questions, answers, routing results, and tracking data for each submission. Use this action when you need to retrieve multiple routing form submissions for analysis or processing. To fetch details of a single submission, use GetRoutingFormSubmission instead.\"},{\"slug\":\"CALENDLY_LIST_SCHEDULED_EVENTS\",\"name\":\"List scheduled events\",\"description\":\"Tool to retrieve a list of scheduled Calendly events. Use when you need to view events for a specific user, organization, or group. Requires exactly one of user, organization, or group parameter to scope the query.\"},{\"slug\":\"CALENDLY_LIST_USER_AVAILABILITY_SCHEDULES\",\"name\":\"List user availability schedules\",\"description\":\"Retrieves all availability schedules for the specified Calendly user.\"},{\"slug\":\"CALENDLY_LIST_USER_BUSY_TIMES\",\"name\":\"List user busy times\",\"description\":\"Fetches a user's busy time intervals (internal and external calendar events) in ascending order for a period up to 7 days; keyset pagination is not supported.\"},{\"slug\":\"CALENDLY_LIST_USER_LOCATIONS\",\"name\":\"List User Meeting Locations\",\"description\":\"Tool to retrieve configured meeting location information for a given Calendly user. Use when you need to see all available location options configured by a user for their meetings.\"},{\"slug\":\"CALENDLY_LIST_USER_S_EVENT_TYPES\",\"name\":\"List user event types (Deprecated)\",\"description\":\"DEPRECATED: Use CALENDLY_LIST_EVENT_TYPES instead. Retrieves event types for a user or organization; requires either the `user` or `organization` URI.\"},{\"slug\":\"CALENDLY_LIST_WEBHOOK_SUBSCRIPTIONS\",\"name\":\"List webhook subscriptions\",\"description\":\"Retrieves webhook subscriptions for a Calendly organization; `scope` determines if `user` or `group` URI is also required for filtering.\"},{\"slug\":\"CALENDLY_ORGANIZATION_INVITATION\",\"name\":\"Invite user to organization\",\"description\":\"Tool to invite a user to a Calendly organization via email. Use when you need to send an organization invitation to a new user. Requires organization owner or admin privileges.\"},{\"slug\":\"CALENDLY_POST_INVITEE\",\"name\":\"Create Event Invitee\",\"description\":\"Tool to create a new Event Invitee with standard notifications, calendar invites, reschedules, and workflows. Use when programmatically scheduling meetings via API. Requires paid Calendly plan (Standard+).\"},{\"slug\":\"CALENDLY_REMOVE_USER_FROM_ORGANIZATION\",\"name\":\"Remove user from organization\",\"description\":\"Removes a user (who is not an owner) from an organization by their membership UUID, requiring administrative privileges.\"},{\"slug\":\"CALENDLY_REVOKE_USER_S_ORGANIZATION_INVITATION\",\"name\":\"Revoke a user's organization invitation\",\"description\":\"Revokes a pending and revokable (not yet accepted or expired) organization invitation using its UUID and the organization's UUID, rendering the invitation link invalid.\"},{\"slug\":\"CALENDLY_UPDATE_EVENT_TYPE\",\"name\":\"Update Event Type\",\"description\":\"Tool to update an existing one-on-one event type (kind: solo) in Calendly. Use when you need to modify event type settings such as name, duration, location, or description. NOTE: Currently only supports one-on-one event types.\"},{\"slug\":\"CALENDLY_UPDATE_EVENT_TYPE_AVAILABILITY\",\"name\":\"Update Event Type Availability\",\"description\":\"Tool to update an event type availability schedule in Calendly. Use when you need to change the timezone or availability rules for an event type. WARNING: Updating rules will overwrite all existing rules - retrieve existing rules first using GET /event_type_availability_schedules.\"}]},{\"slug\":\"trello\",\"name\":\"Trello\",\"description\":\"A web-based, kanban-style, list-making application.\",\"logo\":\"https://logos.composio.dev/api/trello\",\"rank\":48,\"tools\":[{\"slug\":\"TRELLO_ADD_BOARDS\",\"name\":\"Add board\",\"description\":\"Creates a new Trello board; the 'name' parameter is required for creation, and various preferences can be customized or cloned from a source board.\"},{\"slug\":\"TRELLO_ADD_BOARDS_LISTS_BY_ID_BOARD\",\"name\":\"Add new list to board (Deprecated)\",\"description\":\"DEPRECATED: Use TRELLO_LIST_CREATE_LIST instead. Creates a new, empty list on a specified, existing Trello board, typically used as a column or category for organizing cards.\"},{\"slug\":\"TRELLO_ADD_CARDS\",\"name\":\"Add card\",\"description\":\"Creates a new card in a Trello list. Only `idList` is required; `idBoard` is optional as the API determines the board from the list.\"},{\"slug\":\"TRELLO_ADD_CARDS_ACTIONS_COMMENTS_BY_ID_CARD\",\"name\":\"Add comment to card\",\"description\":\"Adds a new text comment, which can include @mentions, to a Trello card specified by its ID; file attachments are not supported via this action.\"},{\"slug\":\"TRELLO_ADD_CARDS_ATTACHMENTS_BY_ID_CARD\",\"name\":\"Add attachment to card\",\"description\":\"Adds an attachment to a Trello card by `idCard`; specify either a `file` to upload or a `url` to link, but not both.\"},{\"slug\":\"TRELLO_ADD_CARDS_CHECKLISTS_BY_ID_CARD\",\"name\":\"Add checklist to card via id\",\"description\":\"Adds a checklist to a Trello card: use `value` to add a specific existing checklist, `idChecklistSource` to create a new checklist by copying an existing one (optionally using `name` for the new checklist's name), or `name` to create a new empty checklist from scratch.\"},{\"slug\":\"TRELLO_ADD_CARDS_ID_LABELS_BY_ID_CARD\",\"name\":\"Add label to card\",\"description\":\"Adds an existing label to a Trello card; `idCard` identifies the card and `value` is the ID of the label to add. Both card and label must already exist.\"},{\"slug\":\"TRELLO_ADD_CARD_VOTE\",\"name\":\"Add member vote to card\",\"description\":\"Casts a 'yes' vote for a specified member on a Trello card; a member can only vote once per card.\"},{\"slug\":\"TRELLO_ADD_CHECKLIST_ITEM\",\"name\":\"Add check item to checklist (Deprecated)\",\"description\":\"DEPRECATED: Use TRELLO_ADD_CHECKLISTS_CHECK_ITEMS_BY_ID_CHECKLIST instead. Adds a new check item to an existing checklist on a specific Trello card.\"},{\"slug\":\"TRELLO_ADD_CHECKLISTS\",\"name\":\"Add checklist to card\",\"description\":\"Creates a new checklist on a Trello card, either by name or by copying from `idChecklistSource`, targeting an `idCard` or `idBoard`; this action creates only the checklist structure, not its items.\"},{\"slug\":\"TRELLO_ADD_CHECKLISTS_CHECK_ITEMS_BY_ID_CHECKLIST\",\"name\":\"Add check item to checklist\",\"description\":\"Adds a new check item to a specified Trello checklist; this action does not update existing check items.\"},{\"slug\":\"TRELLO_ADD_LABELS\",\"name\":\"Create label on board\",\"description\":\"Creates a new label with a specified name (required) and color on a Trello board (idBoard required); this action defines the label but does not apply it to cards.\"},{\"slug\":\"TRELLO_ADD_LISTS\",\"name\":\"Add new list to board\",\"description\":\"Creates a new list on a specified Trello board, with options to copy an existing list, set its position, initial state (archived/subscribed), and does not modify existing lists or move cards.\"},{\"slug\":\"TRELLO_ADD_LISTS_CARDS_BY_ID_LIST\",\"name\":\"Add card to list (Deprecated)\",\"description\":\"DEPRECATED: Use TRELLO_CARD_CREATE_AND_UPDATE instead. Creates a new card in a Trello list, which must be specified by an existing and accessible `idList`.\"},{\"slug\":\"TRELLO_ADD_MEMBER_TO_CARD\",\"name\":\"Add card member by id\",\"description\":\"Assigns a Trello member to a specific Trello card by card ID (or short link) and member ID.\"},{\"slug\":\"TRELLO_ARCHIVE_ALL_LIST_CARDS\",\"name\":\"Archive all cards in list\",\"description\":\"Archives all cards in a Trello list; while cards can be restored via the Trello interface, this action does not provide an unarchive function.\"},{\"slug\":\"TRELLO_CONVERT_CHECKLIST_ITEM_TO_CARD\",\"name\":\"Convert checklist item to card\",\"description\":\"Converts a checklist item into a new card (useful for promoting a subtask), which inherits some properties from the item; this is irreversible via the API and offers no customization during conversion.\"},{\"slug\":\"TRELLO_CREATE_ACTION_REACTION\",\"name\":\"Add reaction to action\",\"description\":\"Tool to add a new emoji reaction to a Trello action. Use when acknowledging comments or actions with reactions.\"},{\"slug\":\"TRELLO_CREATE_BOARD_LABEL\",\"name\":\"Add a label to a board\",\"description\":\"Creates a new label on an existing Trello board.\"},{\"slug\":\"TRELLO_CREATE_CARD_LABEL\",\"name\":\"Add labels to card\",\"description\":\"Adds a label to an existing Trello card (specified by `idCard`), defining the label by `name` and either `color` or the overriding `value` (which specifies color by name); a new label is created on the board if a matching one (by name/color combination) doesn't already exist.\"},{\"slug\":\"TRELLO_CREATE_CARD_STICKER\",\"name\":\"Add sticker to card\",\"description\":\"Adds a sticker to a Trello card, using a default sticker name (e.g., 'taco-cool') or a custom sticker ID for the image, and allows specifying its position, rotation, and z-index.\"},{\"slug\":\"TRELLO_CREATE_MEMBER_BOARD_BACKGROUND\",\"name\":\"Add member board background\",\"description\":\"Adds a new custom board background, from an image file, to a specified Trello member's collection, making it available for their use but not applying it to any board.\"},{\"slug\":\"TRELLO_CREATE_MEMBER_BOARD_STAR\",\"name\":\"Add board star to member\",\"description\":\"Stars a Trello board for a member (does not remove or list stars), optionally at a specified position; the board must exist and be accessible to the member.\"},{\"slug\":\"TRELLO_CREATE_MEMBER_CUSTOM_BOARD_BACKGROUND\",\"name\":\"Add custom board background for a member\",\"description\":\"Adds a new custom board background for a specified Trello member; either a `file` (image upload) or a `url` (external image URL) must be provided.\"},{\"slug\":\"TRELLO_CREATE_MEMBER_CUSTOM_EMOJI\",\"name\":\"Add custom emoji for a member\",\"description\":\"Adds a new custom emoji using an image file and a unique name to a Trello member's account; this emoji is member-specific and not shared across the workspace.\"},{\"slug\":\"TRELLO_CREATE_MEMBER_CUSTOM_STICKER\",\"name\":\"Add custom sticker for member\",\"description\":\"Uploads a custom sticker to a Trello member's collection, if the member's plan allows custom stickers and respects associated limits.\"},{\"slug\":\"TRELLO_CREATE_MEMBER_SAVED_SEARCH\",\"name\":\"Add saved search for member\",\"description\":\"Creates a new saved search with a specified name, position, and query for a Trello member.\"},{\"slug\":\"TRELLO_CREATE_ORGANIZATION\",\"name\":\"Create organization\",\"description\":\"Creates a new Trello organization (Workspace) with a `displayName` (required), and optionally a description, website, and various preferences (e.g., board visibility, member invitation restrictions).\"},{\"slug\":\"TRELLO_CREATE_SESSION\",\"name\":\"Create new session\",\"description\":\"Creates or updates a Trello user session, optionally linking it to a specific board for status updates and setting the user's activity status.\"},{\"slug\":\"TRELLO_CREATE_WEBHOOK\",\"name\":\"Create webhook\",\"description\":\"Tool to create a new Trello webhook for monitoring changes to a board, card, list, or member. Use when you need to set up real-time notifications for model changes. The callback URL must be publicly accessible and respond to HEAD requests for validation.\"},{\"slug\":\"TRELLO_DELETE_ACTION\",\"name\":\"Delete action by id\",\"description\":\"Deletes a specific Trello action, such as a `commentCard`, by its ID; this is an irreversible operation and only applies to deletable action types, as many (especially system-generated) actions cannot be deleted.\"},{\"slug\":\"TRELLO_DELETE_ACTION_REACTION\",\"name\":\"Delete action reaction\",\"description\":\"Permanently deletes a specified reaction from a Trello action. Use when you need to remove a reaction that was previously added to an action.\"},{\"slug\":\"TRELLO_DELETE_BOARD\",\"name\":\"Delete board by id\",\"description\":\"Permanently deletes a Trello board by its ID. This is an irreversible action that removes the board and all its contents.\"},{\"slug\":\"TRELLO_DELETE_CARD_ATTACHMENT\",\"name\":\"Delete card attachment\",\"description\":\"Permanently removes a specified attachment from a Trello card; this action is irreversible and requires that both the card and the attachment exist.\"},{\"slug\":\"TRELLO_DELETE_CARD_CHECKLIST\",\"name\":\"Delete card checklist\",\"description\":\"Permanently deletes a specific checklist from a Trello card.\"},{\"slug\":\"TRELLO_DELETE_CARD_COMMENT\",\"name\":\"Delete card action comment\",\"description\":\"Deletes a specific comment action (identified by `idAction`) from a Trello card (identified by `idCard`); this operation is irreversible and only affects comments.\"},{\"slug\":\"TRELLO_DELETE_CARDS_BY_ID_CARD\",\"name\":\"Delete card by ID\",\"description\":\"Permanently deletes an archived Trello card specified by its `idCard`.\"},{\"slug\":\"TRELLO_DELETE_CARDS_MEMBERS_VOTED_BY_ID_CARD_BY_ID_MEMBER\",\"name\":\"Delete member vote from card\",\"description\":\"Removes a member's vote from a Trello card. The operation requires the member to have already voted on the card; attempting to delete a non-existent vote returns a 400 error. Voting must be enabled on the board.\"},{\"slug\":\"TRELLO_DELETE_CARDS_STICKERS_BY_ID_CARD_BY_ID_STICKER\",\"name\":\"Delete card sticker\",\"description\":\"Permanently removes a specific sticker (identified by `idSticker`) from a Trello card (identified by `idCard`).\"},{\"slug\":\"TRELLO_DELETE_CHECKLIST_ITEM\",\"name\":\"Delete checklist item\",\"description\":\"Permanently deletes a specific check item from a checklist on a Trello card; this operation is irreversible and only affects the specified item, not the entire checklist.\"},{\"slug\":\"TRELLO_DELETE_CHECKLISTS_BY_ID_CHECKLIST\",\"name\":\"Delete checklist by id\",\"description\":\"Permanently and irreversibly deletes a Trello checklist and all its items using the `idChecklist`.\"},{\"slug\":\"TRELLO_DELETE_LABELS_BY_ID_LABEL\",\"name\":\"Delete label by id\",\"description\":\"Permanently deletes an existing label from a Trello board by its ID; this operation is irreversible via the API.\"},{\"slug\":\"TRELLO_DELETE_MEMBER_BOARD_BACKGROUND\",\"name\":\"Delete member board background\",\"description\":\"Permanently deletes a specific custom board background belonging to the specified Trello member; this operation cannot be undone.\"},{\"slug\":\"TRELLO_DELETE_MEMBER_CUSTOM_STICKER\",\"name\":\"Delete member custom sticker\",\"description\":\"Deletes a custom sticker from a Trello member's collection; this permanent action is only available for custom stickers within a Trello Workspace on a paid plan.\"},{\"slug\":\"TRELLO_DELETE_MEMBER_SAVED_SEARCH\",\"name\":\"Delete member saved search\",\"description\":\"Permanently deletes a specific saved search for a Trello member, used when the search is outdated or no longer needed.\"},{\"slug\":\"TRELLO_DELETE_ORGANIZATIONS_BY_ID_ORG\",\"name\":\"Delete organization by id\",\"description\":\"Permanently deletes a Trello organization and all its associated data; this action is irreversible and requires caution.\"},{\"slug\":\"TRELLO_DELETE_ORGANIZATIONS_LOGO_BY_ID_ORG\",\"name\":\"Delete organization logo by id\",\"description\":\"Deletes an existing Trello organization's custom logo, restoring its default and leaving other settings unchanged; if no custom logo exists, it succeeds without effect.\"},{\"slug\":\"TRELLO_DELETE_ORGANIZATIONS_MEMBERS_BY_ID_ORG_BY_ID_MEMBER\",\"name\":\"Delete organization member by IDs\",\"description\":\"Permanently removes a member from a Trello organization by ID, revoking all access to its content; re-invitation is required for renewed access, and this does not delete the member's Trello account.\"},{\"slug\":\"TRELLO_DELETE_ORG_ASSOCIATED_DOMAIN\",\"name\":\"Delete org associated domain\",\"description\":\"Irreversibly deletes an associated email domain from a Trello organization's preferences to update email domain restrictions for workspace membership; the domain must be currently associated for removal.\"},{\"slug\":\"TRELLO_DELETE_ORG_INVITE_RESTRICT\",\"name\":\"Delete org invite restriction\",\"description\":\"Removes a previously set email address invitation restriction from a Trello organization. This is an Enterprise-only feature that requires admin privileges on the organization.\"},{\"slug\":\"TRELLO_DELETE_TOKENS_BY_TOKEN\",\"name\":\"Delete token\",\"description\":\"Deletes a specific Trello API token, identified by its value in the path, permanently revoking its access; this action is irreversible and used to invalidate compromised or unneeded tokens.\"},{\"slug\":\"TRELLO_DELETE_TOKENS_WEBHOOKS_BY_TOKEN_BY_ID_WEBHOOK\",\"name\":\"Delete token webhook by id\",\"description\":\"Deletes an existing webhook, specified by its `idWebhook`, thereby stopping its notifications.\"},{\"slug\":\"TRELLO_DELETE_WEBHOOKS_BY_ID_WEBHOOK\",\"name\":\"Delete webhook by id\",\"description\":\"Permanently deletes an existing Trello webhook by its `idWebhook`, an irreversible action that stops future notifications.\"},{\"slug\":\"TRELLO_DISABLE_BOARD_POWER_UP\",\"name\":\"Delete Power-Up from board\",\"description\":\"Disables a Power-Up on a Trello board using the board's ID and the plugin ID of a Power-Up currently enabled on that board; this action is irreversible and may result in data loss.\"},{\"slug\":\"TRELLO_DISMISS_MEMBER_MESSAGE\",\"name\":\"Dismiss member message\",\"description\":\"Dismisses a one-time message for a Trello member, adding it to their dismissed messages list. This endpoint marks a specific one-time message (notification, banner, or prompt) as dismissed for the specified member. Once dismissed, the message will not be shown to the user again. Common use cases include dismissing onboarding messages, feature announcements, or team-specific prompts. Requires write access to the member's account. Use 'me' as idMember for the authenticated user.\"},{\"slug\":\"TRELLO_ENABLE_BOARD_POWER_UP\",\"name\":\"Add board power-up\",\"description\":\"Enables the Power-Up specified by the 'value' parameter on the board; processes one Power-Up enablement per call.\"},{\"slug\":\"TRELLO_GENERATE_BOARD_CALENDAR_KEY\",\"name\":\"Generate board calendar key\",\"description\":\"Generates a new calendar key for the Trello board specified by `idBoard`, invalidating any previous key for that board.\"},{\"slug\":\"TRELLO_GENERATE_BOARD_EMAIL_KEY\",\"name\":\"Generate email key for board\",\"description\":\"Generates a new email key for the Trello board specified by idBoard to enable or reset adding cards via email; this invalidates any previously existing email key for the board.\"},{\"slug\":\"TRELLO_GET_ACTIONS_BOARD_BY_ID_ACTION\",\"name\":\"Get board by action id\",\"description\":\"Retrieves details for the Trello board associated with a specific action ID, returning board information only.\"},{\"slug\":\"TRELLO_GET_ACTIONS_BOARD_BY_ID_ACTION_BY_FIELD\",\"name\":\"Get action's board field\",\"description\":\"Retrieves a specified `field` from the Trello board associated with the provided Trello `idAction`.\"},{\"slug\":\"TRELLO_GET_ACTIONS_BY_ID_ACTION\",\"name\":\"Get action by ID\",\"description\":\"Retrieves detailed information about a specific Trello action by its ID.\"},{\"slug\":\"TRELLO_GET_ACTIONS_BY_ID_ACTION_BY_FIELD\",\"name\":\"Get action field by id\",\"description\":\"Retrieves the value of a specific field (e.g., 'data', 'date', 'type') from a Trello action using its unique ID.\"},{\"slug\":\"TRELLO_GET_ACTIONS_CARD_BY_ID_ACTION\",\"name\":\"Get card by action ID\",\"description\":\"Retrieves Trello card details for a given `idAction`, which must be an action specifically linked to a card; returns only card data, not action details.\"},{\"slug\":\"TRELLO_GET_ACTIONS_CARD_BY_ID_ACTION_BY_FIELD\",\"name\":\"Get action's card field\",\"description\":\"Retrieves a specific field from the Trello card associated with the given action ID.\"},{\"slug\":\"TRELLO_GET_ACTIONS_DISPLAY_BY_ID_ACTION\",\"name\":\"Get action display by ID\",\"description\":\"Retrieves a display-friendly representation of an existing and accessible Trello action for UI/report purposes, providing presentation-focused data instead of full raw details and without altering the action.\"},{\"slug\":\"TRELLO_GET_ACTIONS_ENTITIES_BY_ID_ACTION\",\"name\":\"Get action entities by id\",\"description\":\"Retrieves all entities (e.g., boards, lists, cards, members) associated with a specific, existing Trello action ID.\"},{\"slug\":\"TRELLO_GET_ACTIONS_LIST_BY_ID_ACTION\",\"name\":\"Get an action's list\",\"description\":\"Retrieves the Trello list associated with a specific Trello action ID, for actions linked to a list.\"},{\"slug\":\"TRELLO_GET_ACTIONS_LIST_BY_ID_ACTION_BY_FIELD\",\"name\":\"Get field of action's list\",\"description\":\"Retrieves a specific field of the list associated with a Trello action, returning only that single field's value.\"},{\"slug\":\"TRELLO_GET_ACTIONS_MEMBER_BY_ID_ACTION\",\"name\":\"Get action's member by id\",\"description\":\"Retrieves the Trello member who was the subject of an action (not the creator). This endpoint returns information about the member who was acted upon in actions like: - addMemberToCard: Returns the member who was added to a card - removeMemberFromCard: Returns the member who was removed from a card - addMemberToBoard: Returns the member who was added to a board Note: For actions that don't involve a member as a subject (e.g., createCard, createBoard), this endpoint returns 404. Use /actions/{idAction}/memberCreator to get the action's creator instead.\"},{\"slug\":\"TRELLO_GET_ACTIONS_MEMBER_BY_ID_ACTION_BY_FIELD\",\"name\":\"Get Action Subject Member Field\",\"description\":\"Retrieves a specific field of the member who was the subject of a Trello action. This is distinct from 'memberCreator' (who performed the action). Only works for actions that involve a member as the subject (e.g., addMemberToBoard, addMemberToCard, removeMemberFromCard). Returns a single field value for optimized data retrieval.\"},{\"slug\":\"TRELLO_GET_ACTIONS_MEMBER_CREATOR_BY_ID_ACTION\",\"name\":\"Fetch action member creator\",\"description\":\"Retrieves details about the Trello member who created the action with the given `idAction`.\"},{\"slug\":\"TRELLO_GET_ACTIONS_MEMBER_CREATOR_BY_ID_ACTION_BY_FIELD\",\"name\":\"Get action member creator field\",\"description\":\"Retrieves a specific field from the profile of the Trello member who created a given action. Use this to get targeted information like username, fullName, initials, avatarHash, or url from an action's creator.\"},{\"slug\":\"TRELLO_GET_ACTIONS_ORGANIZATION_BY_ID_ACTION\",\"name\":\"Fetch organization action by id\",\"description\":\"Fetches the organization details for a given Trello action, if the action has an associated organization.\"},{\"slug\":\"TRELLO_GET_ACTIONS_ORGANIZATION_BY_ID_ACTION_BY_FIELD\",\"name\":\"Get action's organization field\",\"description\":\"Retrieves the value of a specific `field` for the organization associated with a Trello `idAction`; use if the action has an organization and you need only that field (e.g., 'name', 'id', 'url').\"},{\"slug\":\"TRELLO_GET_ACTIONS_REACTIONS_BY_ID\",\"name\":\"Get action's reaction by ID\",\"description\":\"Retrieves detailed information about a specific reaction on a Trello action. Use when you need to get the member and emoji details for a specific reaction by its ID.\"},{\"slug\":\"TRELLO_GET_ACTIONS_REACTIONS_BY_ID_ACTION\",\"name\":\"List action reactions\",\"description\":\"Tool to list reactions for a specific action. Use when you need to retrieve emoji reactions and the members who added them to an action.\"},{\"slug\":\"TRELLO_GET_BATCH\",\"name\":\"Get batch\",\"description\":\"Executes multiple Trello API GET requests in a single batch operation for efficient bulk data retrieval.\"},{\"slug\":\"TRELLO_GET_BOARDS_ACTIONS_BY_ID_BOARD\",\"name\":\"Get board actions by id\",\"description\":\"Retrieves actions (e.g., card creations, comments) for a Trello board by its ID, useful for activity tracking; the board must exist.\"},{\"slug\":\"TRELLO_GET_BOARDS_BOARD_PLUGINS_BY_ID\",\"name\":\"Get board Power-Ups\",\"description\":\"Tool to get the list of enabled Power-Ups on a Trello board. Use when you need to check which Power-Ups are currently active on a board.\"},{\"slug\":\"TRELLO_GET_BOARDS_BOARD_STARS_BY_ID_BOARD\",\"name\":\"Get board stars by board ID\",\"description\":\"Retrieves board stars (user-marked favorites) for a specified Trello board, where `idBoard` must be an existing board; use to list a user's starred boards or all stars on a particular board.\"},{\"slug\":\"TRELLO_GET_BOARDS_BY_ID_BOARD\",\"name\":\"Get board by id\",\"description\":\"Fetches comprehensive details for a specific Trello board by its ID; this is a read-only action.\"},{\"slug\":\"TRELLO_GET_BOARDS_BY_ID_BOARD_BY_FIELD\",\"name\":\"Get board field\",\"description\":\"Retrieves the value of a single, specified field from a Trello board.\"},{\"slug\":\"TRELLO_GET_BOARDS_CARDS_BY_ID_BOARD\",\"name\":\"Get cards by board ID\",\"description\":\"Retrieves cards from an existing Trello board, allowing filtering and customization of fields for cards, attachments, and members.\"},{\"slug\":\"TRELLO_GET_BOARDS_CARDS_BY_ID_BOARD_BY_FILTER\",\"name\":\"Get cards by filter from board\",\"description\":\"Retrieves cards from a specified Trello board, filtered by 'all' (all cards), 'closed' (archived only), 'open' (non-archived), or 'visible' (cards on non-archived lists).\"},{\"slug\":\"TRELLO_GET_BOARDS_CARDS_BY_ID_BOARD_BY_ID_CARD\",\"name\":\"Get card from board\",\"description\":\"Retrieves details for a specific Trello card by its ID and its parent board's ID, with options to customize returned fields for the card and associated data like attachments, actions, members, and checklists.\"},{\"slug\":\"TRELLO_GET_BOARDS_CHECKLISTS_BY_ID_BOARD\",\"name\":\"Get board checklists\",\"description\":\"Retrieves checklists (primarily structure/metadata, not detailed item history) from a Trello board, with options to include associated card and check item details and to control which fields are returned for each entity.\"},{\"slug\":\"TRELLO_GET_BOARDS_CUSTOM_FIELDS\",\"name\":\"Get board custom fields\",\"description\":\"Tool to retrieve custom field definitions for a board. Use when you need to understand what custom fields are available on a board for metadata management.\"},{\"slug\":\"TRELLO_GET_BOARDS_DELTAS_BY_ID_BOARD\",\"name\":\"Retrieve board deltas\",\"description\":\"Retrieves recent changes (deltas) for a Trello board by its ID, allowing tracking of modifications since a specified update sequence number (`ixLastUpdate`).\"},{\"slug\":\"TRELLO_GET_BOARDS_LABELS_BY_ID_BOARD\",\"name\":\"Get board labels by ID\",\"description\":\"Fetches labels for a specified Trello board, aiding in its organization or label management; this action does not detail per-card label usage.\"},{\"slug\":\"TRELLO_GET_BOARDS_LABELS_BY_ID_BOARD_BY_ID_LABEL\",\"name\":\"Get a board label\",\"description\":\"Fetches specified fields for a specific label on a Trello board; this read-only action does not return information about which cards the label is attached to.\"},{\"slug\":\"TRELLO_GET_BOARDS_LISTS_BY_ID_BOARD\",\"name\":\"Get board's lists\",\"description\":\"Retrieves lists from a specified Trello board, with options to filter lists and include card details.\"},{\"slug\":\"TRELLO_GET_BOARDS_LISTS_BY_ID_BOARD_BY_FILTER\",\"name\":\"Get board lists by filter (Deprecated)\",\"description\":\"DEPRECATED: Use TRELLO_BOARD_GET_LISTS_BY_ID_BOARD instead. Fetches lists by status from an accessible Trello board; card details for these lists require a separate call.\"},{\"slug\":\"TRELLO_GET_BOARDS_MEMBERS_BY_ID_BOARD\",\"name\":\"Get board members\",\"description\":\"Retrieves members of a Trello board, with options to filter the list and select specific member fields to return.\"},{\"slug\":\"TRELLO_GET_BOARDS_MEMBERS_CARDS_BY_ID_BOARD_BY_ID_MEMBER\",\"name\":\"Get member cards from board\",\"description\":\"Retrieves cards for a member on a board, with options to customize returned fields and related data; member must have board access.\"},{\"slug\":\"TRELLO_GET_BOARDS_MEMBERSHIPS_BY_ID_BOARD\",\"name\":\"List board memberships\",\"description\":\"Retrieves Trello board memberships (user roles and permissions) for auditing access or managing collaboration, returning only membership data and not other board content.\"},{\"slug\":\"TRELLO_GET_BOARDS_MEMBERSHIPS_BY_ID_BOARD_BY_ID_MEMBERSHIP\",\"name\":\"Get board membership\",\"description\":\"Retrieves a specific membership on a Trello board by its ID, optionally including member details.\"},{\"slug\":\"TRELLO_GET_BOARDS_MEMBERS_INVITED_BY_ID_BOARD\",\"name\":\"Get invited board members\",\"description\":\"Retrieves a list of members invited to a specific Trello board who have not yet joined.\"},{\"slug\":\"TRELLO_GET_BOARDS_MEMBERS_INVITED_BY_ID_BOARD_BY_FIELD\",\"name\":\"Retrieve invited board member field\",\"description\":\"Retrieves a specific field (e.g., email, username) for members who have been invited to a Trello board but have not yet joined.\"},{\"slug\":\"TRELLO_GET_BOARDS_MY_PREFS_BY_ID_BOARD\",\"name\":\"Get my board preferences\",\"description\":\"Retrieves the authenticated user's preferences for a specific Trello board.\"},{\"slug\":\"TRELLO_GET_BOARDS_ORGANIZATION_BY_ID_BOARD\",\"name\":\"Get board organization\",\"description\":\"Fetches information about the Trello Workspace (organization) to which a specific board belongs, returning details for the Workspace only, not the board itself or its content.\"},{\"slug\":\"TRELLO_GET_BOARDS_ORGANIZATION_BY_ID_BOARD_BY_FIELD\",\"name\":\"Get board organization field\",\"description\":\"Retrieves a specific field from the organization associated with a Trello board, useful for obtaining targeted details without fetching the entire organization object.\"},{\"slug\":\"TRELLO_GET_BOARDS_PLUGINS_BY_ID_BOARD\",\"name\":\"Get board's Power-Ups\",\"description\":\"Retrieves Power-Ups (plugins) enabled on a Trello board. Use to view board extensions and integrations.\"},{\"slug\":\"TRELLO_GET_CARDS_ACTIONS_BY_ID_CARD\",\"name\":\"Get card actions by id\",\"description\":\"Retrieves the history of actions (e.g., comments, updates, moves) for a Trello card specified by `idCard`; the card must exist and very old actions might not be available.\"},{\"slug\":\"TRELLO_GET_CARDS_ATTACHMENTS_BY_ID_CARD\",\"name\":\"Get card attachments\",\"description\":\"Retrieves attachments for a Trello card.\"},{\"slug\":\"TRELLO_GET_CARDS_ATTACHMENTS_BY_ID_CARD_BY_ID_ATTACHMENT\",\"name\":\"Get specific card attachment\",\"description\":\"Retrieves a specific attachment from a Trello card by card ID and attachment ID.\"},{\"slug\":\"TRELLO_GET_CARDS_BOARD_BY_ID_CARD\",\"name\":\"Get board by card id\",\"description\":\"Fetches detailed information about the Trello board to which a specific, existing, and accessible card belongs, using the card's ID or short link.\"},{\"slug\":\"TRELLO_GET_CARDS_BOARD_BY_ID_CARD_BY_FIELD\",\"name\":\"Get board field by card ID\",\"description\":\"Retrieves a specific field from the board associated with a given Trello card.\"},{\"slug\":\"TRELLO_GET_CARDS_BY_ID_CARD\",\"name\":\"Get card by ID\",\"description\":\"Retrieves a Trello card by its ID or shortlink, with options to include related data like actions, attachments, members, and checklists.\"},{\"slug\":\"TRELLO_GET_CARDS_BY_ID_CARD_BY_FIELD\",\"name\":\"Get card field by id\",\"description\":\"Retrieves the value of a single, specified field from a Trello card.\"},{\"slug\":\"TRELLO_GET_CARDS_CHECK_ITEM\",\"name\":\"Get card check item\",\"description\":\"Tool to retrieve a specific checkItem on a card. Use when you need to check the status or details of a specific item in a card's checklist.\"},{\"slug\":\"TRELLO_GET_CARDS_CHECK_ITEM_STATES_BY_ID_CARD\",\"name\":\"Get card check item states\",\"description\":\"Gets the completed checklist items on a Trello card. Note: This endpoint only returns check items marked as 'complete', not incomplete items. Returns item IDs and states, not full checklist or card details.\"},{\"slug\":\"TRELLO_GET_CARDS_CHECKLISTS_BY_ID_CARD\",\"name\":\"Get card checklists by ID\",\"description\":\"Retrieves all checklists, including their check items, for a Trello card specified by its ID or shortlink, if the card exists and is accessible.\"},{\"slug\":\"TRELLO_GET_CARDS_CUSTOM_FIELD_ITEMS_BY_ID_CARD\",\"name\":\"Get card custom field items\",\"description\":\"Tool to retrieve a card's customFieldItems array. Use when you need structured metadata from custom fields for automation. Must be called per card — no bulk endpoint exists. Returns an empty array if no custom fields are populated on the card. Power-Up data (e.g., time tracking) is not included in customFieldItems.\"},{\"slug\":\"TRELLO_GET_CARDS_LIST_BY_ID_CARD\",\"name\":\"Get list by card ID\",\"description\":\"Gets the Trello list to which a specified card (which must exist) belongs.\"},{\"slug\":\"TRELLO_GET_CARDS_LIST_BY_ID_CARD_BY_FIELD\",\"name\":\"Get card list field\",\"description\":\"Fetches a specific field from the Trello list that a given card belongs to.\"},{\"slug\":\"TRELLO_GET_CARDS_MEMBERS_BY_ID_CARD\",\"name\":\"Get card members\",\"description\":\"Retrieves members of a Trello card, identified by its ID or shortLink, allowing customization of which member fields are returned.\"},{\"slug\":\"TRELLO_GET_CARDS_MEMBERS_VOTED_BY_ID_CARD\",\"name\":\"Get card members voted\",\"description\":\"Fetches members who voted on a Trello card; requires an existing card ID, the Voting Power-Up to be active on the board, and members to have voted; returns member details, not vote counts.\"},{\"slug\":\"TRELLO_GET_CARDS_PLUGIN_DATA_BY_ID\",\"name\":\"Get card plugin data\",\"description\":\"Tool to retrieve any shared pluginData on a card. Use when you need to access data stored by Trello Power-Ups or plugins for a specific card. Note: Forge and OAuth2 apps cannot access this resource.\"},{\"slug\":\"TRELLO_GET_CARDS_STICKERS_BY_ID_CARD\",\"name\":\"Get card stickers by ID card\",\"description\":\"Retrieves all visual stickers (used for categorization, emphasis, or decoration) from an existing and accessible Trello card; this read-only action does not affect other card elements.\"},{\"slug\":\"TRELLO_GET_CARDS_STICKERS_BY_ID_CARD_BY_ID_STICKER\",\"name\":\"Get card sticker by id\",\"description\":\"Call this action to retrieve detailed properties (like image, position, rotation) of a specific sticker on a Trello card.\"},{\"slug\":\"TRELLO_GET_CHECK_ITEM_BY_ID\",\"name\":\"Get check item by id\",\"description\":\"Retrieves a specific check item from a checklist using the checklist ID and check item ID.\"},{\"slug\":\"TRELLO_GET_CHECKLISTS_BOARD_BY_ID_CHECKLIST\",\"name\":\"Get board for a checklist\",\"description\":\"Retrieves the Trello board a specific checklist belongs to, using the checklist ID.\"},{\"slug\":\"TRELLO_GET_CHECKLISTS_BOARD_BY_ID_CHECKLIST_BY_FIELD\",\"name\":\"Get checklist's board field\",\"description\":\"Retrieves a specified `field` (e.g., 'name', 'desc') from the Trello board associated with the given `idChecklist`.\"},{\"slug\":\"TRELLO_GET_CHECKLISTS_BY_ID_CHECKLIST\",\"name\":\"Get checklist by ID\",\"description\":\"Fetches a Trello checklist by its `idChecklist`, requiring the ID to refer to an existing checklist, and allows specifying which details of the checklist, its cards, and check items are returned.\"},{\"slug\":\"TRELLO_GET_CHECKLISTS_BY_ID_CHECKLIST_BY_FIELD\",\"name\":\"Get checklist field\",\"description\":\"Retrieves a specific field's value from a Trello checklist by its ID and the field name, without loading the entire checklist object or its items.\"},{\"slug\":\"TRELLO_GET_CHECKLISTS_CARDS_BY_ID_CHECKLIST\",\"name\":\"Get checklist cards\",\"description\":\"Retrieves cards associated with a specific, valid Trello checklist ID, allowing for filtering and customization of card and related entity data fields.\"},{\"slug\":\"TRELLO_GET_CHECKLISTS_CHECK_ITEMS_BY_ID_CHECKLIST\",\"name\":\"Get checklist items by ID\",\"description\":\"Retrieves all check items from a Trello checklist. Returns item details including name, position, completion state, and optionally due dates and assigned members.\"},{\"slug\":\"TRELLO_GET_LABELS_BOARD_BY_ID_LABEL\",\"name\":\"Get board by label ID\",\"description\":\"Retrieves the Trello board to which a given, valid Trello label ID (`idLabel`) belongs.\"},{\"slug\":\"TRELLO_GET_LABELS_BOARD_BY_ID_LABEL_BY_FIELD\",\"name\":\"Retrieve board field by label id\",\"description\":\"Retrieves a specified `field` (e.g., 'name', 'url') from the Trello board associated with a given `idLabel`.\"},{\"slug\":\"TRELLO_GET_LABELS_BY_ID_LABEL\",\"name\":\"Get label by id\",\"description\":\"Retrieves detailed information for a specific Trello label by its ID, allowing selection of specific fields to return.\"},{\"slug\":\"TRELLO_GET_LISTS_ACTIONS_BY_ID_LIST\",\"name\":\"Get list actions by ID\",\"description\":\"Retrieves actions (like card movements or comments, newest first) for a Trello list by its ID, to track history or create activity logs.\"},{\"slug\":\"TRELLO_GET_LISTS_BOARD_BY_ID_LIST\",\"name\":\"Get board by list ID\",\"description\":\"Retrieves the board to which a specific Trello list belongs.\"},{\"slug\":\"TRELLO_GET_LISTS_BOARD_BY_ID_LIST_BY_FIELD\",\"name\":\"Get board field by list ID\",\"description\":\"Retrieves a specific field (e.g., 'name', 'desc', 'url') from the Trello board associated with a given list ID. Useful when you only have a list ID and need board information without fetching the full board object.\"},{\"slug\":\"TRELLO_GET_LISTS_BY_ID_LIST\",\"name\":\"Get list by ID\",\"description\":\"Retrieves a Trello list by its unique ID, optionally including details for its cards and parent board.\"},{\"slug\":\"TRELLO_GET_LISTS_BY_ID_LIST_BY_FIELD\",\"name\":\"Get list field value\",\"description\":\"Fetches the value of a single, specified field from a Trello list.\"},{\"slug\":\"TRELLO_GET_LISTS_CARDS_BY_ID_LIST\",\"name\":\"Get cards in a list\",\"description\":\"Fetches cards from a Trello list by its ID, with options to filter and customize the returned card data.\"},{\"slug\":\"TRELLO_GET_MEMBER_BOARD_BACKGROUND\",\"name\":\"Get Member Board Background\",\"description\":\"Retrieves a specific custom board background for a Trello member by its ID. Note: Only custom backgrounds (uploaded by the user) can be retrieved; built-in defaults like 'blue' or 'gradient-ocean' are not accessible via this endpoint.\"},{\"slug\":\"TRELLO_GET_MEMBER_CUSTOM_BG\",\"name\":\"Get member custom board background\",\"description\":\"Retrieves metadata (e.g., brightness, URLs, tiling status) for a specific custom board background of a Trello member, not the image file itself.\"},{\"slug\":\"TRELLO_GET_MEMBER_CUSTOM_EMOJI\",\"name\":\"Get member custom emoji\",\"description\":\"Retrieves a specific custom emoji by its ID for a Trello member, requiring that both the member and emoji exist and are associated.\"},{\"slug\":\"TRELLO_GET_MEMBER_INVITED_ORG\",\"name\":\"Get field of member's invited organization\",\"description\":\"Get a specific field of an organization to which the member has a pending invitation; returns data only if such an invitation exists.\"},{\"slug\":\"TRELLO_GET_MEMBER_ORG_CARDS\",\"name\":\"Get organization member cards\",\"description\":\"Fetches all cards assigned to a specific member of a given Trello organization.\"},{\"slug\":\"TRELLO_GET_MEMBERS_ACTIONS_BY_ID_MEMBER\",\"name\":\"Get member actions by ID\",\"description\":\"Retrieves a list of actions for a specified Trello member, allowing filtering by type, date, models, and control over output format and fields.\"},{\"slug\":\"TRELLO_GET_MEMBERS_BOARD_BACKGROUNDS_BY_ID_MEMBER\",\"name\":\"Get member board backgrounds\",\"description\":\"Fetches the board backgrounds for a specified Trello member.\"},{\"slug\":\"TRELLO_GET_MEMBERS_BOARDS_BY_ID_MEMBER\",\"name\":\"Get member boards by id\",\"description\":\"Retrieves board-level details (not lists/cards) for Trello boards associated with a member ID or username, allowing extensive customization of the returned data.\"},{\"slug\":\"TRELLO_GET_MEMBERS_BOARDS_BY_ID_MEMBER_BY_FILTER\",\"name\":\"Get member boards with filter\",\"description\":\"Retrieves a list of boards for a specific Trello member, applying a filter such as 'open', 'starred', or 'all'.\"},{\"slug\":\"TRELLO_GET_MEMBERS_BOARDS_INVITED_BY_ID_MEMBER\",\"name\":\"Get member's invited boards\",\"description\":\"Retrieves Trello boards to which a specific member has been invited but has not yet joined.\"},{\"slug\":\"TRELLO_GET_MEMBERS_BOARDS_INVITED_BY_ID_MEMBER_BY_FIELD\",\"name\":\"Get member's invited board field\",\"description\":\"Retrieves a specific field from Trello boards to which a member has been invited but not yet joined; returns an empty result for no pending invitations.\"},{\"slug\":\"TRELLO_GET_MEMBERS_BOARD_STARS_BY_ID_MEMBER\",\"name\":\"Get member board stars\",\"description\":\"Fetches only the boards a specific Trello member has starred, identified by their ID or username.\"},{\"slug\":\"TRELLO_GET_MEMBERS_BOARD_STARS_BY_ID_MEMBER_BY_ID_BOARD_STAR\",\"name\":\"Get member board star\",\"description\":\"Retrieves detailed information about a specific board star (a Trello board marked as a favorite) for a given Trello member.\"},{\"slug\":\"TRELLO_GET_MEMBERS_BY_ID_MEMBER\",\"name\":\"Get member by ID\",\"description\":\"Fetches comprehensive information about a Trello member, specified by ID or username, including profile, activities, boards, cards, notifications, and organization affiliations, with customizable detail levels via filters and field parameters.\"},{\"slug\":\"TRELLO_GET_MEMBERS_BY_ID_MEMBER_BY_FIELD\",\"name\":\"Get member field by ID\",\"description\":\"Efficiently retrieves a specific field (e.g., fullName, username, bio) of a Trello member using their ID or username, without fetching the entire member profile.\"},{\"slug\":\"TRELLO_GET_MEMBERS_CARDS_BY_ID_MEMBER\",\"name\":\"Get cards by member ID\",\"description\":\"Retrieves cards for a Trello member, specified by ID or username, with options to filter cards and include related data like actions, attachments, and checklists.\"},{\"slug\":\"TRELLO_GET_MEMBERS_CUSTOM_BOARD_BACKGROUNDS_BY_ID_MEMBER\",\"name\":\"Retrieve member custom board backgrounds\",\"description\":\"Retrieves custom board backgrounds for a Trello member, who must exist, using their ID or username.\"},{\"slug\":\"TRELLO_GET_MEMBERS_CUSTOM_EMOJI_BY_ID_MEMBER\",\"name\":\"Get member custom emoji\",\"description\":\"Retrieves all custom (user-specific, non-standard) emojis that a specified Trello member has created or can access.\"},{\"slug\":\"TRELLO_GET_MEMBERS_CUSTOM_STICKERS_BY_ID_MEMBER\",\"name\":\"Get member custom stickers\",\"description\":\"Retrieves a member's custom stickers, which are unique personalized stickers created by them, distinct from standard Trello stickers.\"},{\"slug\":\"TRELLO_GET_MEMBERS_CUSTOM_STICKERS_BY_ID_MEMBER_BY_ID_STICKE\",\"name\":\"Get member custom sticker\",\"description\":\"Get member custom sticker\"},{\"slug\":\"TRELLO_GET_MEMBERS_DELTAS_BY_ID_MEMBER\",\"name\":\"Get member deltas by ID\",\"description\":\"Retrieves a chronological list of all changes (deltas) made by a specific Trello member, including modifications to boards, lists, and cards, to audit activity or sync data.\"},{\"slug\":\"TRELLO_GET_MEMBERS_ME\",\"name\":\"Get authenticated member\",\"description\":\"Tool to retrieve information about the currently authenticated Trello member. Use when you need profile details, settings, or member metadata.\"},{\"slug\":\"TRELLO_GET_MEMBERS_ME_BOARDS\",\"name\":\"Get authenticated user's boards (Deprecated)\",\"description\":\"DEPRECATED: Use TRELLO_MEMBER_GET_BOARDS_BY_ID_MEMBER instead. Tool to retrieve all boards for the authenticated user (name, URL, and other metadata). Use when you need to list boards or get board IDs for further operations.\"},{\"slug\":\"TRELLO_GET_MEMBERS_NOTIFICATIONS_BY_ID_MEMBER\",\"name\":\"Get member notifications by id\",\"description\":\"Retrieves notifications for a Trello member, specified by their ID or username, with options for filtering and pagination.\"},{\"slug\":\"TRELLO_GET_MEMBERS_ORGANIZATIONS_BY_ID_MEMBER\",\"name\":\"Get a specified member's organizations\",\"description\":\"Fetches organizations a specific Trello member belongs to; the `idMember` must be an ID or username of an existing Trello member.\"},{\"slug\":\"TRELLO_GET_MEMBERS_ORGANIZATIONS_INVITED_BY_ID_MEMBER\",\"name\":\"Retrieve member s invited organizations\",\"description\":\"Retrieves organizations a Trello member has been invited to but has not yet accepted or declined.\"},{\"slug\":\"TRELLO_GET_MEMBERS_SAVED_SEARCHES_BY_ID_MEMBER\",\"name\":\"Get member saved searches\",\"description\":\"Retrieves all saved search queries for a Trello member; this action only retrieves saved searches and does not execute them.\"},{\"slug\":\"TRELLO_GET_MEMBERS_SAVED_SEARCHES_BY_ID_MEMBER_BY_ID_SAVED_S\",\"name\":\"Get Member Saved Search\",\"description\":\"Get Member Saved Search\"},{\"slug\":\"TRELLO_GET_MEMBERS_TOKENS_BY_ID_MEMBER\",\"name\":\"Retrieve member tokens\",\"description\":\"Retrieves API token metadata for a Trello member. Returns information about all API tokens associated with the specified member, including token ID, creation date, expiration date, permissions, and the application that created each token. For security reasons, the actual token values are not included in the response. Note: You can only retrieve tokens for your own account (use 'me' or your own member ID). Attempting to access another member's tokens will fail.\"},{\"slug\":\"TRELLO_GET_NOTIFICATIONS_BOARD_BY_ID_NOTIFICATION\",\"name\":\"Get notification board by ID\",\"description\":\"Gets the Trello board associated with a given notification ID, returning only board data and allowing selection of specific board fields.\"},{\"slug\":\"TRELLO_GET_NOTIFICATIONS_BOARD_BY_ID_NOTIFICATION_BY_FIELD\",\"name\":\"Get notification's board field\",\"description\":\"Retrieves a specific field from the board associated with a Trello notification. This endpoint is useful when you only need a single piece of information about the board (like its name or URL) without fetching all board data. The notification must belong to the authenticated user and must be associated with a board (e.g., board invitations, card comments, or mentions on board-related items).\"},{\"slug\":\"TRELLO_GET_NOTIFICATIONS_BY_ID_NOTIFICATION\",\"name\":\"Get notification by ID\",\"description\":\"Retrieves a specific Trello notification by its ID, optionally including related entities and specific fields for the notification and its related entities.\"},{\"slug\":\"TRELLO_GET_NOTIFICATIONS_BY_ID_NOTIFICATION_BY_FIELD\",\"name\":\"Get a notification field\",\"description\":\"Retrieves a specific field from a Trello notification.\"},{\"slug\":\"TRELLO_GET_NOTIFICATIONS_CARD_BY_ID_NOTIFICATION\",\"name\":\"Get notification's card\",\"description\":\"Retrieves the card associated with a Trello notification. Returns card details for card-related notifications (e.g., comments on cards, card assignments, due date reminders). The notification must exist and be linked to a card; notifications without card context (e.g., board-level notifications) will return an error.\"},{\"slug\":\"TRELLO_GET_NOTIFICATIONS_CARD_BY_ID_NOTIFICATION_BY_FIELD\",\"name\":\"Get notification card field\",\"description\":\"Retrieves a specific field of a Trello card, using the ID of a notification that is directly associated with that card.\"},{\"slug\":\"TRELLO_GET_NOTIFICATIONS_DISPLAY_BY_ID_NOTIFICATION\",\"name\":\"Get notification display by id\",\"description\":\"Retrieves the information needed to display an existing Trello notification, identified by its ID, without altering the notification or fetching its complete metadata.\"},{\"slug\":\"TRELLO_GET_NOTIFICATIONS_ENTITIES_BY_ID_NOTIFICATION\",\"name\":\"Get Notification Entities\",\"description\":\"Retrieves the entities (members, cards, boards, lists, etc.) associated with a specific Trello notification. Returns an ordered list of entity objects that together describe what happened in the notification. This is useful for building human-readable notification descriptions and activity feeds. For example, a 'mentionedOnCard' notification returns entities like: [member, \\\"mentioned you on\\\", card] which can be combined to display: \\\"John mentioned you on 'My Card'\\\" Note: Requires a valid notification ID that belongs to the authenticated user.\"},{\"slug\":\"TRELLO_GET_NOTIFICATIONS_LIST_BY_ID_NOTIFICATION\",\"name\":\"Retrieve notification list by id\",\"description\":\"Retrieves the Trello list associated with a specific notification ID, for notifications linked to a list (e.g., card creation or movement notifications).\"},{\"slug\":\"TRELLO_GET_NOTIFICATIONS_LIST_BY_ID_NOTIFICATION_BY_FIELD\",\"name\":\"Get notification list field\",\"description\":\"Efficiently retrieves a single specified field from a Trello list linked to a notification, avoiding fetching the entire list.\"},{\"slug\":\"TRELLO_GET_NOTIFICATIONS_MEMBER_BY_ID_NOTIFICATION\",\"name\":\"Get notification member by id\",\"description\":\"Fetches details of the member (not the notification content itself) associated with a specific Trello notification ID.\"},{\"slug\":\"TRELLO_GET_NOTIFICATIONS_MEMBER_BY_ID_NOTIFICATION_BY_FIELD\",\"name\":\"Retrieve notification member field\",\"description\":\"Retrieves a specific field value of the Trello member associated with a notification. Use this to get individual member properties (like fullName, username, email, etc.) for the member who is the subject of a notification. This is useful when you only need a single piece of member information rather than the full member object.\"},{\"slug\":\"TRELLO_GET_NOTIFICATIONS_MEMBER_CREATOR_BY_ID_NOTIFICATION\",\"name\":\"Get member creator of a notification\",\"description\":\"Fetches the creator (member) of a Trello notification, identified by `idNotification`, returning only creator details and respecting Trello privacy settings and user permissions.\"},{\"slug\":\"TRELLO_GET_NOTIFICATIONS_MEMBER_CREATOR_BY_ID_NOTIFICATION_B\",\"name\":\"Get notification creator field\",\"description\":\"Get notification creator field\"},{\"slug\":\"TRELLO_GET_NOTIFICATIONS_ORGANIZATION_BY_ID_NOTIFICATION\",\"name\":\"Get notification organization\",\"description\":\"Retrieves the Trello organization linked to a specific notification ID; returns organization details only, not the notification itself.\"},{\"slug\":\"TRELLO_GET_NOTIFICATIONS_ORGANIZATION_BY_ID_NOTIFICATION_BY_\",\"name\":\"Get notification organization field\",\"description\":\"Get notification organization field\"},{\"slug\":\"TRELLO_GET_ORGANIZATIONS_ACTIONS_BY_ID_ORG\",\"name\":\"Get organization actions by ID\",\"description\":\"Retrieves a log of actions (e.g., card creations, list movements, comments) for a specified Trello organization, filterable by type, date range, and models; `idOrg` must be a valid organization ID/name, and `page` * `limit` must be \u003c 1000.\"},{\"slug\":\"TRELLO_GET_ORGANIZATIONS_BOARDS_BY_ID_ORG\",\"name\":\"Get organization boards\",\"description\":\"Fetches boards for a Trello organization, specified by its ID or name, with options to filter and customize returned data.\"},{\"slug\":\"TRELLO_GET_ORGANIZATIONS_BY_ID_ORG\",\"name\":\"Get organization by ID\",\"description\":\"Retrieves detailed information about a specific Trello organization, including optional related resources like members, boards, and actions, using its ID or unique name.\"},{\"slug\":\"TRELLO_GET_ORGANIZATIONS_BY_ID_ORG_BY_FIELD\",\"name\":\"Get organization field by id\",\"description\":\"Retrieves the value of a single specified `field` for a Trello organization `idOrg`, ideal for efficiently fetching a specific piece of information without loading the full organization details.\"},{\"slug\":\"TRELLO_GET_ORGANIZATIONS_DELTAS_BY_ID_ORG\",\"name\":\"Get organization deltas by id\",\"description\":\"Retrieves a log of recent modifications (deltas) for a Trello organization, filterable by tags and supporting incremental fetching via an update index.\"},{\"slug\":\"TRELLO_GET_ORGANIZATIONS_MEMBERS_BY_ID_ORG\",\"name\":\"Retrieve organization members by id\",\"description\":\"Retrieves members of a Trello organization (specified by ID or name), with an option to include member activity if the organization is Premium.\"},{\"slug\":\"TRELLO_GET_ORGANIZATIONS_MEMBERSHIPS_BY_ID_ORG\",\"name\":\"Get organization memberships\",\"description\":\"Fetches organization-level memberships for a Trello organization, with options to filter members and include their details; does not return board-specific memberships.\"},{\"slug\":\"TRELLO_GET_ORGANIZATIONS_MEMBERS_INVITED_BY_ID_ORG\",\"name\":\"Get invited organization members\",\"description\":\"Retrieves members invited to a Trello organization who have not yet accepted their invitation, returning only data for pending invitations (not active or former members) and cannot send or modify invitations.\"},{\"slug\":\"TRELLO_GET_ORGANIZATIONS_MEMBERS_INVITED_BY_ID_ORG_BY_FIELD\",\"name\":\"Get organization invited member field\",\"description\":\"Retrieves a specific `field` (e.g., fullName, username, email, status) for members with pending invitations to the Trello organization specified by `idOrg`.\"},{\"slug\":\"TRELLO_GET_ORGANIZATIONS_PLUGIN_DATA\",\"name\":\"Get organization plugin data\",\"description\":\"Tool to get organization-scoped pluginData on a Trello Workspace. Use when you need to retrieve plugin configuration or data stored at the organization level.\"},{\"slug\":\"TRELLO_GET_ORGANIZATIONS_TAGS_BY_ID\",\"name\":\"Get organization tags\",\"description\":\"Lists all collections (tags) associated with a Trello organization. Use when you need to retrieve the organization's tags or collections.\"},{\"slug\":\"TRELLO_GET_ORG_MEMBERSHIP\",\"name\":\"Get organization membership\",\"description\":\"Retrieves a specific membership within a Trello organization, using their respective IDs, to ascertain the member's role, status, or permissions.\"},{\"slug\":\"TRELLO_GET_ORG_NEW_BILLABLE_GUESTS_BY_BOARD\",\"name\":\"Get new billable guests\",\"description\":\"Tool to check for new billable guests on a board within an organization. Use when you need to identify members who will incur billing charges.\"},{\"slug\":\"TRELLO_GET_SEARCH\",\"name\":\"Search Trello\",\"description\":\"Searches Trello content (e.g., boards, cards, members) within specified organizations using a query and customizable result fields. IMPORTANT LIMITATIONS: - Search indexing has a delay: newly created/updated cards may not appear for several minutes. - For exact name matching or time-sensitive lookups, use TRELLO_GET_LISTS_CARDS_BY_ID_LIST or TRELLO_GET_BOARDS_CARDS_BY_ID_BOARD to enumerate cards directly, then filter by name. - The search uses word tokenization: queries like 'Payment failed when sending tips' are split into individual terms ['Payment', 'failed', 'when', 'sending', 'tips']. Common words may be ignored. - Set partial='true' (default) for better recall with prefix matching on the last search term.\"},{\"slug\":\"TRELLO_GET_SEARCH_MEMBERS\",\"name\":\"Search for members\",\"description\":\"Searches Trello members by name, username, or email, optionally scoped to a board or organization.\"},{\"slug\":\"TRELLO_GET_SESSIONS_SOCKET\",\"name\":\"Get sessions socket\",\"description\":\"Retrieves WebSocket session connection information from Trello for real-time updates. IMPORTANT: This endpoint is an internal Trello endpoint that is NOT part of the public REST API. It requires WebSocket protocol and browser session authentication, making it inaccessible via standard API tokens. For real-time updates, use Trello Webhooks instead.\"},{\"slug\":\"TRELLO_GET_TOKENS_BY_TOKEN\",\"name\":\"Get token by token\",\"description\":\"Retrieves information about a specific Trello API token, allowing selection of specific fields and inclusion of webhook details.\"},{\"slug\":\"TRELLO_GET_TOKENS_BY_TOKEN_BY_FIELD\",\"name\":\"Get token field\",\"description\":\"Retrieves a specific field from a Trello token, provided the token is valid, has necessary permissions, and the field is a valid token field.\"},{\"slug\":\"TRELLO_GET_TOKENS_MEMBER_BY_TOKEN\",\"name\":\"Get token member\",\"description\":\"Retrieves information about the Trello member associated with the current API token, allowing customization of the returned fields.\"}]},{\"slug\":\"apollo\",\"name\":\"Apollo\",\"description\":\"Apollo provides CRM and lead generation capabilities, helping businesses discover contacts, manage outreach, and track sales pipelines for consistent customer relationship development\",\"logo\":\"https://logos.composio.dev/api/apollo\",\"rank\":49,\"tools\":[{\"slug\":\"APOLLO_ADD_CONTACTS_TO_SEQUENCE\",\"name\":\"Add Contacts to Sequence\",\"description\":\"Adds contacts to a specified Apollo email sequence and returns the contact details. `sequence_id`, `emailer_campaign_id`, and `send_email_from_email_account_id` must be retrieved from Apollo listing/search endpoints before calling this tool — these IDs cannot be inferred from names.\"},{\"slug\":\"APOLLO_BULK_ORGANIZATION_ENRICHMENT\",\"name\":\"Bulk organization enrichment\",\"description\":\"Enriches data for up to 10 organizations simultaneously by providing a list of their base company domains (e.g., 'apollo.io', not 'www.apollo.io'). Each call consumes Apollo credits per domain enriched; monitor quota to avoid exhaustion errors.\"},{\"slug\":\"APOLLO_BULK_PEOPLE_ENRICHMENT\",\"name\":\"Bulk people enrichment\",\"description\":\"Use to enrich multiple person profiles simultaneously with comprehensive data from Apollo's database. Each call consumes Apollo credits; avoid re-enriching the same contacts. Responses may include null or missing fields (e.g., email, phone, organization); treat unmatched records as valid 'no match' outcomes, not errors. Heavy use may trigger HTTP 429; respect Retry-After headers.\"},{\"slug\":\"APOLLO_BULK_UPDATE_ACCOUNT_STAGE\",\"name\":\"Bulk update account stage\",\"description\":\"Bulk updates the stage for specified existing Apollo.io accounts, moving them to a valid new account stage.\"},{\"slug\":\"APOLLO_CREATE_ACCOUNT\",\"name\":\"Create an Apollo account\",\"description\":\"Creates a new account in Apollo.io; a new record is created even if a similar account exists, and provided `owner_id` or `account_stage_id` must be valid existing IDs. The response includes the new account's ID, which can be used directly in subsequent calls.\"},{\"slug\":\"APOLLO_CREATE_BULK_ACCOUNTS\",\"name\":\"Bulk create Apollo accounts\",\"description\":\"Creates multiple accounts in Apollo.io with a single API call (maximum 100 accounts per request). Use when creating multiple company records at once.\"},{\"slug\":\"APOLLO_CREATE_BULK_CONTACTS\",\"name\":\"Bulk create Apollo contacts\",\"description\":\"Tool to bulk create multiple contacts in Apollo with a single API call. Use when you need to create multiple contacts efficiently. Supports up to 100 contacts per request with optional deduplication.\"},{\"slug\":\"APOLLO_CREATE_CALL_RECORD\",\"name\":\"Create call record in Apollo\",\"description\":\"Tool to log call records in Apollo from external systems. Use when recording calls made through outside systems like Orum or Nooks; requires a master API key and cannot dial prospects directly.\"},{\"slug\":\"APOLLO_CREATE_CONTACT\",\"name\":\"Create Apollo contact\",\"description\":\"Creates a new contact in Apollo.io; use `account_id` to link to an organization and `contact_stage_id` for sales stage. Apollo does not auto-deduplicate — duplicate records sharing the same email are silently created; always search via APOLLO_SEARCH_CONTACTS before calling this tool. Requires explicit user confirmation before execution.\"},{\"slug\":\"APOLLO_CREATE_CUSTOM_FIELD\",\"name\":\"Create custom field\",\"description\":\"Creates a new custom field in Apollo.io for contacts, accounts, or opportunities. Use when you need to define additional data fields beyond Apollo's standard attributes.\"},{\"slug\":\"APOLLO_CREATE_DEAL\",\"name\":\"Create Apollo deal\",\"description\":\"Creates a new sales opportunity (deal) in Apollo.io; all provided IDs (`owner_id`, `account_id`, `opportunity_stage_id`) must be valid existing Apollo identifiers. This action has persistent side effects — obtain explicit user confirmation before invoking.\"},{\"slug\":\"APOLLO_CREATE_TASK\",\"name\":\"Create Apollo Task\",\"description\":\"Tool to create a single task in Apollo.io. Use when you need to add a new task to your team's Apollo account for a specific contact. The task will be assigned to a user and includes details like type, status, priority, due date, and optional notes.\"},{\"slug\":\"APOLLO_GET_ACCOUNT\",\"name\":\"Get Account by ID\",\"description\":\"Tool to retrieve detailed information about a specific account by its Apollo ID. Use when you need to fetch complete account data including company details, contact information, and CRM integration fields.\"},{\"slug\":\"APOLLO_GET_AUTH_STATUS\",\"name\":\"Check Apollo API key status\",\"description\":\"Tool to check whether the provided Apollo API key is valid and accepted by Apollo (health/auth check). Use when any Apollo endpoint returns 401/403/422 to quickly diagnose invalid/expired keys versus permission scope issues. If this succeeds but other endpoints return 403, it strongly suggests permissioning or master-key scope issues rather than a totally invalid credential.\"},{\"slug\":\"APOLLO_GET_CONTACT\",\"name\":\"Get Apollo Contact\",\"description\":\"Retrieves detailed information about a specific contact by its ID. Use this to view contact details including name, email, phone numbers, organization, and custom fields.\"},{\"slug\":\"APOLLO_GET_DEAL\",\"name\":\"Get Apollo deal\",\"description\":\"Retrieves information about a specific deal by its ID. Use this when you need to view details of a single deal.\"},{\"slug\":\"APOLLO_GET_LABELS\",\"name\":\"Get Labels\",\"description\":\"Retrieves all labels from Apollo.io, used for organizing contacts and accounts. Call this before APOLLO_CREATE_CONTACT or APOLLO_UPDATE_ACCOUNT to validate label values against the returned list; mismatched labels cause 400/422 errors.\"},{\"slug\":\"APOLLO_GET_OPPORTUNITY_STAGES\",\"name\":\"Get opportunity stages\",\"description\":\"Retrieves all configured opportunity (deal) stages from the Apollo.io account.\"},{\"slug\":\"APOLLO_GET_ORGANIZATION\",\"name\":\"Get Organization by ID\",\"description\":\"Retrieves complete information about a specific organization by its Apollo ID. Use when you need detailed company data including funding, technologies, employee counts, and more.\"},{\"slug\":\"APOLLO_GET_ORGANIZATION_JOB_POSTINGS\",\"name\":\"Get Organization Job Postings\",\"description\":\"Retrieves paginated job postings for a specified organization by its ID, optionally filtering by domain; ensure `organization_id` is a valid identifier.\"},{\"slug\":\"APOLLO_GET_TYPED_CUSTOM_FIELDS\",\"name\":\"Get typed custom fields\",\"description\":\"Retrieves all typed custom field definitions available in the Apollo.io instance, detailing their types and configurations. Call before constructing payloads for APOLLO_UPDATE_CONTACT or APOLLO_UPDATE_ACCOUNT — mismatched types or invalid enum options cause 400 errors.\"},{\"slug\":\"APOLLO_LIST_ACCOUNT_STAGES\",\"name\":\"List Apollo account stages\",\"description\":\"Retrieves the IDs for all available account stages in your team's Apollo account.\"},{\"slug\":\"APOLLO_LIST_CONTACT_STAGES\",\"name\":\"List apollo contact stages\",\"description\":\"Retrieves all available contact stages from an Apollo account, including their unique IDs and names.\"},{\"slug\":\"APOLLO_LIST_DEALS\",\"name\":\"List Apollo deals\",\"description\":\"Retrieves a list of deals from Apollo, using Apollo's default sort order if 'sort_by_field' is omitted.\"},{\"slug\":\"APOLLO_LIST_EMAIL_ACCOUNTS\",\"name\":\"List email accounts\",\"description\":\"Retrieves all email accounts and their details for the authenticated user; takes no parameters.\"},{\"slug\":\"APOLLO_LIST_FIELDS\",\"name\":\"List Fields\",\"description\":\"Retrieves all field definitions from Apollo.io, including system fields and custom fields. Use the optional 'source' parameter to filter by field type (system, custom, or crm_synced).\"},{\"slug\":\"APOLLO_LIST_USERS\",\"name\":\"List Apollo Users\",\"description\":\"Retrieves a list of all users (teammates) associated with the Apollo account, supporting pagination via `page` and `per_page` parameters. Use this to obtain numeric user IDs required by operations like APOLLO_UPDATE_CONTACT_OWNERSHIP — names or email addresses are not accepted in place of these IDs.\"},{\"slug\":\"APOLLO_ORGANIZATION_ENRICHMENT\",\"name\":\"Enrich organization data\",\"description\":\"Fetches comprehensive organization enrichment data from Apollo.io for a given company domain; results are most meaningful if the company exists in Apollo's database. Each call consumes Apollo credits and may be unavailable on free plans. Returns HTTP 429 under burst usage; use exponential backoff on retries.\"},{\"slug\":\"APOLLO_ORGANIZATION_SEARCH\",\"name\":\"Search organizations in Apollo\",\"description\":\"Searches Apollo's database for organizations using various filters; consumes credits on every call (unavailable on free plans) — avoid re-running identical queries and surface quota errors rather than retrying. Retrieves a maximum of 50,000 records; uses `page` (1-500) and `per_page` (1-100) for pagination — check `total_pages` in the response to iterate. Overly strict filter combinations can return zero results; start broad and narrow iteratively. Empty results and `org_not_found` are valid outcomes, not errors.\"},{\"slug\":\"APOLLO_PEOPLE_ENRICHMENT\",\"name\":\"Enrich person with Apollo\",\"description\":\"Enriches and retrieves information for a person from Apollo.io. Requires one of: `id`, `email`, `hashed_email`, `linkedin_url`, or (`first_name` and `last_name` with `organization_name` or `domain`) for matching. `webhook_url` must be provided if `reveal_phone_number` is true. Name-only inputs without `organization_name` or `domain` frequently return no matches.\"},{\"slug\":\"APOLLO_PEOPLE_SEARCH\",\"name\":\"Apollo people search\",\"description\":\"Searches Apollo's contact database for people using various filters; results capped at 50,000 records and does not enrich contact data. Combining multiple strict filters (organization_ids, person_titles, person_seniorities) can return zero results — start broad and narrow iteratively. Result records may have null email, phone, or organization fields.\"},{\"slug\":\"APOLLO_SEARCH_ACCOUNTS\",\"name\":\"Search Apollo Accounts\",\"description\":\"Searches for accounts within your existing Apollo.io database using various criteria; requires a paid plan and is limited to 50,000 records.\"},{\"slug\":\"APOLLO_SEARCH_CALLS\",\"name\":\"Search for Calls\",\"description\":\"Searches for call records in Apollo.io using filters like date range, duration, direction (inbound/outgoing), users, contacts, purposes, outcomes, and keywords. Supports pagination for efficient data retrieval.\"},{\"slug\":\"APOLLO_SEARCH_CONTACTS\",\"name\":\"Search Apollo contacts\",\"description\":\"Searches Apollo contacts using keywords, stage IDs (from 'List Contact Stages' action), or sorting (max 50,000 records; `sort_ascending` requires `sort_by_field`). Search before creating contacts to avoid duplicates.\"},{\"slug\":\"APOLLO_SEARCH_NEWS_ARTICLES\",\"name\":\"Search news articles\",\"description\":\"Tool to search for news articles about companies in Apollo's database. Use when you need to find recent news, announcements, or updates about specific organizations using their Apollo IDs.\"},{\"slug\":\"APOLLO_SEARCH_OUTREACH_EMAILS\",\"name\":\"Search outreach emails\",\"description\":\"Tool to search for outreach emails sent through Apollo sequences. Use when you need to find emails created and sent by your team as part of Apollo email campaigns. This endpoint requires a master API key and has a display limit of 50,000 records (100 records per page, up to 500 pages).\"},{\"slug\":\"APOLLO_SEARCH_SEQUENCES\",\"name\":\"Search sequences\",\"description\":\"Searches for sequences (e.g., automated email campaigns) in Apollo.io.\"},{\"slug\":\"APOLLO_SEARCH_TASKS\",\"name\":\"Search tasks\",\"description\":\"Searches for tasks in Apollo.io using filters like keywords, date ranges (due, created, updated), priorities, types, assigned users, associated contacts/accounts, supporting sorting and pagination.\"},{\"slug\":\"APOLLO_UPDATE_ACCOUNT\",\"name\":\"Update an Apollo account\",\"description\":\"Updates specified attributes of an existing account in Apollo.io.\"},{\"slug\":\"APOLLO_UPDATE_ACCOUNT_OWNERS\",\"name\":\"Update account ownership\",\"description\":\"Updates the ownership of multiple Apollo accounts to a specified user. Use when bulk assigning account ownership to a team member.\"},{\"slug\":\"APOLLO_UPDATE_CALL_RECORD\",\"name\":\"Update Apollo call record\",\"description\":\"Tool to update an existing call record in Apollo.io. Use when you need to modify details of a previously logged phone call such as duration, status, notes, or associated contact/account information.\"},{\"slug\":\"APOLLO_UPDATE_CONTACT\",\"name\":\"Update Apollo contact details\",\"description\":\"Tool to update an existing contact's information in Apollo. Use when you need to modify contact details such as name, email, phone, title, organization, or custom fields. At least one field beyond contact_id must be provided.\"},{\"slug\":\"APOLLO_UPDATE_CONTACT_OWNERSHIP\",\"name\":\"Update contact ownership\",\"description\":\"Updates the ownership of specified Apollo contacts to a given Apollo user, who must be part of the same team.\"},{\"slug\":\"APOLLO_UPDATE_CONTACTS_BULK\",\"name\":\"Bulk update Apollo contacts\",\"description\":\"Tool to bulk update multiple Apollo contacts with a single API call. Use when updating multiple contacts simultaneously - either apply the same updates to all contacts using contact_ids, or apply different updates to each contact using contact_attributes. Automatically processes asynchronously for more than 100 contacts.\"},{\"slug\":\"APOLLO_UPDATE_CONTACT_STAGE\",\"name\":\"Update contact stage\",\"description\":\"Updates the stage for one or more existing contacts in Apollo.io to a new valid contact stage, useful for managing sales funnel progression.\"},{\"slug\":\"APOLLO_UPDATE_CONTACT_STATUS_IN_SEQUENCE\",\"name\":\"Update contact status in sequence\",\"description\":\"Updates a contact's status within a designated Apollo sequence, but cannot set the status to 'active'.\"},{\"slug\":\"APOLLO_UPDATE_DEALS\",\"name\":\"Update Apollo deal\",\"description\":\"Updates specified fields of an existing Apollo.io deal (opportunity), requiring a valid `opportunity_id`.\"},{\"slug\":\"APOLLO_VIEW_API_USAGE_STATS\",\"name\":\"View API Usage Stats\",\"description\":\"Fetches Apollo API usage statistics and rate limits for the connected team. Use before large enrichment/search runs to understand current API usage and plan/budget constraints. If experiencing 403s on credit/usage sensitive endpoints, use this tool to confirm whether the key has master privileges (this endpoint will 403 without a master key).\"}]}]}],\"$L24\",\"$L25\",\"$L26\",\"$L27\",\"$L28\",\"$L29\"]}]\n"])</script><script>self.__next_f.push([1,"2a:I[80611,[\"1034\",\"static/chunks/481b18d3-b226a9cf63447f42.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"8702\",\"static/chunks/504f14e4-a0552262de9f7d74.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"8129\",\"static/chunks/c5503633-24284694ed1fdfa6.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"5562\",\"static/chunks/5562-04a5619131a706e5.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"14\",\"static/chunks/14-8a61002774841b0a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"2510\",\"static/chunks/2510-7105d8258cdbd8c8.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9170\",\"static/chunks/9170-c6d8c29c2224efe7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"6103\",\"static/chunks/6103-39bce09afc6306dd.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"5539\",\"static/chunks/5539-8451c0f5ff0f02a7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"2554\",\"static/chunks/2554-acb95cf9f19a8aae.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9573\",\"static/chunks/9573-4ef7b615681d5b03.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"7546\",\"static/chunks/7546-737e05e251618a5a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9609\",\"static/chunks/app/startups/page-f0e7f1f269d678fa.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\"],\"TrackedLink\"]\n"])</script><script>self.__next_f.push([1,"35:I[60127,[\"1034\",\"static/chunks/481b18d3-b226a9cf63447f42.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"8702\",\"static/chunks/504f14e4-a0552262de9f7d74.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"8129\",\"static/chunks/c5503633-24284694ed1fdfa6.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"5562\",\"static/chunks/5562-04a5619131a706e5.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"14\",\"static/chunks/14-8a61002774841b0a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"2510\",\"static/chunks/2510-7105d8258cdbd8c8.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9170\",\"static/chunks/9170-c6d8c29c2224efe7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"6103\",\"static/chunks/6103-39bce09afc6306dd.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"5539\",\"static/chunks/5539-8451c0f5ff0f02a7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"2554\",\"static/chunks/2554-acb95cf9f19a8aae.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9573\",\"static/chunks/9573-4ef7b615681d5b03.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"7546\",\"static/chunks/7546-737e05e251618a5a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9609\",\"static/chunks/app/startups/page-f0e7f1f269d678fa.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\"],\"StartupsShaderBackdrop\"]\n"])</script><script>self.__next_f.push([1,"36:I[838,[\"1034\",\"static/chunks/481b18d3-b226a9cf63447f42.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"8702\",\"static/chunks/504f14e4-a0552262de9f7d74.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"8129\",\"static/chunks/c5503633-24284694ed1fdfa6.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"5562\",\"static/chunks/5562-04a5619131a706e5.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"14\",\"static/chunks/14-8a61002774841b0a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"2510\",\"static/chunks/2510-7105d8258cdbd8c8.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9170\",\"static/chunks/9170-c6d8c29c2224efe7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"6103\",\"static/chunks/6103-39bce09afc6306dd.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"5539\",\"static/chunks/5539-8451c0f5ff0f02a7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"2554\",\"static/chunks/2554-acb95cf9f19a8aae.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9573\",\"static/chunks/9573-4ef7b615681d5b03.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"7546\",\"static/chunks/7546-737e05e251618a5a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9609\",\"static/chunks/app/startups/page-f0e7f1f269d678fa.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\"],\"LiveUserCounter\"]\n"])</script><script>self.__next_f.push([1,"37:I[17297,[\"1034\",\"static/chunks/481b18d3-b226a9cf63447f42.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"8702\",\"static/chunks/504f14e4-a0552262de9f7d74.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"8129\",\"static/chunks/c5503633-24284694ed1fdfa6.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"5562\",\"static/chunks/5562-04a5619131a706e5.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"14\",\"static/chunks/14-8a61002774841b0a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"2510\",\"static/chunks/2510-7105d8258cdbd8c8.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9170\",\"static/chunks/9170-c6d8c29c2224efe7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"6103\",\"static/chunks/6103-39bce09afc6306dd.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"5539\",\"static/chunks/5539-8451c0f5ff0f02a7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"2554\",\"static/chunks/2554-acb95cf9f19a8aae.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9573\",\"static/chunks/9573-4ef7b615681d5b03.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"7546\",\"static/chunks/7546-737e05e251618a5a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9609\",\"static/chunks/app/startups/page-f0e7f1f269d678fa.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\"],\"WhenInView\"]\n"])</script><script>self.__next_f.push([1,"38:I[85019,[\"1034\",\"static/chunks/481b18d3-b226a9cf63447f42.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"8702\",\"static/chunks/504f14e4-a0552262de9f7d74.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"8129\",\"static/chunks/c5503633-24284694ed1fdfa6.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"5562\",\"static/chunks/5562-04a5619131a706e5.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"14\",\"static/chunks/14-8a61002774841b0a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"2510\",\"static/chunks/2510-7105d8258cdbd8c8.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9170\",\"static/chunks/9170-c6d8c29c2224efe7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"6103\",\"static/chunks/6103-39bce09afc6306dd.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"5539\",\"static/chunks/5539-8451c0f5ff0f02a7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"2554\",\"static/chunks/2554-acb95cf9f19a8aae.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9573\",\"static/chunks/9573-4ef7b615681d5b03.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"7546\",\"static/chunks/7546-737e05e251618a5a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9609\",\"static/chunks/app/startups/page-f0e7f1f269d678fa.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\"],\"SaveTimeWarp\"]\n"])</script><script>self.__next_f.push([1,"39:I[74167,[\"1034\",\"static/chunks/481b18d3-b226a9cf63447f42.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"8702\",\"static/chunks/504f14e4-a0552262de9f7d74.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"8129\",\"static/chunks/c5503633-24284694ed1fdfa6.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"5562\",\"static/chunks/5562-04a5619131a706e5.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"14\",\"static/chunks/14-8a61002774841b0a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"2510\",\"static/chunks/2510-7105d8258cdbd8c8.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9170\",\"static/chunks/9170-c6d8c29c2224efe7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"6103\",\"static/chunks/6103-39bce09afc6306dd.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"5539\",\"static/chunks/5539-8451c0f5ff0f02a7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"2554\",\"static/chunks/2554-acb95cf9f19a8aae.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9573\",\"static/chunks/9573-4ef7b615681d5b03.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"7546\",\"static/chunks/7546-737e05e251618a5a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9609\",\"static/chunks/app/startups/page-f0e7f1f269d678fa.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\"],\"StartupsForm\"]\n"])</script><script>self.__next_f.push([1,"3a:I[76737,[\"1034\",\"static/chunks/481b18d3-b226a9cf63447f42.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"8702\",\"static/chunks/504f14e4-a0552262de9f7d74.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"8129\",\"static/chunks/c5503633-24284694ed1fdfa6.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"5562\",\"static/chunks/5562-04a5619131a706e5.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"14\",\"static/chunks/14-8a61002774841b0a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"2510\",\"static/chunks/2510-7105d8258cdbd8c8.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9170\",\"static/chunks/9170-c6d8c29c2224efe7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"6103\",\"static/chunks/6103-39bce09afc6306dd.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"5539\",\"static/chunks/5539-8451c0f5ff0f02a7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"2554\",\"static/chunks/2554-acb95cf9f19a8aae.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9573\",\"static/chunks/9573-4ef7b615681d5b03.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"7546\",\"static/chunks/7546-737e05e251618a5a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9609\",\"static/chunks/app/startups/page-f0e7f1f269d678fa.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\"],\"StartupsFaq\"]\n"])</script><script>self.__next_f.push([1,"3b:I[90902,[\"1034\",\"static/chunks/481b18d3-b226a9cf63447f42.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"8702\",\"static/chunks/504f14e4-a0552262de9f7d74.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"8129\",\"static/chunks/c5503633-24284694ed1fdfa6.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"5562\",\"static/chunks/5562-04a5619131a706e5.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"14\",\"static/chunks/14-8a61002774841b0a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"2510\",\"static/chunks/2510-7105d8258cdbd8c8.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9170\",\"static/chunks/9170-c6d8c29c2224efe7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"6103\",\"static/chunks/6103-39bce09afc6306dd.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"5539\",\"static/chunks/5539-8451c0f5ff0f02a7.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"2554\",\"static/chunks/2554-acb95cf9f19a8aae.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9573\",\"static/chunks/9573-4ef7b615681d5b03.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"7546\",\"static/chunks/7546-737e05e251618a5a.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\",\"9609\",\"static/chunks/app/startups/page-f0e7f1f269d678fa.js?dpl=dpl_5GmK1SgywXSTDrFwzN3jkHYscuCd\"],\"Footer\"]\n"])</script><script>self.__next_f.push([1,"24:[\"$\",\"section\",null,{\"className\":\"relative bg-white\",\"children\":[[\"$\",\"div\",null,{\"aria-hidden\":\"true\",\"className\":\"pointer-events-none absolute inset-0 z-40 mx-auto hidden w-full max-w-page border-black/[0.06] border-x lg:block\"}],[\"$\",\"div\",null,{\"className\":\"relative mx-auto w-full max-w-page border-black/[0.06] border-t px-5 py-16 md:px-10 md:py-24\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-10 md:gap-14\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mx-auto flex w-full max-w-[720px] flex-col items-center text-center\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center gap-2\",\"children\":[[\"$\",\"div\",null,{\"className\":\"size-[5.82px] bg-brand\"}],[\"$\",\"span\",null,{\"className\":\"font-mono text-brand text-sm leading-normal tracking-default\",\"children\":\"WHAT COMPOSIO SOLVES\"}]]}],[\"$\",\"h2\",null,{\"className\":\"mt-6 max-w-[640px] text-pretty text-black text-h1 text-wrap-balance\",\"children\":\"Spend your runway on product, not plumbing\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 max-w-[520px] text-pretty font-sans text-base text-black/65 text-wrap-balance leading-relaxed\",\"children\":\"Auth, tools, triggers, and a code sandbox — months of agent infrastructure, ready on day one.\"}],[\"$\",\"$L2a\",null,{\"baseUrl\":\"https://docs.composio.dev\",\"className\":\"mt-8 inline-flex w-fit items-center gap-1.5 border border-black/15 bg-white px-5 py-3 font-mono text-black text-sm leading-normal tracking-default transition-colors hover:border-black/30 hover:bg-black/[0.02]\",\"event\":{\"name\":\"LANDING_STARTUPS_DOCS_CLICKED\"},\"placement\":\"startups-capabilities-docs\",\"children\":[\"Read docs\",[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24px\",\"height\":\"24px\",\"viewBox\":\"0 0 24 24\",\"className\":\"size-3.5\",\"children\":[\"$undefined\",[[\"$\",\"path\",null,{\"d\":\"M21 12L21 12.01\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"fill\":\"none\"}],[\"$\",\"path\",null,{\"d\":\"M19 14L19 14.01\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"fill\":\"none\"}],[\"$\",\"path\",null,{\"d\":\"M17 16L17 16.01\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"fill\":\"none\"}],[\"$\",\"path\",null,{\"d\":\"M15 18L15 18.01\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"fill\":\"none\"}],[\"$\",\"path\",null,{\"d\":\"M19 10L19 10.01\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"fill\":\"none\"}],[\"$\",\"path\",null,{\"d\":\"M17 8L17 8.01\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"fill\":\"none\"}],[\"$\",\"path\",null,{\"d\":\"M15 6L15 6.01\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"fill\":\"none\"}],[\"$\",\"path\",null,{\"d\":\"M19 12L3 12\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"data-color\":\"color-2\",\"fill\":\"none\"}]]]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"grid w-full grid-cols-1 border border-black/[0.08] sm:grid-cols-2\",\"children\":[[\"$\",\"article\",null,{\"className\":\"flex flex-col gap-6 p-5 md:p-6 border-black/[0.08] border-b sm:border-r\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-1 items-center justify-center\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-2 flex items-center gap-2 border border-black/[0.08] bg-white px-3 py-2 shadow-sm\",\"children\":[[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24px\",\"height\":\"24px\",\"viewBox\":\"0 0 24 24\",\"className\":\"size-3.5 shrink-0 text-black/30\",\"strokeWidth\":2,\"children\":[\"$undefined\",[[\"$\",\"path\",null,{\"d\":\"M15 19H7\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"fill\":\"none\"}],[\"$\",\"path\",null,{\"d\":\"M15 3L7 3\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"fill\":\"none\"}],[\"$\",\"path\",null,{\"d\":\"M3 15L3 7\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"fill\":\"none\"}],[\"$\",\"path\",null,{\"d\":\"M19 15L19 7\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"fill\":\"none\"}],[\"$\",\"path\",null,{\"d\":\"M19 19L19 19.01\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"data-color\":\"color-2\",\"fill\":\"none\"}],[\"$\",\"path\",null,{\"d\":\"M21 21L21 21.01\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"data-color\":\"color-2\",\"fill\":\"none\"}],[\"$\",\"path\",null,{\"d\":\"M5 17L5 17.01\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"fill\":\"none\"}],\"$L2b\",\"$L2c\",\"$L2d\"]]}],\"$L2e\",\"$L2f\"]}],\"$L30\"]}]}],\"$L31\"]}],\"$L32\",\"$L33\",\"$L34\"]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"25:[\"$\",\"section\",null,{\"className\":\"relative bg-white\",\"children\":[[\"$\",\"div\",null,{\"aria-hidden\":\"true\",\"className\":\"pointer-events-none absolute inset-0 z-40 mx-auto hidden w-full max-w-page border-black/[0.06] border-x lg:block\"}],[\"$\",\"div\",null,{\"className\":\"relative mx-auto w-full max-w-page overflow-hidden border-black/[0.06] border-t px-5 py-16 md:px-10 md:py-24\",\"children\":[[\"$\",\"$L35\",null,{\"seed\":64}],[\"$\",\"div\",null,{\"className\":\"relative z-10 mx-auto flex w-full flex-col items-center gap-5 text-center\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-black text-h1 md:whitespace-nowrap\",\"children\":\"Everything you need to build and scale\"}],[\"$\",\"p\",null,{\"className\":\"max-w-[520px] text-pretty font-sans text-base text-black/65 leading-relaxed\",\"children\":\"Accepted startups get six months on our Business plan — completely free.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"26:[\"$\",\"section\",null,{\"className\":\"relative overflow-hidden bg-white\",\"children\":[[\"$\",\"div\",null,{\"aria-hidden\":\"true\",\"className\":\"pointer-events-none absolute inset-0 z-40 mx-auto hidden w-full max-w-page border-black/[0.06] border-x lg:block\"}],[\"$\",\"div\",null,{\"className\":\"relative z-10 mx-auto w-full max-w-page border-black/[0.06] border-t\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 items-start gap-8 px-6 pt-10 md:grid-cols-[1fr_minmax(0,360px)] md:gap-12 md:px-10 md:pt-14\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-4 flex items-center gap-2\",\"children\":[[\"$\",\"div\",null,{\"className\":\"size-[5.82px] bg-brand\"}],[\"$\",\"span\",null,{\"className\":\"font-mono text-brand text-sm uppercase leading-normal tracking-default\",\"children\":\"In good company\"}]]}],[\"$\",\"h2\",null,{\"className\":\"mb-3 text-black text-h1\",\"children\":\"Join the teams shipping faster\"}],[\"$\",\"p\",null,{\"className\":\"mb-5 max-w-[420px] font-sans text-base text-black/65 leading-relaxed\",\"children\":\"Startups use Composio to put their agents to work across every tool — without building integrations from scratch.\"}],[\"$\",\"$L2a\",null,{\"className\":\"inline-flex items-center gap-1.5 self-start bg-black px-5 py-3 font-mono text-sm text-white leading-normal tracking-default transition-colors hover:bg-black/85\",\"event\":{\"name\":\"LANDING_STARTUPS_MOMENTUM_CTA_CLICKED\"},\"href\":\"#apply\",\"children\":[\"Apply now\",[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24px\",\"height\":\"24px\",\"viewBox\":\"0 0 24 24\",\"className\":\"size-3.5\",\"children\":[\"$undefined\",[[\"$\",\"path\",null,{\"d\":\"M21 12L21 12.01\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"fill\":\"none\"}],[\"$\",\"path\",null,{\"d\":\"M19 14L19 14.01\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"fill\":\"none\"}],[\"$\",\"path\",null,{\"d\":\"M17 16L17 16.01\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"fill\":\"none\"}],[\"$\",\"path\",null,{\"d\":\"M15 18L15 18.01\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"fill\":\"none\"}],[\"$\",\"path\",null,{\"d\":\"M19 10L19 10.01\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"fill\":\"none\"}],[\"$\",\"path\",null,{\"d\":\"M17 8L17 8.01\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"fill\":\"none\"}],[\"$\",\"path\",null,{\"d\":\"M15 6L15 6.01\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"fill\":\"none\"}],[\"$\",\"path\",null,{\"d\":\"M19 12L3 12\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"data-color\":\"color-2\",\"fill\":\"none\"}]]]}]]}]]}],[\"$\",\"$L36\",null,{}]]}],[\"$\",\"$L37\",null,{\"className\":\"h-[220px] w-full md:h-[340px]\",\"children\":[\"$\",\"$L38\",null,{}]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"27:[\"$\",\"$L39\",null,{}]\n28:[\"$\",\"$L3a\",null,{}]\n29:[\"$\",\"$L3b\",null,{}]\n"])</script><script>self.__next_f.push([1,"2b:[\"$\",\"path\",null,{\"d\":\"M17 17L17 17.01\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"fill\":\"none\"}]\n2c:[\"$\",\"path\",null,{\"d\":\"M17 5L17 5.01\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"fill\":\"none\"}]\n2d:[\"$\",\"path\",null,{\"d\":\"M5 5L5 5.01\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"square\",\"fill\":\"none\"}]\n2e:[\"$\",\"span\",null,{\"className\":\"font-mono text-[11px] text-black/55\",\"children\":\"send a message to my team\"}]\n2f:[\"$\",\"span\",null,{\"className\":\"ml-auto font-mono text-[10px] text-brand uppercase tracking-wider\",\"children\":\"2 matched\"}]\n"])</script><script>self.__next_f.push([1,"30:[\"$\",\"div\",null,{\"className\":\"grid grid-cols-8 gap-1.5\",\"children\":[[[\"$\",\"div\",\"gmail\",{\"className\":\"flex aspect-square items-center justify-center border transition-colors border-brand/40 bg-brand/[0.08] shadow-[0_0_0_2px_rgba(81,162,255,0.12)]\",\"children\":[\"$\",\"img\",null,{\"alt\":\"\",\"className\":\"object-contain\",\"height\":18,\"src\":\"https://logos.composio.dev/api/gmail\",\"style\":{\"width\":18,\"height\":18},\"width\":18}]}],[\"$\",\"div\",\"slack\",{\"className\":\"flex aspect-square items-center justify-center border transition-colors border-brand/40 bg-brand/[0.08] shadow-[0_0_0_2px_rgba(81,162,255,0.12)]\",\"children\":[\"$\",\"img\",null,{\"alt\":\"\",\"className\":\"object-contain\",\"height\":18,\"src\":\"https://logos.composio.dev/api/slack\",\"style\":{\"width\":18,\"height\":18},\"width\":18}]}],[\"$\",\"div\",\"github\",{\"className\":\"flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50\",\"children\":[\"$\",\"img\",null,{\"alt\":\"\",\"className\":\"object-contain\",\"height\":18,\"src\":\"https://logos.composio.dev/api/github\",\"style\":{\"width\":18,\"height\":18},\"width\":18}]}],[\"$\",\"div\",\"linear\",{\"className\":\"flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50\",\"children\":[\"$\",\"img\",null,{\"alt\":\"\",\"className\":\"object-contain\",\"height\":18,\"src\":\"https://logos.composio.dev/api/linear\",\"style\":{\"width\":18,\"height\":18},\"width\":18}]}],[\"$\",\"div\",\"notion\",{\"className\":\"flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50\",\"children\":[\"$\",\"img\",null,{\"alt\":\"\",\"className\":\"object-contain\",\"height\":18,\"src\":\"https://logos.composio.dev/api/notion\",\"style\":{\"width\":18,\"height\":18},\"width\":18}]}],[\"$\",\"div\",\"figma\",{\"className\":\"flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50\",\"children\":[\"$\",\"img\",null,{\"alt\":\"\",\"className\":\"object-contain\",\"height\":18,\"src\":\"https://logos.composio.dev/api/figma\",\"style\":{\"width\":18,\"height\":18},\"width\":18}]}],[\"$\",\"div\",\"stripe\",{\"className\":\"flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50\",\"children\":[\"$\",\"img\",null,{\"alt\":\"\",\"className\":\"object-contain\",\"height\":18,\"src\":\"https://logos.composio.dev/api/stripe\",\"style\":{\"width\":18,\"height\":18},\"width\":18}]}],[\"$\",\"div\",\"hubspot\",{\"className\":\"flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50\",\"children\":[\"$\",\"img\",null,{\"alt\":\"\",\"className\":\"object-contain\",\"height\":18,\"src\":\"https://logos.composio.dev/api/hubspot\",\"style\":{\"width\":18,\"height\":18},\"width\":18}]}],[\"$\",\"div\",\"googledrive\",{\"className\":\"flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50\",\"children\":[\"$\",\"img\",null,{\"alt\":\"\",\"className\":\"object-contain\",\"height\":18,\"src\":\"https://logos.composio.dev/api/googledrive\",\"style\":{\"width\":18,\"height\":18},\"width\":18}]}],[\"$\",\"div\",\"googlecalendar\",{\"className\":\"flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50\",\"children\":[\"$\",\"img\",null,{\"alt\":\"\",\"className\":\"object-contain\",\"height\":18,\"src\":\"https://logos.composio.dev/api/googlecalendar\",\"style\":{\"width\":18,\"height\":18},\"width\":18}]}],[\"$\",\"div\",\"jira\",{\"className\":\"flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50\",\"children\":[\"$\",\"img\",null,{\"alt\":\"\",\"className\":\"object-contain\",\"height\":18,\"src\":\"https://logos.composio.dev/api/jira\",\"style\":{\"width\":18,\"height\":18},\"width\":18}]}],[\"$\",\"div\",\"discord\",{\"className\":\"flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50\",\"children\":[\"$\",\"img\",null,{\"alt\":\"\",\"className\":\"object-contain\",\"height\":18,\"src\":\"https://logos.composio.dev/api/discord\",\"style\":{\"width\":18,\"height\":18},\"width\":18}]}],[\"$\",\"div\",\"intercom\",{\"className\":\"flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50\",\"children\":[\"$\",\"img\",null,{\"alt\":\"\",\"className\":\"object-contain\",\"height\":18,\"src\":\"https://logos.composio.dev/api/intercom\",\"style\":{\"width\":18,\"height\":18},\"width\":18}]}],\"$L3c\",\"$L3d\"],\"$L3e\"]}]\n"])</script><script>self.__next_f.push([1,"31:[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-black text-lg leading-snug\",\"children\":\"Tools that resolve by intent\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 max-w-[360px] font-sans text-black/55 text-sm leading-relaxed\",\"children\":\"Smart tool search across 1,000+ apps — surfaced just-in-time, scoped to the task.\"}]]}]\n"])</script><script>self.__next_f.push([1,"32:[\"$\",\"article\",null,{\"className\":\"flex flex-col gap-6 p-5 md:p-6 border-black/[0.08] border-b\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-1 items-center justify-center\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full border border-black/[0.08] bg-white shadow-sm\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between border-black/[0.06] border-b bg-black/[0.015] px-4 py-2.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[\"$\",\"span\",null,{\"className\":\"font-mono text-[11px] text-black/40 uppercase tracking-wider\",\"children\":\"user_id\"}]}],[\"$\",\"span\",null,{\"className\":\"rounded-xs bg-black/[0.04] px-1.5 py-0.5 font-mono text-[11px] text-black/70\",\"children\":\"usr_9x2kLm7\"}]]}],[[\"$\",\"div\",\"slack\",{\"className\":\"flex items-center justify-between px-4 py-3 border-black/[0.06] border-b\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex items-center gap-2.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex size-7 items-center justify-center border border-black/[0.06] bg-[#FBFBFB]\",\"children\":[\"$\",\"img\",null,{\"alt\":\"\",\"className\":\"object-contain\",\"height\":15,\"src\":\"https://logos.composio.dev/api/slack\",\"style\":{\"width\":15,\"height\":15},\"width\":15}]}],[\"$\",\"span\",null,{\"className\":\"font-mono text-[12px] text-black/70\",\"children\":\"Slack\"}]]}],[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5 font-mono text-[11px] text-brand uppercase tracking-wider\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-brand\"}],\"Connected\"]}]]}],[\"$\",\"div\",\"gmail\",{\"className\":\"flex items-center justify-between px-4 py-3 border-black/[0.06] border-b\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex items-center gap-2.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex size-7 items-center justify-center border border-black/[0.06] bg-[#FBFBFB]\",\"children\":[\"$\",\"img\",null,{\"alt\":\"\",\"className\":\"object-contain\",\"height\":15,\"src\":\"https://logos.composio.dev/api/gmail\",\"style\":{\"width\":15,\"height\":15},\"width\":15}]}],[\"$\",\"span\",null,{\"className\":\"font-mono text-[12px] text-black/70\",\"children\":\"Gmail\"}]]}],[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5 font-mono text-[11px] text-brand uppercase tracking-wider\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-brand\"}],\"Connected\"]}]]}],[\"$\",\"div\",\"linear\",{\"className\":\"flex items-center justify-between px-4 py-3 \",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex items-center gap-2.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex size-7 items-center justify-center border border-black/[0.06] bg-[#FBFBFB]\",\"children\":[\"$\",\"img\",null,{\"alt\":\"\",\"className\":\"object-contain\",\"height\":15,\"src\":\"https://logos.composio.dev/api/linear\",\"style\":{\"width\":15,\"height\":15},\"width\":15}]}],[\"$\",\"span\",null,{\"className\":\"font-mono text-[12px] text-black/70\",\"children\":\"Linear\"}]]}],[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5 font-mono text-[11px] text-brand uppercase tracking-wider\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-brand\"}],\"Connected\"]}]]}]]]}]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-black text-lg leading-snug\",\"children\":\"Auth and context, per end-user\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 max-w-[360px] font-sans text-black/55 text-sm leading-relaxed\",\"children\":\"OAuth, API keys, and tokens scoped to each end-user — refreshed automatically.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"33:[\"$\",\"article\",null,{\"className\":\"flex flex-col gap-6 p-5 md:p-6 border-black/[0.08] border-b sm:border-r sm:border-b-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-1 items-center justify-center\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full border border-black/[0.08] bg-white shadow-sm\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between border-black/[0.06] border-b bg-black/[0.015] px-4 py-2.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"relative flex size-1.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"absolute inline-flex size-full animate-ping rounded-full bg-brand opacity-60\"}],[\"$\",\"span\",null,{\"className\":\"relative inline-flex size-1.5 rounded-full bg-brand\"}]]}],[\"$\",\"span\",null,{\"className\":\"font-mono text-[11px] text-black/50 uppercase tracking-wider\",\"children\":\"Live\"}]]}],[\"$\",\"span\",null,{\"className\":\"font-mono text-[11px] text-black/40 uppercase tracking-wider\",\"children\":\"Trigger feed\"}]]}],[[\"$\",\"div\",\"gmail.message.new\",{\"className\":\"flex items-center justify-between px-4 py-3 border-black/[0.06] border-b bg-brand/[0.03]\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex items-center gap-2.5\",\"children\":[[\"$\",\"img\",null,{\"alt\":\"\",\"className\":\"object-contain\",\"height\":16,\"src\":\"https://logos.composio.dev/api/gmail\",\"style\":{\"width\":16,\"height\":16},\"width\":16}],[\"$\",\"span\",null,{\"className\":\"font-mono text-[12px] text-black/70\",\"children\":\"gmail.message.new\"}]]}],[\"$\",\"span\",null,{\"className\":\"font-mono text-[11px] text-black/35 tabular-nums\",\"children\":\"just now\"}]]}],[\"$\",\"div\",\"stripe.charge.succeeded\",{\"className\":\"flex items-center justify-between px-4 py-3 border-black/[0.06] border-b\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex items-center gap-2.5\",\"children\":[[\"$\",\"img\",null,{\"alt\":\"\",\"className\":\"object-contain\",\"height\":16,\"src\":\"https://logos.composio.dev/api/stripe\",\"style\":{\"width\":16,\"height\":16},\"width\":16}],[\"$\",\"span\",null,{\"className\":\"font-mono text-[12px] text-black/70\",\"children\":\"stripe.charge.succeeded\"}]]}],[\"$\",\"span\",null,{\"className\":\"font-mono text-[11px] text-black/35 tabular-nums\",\"children\":\"8s\"}]]}],[\"$\",\"div\",\"linear.issue.opened\",{\"className\":\"flex items-center justify-between px-4 py-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex items-center gap-2.5\",\"children\":[[\"$\",\"img\",null,{\"alt\":\"\",\"className\":\"object-contain\",\"height\":16,\"src\":\"https://logos.composio.dev/api/linear\",\"style\":{\"width\":16,\"height\":16},\"width\":16}],[\"$\",\"span\",null,{\"className\":\"font-mono text-[12px] text-black/70\",\"children\":\"linear.issue.opened\"}]]}],[\"$\",\"span\",null,{\"className\":\"font-mono text-[11px] text-black/35 tabular-nums\",\"children\":\"14s\"}]]}]]]}]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-black text-lg leading-snug\",\"children\":\"Listen to anything, anywhere\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 max-w-[360px] font-sans text-black/55 text-sm leading-relaxed\",\"children\":\"Subscribe to events from any toolkit and route them straight to your agent.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"34:[\"$\",\"article\",null,{\"className\":\"flex flex-col gap-6 p-5 md:p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-1 items-center justify-center\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full overflow-hidden border border-black/[0.08] bg-white shadow-sm\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between border-black/[0.06] border-b bg-black/[0.015] px-4 py-2.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-2 rounded-full bg-black/10\"}],[\"$\",\"span\",null,{\"className\":\"size-2 rounded-full bg-black/10\"}],[\"$\",\"span\",null,{\"className\":\"ml-1.5 font-mono text-[11px] text-black/40 lowercase tracking-wider\",\"children\":\"composio_workbench\"}]]}],[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-brand\"}],[\"$\",\"span\",null,{\"className\":\"font-mono text-[11px] text-black/50\",\"children\":\"python 3.11\"}]]}]]}],[\"$\",\"pre\",null,{\"className\":\"overflow-x-auto px-4 py-3 font-mono text-[11px] leading-relaxed\",\"children\":[\"$\",\"code\",null,{\"className\":\"text-black/55\",\"children\":\"const result = await composio.workbench.run(`\\n  const issues = await tools.LINEAR_LIST_ISSUES();\\n  const summary = await ai.summarize(issues);\\n  await tools.SLACK_POST({ channel, text: summary });\\n`);\"}]}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between border-black/[0.06] border-t bg-black/[0.015] px-4 py-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-mono text-[11px] text-black/45 lowercase tracking-wider\",\"children\":\"→ posted summary to #eng\"}],[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5 font-mono text-[11px] text-brand uppercase tracking-wider\",\"children\":[[\"$\",\"span\",null,{\"className\":\"size-1.5 rounded-full bg-brand\"}],\"Done\"]}]]}]]}]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-black text-lg leading-snug\",\"children\":\"Run arbitrary code, safely\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 max-w-[360px] font-sans text-black/55 text-sm leading-relaxed\",\"children\":\"A sandboxed workbench pre-wired with your users' connected accounts and 1,000+ tools.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"3c:[\"$\",\"div\",\"asana\",{\"className\":\"flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50\",\"children\":[\"$\",\"img\",null,{\"alt\":\"\",\"className\":\"object-contain\",\"height\":18,\"src\":\"https://logos.composio.dev/api/asana\",\"style\":{\"width\":18,\"height\":18},\"width\":18}]}]\n3d:[\"$\",\"div\",\"zoom\",{\"className\":\"flex aspect-square items-center justify-center border transition-colors border-black/[0.06] bg-white opacity-50\",\"children\":[\"$\",\"img\",null,{\"alt\":\"\",\"className\":\"object-contain\",\"height\":18,\"src\":\"https://logos.composio.dev/api/zoom\",\"style\":{\"width\":18,\"height\":18},\"width\":18}]}]\n3e:[\"$\",\"div\",null,{\"className\":\"flex aspect-square items-center justify-center border border-black/[0.06] bg-white opacity-50\",\"children\":[\"$\",\"span\",null,{\"className\":\"font-mono text-[10px] text-black/40 tracking-tight\",\"children\":\"+1K\"}]}]\n"])</script></body></html>