curl --request GET \
--url https://api.superglue.ai/v1/tools \
--header 'Authorization: Bearer <token>'{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"steps": [
{
"id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"url": "https://api.example.com/search",
"method": "GET",
"systemId": "3f7c8d9e-1a2b-4c5d-8e9f-0a1b2c3d4e5f",
"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) => !response.data.pagination.has_more"
},
"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 }))",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
],
"page": 1,
"limit": 50,
"total": 127,
"hasMore": true
}curl --request GET \
--url https://api.superglue.ai/v1/tools \
--header 'Authorization: Bearer <token>'{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"steps": [
{
"id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"url": "https://api.example.com/search",
"method": "GET",
"systemId": "3f7c8d9e-1a2b-4c5d-8e9f-0a1b2c3d4e5f",
"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) => !response.data.pagination.has_more"
},
"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 }))",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
],
"page": 1,
"limit": 50,
"total": 127,
"hasMore": true
}Static API key authentication using Bearer token scheme.
Include your API key in the Authorization header:
Authorization: Bearer YOUR_API_KEY
API keys can be generated in your superglue dashboard.
List of tools (latest versions only)
Show child attributes
"550e8400-e29b-41d4-a716-446655440000"
Ordered execution steps that make up this tool
1Show child attributes
Unique identifier for this step
"1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
Full URL including protocol. Examples:
"https://api.example.com/search"
HTTP method. For non-HTTP protocols, use POST.
GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS "GET"
System to use for stored credentials and documentation
"3f7c8d9e-1a2b-4c5d-8e9f-0a1b2c3d4e5f"
URL query parameters (HTTP only). Supports template expressions with <<(sourceData) => ...>> syntax.
{
"q": "<<(sourceData) => sourceData.query>>",
"limit": 10
}HTTP headers (HTTP only). Supports template expressions with <<(sourceData) => ...>> syntax.
{
"Content-Type": "application/json",
"Authorization": "Bearer <<(sourceData) => sourceData.credentials.apiKey>>"
}Request body (protocol-specific). Supports template expressions with <<(sourceData) => ...>> syntax.
HTTP: Any content (JSON, XML, form data, etc.) Example: '{"query": "<<(sourceData) => sourceData.query>>"}'
Postgres: JSON with query and optional params Example: '{"query": "SELECT * FROM users WHERE id = $1", "params": ["<<(sourceData) => sourceData.userId>>"]}'
FTP/SFTP: JSON with operation, path, and optional content Example: '{"operation": "get", "path": "/data/file.csv"}' Example: '{"operation": "list", "path": "/data"}' Example: '{"operation": "put", "path": "/data/file.txt", "content": "<<(sourceData) => sourceData.fileContent>>"}'
"{\"query\": \"<<(sourceData) => sourceData.query>>\"}"
Pagination configuration (HTTP/HTTPS only, not applicable to Postgres/FTP)
Show child attributes
offsetBased, pageBased, cursorBased, disabled "cursorBased"
Number of items per page. Becomes available as <<(sourceData) => sourceData.limit>> in request templates.
"50"
JSONPath to extract next page cursor from response body (e.g. "meta.next_cursor" for {meta:{next_cursor:"abc"}})
"meta.next_cursor"
JavaScript function to determine when to stop pagination. Format: (response, pageInfo) => boolean
"(response, pageInfo) => !response.data.pagination.has_more"
Human-readable instruction describing what this step does
"Fetch user details from the API"
Whether this step can be modified by the self-healing system
JavaScript function to select data for loop execution. Format: (sourceData) => expression
"(sourceData) => sourceData.data.items"
How to handle step failures (fail stops execution, continue proceeds to next step)
fail, continue "Web Search"
Semantic version string (major.minor.patch)
"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 }))"
1
50
127
true
Was this page helpful?