REST API Reference
Complete reference for all Solatis API endpoints.
Base URL
https://api.solatis.team/v2Authentication
All endpoints require Bearer token authentication:
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://api.solatis.team/v2/documentsRequests & Responses
Request Format
curl -X POST https://api.solatis.team/v2/documents/analyze \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"document_url": "https://example.com/contract.pdf",
"analysis_type": "contract_review"
}'Response Format
{
"id": "doc_abc123",
"status": "processing",
"created_at": "2026-02-02T10:30:00Z",
"data": {
"summary": "...",
"analysis": {}
}
}Document Endpoints
Analyze Document
Analyze and extract information from a document.
POST /documents/analyzeRequest Body:
| Parameter | Type | Required | Description |
|---|---|---|---|
document_url | string | Yes | URL to document (PDF, DOCX, TXT) |
analysis_type | string | Yes | contract_review, financial_analysis, legal_review |
extract_fields | array | No | Specific fields to extract |
include_summary | boolean | No | Include document summary (default: true) |
webhook_url | string | No | Webhook URL for completion notification |
Example Request:
curl -X POST https://api.solatis.team/v2/documents/analyze \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"document_url": "https://example.com/contract.pdf",
"analysis_type": "contract_review",
"extract_fields": ["parties", "dates", "obligations", "risks"],
"webhook_url": "https://yourapp.com/webhook"
}'Response:
{
"id": "doc_abc123xyz",
"status": "processing",
"created_at": "2026-02-02T10:30:00Z",
"estimated_completion": "2026-02-02T10:35:00Z",
"webhook_url": "https://yourapp.com/webhook"
}Status Codes:
202- Accepted, processing started400- Bad request (invalid parameters)401- Unauthorized (invalid API key)429- Rate limited
Chat with Document
Ask questions about a specific document.
POST /documents/{document_id}/chatURL Parameters:
| Parameter | Type | Description |
|---|---|---|
document_id | string | ID of document to chat about |
Request Body:
| Parameter | Type | Required | Description |
|---|---|---|---|
question | string | Yes | Question to ask about document |
context_window | number | No | Number of pages for context (default: 5) |
include_sources | boolean | No | Include source citations (default: true) |
Example Request:
curl -X POST https://api.solatis.team/v2/documents/doc_abc123xyz/chat \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"question": "What are the termination clauses?",
"context_window": 5,
"include_sources": true
}'Response:
{
"id": "chat_def456",
"question": "What are the termination clauses?",
"answer": "The termination clause allows either party to terminate...",
"sources": [
{
"page": 3,
"excerpt": "Either party may terminate..."
}
],
"confidence": 0.92
}List Documents
Get all documents in a workspace.
GET /documentsQuery Parameters:
| Parameter | Type | Description |
|---|---|---|
workspace_id | string | Workspace to list documents from |
limit | number | Results per page (default: 20, max: 100) |
offset | number | Pagination offset (default: 0) |
status | string | Filter by status: processing, completed, failed |
sort | string | Sort order: created_at, -created_at |
Example Request:
curl -X GET "https://api.solatis.team/v2/documents?workspace_id=ws_123&limit=10&offset=0" \
-H "Authorization: Bearer YOUR_API_KEY"Response:
{
"documents": [
{
"id": "doc_abc123",
"title": "Q1 Financial Report",
"status": "completed",
"created_at": "2026-02-01T10:00:00Z",
"updated_at": "2026-02-01T10:05:00Z",
"pages": 45,
"file_size": 2048000
}
],
"pagination": {
"total": 150,
"limit": 10,
"offset": 0
}
}Get Document Details
Retrieve specific document information.
GET /documents/{document_id}Example Request:
curl -X GET https://api.solatis.team/v2/documents/doc_abc123xyz \
-H "Authorization: Bearer YOUR_API_KEY"Response:
{
"id": "doc_abc123xyz",
"title": "Service Agreement",
"status": "completed",
"created_at": "2026-02-01T10:00:00Z",
"analysis": {
"summary": "This is a service agreement between...",
"extracted_fields": {
"parties": ["Acme Corp", "Client LLC"],
"dates": {
"start": "2024-01-01",
"end": "2025-01-01"
}
}
}
}Meeting Endpoints
Transcribe Audio/Video
Convert meeting recordings to text with speaker diarization.
POST /transcribeRequest Body:
| Parameter | Type | Required | Description |
|---|---|---|---|
audio_url | string | Yes | URL to audio/video file (MP3, WAV, MP4, etc.) |
language | string | Yes | Language code: en, es, fr, de, pt |
speaker_labels | boolean | No | Include speaker diarization (default: true) |
webhook_url | string | No | Webhook URL for completion |
Supported Formats:
- Audio: MP3, WAV, M4A, FLAC, OGG
- Video: MP4, WEBM, MOV, MKV
- Max file size: 2GB
- Max duration: 24 hours
Example Request:
curl -X POST https://api.solatis.team/v2/transcribe \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"audio_url": "https://example.com/meeting.mp3",
"language": "en",
"speaker_labels": true,
"webhook_url": "https://yourapp.com/webhook"
}'Response:
{
"id": "trans_abc123",
"status": "processing",
"created_at": "2026-02-02T10:30:00Z",
"estimated_completion": "2026-02-02T11:00:00Z",
"webhook_url": "https://yourapp.com/webhook"
}Get Transcript
Retrieve completed transcription.
GET /transcribe/{transcription_id}Example Request:
curl -X GET https://api.solatis.team/v2/transcribe/trans_abc123 \
-H "Authorization: Bearer YOUR_API_KEY"Response:
{
"id": "trans_abc123",
"status": "completed",
"transcript": "Speaker 1: Hello everyone, welcome to today's meeting...",
"speakers": [
{
"speaker": "Speaker 1",
"segments": [
{
"text": "Hello everyone, welcome to today's meeting",
"start_time": 0,
"end_time": 5000
}
]
}
],
"duration_seconds": 1800,
"confidence": 0.95,
"language": "en"
}Extract Action Items
Automatically identify tasks and commitments.
POST /meetings/{meeting_id}/action-itemsRequest Body:
| Parameter | Type | Description |
|---|---|---|
assign_to_speakers | boolean | Assign items to specific speakers |
extract_deadlines | boolean | Extract mentioned deadlines |
confidence_threshold | number | Minimum confidence (0-1, default: 0.8) |
Example Request:
curl -X POST https://api.solatis.team/v2/meetings/meeting_abc/action-items \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"assign_to_speakers": true,
"extract_deadlines": true
}'Response:
{
"id": "actions_abc123",
"meeting_id": "meeting_abc",
"action_items": [
{
"description": "Send proposal to client",
"assigned_to": "John Smith",
"due_date": "2026-02-05",
"priority": "high",
"confidence": 0.92
},
{
"description": "Schedule follow-up meeting",
"assigned_to": "Sarah Johnson",
"due_date": "2026-02-06",
"priority": "medium",
"confidence": 0.87
}
]
}Generate Summary
Generate meeting summary.
POST /meetings/{meeting_id}/summaryRequest Body:
| Parameter | Type | Description |
|---|---|---|
length | string | short, medium, long (default: medium) |
focus_areas | array | Specific topics to focus on |
Example Request:
curl -X POST https://api.solatis.team/v2/meetings/meeting_abc/summary \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"length": "medium",
"focus_areas": ["decisions", "action_items", "risks"]
}'Response:
{
"id": "summary_abc123",
"meeting_id": "meeting_abc",
"summary": "In today's meeting with the client, we discussed...",
"key_points": [
"Budget approved for Q1",
"Timeline accelerated by 2 weeks",
"Team expanded from 5 to 8 members"
],
"decisions": [
"Move launch date to March 15"
],
"next_steps": [
"Schedule technical review"
]
}Task Endpoints
Create Task
Create a new task.
POST /tasksRequest Body:
| Parameter | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Task title |
description | string | No | Task description |
assigned_to | string | No | User ID to assign to |
due_date | string | No | Due date (ISO 8601) |
priority | string | No | low, medium, high |
related_document_id | string | No | Related document ID |
related_meeting_id | string | No | Related meeting ID |
tags | array | No | Task tags |
Example Request:
curl -X POST https://api.solatis.team/v2/tasks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Review contract with legal",
"description": "Review the service agreement",
"assigned_to": "user_123",
"due_date": "2026-02-05T17:00:00Z",
"priority": "high",
"related_document_id": "doc_abc123"
}'Response:
{
"id": "task_def456",
"title": "Review contract with legal",
"status": "open",
"created_at": "2026-02-02T10:30:00Z",
"due_date": "2026-02-05T17:00:00Z"
}List Tasks
Get tasks from workspace.
GET /tasksQuery Parameters:
| Parameter | Type | Description |
|---|---|---|
workspace_id | string | Workspace to list tasks from |
status | string | Filter: open, in_progress, completed, cancelled |
assigned_to | string | Filter by assignee |
limit | number | Results per page (default: 20) |
Example Request:
curl -X GET "https://api.solatis.team/v2/tasks?workspace_id=ws_123&status=open" \
-H "Authorization: Bearer YOUR_API_KEY"Update Task
Update an existing task.
PATCH /tasks/{task_id}Request Body:
{
"title": "Updated title",
"status": "in_progress",
"priority": "high"
}Delete Task
Delete a task.
DELETE /tasks/{task_id}Webhook Endpoints
Create Webhook
Register a webhook endpoint.
POST /webhooksRequest Body:
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Webhook URL |
events | array | Yes | Events to subscribe to |
secret | string | Yes | Secret for HMAC signature |
Available Events:
document.analyzed
document.deleted
transcription.completed
meeting.analyzed
action_items.extracted
task.created
task.updated
task.completed
content.generatedExample Request:
curl -X POST https://api.solatis.team/v2/webhooks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://yourapp.com/webhooks/solatis",
"events": ["document.analyzed", "transcription.completed"],
"secret": "your-webhook-secret"
}'List Webhooks
Get all registered webhooks.
GET /webhooksDelete Webhook
Unregister a webhook.
DELETE /webhooks/{webhook_id}Searching & Filtering
Semantic Search
Search across documents using natural language.
POST /searchRequest Body:
| Parameter | Type | Description |
|---|---|---|
query | string | Natural language search query |
workspace_id | string | Workspace to search in |
limit | number | Results to return (default: 10, max: 100) |
filters | object | Additional filters |
Example Request:
curl -X POST https://api.solatis.team/v2/search \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "contract termination clauses",
"workspace_id": "ws_123",
"limit": 20
}'Response:
{
"results": [
{
"id": "doc_abc123",
"title": "Service Agreement",
"relevance": 0.98,
"excerpt": "Either party may terminate this agreement...",
"source": "document"
}
],
"total": 3
}Common Response Codes
| Code | Meaning | Action |
|---|---|---|
| 200 | OK | Request succeeded |
| 201 | Created | Resource created |
| 202 | Accepted | Request queued for processing |
| 400 | Bad Request | Check parameters |
| 401 | Unauthorized | Check API key |
| 403 | Forbidden | Insufficient permissions |
| 404 | Not Found | Resource not found |
| 429 | Too Many Requests | Rate limited |
| 500 | Server Error | Retry later |
Rate Limits
| Plan | Requests/Minute |
|---|---|
| Individual | 60 |
| Team | 300 |
| Enterprise | Custom |
Check response headers:
X-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-Reset
Next Steps
- Getting Started - First request tutorial
- Code Examples - Real-world examples
- Error Handling - Handle errors
- Webhooks - Real-time notifications