curl --request PATCH \
--url https://api.lmnr.ai/v1/llm-profiles/{profile_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"config": {
"auth": {
"type": "api_key"
},
"region": "<string>",
"resourceId": "<string>",
"baseUrl": "<string>",
"apiVersion": "<string>",
"headerNames": [
"<string>"
]
},
"secrets": {
"apiKey": "<string>",
"secretAccessKey": "<string>",
"token": "<string>",
"headers": {}
},
"models": [
"<string>"
]
}
'import requests
url = "https://api.lmnr.ai/v1/llm-profiles/{profile_id}"
payload = {
"name": "<string>",
"config": {
"auth": { "type": "api_key" },
"region": "<string>",
"resourceId": "<string>",
"baseUrl": "<string>",
"apiVersion": "<string>",
"headerNames": ["<string>"]
},
"secrets": {
"apiKey": "<string>",
"secretAccessKey": "<string>",
"token": "<string>",
"headers": {}
},
"models": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
config: {
auth: {type: 'api_key'},
region: '<string>',
resourceId: '<string>',
baseUrl: '<string>',
apiVersion: '<string>',
headerNames: ['<string>']
},
secrets: {
apiKey: '<string>',
secretAccessKey: '<string>',
token: '<string>',
headers: {}
},
models: ['<string>']
})
};
fetch('https://api.lmnr.ai/v1/llm-profiles/{profile_id}', 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/{profile_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'config' => [
'auth' => [
'type' => 'api_key'
],
'region' => '<string>',
'resourceId' => '<string>',
'baseUrl' => '<string>',
'apiVersion' => '<string>',
'headerNames' => [
'<string>'
]
],
'secrets' => [
'apiKey' => '<string>',
'secretAccessKey' => '<string>',
'token' => '<string>',
'headers' => [
]
],
'models' => [
'<string>'
]
]),
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/{profile_id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\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 \"models\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.lmnr.ai/v1/llm-profiles/{profile_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\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 \"models\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lmnr.ai/v1/llm-profiles/{profile_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\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 \"models\": [\n \"<string>\"\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>"
}Update an LLM profile
Updates an LLM profile. Omitted fields retain their stored values, models replaces the complete model list, and supplied secrets are merged with stored secrets.
LLM profiles are available only on self-hosted deployments. Laminar Cloud returns 404 Not Found. Removing a model used by a Signal returns 409 Conflict.
curl --request PATCH \
--url https://api.lmnr.ai/v1/llm-profiles/{profile_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"config": {
"auth": {
"type": "api_key"
},
"region": "<string>",
"resourceId": "<string>",
"baseUrl": "<string>",
"apiVersion": "<string>",
"headerNames": [
"<string>"
]
},
"secrets": {
"apiKey": "<string>",
"secretAccessKey": "<string>",
"token": "<string>",
"headers": {}
},
"models": [
"<string>"
]
}
'import requests
url = "https://api.lmnr.ai/v1/llm-profiles/{profile_id}"
payload = {
"name": "<string>",
"config": {
"auth": { "type": "api_key" },
"region": "<string>",
"resourceId": "<string>",
"baseUrl": "<string>",
"apiVersion": "<string>",
"headerNames": ["<string>"]
},
"secrets": {
"apiKey": "<string>",
"secretAccessKey": "<string>",
"token": "<string>",
"headers": {}
},
"models": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
config: {
auth: {type: 'api_key'},
region: '<string>',
resourceId: '<string>',
baseUrl: '<string>',
apiVersion: '<string>',
headerNames: ['<string>']
},
secrets: {
apiKey: '<string>',
secretAccessKey: '<string>',
token: '<string>',
headers: {}
},
models: ['<string>']
})
};
fetch('https://api.lmnr.ai/v1/llm-profiles/{profile_id}', 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/{profile_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'config' => [
'auth' => [
'type' => 'api_key'
],
'region' => '<string>',
'resourceId' => '<string>',
'baseUrl' => '<string>',
'apiVersion' => '<string>',
'headerNames' => [
'<string>'
]
],
'secrets' => [
'apiKey' => '<string>',
'secretAccessKey' => '<string>',
'token' => '<string>',
'headers' => [
]
],
'models' => [
'<string>'
]
]),
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/{profile_id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\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 \"models\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.lmnr.ai/v1/llm-profiles/{profile_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\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 \"models\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lmnr.ai/v1/llm-profiles/{profile_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\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 \"models\": [\n \"<string>\"\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.
Path Parameters
Body
255When changing the provider, config is required.
openai_completions, openai_responses, gemini, bedrock, azure_chat_completions, azure_responses, azure_anthropic, custom 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
Supplied values replace matching secrets; omitted values remain unchanged.
Show child attributes
Show child attributes
Replaces the complete model list when supplied.
1 - 64 elements256Response
LLM profile updated. Secret values are masked.
openai_completions, openai_responses, gemini, bedrock, azure_chat_completions, azure_responses, azure_anthropic, custom 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