curl --request POST \
--url https://api.blaxel.ai/v0/models \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"metadata": {
"name": "my-resource",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {}
},
"spec": {
"enabled": true,
"flavors": [
{
"name": "t4",
"type": "cpu"
}
],
"integrationConnections": [
"<string>"
],
"policies": [
"<string>"
],
"runtime": {
"endpointName": "<string>",
"model": "gpt-4.1",
"organization": "org-abc123",
"type": "openai"
},
"sandbox": false
}
}
'import requests
url = "https://api.blaxel.ai/v0/models"
payload = {
"metadata": {
"name": "my-resource",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {}
},
"spec": {
"enabled": True,
"flavors": [
{
"name": "t4",
"type": "cpu"
}
],
"integrationConnections": ["<string>"],
"policies": ["<string>"],
"runtime": {
"endpointName": "<string>",
"model": "gpt-4.1",
"organization": "org-abc123",
"type": "openai"
},
"sandbox": False
}
}
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({
metadata: {
name: 'my-resource',
displayName: 'My Resource',
externalId: 'my-session-123',
labels: {}
},
spec: {
enabled: true,
flavors: [{name: 't4', type: 'cpu'}],
integrationConnections: ['<string>'],
policies: ['<string>'],
runtime: {
endpointName: '<string>',
model: 'gpt-4.1',
organization: 'org-abc123',
type: 'openai'
},
sandbox: false
}
})
};
fetch('https://api.blaxel.ai/v0/models', 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.blaxel.ai/v0/models",
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([
'metadata' => [
'name' => 'my-resource',
'displayName' => 'My Resource',
'externalId' => 'my-session-123',
'labels' => [
]
],
'spec' => [
'enabled' => true,
'flavors' => [
[
'name' => 't4',
'type' => 'cpu'
]
],
'integrationConnections' => [
'<string>'
],
'policies' => [
'<string>'
],
'runtime' => [
'endpointName' => '<string>',
'model' => 'gpt-4.1',
'organization' => 'org-abc123',
'type' => 'openai'
],
'sandbox' => false
]
]),
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.blaxel.ai/v0/models"
payload := strings.NewReader("{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"enabled\": true,\n \"flavors\": [\n {\n \"name\": \"t4\",\n \"type\": \"cpu\"\n }\n ],\n \"integrationConnections\": [\n \"<string>\"\n ],\n \"policies\": [\n \"<string>\"\n ],\n \"runtime\": {\n \"endpointName\": \"<string>\",\n \"model\": \"gpt-4.1\",\n \"organization\": \"org-abc123\",\n \"type\": \"openai\"\n },\n \"sandbox\": false\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.blaxel.ai/v0/models")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"enabled\": true,\n \"flavors\": [\n {\n \"name\": \"t4\",\n \"type\": \"cpu\"\n }\n ],\n \"integrationConnections\": [\n \"<string>\"\n ],\n \"policies\": [\n \"<string>\"\n ],\n \"runtime\": {\n \"endpointName\": \"<string>\",\n \"model\": \"gpt-4.1\",\n \"organization\": \"org-abc123\",\n \"type\": \"openai\"\n },\n \"sandbox\": false\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blaxel.ai/v0/models")
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 \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"enabled\": true,\n \"flavors\": [\n {\n \"name\": \"t4\",\n \"type\": \"cpu\"\n }\n ],\n \"integrationConnections\": [\n \"<string>\"\n ],\n \"policies\": [\n \"<string>\"\n ],\n \"runtime\": {\n \"endpointName\": \"<string>\",\n \"model\": \"gpt-4.1\",\n \"organization\": \"org-abc123\",\n \"type\": \"openai\"\n },\n \"sandbox\": false\n }\n}"
response = http.request(request)
puts response.read_body{
"metadata": {
"name": "my-resource",
"createdAt": "<string>",
"updatedAt": "<string>",
"createdBy": "<string>",
"updatedBy": "<string>",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {},
"plan": "<string>",
"url": "<string>",
"workspace": "<string>"
},
"spec": {
"enabled": true,
"flavors": [
{
"name": "t4",
"type": "cpu"
}
],
"integrationConnections": [
"<string>"
],
"policies": [
"<string>"
],
"runtime": {
"endpointName": "<string>",
"model": "gpt-4.1",
"organization": "org-abc123",
"type": "openai"
},
"sandbox": false
},
"events": [
{
"canaryRevision": "<string>",
"message": "Deployment successful",
"revision": "rev-abc123",
"status": "DEPLOYED",
"time": "2025-01-15T10:30:00Z",
"type": "deployment"
}
]
}{
"error": "Resource already exists",
"code": 409,
"message": "Invalid request body"
}{
"error": "Resource already exists",
"code": 409,
"message": "Invalid request body"
}{
"error": "Resource already exists",
"code": 409,
"message": "Invalid request body"
}{
"error": "Resource already exists",
"code": 409,
"message": "Invalid request body"
}{
"error": "Resource already exists",
"code": 409,
"message": "Invalid request body"
}Create model endpoint
Creates a new model gateway endpoint that proxies requests to an external LLM provider. Requires an integration connection with valid API credentials for the target provider.
curl --request POST \
--url https://api.blaxel.ai/v0/models \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"metadata": {
"name": "my-resource",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {}
},
"spec": {
"enabled": true,
"flavors": [
{
"name": "t4",
"type": "cpu"
}
],
"integrationConnections": [
"<string>"
],
"policies": [
"<string>"
],
"runtime": {
"endpointName": "<string>",
"model": "gpt-4.1",
"organization": "org-abc123",
"type": "openai"
},
"sandbox": false
}
}
'import requests
url = "https://api.blaxel.ai/v0/models"
payload = {
"metadata": {
"name": "my-resource",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {}
},
"spec": {
"enabled": True,
"flavors": [
{
"name": "t4",
"type": "cpu"
}
],
"integrationConnections": ["<string>"],
"policies": ["<string>"],
"runtime": {
"endpointName": "<string>",
"model": "gpt-4.1",
"organization": "org-abc123",
"type": "openai"
},
"sandbox": False
}
}
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({
metadata: {
name: 'my-resource',
displayName: 'My Resource',
externalId: 'my-session-123',
labels: {}
},
spec: {
enabled: true,
flavors: [{name: 't4', type: 'cpu'}],
integrationConnections: ['<string>'],
policies: ['<string>'],
runtime: {
endpointName: '<string>',
model: 'gpt-4.1',
organization: 'org-abc123',
type: 'openai'
},
sandbox: false
}
})
};
fetch('https://api.blaxel.ai/v0/models', 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.blaxel.ai/v0/models",
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([
'metadata' => [
'name' => 'my-resource',
'displayName' => 'My Resource',
'externalId' => 'my-session-123',
'labels' => [
]
],
'spec' => [
'enabled' => true,
'flavors' => [
[
'name' => 't4',
'type' => 'cpu'
]
],
'integrationConnections' => [
'<string>'
],
'policies' => [
'<string>'
],
'runtime' => [
'endpointName' => '<string>',
'model' => 'gpt-4.1',
'organization' => 'org-abc123',
'type' => 'openai'
],
'sandbox' => false
]
]),
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.blaxel.ai/v0/models"
payload := strings.NewReader("{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"enabled\": true,\n \"flavors\": [\n {\n \"name\": \"t4\",\n \"type\": \"cpu\"\n }\n ],\n \"integrationConnections\": [\n \"<string>\"\n ],\n \"policies\": [\n \"<string>\"\n ],\n \"runtime\": {\n \"endpointName\": \"<string>\",\n \"model\": \"gpt-4.1\",\n \"organization\": \"org-abc123\",\n \"type\": \"openai\"\n },\n \"sandbox\": false\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.blaxel.ai/v0/models")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"enabled\": true,\n \"flavors\": [\n {\n \"name\": \"t4\",\n \"type\": \"cpu\"\n }\n ],\n \"integrationConnections\": [\n \"<string>\"\n ],\n \"policies\": [\n \"<string>\"\n ],\n \"runtime\": {\n \"endpointName\": \"<string>\",\n \"model\": \"gpt-4.1\",\n \"organization\": \"org-abc123\",\n \"type\": \"openai\"\n },\n \"sandbox\": false\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blaxel.ai/v0/models")
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 \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"enabled\": true,\n \"flavors\": [\n {\n \"name\": \"t4\",\n \"type\": \"cpu\"\n }\n ],\n \"integrationConnections\": [\n \"<string>\"\n ],\n \"policies\": [\n \"<string>\"\n ],\n \"runtime\": {\n \"endpointName\": \"<string>\",\n \"model\": \"gpt-4.1\",\n \"organization\": \"org-abc123\",\n \"type\": \"openai\"\n },\n \"sandbox\": false\n }\n}"
response = http.request(request)
puts response.read_body{
"metadata": {
"name": "my-resource",
"createdAt": "<string>",
"updatedAt": "<string>",
"createdBy": "<string>",
"updatedBy": "<string>",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {},
"plan": "<string>",
"url": "<string>",
"workspace": "<string>"
},
"spec": {
"enabled": true,
"flavors": [
{
"name": "t4",
"type": "cpu"
}
],
"integrationConnections": [
"<string>"
],
"policies": [
"<string>"
],
"runtime": {
"endpointName": "<string>",
"model": "gpt-4.1",
"organization": "org-abc123",
"type": "openai"
},
"sandbox": false
},
"events": [
{
"canaryRevision": "<string>",
"message": "Deployment successful",
"revision": "rev-abc123",
"status": "DEPLOYED",
"time": "2025-01-15T10:30:00Z",
"type": "deployment"
}
]
}{
"error": "Resource already exists",
"code": 409,
"message": "Invalid request body"
}{
"error": "Resource already exists",
"code": 409,
"message": "Invalid request body"
}{
"error": "Resource already exists",
"code": 409,
"message": "Invalid request body"
}{
"error": "Resource already exists",
"code": 409,
"message": "Invalid request body"
}{
"error": "Resource already exists",
"code": 409,
"message": "Invalid request body"
}Authorizations
OAuth2 authentication with JWT tokens
Body
Gateway endpoint to external LLM provider APIs (OpenAI, Anthropic, etc.) with unified access control, credentials management, and usage tracking.
Response
successful operation
Gateway endpoint to external LLM provider APIs (OpenAI, Anthropic, etc.) with unified access control, credentials management, and usage tracking.
Common metadata fields shared by all Blaxel resources including name, labels, timestamps, and ownership information
Show child attributes
Show child attributes
Configuration for a model gateway endpoint including provider type, credentials, and access policies
Show child attributes
Show child attributes
Events happening on a resource deployed on Blaxel
Show child attributes
Show child attributes
Deployment status of a resource deployed on Blaxel
DELETING, TERMINATED, FAILED, DEACTIVATED, DEACTIVATING, UPLOADING, BUILDING, DEPLOYING, DEPLOYED, BUILT Was this page helpful?
