curl --request POST \
--url https://api.superglue.ai/v1/tools \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "my-custom-tool",
"name": "Web Search",
"steps": [
{
"id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"config": {
"url": "https://api.example.com/search",
"method": "GET",
"type": "request",
"queryParams": {
"q": "<<(sourceData) => sourceData.query>>",
"limit": 10
},
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer <<(sourceData) => sourceData.credentials.apiKey>>"
},
"body": "{\"query\": \"<<(sourceData) => sourceData.query>>\"}",
"systemId": "3f7c8d9e-1a2b-4c5d-8e9f-0a1b2c3d4e5f"
},
"instruction": "Fetch user details from the API",
"modify": false,
"dataSelector": "(sourceData) => sourceData.data.items",
"failureBehavior": "fail"
}
],
"instruction": "Search the web for the given query and return relevant results",
"inputSchema": {},
"outputSchema": {},
"outputTransform": "<string>",
"folder": "integrations/payments"
}
'import requests
url = "https://api.superglue.ai/v1/tools"
payload = {
"id": "my-custom-tool",
"name": "Web Search",
"steps": [
{
"id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"config": {
"url": "https://api.example.com/search",
"method": "GET",
"type": "request",
"queryParams": {
"q": "<<(sourceData) => sourceData.query>>",
"limit": 10
},
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer <<(sourceData) => sourceData.credentials.apiKey>>"
},
"body": "{\"query\": \"<<(sourceData) => sourceData.query>>\"}",
"systemId": "3f7c8d9e-1a2b-4c5d-8e9f-0a1b2c3d4e5f"
},
"instruction": "Fetch user details from the API",
"modify": False,
"dataSelector": "(sourceData) => sourceData.data.items",
"failureBehavior": "fail"
}
],
"instruction": "Search the web for the given query and return relevant results",
"inputSchema": {},
"outputSchema": {},
"outputTransform": "<string>",
"folder": "integrations/payments"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
id: 'my-custom-tool',
name: 'Web Search',
steps: [
{
id: '1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d',
config: {
url: 'https://api.example.com/search',
method: 'GET',
type: 'request',
queryParams: {q: '<<(sourceData) => sourceData.query>>', limit: 10},
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer <<(sourceData) => sourceData.credentials.apiKey>>'
},
body: JSON.stringify('{"query": "<<(sourceData) => sourceData.query>>"}'),
systemId: '3f7c8d9e-1a2b-4c5d-8e9f-0a1b2c3d4e5f'
},
instruction: 'Fetch user details from the API',
modify: false,
dataSelector: '(sourceData) => sourceData.data.items',
failureBehavior: 'fail'
}
],
instruction: 'Search the web for the given query and return relevant results',
inputSchema: {},
outputSchema: {},
outputTransform: '<string>',
folder: 'integrations/payments'
})
};
fetch('https://api.superglue.ai/v1/tools', 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://api.superglue.ai/v1/tools",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => 'my-custom-tool',
'name' => 'Web Search',
'steps' => [
[
'id' => '1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d',
'config' => [
'url' => 'https://api.example.com/search',
'method' => 'GET',
'type' => 'request',
'queryParams' => [
'q' => '<<(sourceData) => sourceData.query>>',
'limit' => 10
],
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer <<(sourceData) => sourceData.credentials.apiKey>>'
],
'body' => '{"query": "<<(sourceData) => sourceData.query>>"}',
'systemId' => '3f7c8d9e-1a2b-4c5d-8e9f-0a1b2c3d4e5f'
],
'instruction' => 'Fetch user details from the API',
'modify' => false,
'dataSelector' => '(sourceData) => sourceData.data.items',
'failureBehavior' => 'fail'
]
],
'instruction' => 'Search the web for the given query and return relevant results',
'inputSchema' => [
],
'outputSchema' => [
],
'outputTransform' => '<string>',
'folder' => 'integrations/payments'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.superglue.ai/v1/tools"
payload := strings.NewReader("{\n \"id\": \"my-custom-tool\",\n \"name\": \"Web Search\",\n \"steps\": [\n {\n \"id\": \"1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d\",\n \"config\": {\n \"url\": \"https://api.example.com/search\",\n \"method\": \"GET\",\n \"type\": \"request\",\n \"queryParams\": {\n \"q\": \"<<(sourceData) => sourceData.query>>\",\n \"limit\": 10\n },\n \"headers\": {\n \"Content-Type\": \"application/json\",\n \"Authorization\": \"Bearer <<(sourceData) => sourceData.credentials.apiKey>>\"\n },\n \"body\": \"{\\\"query\\\": \\\"<<(sourceData) => sourceData.query>>\\\"}\",\n \"systemId\": \"3f7c8d9e-1a2b-4c5d-8e9f-0a1b2c3d4e5f\"\n },\n \"instruction\": \"Fetch user details from the API\",\n \"modify\": false,\n \"dataSelector\": \"(sourceData) => sourceData.data.items\",\n \"failureBehavior\": \"fail\"\n }\n ],\n \"instruction\": \"Search the web for the given query and return relevant results\",\n \"inputSchema\": {},\n \"outputSchema\": {},\n \"outputTransform\": \"<string>\",\n \"folder\": \"integrations/payments\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.superglue.ai/v1/tools")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"my-custom-tool\",\n \"name\": \"Web Search\",\n \"steps\": [\n {\n \"id\": \"1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d\",\n \"config\": {\n \"url\": \"https://api.example.com/search\",\n \"method\": \"GET\",\n \"type\": \"request\",\n \"queryParams\": {\n \"q\": \"<<(sourceData) => sourceData.query>>\",\n \"limit\": 10\n },\n \"headers\": {\n \"Content-Type\": \"application/json\",\n \"Authorization\": \"Bearer <<(sourceData) => sourceData.credentials.apiKey>>\"\n },\n \"body\": \"{\\\"query\\\": \\\"<<(sourceData) => sourceData.query>>\\\"}\",\n \"systemId\": \"3f7c8d9e-1a2b-4c5d-8e9f-0a1b2c3d4e5f\"\n },\n \"instruction\": \"Fetch user details from the API\",\n \"modify\": false,\n \"dataSelector\": \"(sourceData) => sourceData.data.items\",\n \"failureBehavior\": \"fail\"\n }\n ],\n \"instruction\": \"Search the web for the given query and return relevant results\",\n \"inputSchema\": {},\n \"outputSchema\": {},\n \"outputTransform\": \"<string>\",\n \"folder\": \"integrations/payments\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.superglue.ai/v1/tools")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": \"my-custom-tool\",\n \"name\": \"Web Search\",\n \"steps\": [\n {\n \"id\": \"1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d\",\n \"config\": {\n \"url\": \"https://api.example.com/search\",\n \"method\": \"GET\",\n \"type\": \"request\",\n \"queryParams\": {\n \"q\": \"<<(sourceData) => sourceData.query>>\",\n \"limit\": 10\n },\n \"headers\": {\n \"Content-Type\": \"application/json\",\n \"Authorization\": \"Bearer <<(sourceData) => sourceData.credentials.apiKey>>\"\n },\n \"body\": \"{\\\"query\\\": \\\"<<(sourceData) => sourceData.query>>\\\"}\",\n \"systemId\": \"3f7c8d9e-1a2b-4c5d-8e9f-0a1b2c3d4e5f\"\n },\n \"instruction\": \"Fetch user details from the API\",\n \"modify\": false,\n \"dataSelector\": \"(sourceData) => sourceData.data.items\",\n \"failureBehavior\": \"fail\"\n }\n ],\n \"instruction\": \"Search the web for the given query and return relevant results\",\n \"inputSchema\": {},\n \"outputSchema\": {},\n \"outputTransform\": \"<string>\",\n \"folder\": \"integrations/payments\"\n}"
response = http.request(request)
puts response.read_body{
"id": "550e8400-e29b-41d4-a716-446655440000",
"steps": [
{
"id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"config": {
"url": "https://api.example.com/search",
"method": "GET",
"type": "request",
"queryParams": {
"q": "<<(sourceData) => sourceData.query>>",
"limit": 10
},
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer <<(sourceData) => sourceData.credentials.apiKey>>"
},
"body": "{\"query\": \"<<(sourceData) => sourceData.query>>\"}",
"pagination": {
"type": "cursorBased",
"pageSize": "50",
"cursorPath": "meta.next_cursor",
"stopCondition": "(response, pageInfo, sourceData) => !response.data.pagination.has_more || pageInfo.totalFetched >= sourceData.maxResults"
},
"systemId": "3f7c8d9e-1a2b-4c5d-8e9f-0a1b2c3d4e5f"
},
"instruction": "Fetch user details from the API",
"modify": false,
"dataSelector": "(sourceData) => sourceData.data.items",
"failureBehavior": "fail"
}
],
"name": "Web Search",
"version": "2.1.0",
"instruction": "Search the web for the given query and return relevant results",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string"
},
"maxResults": {
"type": "integer",
"default": 10
}
},
"required": [
"query"
]
},
"outputSchema": {},
"outputTransform": "(sourceData) => sourceData.map(item => ({ id: item.id, title: item.name }))",
"folder": "integrations/payments",
"archived": false,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"error": {
"message": "Invalid input parameters"
}
}{
"error": {
"message": "Invalid input parameters"
}
}Create a tool
curl --request POST \
--url https://api.superglue.ai/v1/tools \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "my-custom-tool",
"name": "Web Search",
"steps": [
{
"id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"config": {
"url": "https://api.example.com/search",
"method": "GET",
"type": "request",
"queryParams": {
"q": "<<(sourceData) => sourceData.query>>",
"limit": 10
},
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer <<(sourceData) => sourceData.credentials.apiKey>>"
},
"body": "{\"query\": \"<<(sourceData) => sourceData.query>>\"}",
"systemId": "3f7c8d9e-1a2b-4c5d-8e9f-0a1b2c3d4e5f"
},
"instruction": "Fetch user details from the API",
"modify": false,
"dataSelector": "(sourceData) => sourceData.data.items",
"failureBehavior": "fail"
}
],
"instruction": "Search the web for the given query and return relevant results",
"inputSchema": {},
"outputSchema": {},
"outputTransform": "<string>",
"folder": "integrations/payments"
}
'import requests
url = "https://api.superglue.ai/v1/tools"
payload = {
"id": "my-custom-tool",
"name": "Web Search",
"steps": [
{
"id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"config": {
"url": "https://api.example.com/search",
"method": "GET",
"type": "request",
"queryParams": {
"q": "<<(sourceData) => sourceData.query>>",
"limit": 10
},
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer <<(sourceData) => sourceData.credentials.apiKey>>"
},
"body": "{\"query\": \"<<(sourceData) => sourceData.query>>\"}",
"systemId": "3f7c8d9e-1a2b-4c5d-8e9f-0a1b2c3d4e5f"
},
"instruction": "Fetch user details from the API",
"modify": False,
"dataSelector": "(sourceData) => sourceData.data.items",
"failureBehavior": "fail"
}
],
"instruction": "Search the web for the given query and return relevant results",
"inputSchema": {},
"outputSchema": {},
"outputTransform": "<string>",
"folder": "integrations/payments"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
id: 'my-custom-tool',
name: 'Web Search',
steps: [
{
id: '1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d',
config: {
url: 'https://api.example.com/search',
method: 'GET',
type: 'request',
queryParams: {q: '<<(sourceData) => sourceData.query>>', limit: 10},
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer <<(sourceData) => sourceData.credentials.apiKey>>'
},
body: JSON.stringify('{"query": "<<(sourceData) => sourceData.query>>"}'),
systemId: '3f7c8d9e-1a2b-4c5d-8e9f-0a1b2c3d4e5f'
},
instruction: 'Fetch user details from the API',
modify: false,
dataSelector: '(sourceData) => sourceData.data.items',
failureBehavior: 'fail'
}
],
instruction: 'Search the web for the given query and return relevant results',
inputSchema: {},
outputSchema: {},
outputTransform: '<string>',
folder: 'integrations/payments'
})
};
fetch('https://api.superglue.ai/v1/tools', 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://api.superglue.ai/v1/tools",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => 'my-custom-tool',
'name' => 'Web Search',
'steps' => [
[
'id' => '1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d',
'config' => [
'url' => 'https://api.example.com/search',
'method' => 'GET',
'type' => 'request',
'queryParams' => [
'q' => '<<(sourceData) => sourceData.query>>',
'limit' => 10
],
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer <<(sourceData) => sourceData.credentials.apiKey>>'
],
'body' => '{"query": "<<(sourceData) => sourceData.query>>"}',
'systemId' => '3f7c8d9e-1a2b-4c5d-8e9f-0a1b2c3d4e5f'
],
'instruction' => 'Fetch user details from the API',
'modify' => false,
'dataSelector' => '(sourceData) => sourceData.data.items',
'failureBehavior' => 'fail'
]
],
'instruction' => 'Search the web for the given query and return relevant results',
'inputSchema' => [
],
'outputSchema' => [
],
'outputTransform' => '<string>',
'folder' => 'integrations/payments'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.superglue.ai/v1/tools"
payload := strings.NewReader("{\n \"id\": \"my-custom-tool\",\n \"name\": \"Web Search\",\n \"steps\": [\n {\n \"id\": \"1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d\",\n \"config\": {\n \"url\": \"https://api.example.com/search\",\n \"method\": \"GET\",\n \"type\": \"request\",\n \"queryParams\": {\n \"q\": \"<<(sourceData) => sourceData.query>>\",\n \"limit\": 10\n },\n \"headers\": {\n \"Content-Type\": \"application/json\",\n \"Authorization\": \"Bearer <<(sourceData) => sourceData.credentials.apiKey>>\"\n },\n \"body\": \"{\\\"query\\\": \\\"<<(sourceData) => sourceData.query>>\\\"}\",\n \"systemId\": \"3f7c8d9e-1a2b-4c5d-8e9f-0a1b2c3d4e5f\"\n },\n \"instruction\": \"Fetch user details from the API\",\n \"modify\": false,\n \"dataSelector\": \"(sourceData) => sourceData.data.items\",\n \"failureBehavior\": \"fail\"\n }\n ],\n \"instruction\": \"Search the web for the given query and return relevant results\",\n \"inputSchema\": {},\n \"outputSchema\": {},\n \"outputTransform\": \"<string>\",\n \"folder\": \"integrations/payments\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.superglue.ai/v1/tools")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"my-custom-tool\",\n \"name\": \"Web Search\",\n \"steps\": [\n {\n \"id\": \"1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d\",\n \"config\": {\n \"url\": \"https://api.example.com/search\",\n \"method\": \"GET\",\n \"type\": \"request\",\n \"queryParams\": {\n \"q\": \"<<(sourceData) => sourceData.query>>\",\n \"limit\": 10\n },\n \"headers\": {\n \"Content-Type\": \"application/json\",\n \"Authorization\": \"Bearer <<(sourceData) => sourceData.credentials.apiKey>>\"\n },\n \"body\": \"{\\\"query\\\": \\\"<<(sourceData) => sourceData.query>>\\\"}\",\n \"systemId\": \"3f7c8d9e-1a2b-4c5d-8e9f-0a1b2c3d4e5f\"\n },\n \"instruction\": \"Fetch user details from the API\",\n \"modify\": false,\n \"dataSelector\": \"(sourceData) => sourceData.data.items\",\n \"failureBehavior\": \"fail\"\n }\n ],\n \"instruction\": \"Search the web for the given query and return relevant results\",\n \"inputSchema\": {},\n \"outputSchema\": {},\n \"outputTransform\": \"<string>\",\n \"folder\": \"integrations/payments\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.superglue.ai/v1/tools")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": \"my-custom-tool\",\n \"name\": \"Web Search\",\n \"steps\": [\n {\n \"id\": \"1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d\",\n \"config\": {\n \"url\": \"https://api.example.com/search\",\n \"method\": \"GET\",\n \"type\": \"request\",\n \"queryParams\": {\n \"q\": \"<<(sourceData) => sourceData.query>>\",\n \"limit\": 10\n },\n \"headers\": {\n \"Content-Type\": \"application/json\",\n \"Authorization\": \"Bearer <<(sourceData) => sourceData.credentials.apiKey>>\"\n },\n \"body\": \"{\\\"query\\\": \\\"<<(sourceData) => sourceData.query>>\\\"}\",\n \"systemId\": \"3f7c8d9e-1a2b-4c5d-8e9f-0a1b2c3d4e5f\"\n },\n \"instruction\": \"Fetch user details from the API\",\n \"modify\": false,\n \"dataSelector\": \"(sourceData) => sourceData.data.items\",\n \"failureBehavior\": \"fail\"\n }\n ],\n \"instruction\": \"Search the web for the given query and return relevant results\",\n \"inputSchema\": {},\n \"outputSchema\": {},\n \"outputTransform\": \"<string>\",\n \"folder\": \"integrations/payments\"\n}"
response = http.request(request)
puts response.read_body{
"id": "550e8400-e29b-41d4-a716-446655440000",
"steps": [
{
"id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"config": {
"url": "https://api.example.com/search",
"method": "GET",
"type": "request",
"queryParams": {
"q": "<<(sourceData) => sourceData.query>>",
"limit": 10
},
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer <<(sourceData) => sourceData.credentials.apiKey>>"
},
"body": "{\"query\": \"<<(sourceData) => sourceData.query>>\"}",
"pagination": {
"type": "cursorBased",
"pageSize": "50",
"cursorPath": "meta.next_cursor",
"stopCondition": "(response, pageInfo, sourceData) => !response.data.pagination.has_more || pageInfo.totalFetched >= sourceData.maxResults"
},
"systemId": "3f7c8d9e-1a2b-4c5d-8e9f-0a1b2c3d4e5f"
},
"instruction": "Fetch user details from the API",
"modify": false,
"dataSelector": "(sourceData) => sourceData.data.items",
"failureBehavior": "fail"
}
],
"name": "Web Search",
"version": "2.1.0",
"instruction": "Search the web for the given query and return relevant results",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string"
},
"maxResults": {
"type": "integer",
"default": 10
}
},
"required": [
"query"
]
},
"outputSchema": {},
"outputTransform": "(sourceData) => sourceData.map(item => ({ id: item.id, title: item.name }))",
"folder": "integrations/payments",
"archived": false,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"error": {
"message": "Invalid input parameters"
}
}{
"error": {
"message": "Invalid input parameters"
}
}Authorizations
Static API key authentication using Bearer token scheme.
Include your API key in the Authorization header: Authorization: Bearer YOUR_API_KEY
Alternatively, you can use the token query parameter to authenticate.
API keys can be generated in your superglue dashboard.
Body
Request body for creating a new tool
Optional custom ID. If not provided, a UUID is generated. A unique suffix may be appended to avoid conflicts.
"my-custom-tool"
Human-readable name for the tool
"Web Search"
Ordered execution steps
Show child attributes
Show child attributes
Human-readable instruction describing what the tool does
"Search the web for the given query and return relevant results"
JSON Schema for tool inputs
JSON Schema for tool outputs
JavaScript function for final output transformation. Format: (sourceData) => expression
Folder path for organizing tools
"integrations/payments"
Response
Tool created successfully
A multi-step workflow tool that executes one or more protocol-specific operations
"550e8400-e29b-41d4-a716-446655440000"
Ordered execution steps that make up this tool
1Show child attributes
Show child attributes
"Web Search"
Semantic version string (major.minor.patch)
^\d+\.\d+\.\d+$"2.1.0"
Human-readable instruction describing what the tool does
"Search the web for the given query and return relevant results"
JSON Schema for tool inputs
{
"type": "object",
"properties": {
"query": { "type": "string" },
"maxResults": { "type": "integer", "default": 10 }
},
"required": ["query"]
}JSON Schema for tool outputs (after transformations applied)
JavaScript function for final output transformation. Format: (sourceData) => expression
"(sourceData) => sourceData.map(item => ({ id: item.id, title: item.name }))"
Folder path for organizing tools
"integrations/payments"
Whether this tool is archived (if so, it will not be listed in the UI and cannot be run)
Was this page helpful?