curl --request POST \
--url https://api.openworklabs.com/v1/inference-providers/test-connection \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"providerId": "<string>",
"model": "<string>",
"settings": {
"project": "<string>",
"location": "<string>",
"resourceName": "<string>",
"apiVersion": "<string>",
"region": "<string>",
"upstreamBaseUrl": "<string>"
},
"apiKeys": {},
"reuseCredentialFrom": "<string>"
}
'import requests
url = "https://api.openworklabs.com/v1/inference-providers/test-connection"
payload = {
"providerId": "<string>",
"model": "<string>",
"settings": {
"project": "<string>",
"location": "<string>",
"resourceName": "<string>",
"apiVersion": "<string>",
"region": "<string>",
"upstreamBaseUrl": "<string>"
},
"apiKeys": {},
"reuseCredentialFrom": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
providerId: '<string>',
model: '<string>',
settings: {
project: '<string>',
location: '<string>',
resourceName: '<string>',
apiVersion: '<string>',
region: '<string>',
upstreamBaseUrl: '<string>'
},
apiKeys: {},
reuseCredentialFrom: '<string>'
})
};
fetch('https://api.openworklabs.com/v1/inference-providers/test-connection', 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.openworklabs.com/v1/inference-providers/test-connection",
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([
'providerId' => '<string>',
'model' => '<string>',
'settings' => [
'project' => '<string>',
'location' => '<string>',
'resourceName' => '<string>',
'apiVersion' => '<string>',
'region' => '<string>',
'upstreamBaseUrl' => '<string>'
],
'apiKeys' => [
],
'reuseCredentialFrom' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.openworklabs.com/v1/inference-providers/test-connection"
payload := strings.NewReader("{\n \"providerId\": \"<string>\",\n \"model\": \"<string>\",\n \"settings\": {\n \"project\": \"<string>\",\n \"location\": \"<string>\",\n \"resourceName\": \"<string>\",\n \"apiVersion\": \"<string>\",\n \"region\": \"<string>\",\n \"upstreamBaseUrl\": \"<string>\"\n },\n \"apiKeys\": {},\n \"reuseCredentialFrom\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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.openworklabs.com/v1/inference-providers/test-connection")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"providerId\": \"<string>\",\n \"model\": \"<string>\",\n \"settings\": {\n \"project\": \"<string>\",\n \"location\": \"<string>\",\n \"resourceName\": \"<string>\",\n \"apiVersion\": \"<string>\",\n \"region\": \"<string>\",\n \"upstreamBaseUrl\": \"<string>\"\n },\n \"apiKeys\": {},\n \"reuseCredentialFrom\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/inference-providers/test-connection")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"providerId\": \"<string>\",\n \"model\": \"<string>\",\n \"settings\": {\n \"project\": \"<string>\",\n \"location\": \"<string>\",\n \"resourceName\": \"<string>\",\n \"apiVersion\": \"<string>\",\n \"region\": \"<string>\",\n \"upstreamBaseUrl\": \"<string>\"\n },\n \"apiKeys\": {},\n \"reuseCredentialFrom\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"model": "<string>",
"status": 0,
"code": "<string>",
"message": "<string>"
}{
"error": "invalid_request",
"details": [
{
"message": "<string>",
"path": [
"<string>"
]
}
],
"message": "<string>",
"capability": "<string>"
}{
"error": "unauthorized"
}{
"error": "forbidden",
"reason": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "rate_limited",
"retryAfterSeconds": 123
}Test an inference gateway provider before adding it
Sends one short test prompt through AI Gateway to the trusted catalog provider with an unsaved organization credential (credential, apiKeys, or reuseCredentialFrom for Amazon Bedrock), the destination settings and one catalog model. Nothing is stored and no usage is recorded. ok=false carries a message for the admin that never contains the key. May consume a few tokens on the provider account. Requires the gatewayProviderTest feature, the Manage Gateway providers permission and enabled Gateway management; a person must send it, never the agent or an API key. Limited to 20 tests per member and 60 per organization every ten minutes.
curl --request POST \
--url https://api.openworklabs.com/v1/inference-providers/test-connection \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"providerId": "<string>",
"model": "<string>",
"settings": {
"project": "<string>",
"location": "<string>",
"resourceName": "<string>",
"apiVersion": "<string>",
"region": "<string>",
"upstreamBaseUrl": "<string>"
},
"apiKeys": {},
"reuseCredentialFrom": "<string>"
}
'import requests
url = "https://api.openworklabs.com/v1/inference-providers/test-connection"
payload = {
"providerId": "<string>",
"model": "<string>",
"settings": {
"project": "<string>",
"location": "<string>",
"resourceName": "<string>",
"apiVersion": "<string>",
"region": "<string>",
"upstreamBaseUrl": "<string>"
},
"apiKeys": {},
"reuseCredentialFrom": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
providerId: '<string>',
model: '<string>',
settings: {
project: '<string>',
location: '<string>',
resourceName: '<string>',
apiVersion: '<string>',
region: '<string>',
upstreamBaseUrl: '<string>'
},
apiKeys: {},
reuseCredentialFrom: '<string>'
})
};
fetch('https://api.openworklabs.com/v1/inference-providers/test-connection', 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.openworklabs.com/v1/inference-providers/test-connection",
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([
'providerId' => '<string>',
'model' => '<string>',
'settings' => [
'project' => '<string>',
'location' => '<string>',
'resourceName' => '<string>',
'apiVersion' => '<string>',
'region' => '<string>',
'upstreamBaseUrl' => '<string>'
],
'apiKeys' => [
],
'reuseCredentialFrom' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.openworklabs.com/v1/inference-providers/test-connection"
payload := strings.NewReader("{\n \"providerId\": \"<string>\",\n \"model\": \"<string>\",\n \"settings\": {\n \"project\": \"<string>\",\n \"location\": \"<string>\",\n \"resourceName\": \"<string>\",\n \"apiVersion\": \"<string>\",\n \"region\": \"<string>\",\n \"upstreamBaseUrl\": \"<string>\"\n },\n \"apiKeys\": {},\n \"reuseCredentialFrom\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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.openworklabs.com/v1/inference-providers/test-connection")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"providerId\": \"<string>\",\n \"model\": \"<string>\",\n \"settings\": {\n \"project\": \"<string>\",\n \"location\": \"<string>\",\n \"resourceName\": \"<string>\",\n \"apiVersion\": \"<string>\",\n \"region\": \"<string>\",\n \"upstreamBaseUrl\": \"<string>\"\n },\n \"apiKeys\": {},\n \"reuseCredentialFrom\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/inference-providers/test-connection")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"providerId\": \"<string>\",\n \"model\": \"<string>\",\n \"settings\": {\n \"project\": \"<string>\",\n \"location\": \"<string>\",\n \"resourceName\": \"<string>\",\n \"apiVersion\": \"<string>\",\n \"region\": \"<string>\",\n \"upstreamBaseUrl\": \"<string>\"\n },\n \"apiKeys\": {},\n \"reuseCredentialFrom\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"model": "<string>",
"status": 0,
"code": "<string>",
"message": "<string>"
}{
"error": "invalid_request",
"details": [
{
"message": "<string>",
"path": [
"<string>"
]
}
],
"message": "<string>",
"capability": "<string>"
}{
"error": "unauthorized"
}{
"error": "forbidden",
"reason": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "rate_limited",
"retryAfterSeconds": 123
}Authorizations
Organization API key passed as the x-api-key header. The raw key is the header value; do not prefix it with Bearer.
Body
1 - 2551 - 255Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Amazon Bedrock only: copy the organization AWS keys of another Amazon Bedrock provider in this organization, server-side. Mutually exclusive with credential and apiKeys.
30Was this page helpful?