curl --request POST \
--url https://cite.petal.org/api/ai/session/create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"is_multidoc": true,
"organization_id": 123,
"user_id": 123,
"document_ids": [
123
],
"meta": {},
"visibility": "shared"
}
'import requests
url = "https://cite.petal.org/api/ai/session/create"
payload = {
"is_multidoc": True,
"organization_id": 123,
"user_id": 123,
"document_ids": [123],
"meta": {},
"visibility": "shared"
}
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({
is_multidoc: true,
organization_id: 123,
user_id: 123,
document_ids: [123],
meta: {},
visibility: 'shared'
})
};
fetch('https://cite.petal.org/api/ai/session/create', 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://cite.petal.org/api/ai/session/create",
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([
'is_multidoc' => true,
'organization_id' => 123,
'user_id' => 123,
'document_ids' => [
123
],
'meta' => [
],
'visibility' => 'shared'
]),
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://cite.petal.org/api/ai/session/create"
payload := strings.NewReader("{\n \"is_multidoc\": true,\n \"organization_id\": 123,\n \"user_id\": 123,\n \"document_ids\": [\n 123\n ],\n \"meta\": {},\n \"visibility\": \"shared\"\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://cite.petal.org/api/ai/session/create")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"is_multidoc\": true,\n \"organization_id\": 123,\n \"user_id\": 123,\n \"document_ids\": [\n 123\n ],\n \"meta\": {},\n \"visibility\": \"shared\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://cite.petal.org/api/ai/session/create")
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 \"is_multidoc\": true,\n \"organization_id\": 123,\n \"user_id\": 123,\n \"document_ids\": [\n 123\n ],\n \"meta\": {},\n \"visibility\": \"shared\"\n}"
response = http.request(request)
puts response.read_body{
"created_at": "<string>",
"id": 123,
"is_multidoc": true,
"meta": {},
"organization_id": 123,
"user_id": 123,
"visibility": "shared",
"document_ids": [
123
]
}[
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {}
}
]Create an AI chat Session
Create an AI Chat session
curl --request POST \
--url https://cite.petal.org/api/ai/session/create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"is_multidoc": true,
"organization_id": 123,
"user_id": 123,
"document_ids": [
123
],
"meta": {},
"visibility": "shared"
}
'import requests
url = "https://cite.petal.org/api/ai/session/create"
payload = {
"is_multidoc": True,
"organization_id": 123,
"user_id": 123,
"document_ids": [123],
"meta": {},
"visibility": "shared"
}
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({
is_multidoc: true,
organization_id: 123,
user_id: 123,
document_ids: [123],
meta: {},
visibility: 'shared'
})
};
fetch('https://cite.petal.org/api/ai/session/create', 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://cite.petal.org/api/ai/session/create",
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([
'is_multidoc' => true,
'organization_id' => 123,
'user_id' => 123,
'document_ids' => [
123
],
'meta' => [
],
'visibility' => 'shared'
]),
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://cite.petal.org/api/ai/session/create"
payload := strings.NewReader("{\n \"is_multidoc\": true,\n \"organization_id\": 123,\n \"user_id\": 123,\n \"document_ids\": [\n 123\n ],\n \"meta\": {},\n \"visibility\": \"shared\"\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://cite.petal.org/api/ai/session/create")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"is_multidoc\": true,\n \"organization_id\": 123,\n \"user_id\": 123,\n \"document_ids\": [\n 123\n ],\n \"meta\": {},\n \"visibility\": \"shared\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://cite.petal.org/api/ai/session/create")
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 \"is_multidoc\": true,\n \"organization_id\": 123,\n \"user_id\": 123,\n \"document_ids\": [\n 123\n ],\n \"meta\": {},\n \"visibility\": \"shared\"\n}"
response = http.request(request)
puts response.read_body{
"created_at": "<string>",
"id": 123,
"is_multidoc": true,
"meta": {},
"organization_id": 123,
"user_id": 123,
"visibility": "shared",
"document_ids": [
123
]
}[
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {}
}
]Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Whether this is a multi-doc chat session. A multi-doc session can have only one (or zero) Documents in it, but a single-doc session cannot have more than one Document
The Organization in which to create the session
The user's unique ID
The IDs of the documents to include in this chat Session
Session metadata, for internal use
Whether this session can only be seen by its creator, or by the whole Workspace
shared, private Response
OK
Creation time, by UTC
Unique ID of this Session
Whether this is a multi-doc chat session
Session metadata, for internal use
Unique ID of Organization
Unique ID of user
Whether this session can only be seen by its creator, or by the whole Workspace
shared, private List of Document IDs in this Session
