curl --request POST \
--url https://api-v2.requesty.ai/v1/manage/org/approved-model \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"chat": [
"openai/gpt-4o",
"anthropic/claude-sonnet-4-20250514"
],
"embedding": [
"openai/text-embedding-3-small"
],
"image": [
"<string>"
],
"transcription": [
"<string>"
],
"speech": [
"<string>"
],
"decision": [
"typesafe/jev-latest"
]
}
'import requests
url = "https://api-v2.requesty.ai/v1/manage/org/approved-model"
payload = {
"chat": ["openai/gpt-4o", "anthropic/claude-sonnet-4-20250514"],
"embedding": ["openai/text-embedding-3-small"],
"image": ["<string>"],
"transcription": ["<string>"],
"speech": ["<string>"],
"decision": ["typesafe/jev-latest"]
}
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({
chat: ['openai/gpt-4o', 'anthropic/claude-sonnet-4-20250514'],
embedding: ['openai/text-embedding-3-small'],
image: ['<string>'],
transcription: ['<string>'],
speech: ['<string>'],
decision: ['typesafe/jev-latest']
})
};
fetch('https://api-v2.requesty.ai/v1/manage/org/approved-model', 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-v2.requesty.ai/v1/manage/org/approved-model",
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([
'chat' => [
'openai/gpt-4o',
'anthropic/claude-sonnet-4-20250514'
],
'embedding' => [
'openai/text-embedding-3-small'
],
'image' => [
'<string>'
],
'transcription' => [
'<string>'
],
'speech' => [
'<string>'
],
'decision' => [
'typesafe/jev-latest'
]
]),
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-v2.requesty.ai/v1/manage/org/approved-model"
payload := strings.NewReader("{\n \"chat\": [\n \"openai/gpt-4o\",\n \"anthropic/claude-sonnet-4-20250514\"\n ],\n \"embedding\": [\n \"openai/text-embedding-3-small\"\n ],\n \"image\": [\n \"<string>\"\n ],\n \"transcription\": [\n \"<string>\"\n ],\n \"speech\": [\n \"<string>\"\n ],\n \"decision\": [\n \"typesafe/jev-latest\"\n ]\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-v2.requesty.ai/v1/manage/org/approved-model")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"chat\": [\n \"openai/gpt-4o\",\n \"anthropic/claude-sonnet-4-20250514\"\n ],\n \"embedding\": [\n \"openai/text-embedding-3-small\"\n ],\n \"image\": [\n \"<string>\"\n ],\n \"transcription\": [\n \"<string>\"\n ],\n \"speech\": [\n \"<string>\"\n ],\n \"decision\": [\n \"typesafe/jev-latest\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-v2.requesty.ai/v1/manage/org/approved-model")
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 \"chat\": [\n \"openai/gpt-4o\",\n \"anthropic/claude-sonnet-4-20250514\"\n ],\n \"embedding\": [\n \"openai/text-embedding-3-small\"\n ],\n \"image\": [\n \"<string>\"\n ],\n \"transcription\": [\n \"<string>\"\n ],\n \"speech\": [\n \"<string>\"\n ],\n \"decision\": [\n \"typesafe/jev-latest\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"error": {
"origin": "router",
"message": "<string>"
}
}{
"error": {
"origin": "router",
"message": "<string>"
}
}{
"error": {
"origin": "router",
"message": "<string>"
}
}{
"error": {
"origin": "router",
"message": "<string>"
}
}{
"error": {
"origin": "router",
"message": "<string>"
}
}Set Org Approved Models
Replace your organization’s approved models. Each modality you send replaces that modality’s list, and any modality you omit is cleared, so send every modality you want to keep. Entries can be provider/model names or model IDs. Every model used by one of your access lists must stay approved, otherwise the request fails with 400. Send every modality empty to remove the allowlist and allow every model in the catalog. Requires an API key with write manage permissions.
curl --request POST \
--url https://api-v2.requesty.ai/v1/manage/org/approved-model \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"chat": [
"openai/gpt-4o",
"anthropic/claude-sonnet-4-20250514"
],
"embedding": [
"openai/text-embedding-3-small"
],
"image": [
"<string>"
],
"transcription": [
"<string>"
],
"speech": [
"<string>"
],
"decision": [
"typesafe/jev-latest"
]
}
'import requests
url = "https://api-v2.requesty.ai/v1/manage/org/approved-model"
payload = {
"chat": ["openai/gpt-4o", "anthropic/claude-sonnet-4-20250514"],
"embedding": ["openai/text-embedding-3-small"],
"image": ["<string>"],
"transcription": ["<string>"],
"speech": ["<string>"],
"decision": ["typesafe/jev-latest"]
}
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({
chat: ['openai/gpt-4o', 'anthropic/claude-sonnet-4-20250514'],
embedding: ['openai/text-embedding-3-small'],
image: ['<string>'],
transcription: ['<string>'],
speech: ['<string>'],
decision: ['typesafe/jev-latest']
})
};
fetch('https://api-v2.requesty.ai/v1/manage/org/approved-model', 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-v2.requesty.ai/v1/manage/org/approved-model",
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([
'chat' => [
'openai/gpt-4o',
'anthropic/claude-sonnet-4-20250514'
],
'embedding' => [
'openai/text-embedding-3-small'
],
'image' => [
'<string>'
],
'transcription' => [
'<string>'
],
'speech' => [
'<string>'
],
'decision' => [
'typesafe/jev-latest'
]
]),
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-v2.requesty.ai/v1/manage/org/approved-model"
payload := strings.NewReader("{\n \"chat\": [\n \"openai/gpt-4o\",\n \"anthropic/claude-sonnet-4-20250514\"\n ],\n \"embedding\": [\n \"openai/text-embedding-3-small\"\n ],\n \"image\": [\n \"<string>\"\n ],\n \"transcription\": [\n \"<string>\"\n ],\n \"speech\": [\n \"<string>\"\n ],\n \"decision\": [\n \"typesafe/jev-latest\"\n ]\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-v2.requesty.ai/v1/manage/org/approved-model")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"chat\": [\n \"openai/gpt-4o\",\n \"anthropic/claude-sonnet-4-20250514\"\n ],\n \"embedding\": [\n \"openai/text-embedding-3-small\"\n ],\n \"image\": [\n \"<string>\"\n ],\n \"transcription\": [\n \"<string>\"\n ],\n \"speech\": [\n \"<string>\"\n ],\n \"decision\": [\n \"typesafe/jev-latest\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-v2.requesty.ai/v1/manage/org/approved-model")
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 \"chat\": [\n \"openai/gpt-4o\",\n \"anthropic/claude-sonnet-4-20250514\"\n ],\n \"embedding\": [\n \"openai/text-embedding-3-small\"\n ],\n \"image\": [\n \"<string>\"\n ],\n \"transcription\": [\n \"<string>\"\n ],\n \"speech\": [\n \"<string>\"\n ],\n \"decision\": [\n \"typesafe/jev-latest\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"error": {
"origin": "router",
"message": "<string>"
}
}{
"error": {
"origin": "router",
"message": "<string>"
}
}{
"error": {
"origin": "router",
"message": "<string>"
}
}{
"error": {
"origin": "router",
"message": "<string>"
}
}{
"error": {
"origin": "router",
"message": "<string>"
}
}Authorizations
API key for authentication
Body
The full set of approved models. Modalities that are omitted are cleared.
Chat/completion models to approve, as provider/model names or model IDs. Replaces the current list; omitted or empty means no chat/completion models are approved unless every modality is empty
[
"openai/gpt-4o",
"anthropic/claude-sonnet-4-20250514"
]
Embedding models to approve, as provider/model names or model IDs. Replaces the current list; omitted or empty means no embedding models are approved unless every modality is empty
["openai/text-embedding-3-small"]
Image generation models to approve, as provider/model names or model IDs. Replaces the current list; omitted or empty means no image generation models are approved unless every modality is empty
Transcription models to approve, as provider/model names or model IDs. Replaces the current list; omitted or empty means no transcription models are approved unless every modality is empty
Speech models to approve, as provider/model names or model IDs. Replaces the current list; omitted or empty means no speech models are approved unless every modality is empty
Decision models to approve, as provider/model names or model IDs. Replaces the current list; omitted or empty means no decision models are approved unless every modality is empty
["typesafe/jev-latest"]
Response
Approved models updated successfully
Was this page helpful?