curl --request PUT \
--url https://pria.praxislxp.com/api/user/assistant/{id} \
--header 'Content-Type: application/json' \
--header 'x-access-token: <api-key>' \
--data '
{
"name": "New Assistant Updated",
"status": "active",
"description": "New Assistant Description",
"instructions": "New Assistant Instructions",
"argument_1": "<string>",
"argument_2": "<string>",
"argument_3": "<string>",
"argument_4": "<string>",
"argument_5": "<string>",
"picture_url": "<string>",
"admin_only": true,
"remember_history": 123,
"editable_others": true,
"user": "6430d02554cd4e00403e8b05",
"institution": "6631915765bb0a94cfd6ca99",
"institution_shared": true,
"account_shared": true,
"ragEnabled": true,
"bypassSystemContext": true,
"conversationModel": "<string>",
"stsConversationModel": "<string>"
}
'import requests
url = "https://pria.praxislxp.com/api/user/assistant/{id}"
payload = {
"name": "New Assistant Updated",
"status": "active",
"description": "New Assistant Description",
"instructions": "New Assistant Instructions",
"argument_1": "<string>",
"argument_2": "<string>",
"argument_3": "<string>",
"argument_4": "<string>",
"argument_5": "<string>",
"picture_url": "<string>",
"admin_only": True,
"remember_history": 123,
"editable_others": True,
"user": "6430d02554cd4e00403e8b05",
"institution": "6631915765bb0a94cfd6ca99",
"institution_shared": True,
"account_shared": True,
"ragEnabled": True,
"bypassSystemContext": True,
"conversationModel": "<string>",
"stsConversationModel": "<string>"
}
headers = {
"x-access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'x-access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'New Assistant Updated',
status: 'active',
description: 'New Assistant Description',
instructions: 'New Assistant Instructions',
argument_1: '<string>',
argument_2: '<string>',
argument_3: '<string>',
argument_4: '<string>',
argument_5: '<string>',
picture_url: '<string>',
admin_only: true,
remember_history: 123,
editable_others: true,
user: '6430d02554cd4e00403e8b05',
institution: '6631915765bb0a94cfd6ca99',
institution_shared: true,
account_shared: true,
ragEnabled: true,
bypassSystemContext: true,
conversationModel: '<string>',
stsConversationModel: '<string>'
})
};
fetch('https://pria.praxislxp.com/api/user/assistant/{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://pria.praxislxp.com/api/user/assistant/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'New Assistant Updated',
'status' => 'active',
'description' => 'New Assistant Description',
'instructions' => 'New Assistant Instructions',
'argument_1' => '<string>',
'argument_2' => '<string>',
'argument_3' => '<string>',
'argument_4' => '<string>',
'argument_5' => '<string>',
'picture_url' => '<string>',
'admin_only' => true,
'remember_history' => 123,
'editable_others' => true,
'user' => '6430d02554cd4e00403e8b05',
'institution' => '6631915765bb0a94cfd6ca99',
'institution_shared' => true,
'account_shared' => true,
'ragEnabled' => true,
'bypassSystemContext' => true,
'conversationModel' => '<string>',
'stsConversationModel' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-access-token: <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://pria.praxislxp.com/api/user/assistant/{id}"
payload := strings.NewReader("{\n \"name\": \"New Assistant Updated\",\n \"status\": \"active\",\n \"description\": \"New Assistant Description\",\n \"instructions\": \"New Assistant Instructions\",\n \"argument_1\": \"<string>\",\n \"argument_2\": \"<string>\",\n \"argument_3\": \"<string>\",\n \"argument_4\": \"<string>\",\n \"argument_5\": \"<string>\",\n \"picture_url\": \"<string>\",\n \"admin_only\": true,\n \"remember_history\": 123,\n \"editable_others\": true,\n \"user\": \"6430d02554cd4e00403e8b05\",\n \"institution\": \"6631915765bb0a94cfd6ca99\",\n \"institution_shared\": true,\n \"account_shared\": true,\n \"ragEnabled\": true,\n \"bypassSystemContext\": true,\n \"conversationModel\": \"<string>\",\n \"stsConversationModel\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-access-token", "<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.put("https://pria.praxislxp.com/api/user/assistant/{id}")
.header("x-access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"New Assistant Updated\",\n \"status\": \"active\",\n \"description\": \"New Assistant Description\",\n \"instructions\": \"New Assistant Instructions\",\n \"argument_1\": \"<string>\",\n \"argument_2\": \"<string>\",\n \"argument_3\": \"<string>\",\n \"argument_4\": \"<string>\",\n \"argument_5\": \"<string>\",\n \"picture_url\": \"<string>\",\n \"admin_only\": true,\n \"remember_history\": 123,\n \"editable_others\": true,\n \"user\": \"6430d02554cd4e00403e8b05\",\n \"institution\": \"6631915765bb0a94cfd6ca99\",\n \"institution_shared\": true,\n \"account_shared\": true,\n \"ragEnabled\": true,\n \"bypassSystemContext\": true,\n \"conversationModel\": \"<string>\",\n \"stsConversationModel\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://pria.praxislxp.com/api/user/assistant/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"New Assistant Updated\",\n \"status\": \"active\",\n \"description\": \"New Assistant Description\",\n \"instructions\": \"New Assistant Instructions\",\n \"argument_1\": \"<string>\",\n \"argument_2\": \"<string>\",\n \"argument_3\": \"<string>\",\n \"argument_4\": \"<string>\",\n \"argument_5\": \"<string>\",\n \"picture_url\": \"<string>\",\n \"admin_only\": true,\n \"remember_history\": 123,\n \"editable_others\": true,\n \"user\": \"6430d02554cd4e00403e8b05\",\n \"institution\": \"6631915765bb0a94cfd6ca99\",\n \"institution_shared\": true,\n \"account_shared\": true,\n \"ragEnabled\": true,\n \"bypassSystemContext\": true,\n \"conversationModel\": \"<string>\",\n \"stsConversationModel\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Assistant updated!"
}{
"success": false,
"error": {},
"message": "Invalid Properties"
}{
"success": false,
"message": "Authentication Required"
}{
"success": false,
"message": "Assistant not found!"
}Update an existing assistant
Updates an existing assistant by its ObjectId. Accepts any non-empty object as the request body and passes it directly to MongoDB updateOne. No field-level validation is performed beyond requiring a non-empty body. Special handling for institution and user fields when sent as empty strings uses $unset to remove them from the document. Auto-reset logic is applied before update. If account_shared is true but institution_shared is not true, account_shared is reset to false. Any authenticated user can call this endpoint (no admin check).
curl --request PUT \
--url https://pria.praxislxp.com/api/user/assistant/{id} \
--header 'Content-Type: application/json' \
--header 'x-access-token: <api-key>' \
--data '
{
"name": "New Assistant Updated",
"status": "active",
"description": "New Assistant Description",
"instructions": "New Assistant Instructions",
"argument_1": "<string>",
"argument_2": "<string>",
"argument_3": "<string>",
"argument_4": "<string>",
"argument_5": "<string>",
"picture_url": "<string>",
"admin_only": true,
"remember_history": 123,
"editable_others": true,
"user": "6430d02554cd4e00403e8b05",
"institution": "6631915765bb0a94cfd6ca99",
"institution_shared": true,
"account_shared": true,
"ragEnabled": true,
"bypassSystemContext": true,
"conversationModel": "<string>",
"stsConversationModel": "<string>"
}
'import requests
url = "https://pria.praxislxp.com/api/user/assistant/{id}"
payload = {
"name": "New Assistant Updated",
"status": "active",
"description": "New Assistant Description",
"instructions": "New Assistant Instructions",
"argument_1": "<string>",
"argument_2": "<string>",
"argument_3": "<string>",
"argument_4": "<string>",
"argument_5": "<string>",
"picture_url": "<string>",
"admin_only": True,
"remember_history": 123,
"editable_others": True,
"user": "6430d02554cd4e00403e8b05",
"institution": "6631915765bb0a94cfd6ca99",
"institution_shared": True,
"account_shared": True,
"ragEnabled": True,
"bypassSystemContext": True,
"conversationModel": "<string>",
"stsConversationModel": "<string>"
}
headers = {
"x-access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'x-access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'New Assistant Updated',
status: 'active',
description: 'New Assistant Description',
instructions: 'New Assistant Instructions',
argument_1: '<string>',
argument_2: '<string>',
argument_3: '<string>',
argument_4: '<string>',
argument_5: '<string>',
picture_url: '<string>',
admin_only: true,
remember_history: 123,
editable_others: true,
user: '6430d02554cd4e00403e8b05',
institution: '6631915765bb0a94cfd6ca99',
institution_shared: true,
account_shared: true,
ragEnabled: true,
bypassSystemContext: true,
conversationModel: '<string>',
stsConversationModel: '<string>'
})
};
fetch('https://pria.praxislxp.com/api/user/assistant/{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://pria.praxislxp.com/api/user/assistant/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'New Assistant Updated',
'status' => 'active',
'description' => 'New Assistant Description',
'instructions' => 'New Assistant Instructions',
'argument_1' => '<string>',
'argument_2' => '<string>',
'argument_3' => '<string>',
'argument_4' => '<string>',
'argument_5' => '<string>',
'picture_url' => '<string>',
'admin_only' => true,
'remember_history' => 123,
'editable_others' => true,
'user' => '6430d02554cd4e00403e8b05',
'institution' => '6631915765bb0a94cfd6ca99',
'institution_shared' => true,
'account_shared' => true,
'ragEnabled' => true,
'bypassSystemContext' => true,
'conversationModel' => '<string>',
'stsConversationModel' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-access-token: <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://pria.praxislxp.com/api/user/assistant/{id}"
payload := strings.NewReader("{\n \"name\": \"New Assistant Updated\",\n \"status\": \"active\",\n \"description\": \"New Assistant Description\",\n \"instructions\": \"New Assistant Instructions\",\n \"argument_1\": \"<string>\",\n \"argument_2\": \"<string>\",\n \"argument_3\": \"<string>\",\n \"argument_4\": \"<string>\",\n \"argument_5\": \"<string>\",\n \"picture_url\": \"<string>\",\n \"admin_only\": true,\n \"remember_history\": 123,\n \"editable_others\": true,\n \"user\": \"6430d02554cd4e00403e8b05\",\n \"institution\": \"6631915765bb0a94cfd6ca99\",\n \"institution_shared\": true,\n \"account_shared\": true,\n \"ragEnabled\": true,\n \"bypassSystemContext\": true,\n \"conversationModel\": \"<string>\",\n \"stsConversationModel\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-access-token", "<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.put("https://pria.praxislxp.com/api/user/assistant/{id}")
.header("x-access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"New Assistant Updated\",\n \"status\": \"active\",\n \"description\": \"New Assistant Description\",\n \"instructions\": \"New Assistant Instructions\",\n \"argument_1\": \"<string>\",\n \"argument_2\": \"<string>\",\n \"argument_3\": \"<string>\",\n \"argument_4\": \"<string>\",\n \"argument_5\": \"<string>\",\n \"picture_url\": \"<string>\",\n \"admin_only\": true,\n \"remember_history\": 123,\n \"editable_others\": true,\n \"user\": \"6430d02554cd4e00403e8b05\",\n \"institution\": \"6631915765bb0a94cfd6ca99\",\n \"institution_shared\": true,\n \"account_shared\": true,\n \"ragEnabled\": true,\n \"bypassSystemContext\": true,\n \"conversationModel\": \"<string>\",\n \"stsConversationModel\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://pria.praxislxp.com/api/user/assistant/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"New Assistant Updated\",\n \"status\": \"active\",\n \"description\": \"New Assistant Description\",\n \"instructions\": \"New Assistant Instructions\",\n \"argument_1\": \"<string>\",\n \"argument_2\": \"<string>\",\n \"argument_3\": \"<string>\",\n \"argument_4\": \"<string>\",\n \"argument_5\": \"<string>\",\n \"picture_url\": \"<string>\",\n \"admin_only\": true,\n \"remember_history\": 123,\n \"editable_others\": true,\n \"user\": \"6430d02554cd4e00403e8b05\",\n \"institution\": \"6631915765bb0a94cfd6ca99\",\n \"institution_shared\": true,\n \"account_shared\": true,\n \"ragEnabled\": true,\n \"bypassSystemContext\": true,\n \"conversationModel\": \"<string>\",\n \"stsConversationModel\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Assistant updated!"
}{
"success": false,
"error": {},
"message": "Invalid Properties"
}{
"success": false,
"message": "Authentication Required"
}{
"success": false,
"message": "Assistant not found!"
}Authorizations
JWT token passed in x-access-token header
Path Parameters
The ObjectId of the assistant to update
Body
Any valid assistant fields. No required fields for update. Empty strings for user/institution trigger $unset.
Name of the assistant
"New Assistant Updated"
Status of the assistant
active, unpublished, inactive, deleted "active"
Description of the assistant
"New Assistant Description"
Instructions for the assistant
"New Assistant Instructions"
URL for the assistant's profile picture
Whether the assistant is admin-only
Number of conversation history items to remember
Whether the assistant can be edited by others
User ObjectId. Empty string triggers $unset to remove the field.
"6430d02554cd4e00403e8b05"
Institution ObjectId. Empty string triggers $unset to remove the field.
"6631915765bb0a94cfd6ca99"
Whether shared with the institution
Whether shared across the account. Auto-reset to false if institution_shared is not true.
Whether RAG is enabled
Whether to bypass the system context prompt
Optional model override (max 200 chars)
Optional STS/voice conversation model; used only in ElevenLabs/Anam voice mode (max 200 chars)
Was this page helpful?