Get Tool Version
curl --request GET \
--url https://api.agents.slng.ai/v1/agents/tools/{tool_id}/versions/{version_number} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.agents.slng.ai/v1/agents/tools/{tool_id}/versions/{version_number}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.agents.slng.ai/v1/agents/tools/{tool_id}/versions/{version_number}', 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.agents.slng.ai/v1/agents/tools/{tool_id}/versions/{version_number}",
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.agents.slng.ai/v1/agents/tools/{tool_id}/versions/{version_number}"
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.agents.slng.ai/v1/agents/tools/{tool_id}/versions/{version_number}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.agents.slng.ai/v1/agents/tools/{tool_id}/versions/{version_number}")
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": "2c3d4e5f-6071-4829-93a4-b5c6d7e8f901",
"tool_id": "7b2a1c34-5d6e-4f70-8a90-1b2c3d4e5f60",
"version_number": 3,
"content_hash": "3f1ab2c4d5e6f708",
"frozen_deps": [],
"published_at": "2026-08-20T10:15:30Z",
"snapshot_json": {
"name": "lookup_customer",
"description": "Look up a customer by id",
"tool_type": "api_request",
"argument_schema": {
"type": "object"
},
"argument_defaults": {},
"config": {
"type": "api_request",
"url": "https://api.example.com/lookup"
}
}
}{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}API Reference
Get Tool Version
Return one immutable published version of a tool by its version number.
GET
/
v1
/
agents
/
tools
/
{tool_id}
/
versions
/
{version_number}
Get Tool Version
curl --request GET \
--url https://api.agents.slng.ai/v1/agents/tools/{tool_id}/versions/{version_number} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.agents.slng.ai/v1/agents/tools/{tool_id}/versions/{version_number}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.agents.slng.ai/v1/agents/tools/{tool_id}/versions/{version_number}', 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.agents.slng.ai/v1/agents/tools/{tool_id}/versions/{version_number}",
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.agents.slng.ai/v1/agents/tools/{tool_id}/versions/{version_number}"
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.agents.slng.ai/v1/agents/tools/{tool_id}/versions/{version_number}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.agents.slng.ai/v1/agents/tools/{tool_id}/versions/{version_number}")
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": "2c3d4e5f-6071-4829-93a4-b5c6d7e8f901",
"tool_id": "7b2a1c34-5d6e-4f70-8a90-1b2c3d4e5f60",
"version_number": 3,
"content_hash": "3f1ab2c4d5e6f708",
"frozen_deps": [],
"published_at": "2026-08-20T10:15:30Z",
"snapshot_json": {
"name": "lookup_customer",
"description": "Look up a customer by id",
"tool_type": "api_request",
"argument_schema": {
"type": "object"
},
"argument_defaults": {},
"config": {
"type": "api_request",
"url": "https://api.example.com/lookup"
}
}
}{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}{
"detail": "The tool is attached to an active agent.",
"error": {
"code": "TOOL_DELETE_BLOCKED",
"message": "The tool is attached to an active agent.",
"retryable": false
}
}Authorizations
Your SLNG consumer API key.
Path Parameters
The tool UUID. Curated tools are visible but read-only, and a tool owned by another organisation returns 404.
The published version number to return.
Response
The requested published version snapshot of the tool.
An immutable published tool version with its frozen snapshot and dependencies.
Published snapshot of a Custom Code tool.
- Custom Code
- API Request
- End Call
- Voicemail Detection
- Transfer Call
- Send SMS
- Current Date and Time
- User Phone Number
Show child attributes
Show child attributes