curl --request POST \
--url https://api.openworklabs.com/v1/inference-providers/{inferenceProviderId}/credential-sets \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"apiKeys": {},
"oauthClientId": "<string>",
"oauthClientSecret": "<string>",
"oauthTenantId": "<string>",
"awsSso": {
"startUrl": "<string>",
"region": "<string>",
"accountId": "<string>",
"roleName": "<string>"
}
}
'import requests
url = "https://api.openworklabs.com/v1/inference-providers/{inferenceProviderId}/credential-sets"
payload = {
"name": "<string>",
"apiKeys": {},
"oauthClientId": "<string>",
"oauthClientSecret": "<string>",
"oauthTenantId": "<string>",
"awsSso": {
"startUrl": "<string>",
"region": "<string>",
"accountId": "<string>",
"roleName": "<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({
name: '<string>',
apiKeys: {},
oauthClientId: '<string>',
oauthClientSecret: '<string>',
oauthTenantId: '<string>',
awsSso: {
startUrl: '<string>',
region: '<string>',
accountId: '<string>',
roleName: '<string>'
}
})
};
fetch('https://api.openworklabs.com/v1/inference-providers/{inferenceProviderId}/credential-sets', 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/{inferenceProviderId}/credential-sets",
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([
'name' => '<string>',
'apiKeys' => [
],
'oauthClientId' => '<string>',
'oauthClientSecret' => '<string>',
'oauthTenantId' => '<string>',
'awsSso' => [
'startUrl' => '<string>',
'region' => '<string>',
'accountId' => '<string>',
'roleName' => '<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/{inferenceProviderId}/credential-sets"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"apiKeys\": {},\n \"oauthClientId\": \"<string>\",\n \"oauthClientSecret\": \"<string>\",\n \"oauthTenantId\": \"<string>\",\n \"awsSso\": {\n \"startUrl\": \"<string>\",\n \"region\": \"<string>\",\n \"accountId\": \"<string>\",\n \"roleName\": \"<string>\"\n }\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/{inferenceProviderId}/credential-sets")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"apiKeys\": {},\n \"oauthClientId\": \"<string>\",\n \"oauthClientSecret\": \"<string>\",\n \"oauthTenantId\": \"<string>\",\n \"awsSso\": {\n \"startUrl\": \"<string>\",\n \"region\": \"<string>\",\n \"accountId\": \"<string>\",\n \"roleName\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/inference-providers/{inferenceProviderId}/credential-sets")
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 \"name\": \"<string>\",\n \"apiKeys\": {},\n \"oauthClientId\": \"<string>\",\n \"oauthClientSecret\": \"<string>\",\n \"oauthTenantId\": \"<string>\",\n \"awsSso\": {\n \"startUrl\": \"<string>\",\n \"region\": \"<string>\",\n \"accountId\": \"<string>\",\n \"roleName\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"credentialSet": {
"id": "<string>",
"name": "<string>",
"credentialMode": "org",
"status": "active",
"configured": true,
"credentialStatus": "ready",
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": {
"id": "<string>",
"name": "<string>",
"email": "<string>"
},
"oauthClientId": "<string>",
"hasOauthClientSecret": true,
"oauthTenantId": "<string>",
"awsSso": {
"startUrl": "<string>",
"region": "<string>",
"accountId": "<string>",
"roleName": "<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>"
}Create gateway credential set
Creates an organization credential set with a supported shared credential, or a member set where each member signs in with their own account: a Google OAuth client (Vertex), an Entra ID tenant and app registration (Microsoft Foundry) or IAM Identity Center settings (Amazon Bedrock). Returns configuration status without secrets; access grants are created separately. Requires owner/admin permission and enabled Gateway management; session callers must recently reauthenticate.
curl --request POST \
--url https://api.openworklabs.com/v1/inference-providers/{inferenceProviderId}/credential-sets \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"apiKeys": {},
"oauthClientId": "<string>",
"oauthClientSecret": "<string>",
"oauthTenantId": "<string>",
"awsSso": {
"startUrl": "<string>",
"region": "<string>",
"accountId": "<string>",
"roleName": "<string>"
}
}
'import requests
url = "https://api.openworklabs.com/v1/inference-providers/{inferenceProviderId}/credential-sets"
payload = {
"name": "<string>",
"apiKeys": {},
"oauthClientId": "<string>",
"oauthClientSecret": "<string>",
"oauthTenantId": "<string>",
"awsSso": {
"startUrl": "<string>",
"region": "<string>",
"accountId": "<string>",
"roleName": "<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({
name: '<string>',
apiKeys: {},
oauthClientId: '<string>',
oauthClientSecret: '<string>',
oauthTenantId: '<string>',
awsSso: {
startUrl: '<string>',
region: '<string>',
accountId: '<string>',
roleName: '<string>'
}
})
};
fetch('https://api.openworklabs.com/v1/inference-providers/{inferenceProviderId}/credential-sets', 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/{inferenceProviderId}/credential-sets",
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([
'name' => '<string>',
'apiKeys' => [
],
'oauthClientId' => '<string>',
'oauthClientSecret' => '<string>',
'oauthTenantId' => '<string>',
'awsSso' => [
'startUrl' => '<string>',
'region' => '<string>',
'accountId' => '<string>',
'roleName' => '<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/{inferenceProviderId}/credential-sets"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"apiKeys\": {},\n \"oauthClientId\": \"<string>\",\n \"oauthClientSecret\": \"<string>\",\n \"oauthTenantId\": \"<string>\",\n \"awsSso\": {\n \"startUrl\": \"<string>\",\n \"region\": \"<string>\",\n \"accountId\": \"<string>\",\n \"roleName\": \"<string>\"\n }\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/{inferenceProviderId}/credential-sets")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"apiKeys\": {},\n \"oauthClientId\": \"<string>\",\n \"oauthClientSecret\": \"<string>\",\n \"oauthTenantId\": \"<string>\",\n \"awsSso\": {\n \"startUrl\": \"<string>\",\n \"region\": \"<string>\",\n \"accountId\": \"<string>\",\n \"roleName\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/inference-providers/{inferenceProviderId}/credential-sets")
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 \"name\": \"<string>\",\n \"apiKeys\": {},\n \"oauthClientId\": \"<string>\",\n \"oauthClientSecret\": \"<string>\",\n \"oauthTenantId\": \"<string>\",\n \"awsSso\": {\n \"startUrl\": \"<string>\",\n \"region\": \"<string>\",\n \"accountId\": \"<string>\",\n \"roleName\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"credentialSet": {
"id": "<string>",
"name": "<string>",
"credentialMode": "org",
"status": "active",
"configured": true,
"credentialStatus": "ready",
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": {
"id": "<string>",
"name": "<string>",
"email": "<string>"
},
"oauthClientId": "<string>",
"hasOauthClientSecret": true,
"oauthTenantId": "<string>",
"awsSso": {
"startUrl": "<string>",
"region": "<string>",
"accountId": "<string>",
"roleName": "<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>"
}Authorizations
Organization API key passed as the x-api-key header. The raw key is the header value; do not prefix it with Bearer.
Path Parameters
Den TypeID with 'ipr_' prefix and a 26-character base32 suffix.
30Body
1 - 255org, member Show child attributes
Show child attributes
Show child attributes
Show child attributes
2554096Microsoft Foundry member sets: the Entra ID directory (tenant) ID. Empty string clears.
64Amazon Bedrock member sets: IAM Identity Center access portal URL, its region, the AWS account ID and the permission set name members get. null clears.
Show child attributes
Show child attributes
active, disabled Response
Create gateway credential set
Show child attributes
Show child attributes
Was this page helpful?