curl --request POST \
--url https://api.parallellabs.app/api/v0/employees/{employeeId} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"companyId": "<string>",
"name": "<string>",
"title": "<string>",
"description": "<string>",
"prompt": "<string>",
"responseInstructions": "<string>",
"greetingMessage": "<string>",
"tags": [
"<string>"
],
"picture": "<string>",
"departmentIds": [
"<string>"
]
}
'import requests
url = "https://api.parallellabs.app/api/v0/employees/{employeeId}"
payload = {
"companyId": "<string>",
"name": "<string>",
"title": "<string>",
"description": "<string>",
"prompt": "<string>",
"responseInstructions": "<string>",
"greetingMessage": "<string>",
"tags": ["<string>"],
"picture": "<string>",
"departmentIds": ["<string>"]
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
companyId: '<string>',
name: '<string>',
title: '<string>',
description: '<string>',
prompt: '<string>',
responseInstructions: '<string>',
greetingMessage: '<string>',
tags: ['<string>'],
picture: '<string>',
departmentIds: ['<string>']
})
};
fetch('https://api.parallellabs.app/api/v0/employees/{employeeId}', 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.parallellabs.app/api/v0/employees/{employeeId}",
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([
'companyId' => '<string>',
'name' => '<string>',
'title' => '<string>',
'description' => '<string>',
'prompt' => '<string>',
'responseInstructions' => '<string>',
'greetingMessage' => '<string>',
'tags' => [
'<string>'
],
'picture' => '<string>',
'departmentIds' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <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://api.parallellabs.app/api/v0/employees/{employeeId}"
payload := strings.NewReader("{\n \"companyId\": \"<string>\",\n \"name\": \"<string>\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"prompt\": \"<string>\",\n \"responseInstructions\": \"<string>\",\n \"greetingMessage\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"picture\": \"<string>\",\n \"departmentIds\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<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.post("https://api.parallellabs.app/api/v0/employees/{employeeId}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"companyId\": \"<string>\",\n \"name\": \"<string>\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"prompt\": \"<string>\",\n \"responseInstructions\": \"<string>\",\n \"greetingMessage\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"picture\": \"<string>\",\n \"departmentIds\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parallellabs.app/api/v0/employees/{employeeId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"companyId\": \"<string>\",\n \"name\": \"<string>\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"prompt\": \"<string>\",\n \"responseInstructions\": \"<string>\",\n \"greetingMessage\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"picture\": \"<string>\",\n \"departmentIds\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Create or update an employee.
The employee ID comes from the URL. If an employee with that ID exists, the
fields in the body are updated (send only what should change); otherwise a
new employee is created under that ID, which requires a companyId. An id
in the body is ignored.
curl --request POST \
--url https://api.parallellabs.app/api/v0/employees/{employeeId} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"companyId": "<string>",
"name": "<string>",
"title": "<string>",
"description": "<string>",
"prompt": "<string>",
"responseInstructions": "<string>",
"greetingMessage": "<string>",
"tags": [
"<string>"
],
"picture": "<string>",
"departmentIds": [
"<string>"
]
}
'import requests
url = "https://api.parallellabs.app/api/v0/employees/{employeeId}"
payload = {
"companyId": "<string>",
"name": "<string>",
"title": "<string>",
"description": "<string>",
"prompt": "<string>",
"responseInstructions": "<string>",
"greetingMessage": "<string>",
"tags": ["<string>"],
"picture": "<string>",
"departmentIds": ["<string>"]
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
companyId: '<string>',
name: '<string>',
title: '<string>',
description: '<string>',
prompt: '<string>',
responseInstructions: '<string>',
greetingMessage: '<string>',
tags: ['<string>'],
picture: '<string>',
departmentIds: ['<string>']
})
};
fetch('https://api.parallellabs.app/api/v0/employees/{employeeId}', 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.parallellabs.app/api/v0/employees/{employeeId}",
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([
'companyId' => '<string>',
'name' => '<string>',
'title' => '<string>',
'description' => '<string>',
'prompt' => '<string>',
'responseInstructions' => '<string>',
'greetingMessage' => '<string>',
'tags' => [
'<string>'
],
'picture' => '<string>',
'departmentIds' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <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://api.parallellabs.app/api/v0/employees/{employeeId}"
payload := strings.NewReader("{\n \"companyId\": \"<string>\",\n \"name\": \"<string>\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"prompt\": \"<string>\",\n \"responseInstructions\": \"<string>\",\n \"greetingMessage\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"picture\": \"<string>\",\n \"departmentIds\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<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.post("https://api.parallellabs.app/api/v0/employees/{employeeId}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"companyId\": \"<string>\",\n \"name\": \"<string>\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"prompt\": \"<string>\",\n \"responseInstructions\": \"<string>\",\n \"greetingMessage\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"picture\": \"<string>\",\n \"departmentIds\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parallellabs.app/api/v0/employees/{employeeId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"companyId\": \"<string>\",\n \"name\": \"<string>\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"prompt\": \"<string>\",\n \"responseInstructions\": \"<string>\",\n \"greetingMessage\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"picture\": \"<string>\",\n \"departmentIds\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Company API key - scoped to a specific company. Generate from the Integrations page in your dashboard.
Path Parameters
Body
Fields to set on the employee
Request body for creating or updating an employee. The employee ID comes from the URL path; send only the fields to change. companyId is required when the employee does not exist yet (or comes from the API key).
Company ID. Required to create an employee; ignored on update (an employee cannot be moved to another company).
Employee name
Job title
Short description of what the employee does
System prompt/persona
Response instructions
Greeting shown when a new chat starts
Tags
Picture URL
Department IDs; replaces the employee's department assignments
Response
Employee saved
Employee save response
ID of the saved employee

