List tools
Returns a list of tools with optional filtering, pagination, and sorting.
curl --request GET \
--url https://api-trial.cognigy.ai/v1/tools \
--header 'X-API-Key: <api-key>'import requests
url = "https://api-trial.cognigy.ai/v1/tools"
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://api-trial.cognigy.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-trial.cognigy.ai/v1/tools",
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://api-trial.cognigy.ai/v1/tools"
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://api-trial.cognigy.ai/v1/tools")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-trial.cognigy.ai/v1/tools")
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{
"items": [
{
"builtinSlug": "my-tool-slug",
"bundledOnly": true,
"createdAt": 1694518620,
"createdBy": "^[a-z0-9]{24}$",
"description": "A tool that performs an action",
"extension": "my-extension",
"id": "^[a-z0-9]{24}$",
"lastChangedAt": 1694518620,
"lastChangedBy": "^[a-z0-9]{24}$",
"mcp": {
"serverReferenceId": "550e8400-e29b-41d4-a716-446655440000",
"toolName": "search_issues"
},
"name": "My Tool",
"organisationId": "^[a-z0-9]{24}$",
"parameters": [
{
"connectionTypes": [
"http_basic",
"http_oauth2"
],
"description": "The input parameter",
"key": "input",
"mode": "dynamic",
"name": "input",
"type": "string",
"value": "<unknown>"
}
],
"projectId": "^[a-z0-9]{24}$",
"referenceId": "550e8400-e29b-41d4-a716-446655440000",
"source": "extension",
"type": "action"
}
],
"nextCursor": "507f1f77bcf86cd799439011",
"previousCursor": "507f1f77bcf86cd799439017",
"total": 1
}{
"detail": "request body validation failed",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
],
"instance": "/v1/{resource}",
"status": 400,
"title": "Bad Request",
"traceId": "api--a4d2f126-bec4-4544-a049-7c0cf08524ed",
"type": "about:blank"
}{
"detail": "access denied: insufficient permissions",
"instance": "/v1/{resource}/{id}",
"status": 403,
"title": "Forbidden",
"traceId": "api--a4d2f126-bec4-4544-a049-7c0cf08524ed",
"type": "about:blank"
}{
"detail": "internal server error",
"instance": "/v1/{resource}",
"status": 500,
"title": "Internal Server Error",
"traceId": "api--a4d2f126-bec4-4544-a049-7c0cf08524ed",
"type": "about:blank"
}Authorizations
[Production] API key for production authentication
Query Parameters
The unique identifier for the project to filter by.
The string to filter by name. The filter is case-insensitive.
The maximum number of items to return, from 1 to 100. The default is 100.
The number of items to skip before starting to return results. The default is 0.
The sort order. Use asc or desc to sort by _id, or <field>:<asc|desc> to sort by one of _id, name, lastChangedAt or createdAt. The default is asc.
The cursor for the next page of results. It is only valid with the default _id sort. To page through a sorted list, use skip and limit.
The cursor for the previous page of results. It is only valid with the default _id sort. To page through a sorted list, use skip and limit.
The referenceId of an agent. Returns only the tools available to this agent, whether attached directly or bundled in a skill it has hired. Requires projectId. Disabled tools are included.
A comma-separated list of tool sources to filter by. The allowed values are extension, managed, builtin and mcp.
The referenceId of an MCP server. Filters MCP tools to that server.
If set to true, the response also includes system-managed tools that are left out by default: hidden rows and voice-config-defaults instances, which are managed from Voice Studio. The default is false.
curl --request GET \
--url https://api-trial.cognigy.ai/v1/tools \
--header 'X-API-Key: <api-key>'import requests
url = "https://api-trial.cognigy.ai/v1/tools"
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://api-trial.cognigy.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-trial.cognigy.ai/v1/tools",
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://api-trial.cognigy.ai/v1/tools"
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://api-trial.cognigy.ai/v1/tools")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-trial.cognigy.ai/v1/tools")
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{
"items": [
{
"builtinSlug": "my-tool-slug",
"bundledOnly": true,
"createdAt": 1694518620,
"createdBy": "^[a-z0-9]{24}$",
"description": "A tool that performs an action",
"extension": "my-extension",
"id": "^[a-z0-9]{24}$",
"lastChangedAt": 1694518620,
"lastChangedBy": "^[a-z0-9]{24}$",
"mcp": {
"serverReferenceId": "550e8400-e29b-41d4-a716-446655440000",
"toolName": "search_issues"
},
"name": "My Tool",
"organisationId": "^[a-z0-9]{24}$",
"parameters": [
{
"connectionTypes": [
"http_basic",
"http_oauth2"
],
"description": "The input parameter",
"key": "input",
"mode": "dynamic",
"name": "input",
"type": "string",
"value": "<unknown>"
}
],
"projectId": "^[a-z0-9]{24}$",
"referenceId": "550e8400-e29b-41d4-a716-446655440000",
"source": "extension",
"type": "action"
}
],
"nextCursor": "507f1f77bcf86cd799439011",
"previousCursor": "507f1f77bcf86cd799439017",
"total": 1
}{
"detail": "request body validation failed",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
],
"instance": "/v1/{resource}",
"status": 400,
"title": "Bad Request",
"traceId": "api--a4d2f126-bec4-4544-a049-7c0cf08524ed",
"type": "about:blank"
}{
"detail": "access denied: insufficient permissions",
"instance": "/v1/{resource}/{id}",
"status": 403,
"title": "Forbidden",
"traceId": "api--a4d2f126-bec4-4544-a049-7c0cf08524ed",
"type": "about:blank"
}{
"detail": "internal server error",
"instance": "/v1/{resource}",
"status": 500,
"title": "Internal Server Error",
"traceId": "api--a4d2f126-bec4-4544-a049-7c0cf08524ed",
"type": "about:blank"
}