curl --request GET \
--url https://flowra.dev/api/v1/toolkits \
--header 'x-api-key: <api-key>'import requests
url = "https://flowra.dev/api/v1/toolkits"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://flowra.dev/api/v1/toolkits', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://flowra.dev/api/v1/toolkits",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://flowra.dev/api/v1/toolkits"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://flowra.dev/api/v1/toolkits")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://flowra.dev/api/v1/toolkits")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Data retrieved successfully",
"data": [
{
"id": "",
"slug": "slack",
"name": "Slack",
"authSchemes": [
"OAUTH2",
"API_KEY"
],
"providerManagedAuthSchemes": [
"OAUTH2"
],
"isDisabled": true,
"noAuth": false,
"createdAt": "2023-01-01T00:00:00Z",
"updatedAt": "2023-01-01T00:00:00Z",
"description": "A comprehensive toolkit for productivity applications",
"logo": "https://example.com/logo.png",
"appUrl": "https://app.example.com",
"triggersCount": 15,
"toolsCount": 25,
"version": "1.0.0",
"availableVersions": [
"1.0.0",
"1.1.0",
"2.0.0"
],
"authConfigDetails": [
{
"name": "oauth2",
"mode": "OAUTH2",
"fields": {
"authConfigCreation": {},
"connectedAccountInitiation": {}
},
"proxy": {
"baseUrl": ""
},
"deprecatedAuthProviderDetails": {
"authorization_url": "",
"token_url": ""
}
}
],
"getCurrentUserEndpoint": "/api/user",
"baseUrl": "https://api.slack.com",
"provider": "LOCAL",
"owner": true,
"popularityScore": 0,
"regions": [
"IR",
"US"
],
"categories": [
"crm",
"sales-&-customer-support"
],
"seatBilled": false
}
],
"total": 100,
"totalTools": 5000,
"page": 1,
"limit": 20,
"totalPages": 5,
"hasNextPage": true,
"hasPreviousPage": false
}Get all toolkits
List toolkits (groups of related tools) you can attach to workflows and agents. Each toolkit can contain multiple tools (e.g. Slack toolkit, custom API toolkit). Unauthenticated requests only see global (non–project-scoped) toolkits.
curl --request GET \
--url https://flowra.dev/api/v1/toolkits \
--header 'x-api-key: <api-key>'import requests
url = "https://flowra.dev/api/v1/toolkits"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://flowra.dev/api/v1/toolkits', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://flowra.dev/api/v1/toolkits",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://flowra.dev/api/v1/toolkits"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://flowra.dev/api/v1/toolkits")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://flowra.dev/api/v1/toolkits")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Data retrieved successfully",
"data": [
{
"id": "",
"slug": "slack",
"name": "Slack",
"authSchemes": [
"OAUTH2",
"API_KEY"
],
"providerManagedAuthSchemes": [
"OAUTH2"
],
"isDisabled": true,
"noAuth": false,
"createdAt": "2023-01-01T00:00:00Z",
"updatedAt": "2023-01-01T00:00:00Z",
"description": "A comprehensive toolkit for productivity applications",
"logo": "https://example.com/logo.png",
"appUrl": "https://app.example.com",
"triggersCount": 15,
"toolsCount": 25,
"version": "1.0.0",
"availableVersions": [
"1.0.0",
"1.1.0",
"2.0.0"
],
"authConfigDetails": [
{
"name": "oauth2",
"mode": "OAUTH2",
"fields": {
"authConfigCreation": {},
"connectedAccountInitiation": {}
},
"proxy": {
"baseUrl": ""
},
"deprecatedAuthProviderDetails": {
"authorization_url": "",
"token_url": ""
}
}
],
"getCurrentUserEndpoint": "/api/user",
"baseUrl": "https://api.slack.com",
"provider": "LOCAL",
"owner": true,
"popularityScore": 0,
"regions": [
"IR",
"US"
],
"categories": [
"crm",
"sales-&-customer-support"
],
"seatBilled": false
}
],
"total": 100,
"totalTools": 5000,
"page": 1,
"limit": 20,
"totalPages": 5,
"hasNextPage": true,
"hasPreviousPage": false
}Authorizations
Project API key. Create and manage keys in the dashboard under Project → API Keys. Send as header: x-api-key:
Query Parameters
Search keyword for filtering results
"john doe"
Page number (1-based)
x >= 11
Number of items per page
1 <= x <= 10020
Number of items to skip (for offset-based pagination)
x >= 00
Field name to sort by
"createdAt"
Sort order
ASC, DESC "DESC"
Comma-separated list of fields to include in response
"id,name,email"
Filter toolkits that include this curated category id
developer-tools-&-devops, collaboration-&-communication, ai-&-machine-learning, document-&-file-management, productivity-&-project-management, crm, analytics-&-data, entertainment-&-media, education-&-lms, design-&-creative-tools, marketing-&-social-media, scheduling-&-booking, e-commerce, finance-&-accounting, sales-&-customer-support, hr-&-recruiting, social-media, workflow-automation, data-&-analytics, advertising-&-marketing "crm"
Comma-separated toolkit slugs to filter exact matches
2048"composio_slack,composio_gmail"
Scope filter: 'mine' = only this project's toolkits (no platform/global)
"mine"
Region filter: ISO country code, "global" (worldwide-only), or "all" (no region filter; admin browse)
"IR"
How country region=CODE matches: include_global (default) = global ∪ country; exact = only toolkits tagged for that country
include_global, exact "exact"
When true, only toolkits that require authentication (noAuth=false). When false, only no-auth toolkits.
true
When true, only toolkits with non-empty authConfigCreation fields (project store credentials). Excludes managed-only and connection-only API_KEY toolkits.
true
Response
Toolkits retrieved successfully
Success status
true
Response message
"Data retrieved successfully"
Array of items
Show child attributes
Show child attributes
[
{
"id": "",
"slug": "slack",
"name": "Slack",
"authSchemes": ["OAUTH2", "API_KEY"],
"providerManagedAuthSchemes": ["OAUTH2"],
"isDisabled": true,
"noAuth": false,
"createdAt": "2023-01-01T00:00:00Z",
"updatedAt": "2023-01-01T00:00:00Z",
"description": "A comprehensive toolkit for productivity applications",
"logo": "https://example.com/logo.png",
"appUrl": "https://app.example.com",
"triggersCount": 15,
"toolsCount": 25,
"version": "1.0.0",
"availableVersions": ["1.0.0", "1.1.0", "2.0.0"],
"authConfigDetails": [
{
"name": "oauth2",
"mode": "OAUTH2",
"fields": {
"authConfigCreation": {},
"connectedAccountInitiation": {}
},
"proxy": { "baseUrl": "" },
"deprecatedAuthProviderDetails": { "authorization_url": "", "token_url": "" }
}
],
"getCurrentUserEndpoint": "/api/user",
"baseUrl": "https://api.slack.com",
"provider": "LOCAL",
"owner": true,
"popularityScore": 0,
"regions": ["IR", "US"],
"categories": ["crm", "sales-&-customer-support"],
"seatBilled": false
}
]
Total number of items across all pages
100
Optional secondary total (e.g. nested tools across all matching toolkits)
5000
Current page number (1-based)
1
Number of items per page
20
Total number of pages
5
Whether there is a next page
true
Whether there is a previous page
false
Was this page helpful?