curl --request GET \
--url https://api.iwy.ai/v1/tool/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.iwy.ai/v1/tool/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.iwy.ai/v1/tool/{id}', 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.iwy.ai/v1/tool/{id}",
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>"
],
]);
$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.iwy.ai/v1/tool/{id}"
req, _ := http.NewRequest("GET", url, nil)
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://api.iwy.ai/v1/tool/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.iwy.ai/v1/tool/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "get_weather",
"description": "Fetches the current weather for a given city",
"server_url": "https://webhook.example.com/weather",
"parameters_schema": {
"type": "object",
"required": [
"city"
],
"properties": {
"city": {
"type": "string",
"description": "The name of the city"
}
},
"additionalProperties": false
},
"method": "POST",
"headers": {
"Content-Type": "application/json",
"x-api-key": "your-key"
},
"timeout_seconds": 20,
"is_async": false,
"strict_params": true,
"auth_config": {},
"tags": [
"<string>"
]
}{
"success": false,
"error": "Unauthorized",
"details": "Invalid or missing API key"
}{
"success": false,
"error": "Not found",
"details": "The requested resource does not exist"
}{
"success": false,
"error": "Internal server error",
"details": "An unexpected error occurred"
}Get tool by ID
Returns the complete configuration for a specific tool, including its parameters schema, webhook URL, and authentication settings.
curl --request GET \
--url https://api.iwy.ai/v1/tool/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.iwy.ai/v1/tool/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.iwy.ai/v1/tool/{id}', 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.iwy.ai/v1/tool/{id}",
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>"
],
]);
$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.iwy.ai/v1/tool/{id}"
req, _ := http.NewRequest("GET", url, nil)
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://api.iwy.ai/v1/tool/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.iwy.ai/v1/tool/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "get_weather",
"description": "Fetches the current weather for a given city",
"server_url": "https://webhook.example.com/weather",
"parameters_schema": {
"type": "object",
"required": [
"city"
],
"properties": {
"city": {
"type": "string",
"description": "The name of the city"
}
},
"additionalProperties": false
},
"method": "POST",
"headers": {
"Content-Type": "application/json",
"x-api-key": "your-key"
},
"timeout_seconds": 20,
"is_async": false,
"strict_params": true,
"auth_config": {},
"tags": [
"<string>"
]
}{
"success": false,
"error": "Unauthorized",
"details": "Invalid or missing API key"
}{
"success": false,
"error": "Not found",
"details": "The requested resource does not exist"
}{
"success": false,
"error": "Internal server error",
"details": "An unexpected error occurred"
}Authorizations
Your iwy Service API Key. Find it at app.iwy.ai/settings.
Include it in the Authorization header:
Authorization: Bearer YOUR_API_KEY
Path Parameters
The unique identifier (UUID) of the tool
Response
Tool retrieved successfully
Complete tool configuration
Unique identifier for the tool
ID of the user who owns this tool
Function name (snake_case)
"get_weather"
Clear explanation of what the tool does
"Fetches the current weather for a given city"
Webhook endpoint URL
"https://webhook.example.com/weather"
JSON Schema defining the tool's parameters
{
"type": "object",
"required": ["city"],
"properties": {
"city": {
"type": "string",
"description": "The name of the city"
}
},
"additionalProperties": false
}
HTTP method
POST, GET, PUT, PATCH, DELETE Custom HTTP headers
{
"Content-Type": "application/json",
"x-api-key": "your-key"
}
Request timeout in seconds
1 <= x <= 300Whether the tool runs asynchronously
Whether to strictly validate parameters
Authentication configuration
Tags for organization