curl --request POST \
--url https://api.galtea.ai/endpointConnections/testConnection \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "id_123",
"url": "https://api.example.com",
"httpMethod": "<string>",
"authType": "<string>",
"authToken": "<string>",
"username": "<string>",
"password": "securePass123!",
"headers": {},
"inputTemplate": "<string>",
"timeout": 123,
"acknowledgedInsecureHttp": true,
"outputMapping": {}
}
'import requests
url = "https://api.galtea.ai/endpointConnections/testConnection"
payload = {
"id": "id_123",
"url": "https://api.example.com",
"httpMethod": "<string>",
"authType": "<string>",
"authToken": "<string>",
"username": "<string>",
"password": "securePass123!",
"headers": {},
"inputTemplate": "<string>",
"timeout": 123,
"acknowledgedInsecureHttp": True,
"outputMapping": {}
}
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: 'id_123',
url: 'https://api.example.com',
httpMethod: '<string>',
authType: '<string>',
authToken: '<string>',
username: '<string>',
password: 'securePass123!',
headers: {},
inputTemplate: '<string>',
timeout: 123,
acknowledgedInsecureHttp: true,
outputMapping: {}
})
};
fetch('https://api.galtea.ai/endpointConnections/testConnection', 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.galtea.ai/endpointConnections/testConnection",
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' => 'id_123',
'url' => 'https://api.example.com',
'httpMethod' => '<string>',
'authType' => '<string>',
'authToken' => '<string>',
'username' => '<string>',
'password' => 'securePass123!',
'headers' => [
],
'inputTemplate' => '<string>',
'timeout' => 123,
'acknowledgedInsecureHttp' => true,
'outputMapping' => [
]
]),
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.galtea.ai/endpointConnections/testConnection"
payload := strings.NewReader("{\n \"id\": \"id_123\",\n \"url\": \"https://api.example.com\",\n \"httpMethod\": \"<string>\",\n \"authType\": \"<string>\",\n \"authToken\": \"<string>\",\n \"username\": \"<string>\",\n \"password\": \"securePass123!\",\n \"headers\": {},\n \"inputTemplate\": \"<string>\",\n \"timeout\": 123,\n \"acknowledgedInsecureHttp\": true,\n \"outputMapping\": {}\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.galtea.ai/endpointConnections/testConnection")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"id_123\",\n \"url\": \"https://api.example.com\",\n \"httpMethod\": \"<string>\",\n \"authType\": \"<string>\",\n \"authToken\": \"<string>\",\n \"username\": \"<string>\",\n \"password\": \"securePass123!\",\n \"headers\": {},\n \"inputTemplate\": \"<string>\",\n \"timeout\": 123,\n \"acknowledgedInsecureHttp\": true,\n \"outputMapping\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.galtea.ai/endpointConnections/testConnection")
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\": \"id_123\",\n \"url\": \"https://api.example.com\",\n \"httpMethod\": \"<string>\",\n \"authType\": \"<string>\",\n \"authToken\": \"<string>\",\n \"username\": \"<string>\",\n \"password\": \"securePass123!\",\n \"headers\": {},\n \"inputTemplate\": \"<string>\",\n \"timeout\": 123,\n \"acknowledgedInsecureHttp\": true,\n \"outputMapping\": {}\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"statusCode": 123,
"latency": 123,
"response": {},
"error": "<string>",
"extractedOutput": {
"output": "<string>",
"retrieval_context": "<string>",
"session_id": "<string>",
"traces": [
{}
],
"metadata": {},
"output_files": [
{
"position": 123,
"kind": "base64",
"filename": "<string>",
"mime_type": "<string>",
"size_bytes": 123,
"host": "<string>",
"base64": "<string>",
"uri": "<string>"
}
],
"output_file_refusals": [
{
"position": 123,
"message": "<string>"
}
]
},
"extractionError": "<string>"
}{
"error": "Error type",
"message": "Error message description"
}{
"error": "Error type",
"message": "Error message description"
}{
"error": "Error type",
"message": "Error message description"
}{
"error": "Error type",
"message": "Error message description"
}Test endpoint connection
Test an endpoint connection by making a sample request. Can be used in two modes: (1) Without an ID — all connection fields are required (creation flow). (2) With an ID — fetches the stored connection and applies any provided fields as overrides (update flow). The two credential fields are the exception: a blank authToken or password keeps the stored one, and changing authType drops the credentials the new type does not use, exactly as saving would. With an ID, the test needs permission to update the connection, whatever the url. Without an ID, it needs permission to create one. See Endpoint Connections.
curl --request POST \
--url https://api.galtea.ai/endpointConnections/testConnection \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "id_123",
"url": "https://api.example.com",
"httpMethod": "<string>",
"authType": "<string>",
"authToken": "<string>",
"username": "<string>",
"password": "securePass123!",
"headers": {},
"inputTemplate": "<string>",
"timeout": 123,
"acknowledgedInsecureHttp": true,
"outputMapping": {}
}
'import requests
url = "https://api.galtea.ai/endpointConnections/testConnection"
payload = {
"id": "id_123",
"url": "https://api.example.com",
"httpMethod": "<string>",
"authType": "<string>",
"authToken": "<string>",
"username": "<string>",
"password": "securePass123!",
"headers": {},
"inputTemplate": "<string>",
"timeout": 123,
"acknowledgedInsecureHttp": True,
"outputMapping": {}
}
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: 'id_123',
url: 'https://api.example.com',
httpMethod: '<string>',
authType: '<string>',
authToken: '<string>',
username: '<string>',
password: 'securePass123!',
headers: {},
inputTemplate: '<string>',
timeout: 123,
acknowledgedInsecureHttp: true,
outputMapping: {}
})
};
fetch('https://api.galtea.ai/endpointConnections/testConnection', 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.galtea.ai/endpointConnections/testConnection",
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' => 'id_123',
'url' => 'https://api.example.com',
'httpMethod' => '<string>',
'authType' => '<string>',
'authToken' => '<string>',
'username' => '<string>',
'password' => 'securePass123!',
'headers' => [
],
'inputTemplate' => '<string>',
'timeout' => 123,
'acknowledgedInsecureHttp' => true,
'outputMapping' => [
]
]),
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.galtea.ai/endpointConnections/testConnection"
payload := strings.NewReader("{\n \"id\": \"id_123\",\n \"url\": \"https://api.example.com\",\n \"httpMethod\": \"<string>\",\n \"authType\": \"<string>\",\n \"authToken\": \"<string>\",\n \"username\": \"<string>\",\n \"password\": \"securePass123!\",\n \"headers\": {},\n \"inputTemplate\": \"<string>\",\n \"timeout\": 123,\n \"acknowledgedInsecureHttp\": true,\n \"outputMapping\": {}\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.galtea.ai/endpointConnections/testConnection")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"id_123\",\n \"url\": \"https://api.example.com\",\n \"httpMethod\": \"<string>\",\n \"authType\": \"<string>\",\n \"authToken\": \"<string>\",\n \"username\": \"<string>\",\n \"password\": \"securePass123!\",\n \"headers\": {},\n \"inputTemplate\": \"<string>\",\n \"timeout\": 123,\n \"acknowledgedInsecureHttp\": true,\n \"outputMapping\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.galtea.ai/endpointConnections/testConnection")
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\": \"id_123\",\n \"url\": \"https://api.example.com\",\n \"httpMethod\": \"<string>\",\n \"authType\": \"<string>\",\n \"authToken\": \"<string>\",\n \"username\": \"<string>\",\n \"password\": \"securePass123!\",\n \"headers\": {},\n \"inputTemplate\": \"<string>\",\n \"timeout\": 123,\n \"acknowledgedInsecureHttp\": true,\n \"outputMapping\": {}\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"statusCode": 123,
"latency": 123,
"response": {},
"error": "<string>",
"extractedOutput": {
"output": "<string>",
"retrieval_context": "<string>",
"session_id": "<string>",
"traces": [
{}
],
"metadata": {},
"output_files": [
{
"position": 123,
"kind": "base64",
"filename": "<string>",
"mime_type": "<string>",
"size_bytes": 123,
"host": "<string>",
"base64": "<string>",
"uri": "<string>"
}
],
"output_file_refusals": [
{
"position": 123,
"message": "<string>"
}
]
},
"extractionError": "<string>"
}{
"error": "Error type",
"message": "Error message description"
}{
"error": "Error type",
"message": "Error message description"
}{
"error": "Error type",
"message": "Error message description"
}{
"error": "Error type",
"message": "Error message description"
}Authorizations
API key authorization. Pass your API key in the Authorization header as a Bearer token. Both new (gsk_*) and legacy (gsk-) API keys are accepted, e.g. Authorization: Bearer gsk_... or Authorization: Bearer gsk-....
Body
Optional ID of an existing endpoint connection. When provided, stored connection data is used as base and remaining fields act as overrides.
"id_123"
The endpoint URL to test.
"https://api.example.com"
HTTP method (GET, POST, etc.)
Authentication type (NONE, BEARER, API_KEY, BASIC)
Authentication token (for BEARER or API_KEY). With an ID, a blank value (null or empty string) keeps the stored token, and the token is dropped when authType changes to NONE or BASIC.
Username (for BASIC auth)
Password (for BASIC auth). With an ID, a blank value (null or empty string) keeps the stored password, and the password is dropped when authType changes to NONE, BEARER or API_KEY.
"securePass123!"
Custom headers as key-value pairs. With an ID, a value of "••••••••" (the masked value a read returns) sends the stored value of that header name. Without an ID, or for a header with no stored value, "••••••••" is a 400. A value in the stored ciphertext shape is a 400.
Input template with Jinja2 placeholders
Request timeout in seconds
Required true to test an http:// URL. With an ID, the stored value applies when omitted. It is ignored for an https:// URL.
JSONPath expressions applied to a successful response. The result is returned in extractedOutput. It is not read from the stored connection.
Show child attributes
Show child attributes
Response
Test connection result
The endpoint response. Each inline file payload that output_files matched is replaced by a placeholder such as <base64, 1.2 MB>. The bytes of a file a run would store are in extractedOutput.output_files. A refused payload is not echoed.
The output mapping applied to a successful response. Absent when no mapping was sent.
Show child attributes
Show child attributes
Why the output mapping could not be applied.