Skip to main content

SynapseX API Reference

Complete REST API documentation for the SynapseX LLM Platform.

Base URL

https://api.synapsex.ai/v1

Authentication

All API requests require authentication via the Authorization header:

curl -H "Authorization: Bearer sk-synapsex-your-key" \
https://api.synapsex.ai/v1/chat/completions

For licensed features, also include the license key:

curl -H "Authorization: Bearer sk-synapsex-your-key" \
-H "X-License-Key: SQXL-XXXX-XXXX-XXXX" \
https://api.synapsex.ai/v1/chat/completions

Authentication Methods

MethodHeaderFormatUse Case
API KeyAuthorizationBearer sk-xxxStandard access
License KeyX-License-KeySQXL-xxxLicense validation
Tenant IDX-Tenant-IDtenant_slugMulti-tenant access

Rate Limits

PlanRequests/minTokens/day
Free2010,000
Pro100100,000
Business5001,000,000
EnterpriseCustomUnlimited

Chat Completions

Create Chat Completion

Generate a chat response, optionally with quantum reranking.

POST /v1/chat/completions

Request Body:

{
"model": "synapsex-chat",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is quantum computing?"}
],
"temperature": 0.7,
"max_tokens": 512,
"stream": false,
"use_rerank": "quantum_cpu",
"rerank_k": 4
}
FieldTypeRequiredDescription
modelstringYesModel ID
messagesarrayYesConversation messages
temperaturefloatNoSampling temperature (0-2, default: 1)
max_tokensintegerNoMax response tokens
streambooleanNoEnable streaming
use_rerankstringNo"classic", "quantum_cpu", "quantum_gpu"
rerank_kintegerNoCandidate count for reranking (default: 4)
top_pfloatNoNucleus sampling (0-1)
stoparrayNoStop sequences

Response:

{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1703683200,
"model": "synapsex-chat",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Quantum computing is..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 25,
"completion_tokens": 150,
"total_tokens": 175
},
"meta": {
"rerank_tier": "quantum_cpu",
"candidates": 4,
"quality_score": 0.92,
"turbo_on": true,
"entropy": 4.2
}
}

Embeddings

Create Embeddings

Generate vector embeddings for text.

POST /v1/embeddings

Request Body:

{
"input": ["Hello world", "Quantum computing is fascinating"],
"model": "synapsex-embed"
}
FieldTypeRequiredDescription
inputstring/arrayYesText(s) to embed
modelstringNoEmbedding model (default: synapsex-embed)

Response:

{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": [0.0023, -0.0045, ...]
},
{
"object": "embedding",
"index": 1,
"embedding": [0.0012, -0.0078, ...]
}
],
"model": "synapsex-embed",
"usage": {
"prompt_tokens": 8,
"total_tokens": 8
}
}

Rerank

Rerank Documents

Rerank documents using quantum-enhanced scoring.

POST /v1/rerank

Request Body:

{
"query": "What are the side effects of aspirin?",
"documents": [
"Aspirin can cause stomach upset...",
"The weather today is sunny...",
"Common side effects include bleeding..."
],
"top_k": 2,
"tier": "quantum_cpu"
}
FieldTypeRequiredDescription
querystringYesSearch query
documentsarrayYesDocuments to rerank
top_kintegerNoReturn top K results
tierstringNoReranking tier

Response:

{
"results": [
{
"index": 2,
"document": "Common side effects include bleeding...",
"score": 0.95
},
{
"index": 0,
"document": "Aspirin can cause stomach upset...",
"score": 0.87
}
],
"meta": {
"tier": "quantum_cpu",
"latency_ms": 45
}
}

Tenants

Create Tenant

Create a new tenant (customer).

POST /v1/tenants

Request Body:

{
"name": "Farmácia Santa Casa",
"slug": "farmacia_santa_casa",
"tier": "pro",
"settings": {
"default_model": "synapsex-chat",
"max_tokens_per_request": 2048,
"enable_rerank": true,
"rerank_tier": "quantum_cpu"
}
}

Response:

{
"id": "tenant_abc123",
"name": "Farmácia Santa Casa",
"slug": "farmacia_santa_casa",
"tier": "pro",
"api_key": "sk-farmacia-santa-casa-xxx",
"created_at": "2024-01-15T10:30:00Z",
"settings": {
"default_model": "synapsex-chat",
"max_tokens_per_request": 2048,
"enable_rerank": true,
"rerank_tier": "quantum_cpu"
}
}

List Tenants

GET /v1/tenants

Query Parameters:

ParameterTypeDescription
limitintegerMax results (default: 50)
offsetintegerPagination offset
tierstringFilter by tier

Get Tenant

GET /v1/tenants/{tenant_id}

Update Tenant

PATCH /v1/tenants/{tenant_id}

Delete Tenant

DELETE /v1/tenants/{tenant_id}

Get Tenant Settings

GET /v1/tenants/{tenant_id}/settings

Update Tenant Settings

PATCH /v1/tenants/{tenant_id}/settings

Request Body:

{
"enable_rerank": true,
"rerank_tier": "quantum_gpu",
"custom_system_prompt": "You are a pharmacy assistant..."
}

Feedback

Collect user feedback for model improvement.

Submit Feedback

POST /v1/tenants/{tenant_id}/feedback

Request Body:

{
"conversation_id": "conv_abc123",
"message_id": "msg_xyz789",
"type": "thumbs_down",
"correction": "The correct dosage is 500mg, not 250mg",
"metadata": {
"user_id": "user_123"
}
}
Feedback TypeDescription
thumbs_upPositive feedback
thumbs_downNegative feedback
correctionUser-provided correction
ratingNumeric rating (1-5)
reportContent report

List Feedback

GET /v1/tenants/{tenant_id}/feedback

Get Feedback Stats

GET /v1/tenants/{tenant_id}/feedback/stats

Response:

{
"total": 1500,
"thumbs_up": 1200,
"thumbs_down": 200,
"corrections": 100,
"average_rating": 4.2,
"ready_for_training": true
}

Datasets (DataHub)

Manage documents and tables for RAG.

Register Dataset

POST /v1/tenants/{tenant_id}/datasets/register

Request Body:

{
"name": "product_catalog",
"type": "documents",
"description": "Product information database",
"data_use": {
"allow_rag": true,
"allow_private_training": true
}
}

Upload Documents

POST /v1/tenants/{tenant_id}/datasets/{dataset_id}/upload/docs

Request Body:

{
"docs": [
{
"doc_id": "prod_001",
"title": "Aspirin 500mg",
"text": "Pain reliever and anti-inflammatory...",
"metadata": {
"category": "analgesics",
"price": 12.99
}
}
]
}

Upload Table

POST /v1/tenants/{tenant_id}/datasets/{dataset_id}/upload/table

Request Body:

{
"table_name": "inventory",
"columns": ["product_id", "name", "quantity", "price"],
"rows": [
["prod_001", "Aspirin 500mg", 150, 12.99],
["prod_002", "Ibuprofen 400mg", 200, 15.50]
]
}

Search Dataset

GET /v1/tenants/{tenant_id}/datasets/{dataset_id}/search?q=aspirin&top_k=5

List Datasets

GET /v1/tenants/{tenant_id}/datasets

List RAG-Enabled Datasets

GET /v1/tenants/{tenant_id}/datasets/rag-enabled

Training

Trigger model fine-tuning jobs.

Trigger LoRA Training

POST /v1/tenants/{tenant_id}/train/lora

Request Body:

{
"min_feedback_count": 100,
"lora_r": 16,
"lora_alpha": 32,
"epochs": 3,
"learning_rate": 2e-4,
"batch_size": 4
}

Response:

{
"job_id": "train_job_abc123",
"status": "queued",
"estimated_duration_minutes": 45,
"feedback_samples": 150,
"created_at": "2024-01-15T10:30:00Z"
}

Get Training Job Status

GET /v1/tenants/{tenant_id}/train/{job_id}

Response:

{
"job_id": "train_job_abc123",
"status": "running",
"progress": 0.65,
"current_epoch": 2,
"total_epochs": 3,
"metrics": {
"loss": 0.234,
"learning_rate": 1.8e-4
}
}

List Training Jobs

GET /v1/tenants/{tenant_id}/train

Models

List Available Models

GET /v1/models

Response:

{
"data": [
{
"id": "synapsex-chat",
"object": "model",
"created": 1703683200,
"owned_by": "softquantus",
"context_length": 8192,
"capabilities": ["chat", "rerank"]
},
{
"id": "synapsex-chat-32k",
"object": "model",
"created": 1703683200,
"owned_by": "softquantus",
"context_length": 32768,
"capabilities": ["chat", "rerank"]
}
]
}

Admin

Health Check

GET /health

Response:

{
"status": "healthy",
"version": "2.1.0",
"components": {
"api": "healthy",
"database": "healthy",
"inference": "healthy",
"quantum": "healthy"
}
}

Usage Statistics

GET /v1/admin/usage

Requires admin API key.


Error Codes

CodeHTTP StatusDescription
UNAUTHORIZED401Invalid or missing API key
FORBIDDEN403Insufficient permissions
NOT_FOUND404Resource not found
RATE_LIMITED429Rate limit exceeded
INVALID_REQUEST400Invalid request body
MODEL_NOT_FOUND400Unknown model
TENANT_NOT_FOUND404Tenant not found
TRAINING_FAILED500Training job failed
INTERNAL_ERROR500Server error

Error Response Format:

{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Retry after 60 seconds.",
"retry_after": 60
},
"request_id": "req_abc123"
}

Webhooks

Configure Webhook

POST /v1/webhooks

Request Body:

{
"url": "https://your-server.com/webhook",
"events": ["training.completed", "feedback.received"],
"secret": "your-webhook-secret"
}

Events:

EventDescription
training.completedTraining job finished
training.failedTraining job failed
feedback.receivedNew feedback submitted
tenant.createdNew tenant created

SDKs

Official SDKs and integrations:

  • Python (OpenAI SDK): Use with custom base_url
  • JavaScript: Standard fetch or OpenAI SDK
  • LangChain: Compatible with ChatOpenAI class
  • LobeChat: Native integration available

Changelog

v2.1.0 (2024-01)

  • Added quantum GPU reranking tier
  • Improved streaming performance
  • New feedback analytics

v2.0.0 (2023-10)

  • Multi-tenant architecture
  • QCOS integration
  • DataHub v2

See full changelog for details.