curl --request POST \
--url https://api.synthra.ai/v1/sessions \
--header 'Authorization: Bearer synthra_live_abc123def456' \
--header 'Content-Type: application/json' \
--data '{
"userId": "user_9f8e7d6c5b4a",
"metadata": {
"source": "web",
"language": "en"
},
"contextConfig": {
"maxTokens": 8192,
"compressionEnabled": true,
"retentionPolicy": "semantic"
}
}'
const response = await fetch('https://api.synthra.ai/v1/sessions', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.SYNTHRA_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
userId: 'user_9f8e7d6c5b4a',
metadata: {
source: 'web',
language: 'en'
},
contextConfig: {
maxTokens: 8192,
compressionEnabled: true,
retentionPolicy: 'semantic'
}
})
});
const data = await response.json();
import requests
response = requests.post(
'https://api.synthra.ai/v1/sessions',
headers={
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json'
},
json={
'userId': 'user_9f8e7d6c5b4a',
'metadata': {
'source': 'web',
'language': 'en'
},
'contextConfig': {
'maxTokens': 8192,
'compressionEnabled': True,
'retentionPolicy': 'semantic'
}
}
)
{
"sessionId": "session_abc123def456",
"userId": "user_9f8e7d6c5b4a",
"createdAt": "2024-03-08T14:30:00Z",
"expiresAt": "2024-03-09T14:30:00Z",
"messageCount": 0,
"tokenUsage": {
"total": 0,
"prompt": 0,
"completion": 0
}
}
{
"error": {
"code": "validation_error",
"message": "userId must be a valid string with format user_<16 chars>",
"field": "userId"
}
}
{
"error": {
"code": "invalid_token",
"message": "The provided authentication token is invalid or expired"
}
}
{
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded. Maximum 100 requests per minute.",
"retryAfter": 45
}
}
Session Operations
Create Session
Initialize a new conversation session
POST
/
v1
/
sessions
curl --request POST \
--url https://api.synthra.ai/v1/sessions \
--header 'Authorization: Bearer synthra_live_abc123def456' \
--header 'Content-Type: application/json' \
--data '{
"userId": "user_9f8e7d6c5b4a",
"metadata": {
"source": "web",
"language": "en"
},
"contextConfig": {
"maxTokens": 8192,
"compressionEnabled": true,
"retentionPolicy": "semantic"
}
}'
const response = await fetch('https://api.synthra.ai/v1/sessions', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.SYNTHRA_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
userId: 'user_9f8e7d6c5b4a',
metadata: {
source: 'web',
language: 'en'
},
contextConfig: {
maxTokens: 8192,
compressionEnabled: true,
retentionPolicy: 'semantic'
}
})
});
const data = await response.json();
import requests
response = requests.post(
'https://api.synthra.ai/v1/sessions',
headers={
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json'
},
json={
'userId': 'user_9f8e7d6c5b4a',
'metadata': {
'source': 'web',
'language': 'en'
},
'contextConfig': {
'maxTokens': 8192,
'compressionEnabled': True,
'retentionPolicy': 'semantic'
}
}
)
{
"sessionId": "session_abc123def456",
"userId": "user_9f8e7d6c5b4a",
"createdAt": "2024-03-08T14:30:00Z",
"expiresAt": "2024-03-09T14:30:00Z",
"messageCount": 0,
"tokenUsage": {
"total": 0,
"prompt": 0,
"completion": 0
}
}
{
"error": {
"code": "validation_error",
"message": "userId must be a valid string with format user_<16 chars>",
"field": "userId"
}
}
{
"error": {
"code": "invalid_token",
"message": "The provided authentication token is invalid or expired"
}
}
{
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded. Maximum 100 requests per minute.",
"retryAfter": 45
}
}
Authorization
string
required
Bearer token. Format:
Bearer synthra_live_abc123def456Body Parameters
string
required
Unique identifier for the user. Format:
user_<16 chars>object
Optional metadata to attach to the session.Example:
{ "source": "web", "language": "en" }object
Context window configuration.Properties:
maxTokens(number): Maximum context window size. Default: 4096compressionEnabled(boolean): Enable automatic compression. Default: trueretentionPolicy(string): Strategy for message retention. Options:fifo,priority,semantic
Response
string
Unique session identifier. Format:
session_<16 chars>string
User identifier associated with this session
string
ISO 8601 timestamp of session creation
string
ISO 8601 timestamp when session will auto-expire (24 hours)
number
Current number of messages in session. Initially 0.
object
Token usage statisticsProperties:
total(number): Total tokens usedprompt(number): Tokens in promptscompletion(number): Tokens in completions
curl --request POST \
--url https://api.synthra.ai/v1/sessions \
--header 'Authorization: Bearer synthra_live_abc123def456' \
--header 'Content-Type: application/json' \
--data '{
"userId": "user_9f8e7d6c5b4a",
"metadata": {
"source": "web",
"language": "en"
},
"contextConfig": {
"maxTokens": 8192,
"compressionEnabled": true,
"retentionPolicy": "semantic"
}
}'
const response = await fetch('https://api.synthra.ai/v1/sessions', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.SYNTHRA_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
userId: 'user_9f8e7d6c5b4a',
metadata: {
source: 'web',
language: 'en'
},
contextConfig: {
maxTokens: 8192,
compressionEnabled: true,
retentionPolicy: 'semantic'
}
})
});
const data = await response.json();
import requests
response = requests.post(
'https://api.synthra.ai/v1/sessions',
headers={
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json'
},
json={
'userId': 'user_9f8e7d6c5b4a',
'metadata': {
'source': 'web',
'language': 'en'
},
'contextConfig': {
'maxTokens': 8192,
'compressionEnabled': True,
'retentionPolicy': 'semantic'
}
}
)
{
"sessionId": "session_abc123def456",
"userId": "user_9f8e7d6c5b4a",
"createdAt": "2024-03-08T14:30:00Z",
"expiresAt": "2024-03-09T14:30:00Z",
"messageCount": 0,
"tokenUsage": {
"total": 0,
"prompt": 0,
"completion": 0
}
}
{
"error": {
"code": "validation_error",
"message": "userId must be a valid string with format user_<16 chars>",
"field": "userId"
}
}
{
"error": {
"code": "invalid_token",
"message": "The provided authentication token is invalid or expired"
}
}
{
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded. Maximum 100 requests per minute.",
"retryAfter": 45
}
}