List integration catalog
curl --request GET \
--url https://flows.super.ai/api/integrations/catalog \
--header 'Authorization: Bearer <token>' \
--header 'X-API-Key: <api-key>'import requests
url = "https://flows.super.ai/api/integrations/catalog"
headers = {
"X-API-Key": "<api-key>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-API-Key': '<api-key>', Authorization: 'Bearer <token>'}
};
fetch('https://flows.super.ai/api/integrations/catalog', 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://flows.super.ai/api/integrations/catalog",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://flows.super.ai/api/integrations/catalog"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://flows.super.ai/api/integrations/catalog")
.header("X-API-Key", "<api-key>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://flows.super.ai/api/integrations/catalog")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"category": "automation",
"credential_types": [
"api_key"
],
"description": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"provider": "microsoft",
"credential_providers": [
{
"credential_schema": {},
"is_oauth": true,
"name": "<string>"
}
],
"display_name": "<string>",
"is_plugin": false
}
]integrations
List integration catalog
Retrieve the catalog of available third-party integrations.
Returns a comprehensive list of all integration providers supported by SuperAI Flows. Each integration includes metadata about authentication requirements, capabilities, and categorization to help users discover and connect external services to their workflows.
Context:
- The integration catalog is the primary discovery mechanism for available services
- Dynamically generated from the plugin registry (no database storage overhead)
- All authenticated users can access the catalog
- Automatically excludes credentialless integrations and integrations in migration
Integration Categories:
- database: PostgreSQL, internal PostgreSQL database connectors
- storage: SharePoint document libraries, SFTP file servers
- messaging: AWS SES email integration
- automation: Various task executors and workflow automation tools
Authentication Methods:
- oauth2: OAuth 2.0 authorization flow (Google, SharePoint, Microsoft)
- user_password: Username/password authentication (SFTP, PostgreSQL)
- api_key: API key-based authentication
- key_file: SSH key-based authentication (SFTP)
Use Cases:
- Display available integrations in UI marketplace
- Show available connectors during flow task configuration
- Validate provider support before connection attempts
- Determine authentication requirements before OAuth flows
- Populate provider selection dropdowns
Related Endpoints:
- GET /integrations/plugins - List detailed plugin metadata
- GET /integrations/plugins//capabilities - Get plugin capabilities
- POST /integrations/credentials - Create credentials for integration
- GET /integrations/credentials - List user’s configured credentials
Notes:
- OAuth integrations require additional authorize/callback flow
- Integration availability ≠ user has configured credentials
- Plugin system allows custom integrations without code changes
- Use GET /integrations/credentials to check user’s connections
GET
/
api
/
integrations
/
catalog
List integration catalog
curl --request GET \
--url https://flows.super.ai/api/integrations/catalog \
--header 'Authorization: Bearer <token>' \
--header 'X-API-Key: <api-key>'import requests
url = "https://flows.super.ai/api/integrations/catalog"
headers = {
"X-API-Key": "<api-key>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-API-Key': '<api-key>', Authorization: 'Bearer <token>'}
};
fetch('https://flows.super.ai/api/integrations/catalog', 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://flows.super.ai/api/integrations/catalog",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://flows.super.ai/api/integrations/catalog"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://flows.super.ai/api/integrations/catalog")
.header("X-API-Key", "<api-key>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://flows.super.ai/api/integrations/catalog")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"category": "automation",
"credential_types": [
"api_key"
],
"description": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"provider": "microsoft",
"credential_providers": [
{
"credential_schema": {},
"is_oauth": true,
"name": "<string>"
}
],
"display_name": "<string>",
"is_plugin": false
}
]Authorizations
API key authentication. Include your API key in the X-API-Key header as: X-API-Key YOUR_API_KEY
Example:
X-API-Key: saf_1234567890
JWT Bearer token authentication. Include your access token in the Authorization header as: Bearer YOUR_ACCESS_TOKEN
Example:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Response
Integration catalog retrieved successfully
Integration category
Available options:
automation, human_in_the_loop, database, messaging, agent_in_the_loop, storage Available options:
api_key, oauth2, user_password, key_file, client_credentials, sharepoint_receive, google_drive_receive Available options:
microsoft, sftp, aws_ses, google, postgresql, internal_postgresql, file_storage, sharepoint_client_secret Show child attributes
Show child attributes