Create an LLM profile
curl --request POST \
--url https://api.lmnr.ai/v1/llm-profiles \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"models": [
"<string>"
],
"config": {
"auth": {
"type": "api_key"
},
"region": "<string>",
"resourceId": "<string>",
"baseUrl": "<string>",
"apiVersion": "<string>",
"headerNames": [
"<string>"
]
},
"secrets": {
"apiKey": "<string>",
"secretAccessKey": "<string>",
"token": "<string>",
"headers": {}
}
}
'import requests
url = "https://api.lmnr.ai/v1/llm-profiles"
payload = {
"name": "<string>",
"models": ["<string>"],
"config": {
"auth": { "type": "api_key" },
"region": "<string>",
"resourceId": "<string>",
"baseUrl": "<string>",
"apiVersion": "<string>",
"headerNames": ["<string>"]
},
"secrets": {
"apiKey": "<string>",
"secretAccessKey": "<string>",
"token": "<string>",
"headers": {}
}
}
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({
name: '<string>',
models: ['<string>'],
config: {
auth: {type: 'api_key'},
region: '<string>',
resourceId: '<string>',
baseUrl: '<string>',
apiVersion: '<string>',
headerNames: ['<string>']
},
secrets: {
apiKey: '<string>',
secretAccessKey: '<string>',
token: '<string>',
headers: {}
}
})
};
fetch('https://api.lmnr.ai/v1/llm-profiles', 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.lmnr.ai/v1/llm-profiles",
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>',
'models' => [
'<string>'
],
'config' => [
'auth' => [
'type' => 'api_key'
],
'region' => '<string>',
'resourceId' => '<string>',
'baseUrl' => '<string>',
'apiVersion' => '<string>',
'headerNames' => [
'<string>'
]
],
'secrets' => [
'apiKey' => '<string>',
'secretAccessKey' => '<string>',
'token' => '<string>',
'headers' => [
]
]
]),
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.lmnr.ai/v1/llm-profiles"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"models\": [\n \"<string>\"\n ],\n \"config\": {\n \"auth\": {\n \"type\": \"api_key\"\n },\n \"region\": \"<string>\",\n \"resourceId\": \"<string>\",\n \"baseUrl\": \"<string>\",\n \"apiVersion\": \"<string>\",\n \"headerNames\": [\n \"<string>\"\n ]\n },\n \"secrets\": {\n \"apiKey\": \"<string>\",\n \"secretAccessKey\": \"<string>\",\n \"token\": \"<string>\",\n \"headers\": {}\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.lmnr.ai/v1/llm-profiles")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"models\": [\n \"<string>\"\n ],\n \"config\": {\n \"auth\": {\n \"type\": \"api_key\"\n },\n \"region\": \"<string>\",\n \"resourceId\": \"<string>\",\n \"baseUrl\": \"<string>\",\n \"apiVersion\": \"<string>\",\n \"headerNames\": [\n \"<string>\"\n ]\n },\n \"secrets\": {\n \"apiKey\": \"<string>\",\n \"secretAccessKey\": \"<string>\",\n \"token\": \"<string>\",\n \"headers\": {}\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lmnr.ai/v1/llm-profiles")
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 \"name\": \"<string>\",\n \"models\": [\n \"<string>\"\n ],\n \"config\": {\n \"auth\": {\n \"type\": \"api_key\"\n },\n \"region\": \"<string>\",\n \"resourceId\": \"<string>\",\n \"baseUrl\": \"<string>\",\n \"apiVersion\": \"<string>\",\n \"headerNames\": [\n \"<string>\"\n ]\n },\n \"secrets\": {\n \"apiKey\": \"<string>\",\n \"secretAccessKey\": \"<string>\",\n \"token\": \"<string>\",\n \"headers\": {}\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"provider": "openai_completions",
"config": {
"auth": {
"type": "api_key"
},
"region": "<string>",
"resourceId": "<string>",
"baseUrl": "<string>",
"apiVersion": "<string>",
"headerNames": [
"<string>"
]
},
"models": [
"<string>"
],
"secrets": {
"apiKey": "<string>",
"secretAccessKey": "<string>",
"token": "<string>",
"headers": [
"<string>"
]
},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}LLM profiles
Create an LLM profile
Creates an LLM profile in the authenticated project’s workspace.
Secrets are accepted as plaintext over TLS, stored encrypted, and never returned unmasked.
POST
/
v1
/
llm-profiles
Create an LLM profile
curl --request POST \
--url https://api.lmnr.ai/v1/llm-profiles \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"models": [
"<string>"
],
"config": {
"auth": {
"type": "api_key"
},
"region": "<string>",
"resourceId": "<string>",
"baseUrl": "<string>",
"apiVersion": "<string>",
"headerNames": [
"<string>"
]
},
"secrets": {
"apiKey": "<string>",
"secretAccessKey": "<string>",
"token": "<string>",
"headers": {}
}
}
'import requests
url = "https://api.lmnr.ai/v1/llm-profiles"
payload = {
"name": "<string>",
"models": ["<string>"],
"config": {
"auth": { "type": "api_key" },
"region": "<string>",
"resourceId": "<string>",
"baseUrl": "<string>",
"apiVersion": "<string>",
"headerNames": ["<string>"]
},
"secrets": {
"apiKey": "<string>",
"secretAccessKey": "<string>",
"token": "<string>",
"headers": {}
}
}
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({
name: '<string>',
models: ['<string>'],
config: {
auth: {type: 'api_key'},
region: '<string>',
resourceId: '<string>',
baseUrl: '<string>',
apiVersion: '<string>',
headerNames: ['<string>']
},
secrets: {
apiKey: '<string>',
secretAccessKey: '<string>',
token: '<string>',
headers: {}
}
})
};
fetch('https://api.lmnr.ai/v1/llm-profiles', 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.lmnr.ai/v1/llm-profiles",
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>',
'models' => [
'<string>'
],
'config' => [
'auth' => [
'type' => 'api_key'
],
'region' => '<string>',
'resourceId' => '<string>',
'baseUrl' => '<string>',
'apiVersion' => '<string>',
'headerNames' => [
'<string>'
]
],
'secrets' => [
'apiKey' => '<string>',
'secretAccessKey' => '<string>',
'token' => '<string>',
'headers' => [
]
]
]),
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.lmnr.ai/v1/llm-profiles"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"models\": [\n \"<string>\"\n ],\n \"config\": {\n \"auth\": {\n \"type\": \"api_key\"\n },\n \"region\": \"<string>\",\n \"resourceId\": \"<string>\",\n \"baseUrl\": \"<string>\",\n \"apiVersion\": \"<string>\",\n \"headerNames\": [\n \"<string>\"\n ]\n },\n \"secrets\": {\n \"apiKey\": \"<string>\",\n \"secretAccessKey\": \"<string>\",\n \"token\": \"<string>\",\n \"headers\": {}\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.lmnr.ai/v1/llm-profiles")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"models\": [\n \"<string>\"\n ],\n \"config\": {\n \"auth\": {\n \"type\": \"api_key\"\n },\n \"region\": \"<string>\",\n \"resourceId\": \"<string>\",\n \"baseUrl\": \"<string>\",\n \"apiVersion\": \"<string>\",\n \"headerNames\": [\n \"<string>\"\n ]\n },\n \"secrets\": {\n \"apiKey\": \"<string>\",\n \"secretAccessKey\": \"<string>\",\n \"token\": \"<string>\",\n \"headers\": {}\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lmnr.ai/v1/llm-profiles")
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 \"name\": \"<string>\",\n \"models\": [\n \"<string>\"\n ],\n \"config\": {\n \"auth\": {\n \"type\": \"api_key\"\n },\n \"region\": \"<string>\",\n \"resourceId\": \"<string>\",\n \"baseUrl\": \"<string>\",\n \"apiVersion\": \"<string>\",\n \"headerNames\": [\n \"<string>\"\n ]\n },\n \"secrets\": {\n \"apiKey\": \"<string>\",\n \"secretAccessKey\": \"<string>\",\n \"token\": \"<string>\",\n \"headers\": {}\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"provider": "openai_completions",
"config": {
"auth": {
"type": "api_key"
},
"region": "<string>",
"resourceId": "<string>",
"baseUrl": "<string>",
"apiVersion": "<string>",
"headerNames": [
"<string>"
]
},
"models": [
"<string>"
],
"secrets": {
"apiKey": "<string>",
"secretAccessKey": "<string>",
"token": "<string>",
"headers": [
"<string>"
]
},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
A Laminar project API key.
Body
application/json
Maximum string length:
255Available options:
openai_completions, openai_responses, anthropic, gemini, groq, mistral, bedrock, azure_chat_completions, azure_responses, azure_anthropic, custom, custom_responses Required array length:
1 - 64 elementsMaximum string length:
256Provider-specific non-secret configuration. Azure requires exactly one of resourceId or baseUrl; Bedrock requires region; custom providers require baseUrl.
Show child attributes
Show child attributes
Plaintext credentials. Required fields depend on the provider and authentication type.
Show child attributes
Show child attributes
Response
LLM profile created. Secret values are masked.
Available options:
openai_completions, openai_responses, anthropic, gemini, groq, mistral, bedrock, azure_chat_completions, azure_responses, azure_anthropic, custom, custom_responses Provider-specific non-secret configuration. Azure requires exactly one of resourceId or baseUrl; Bedrock requires region; custom providers require baseUrl.
Show child attributes
Show child attributes
Show child attributes
Show child attributes