Skip to content

REST API Reference

Complete reference for all Solatis API endpoints.

Base URL

https://api.solatis.team/v2

Authentication

All endpoints require Bearer token authentication:

bash
curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://api.solatis.team/v2/documents

Requests & Responses

Request Format

bash
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

json
{
  "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/analyze

Request Body:

ParameterTypeRequiredDescription
document_urlstringYesURL to document (PDF, DOCX, TXT)
analysis_typestringYescontract_review, financial_analysis, legal_review
extract_fieldsarrayNoSpecific fields to extract
include_summarybooleanNoInclude document summary (default: true)
webhook_urlstringNoWebhook URL for completion notification

Example Request:

bash
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:

json
{
  "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 started
  • 400 - 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}/chat

URL Parameters:

ParameterTypeDescription
document_idstringID of document to chat about

Request Body:

ParameterTypeRequiredDescription
questionstringYesQuestion to ask about document
context_windownumberNoNumber of pages for context (default: 5)
include_sourcesbooleanNoInclude source citations (default: true)

Example Request:

bash
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:

json
{
  "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 /documents

Query Parameters:

ParameterTypeDescription
workspace_idstringWorkspace to list documents from
limitnumberResults per page (default: 20, max: 100)
offsetnumberPagination offset (default: 0)
statusstringFilter by status: processing, completed, failed
sortstringSort order: created_at, -created_at

Example Request:

bash
curl -X GET "https://api.solatis.team/v2/documents?workspace_id=ws_123&limit=10&offset=0" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response:

json
{
  "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:

bash
curl -X GET https://api.solatis.team/v2/documents/doc_abc123xyz \
  -H "Authorization: Bearer YOUR_API_KEY"

Response:

json
{
  "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 /transcribe

Request Body:

ParameterTypeRequiredDescription
audio_urlstringYesURL to audio/video file (MP3, WAV, MP4, etc.)
languagestringYesLanguage code: en, es, fr, de, pt
speaker_labelsbooleanNoInclude speaker diarization (default: true)
webhook_urlstringNoWebhook 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:

bash
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:

json
{
  "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:

bash
curl -X GET https://api.solatis.team/v2/transcribe/trans_abc123 \
  -H "Authorization: Bearer YOUR_API_KEY"

Response:

json
{
  "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-items

Request Body:

ParameterTypeDescription
assign_to_speakersbooleanAssign items to specific speakers
extract_deadlinesbooleanExtract mentioned deadlines
confidence_thresholdnumberMinimum confidence (0-1, default: 0.8)

Example Request:

bash
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:

json
{
  "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}/summary

Request Body:

ParameterTypeDescription
lengthstringshort, medium, long (default: medium)
focus_areasarraySpecific topics to focus on

Example Request:

bash
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:

json
{
  "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 /tasks

Request Body:

ParameterTypeRequiredDescription
titlestringYesTask title
descriptionstringNoTask description
assigned_tostringNoUser ID to assign to
due_datestringNoDue date (ISO 8601)
prioritystringNolow, medium, high
related_document_idstringNoRelated document ID
related_meeting_idstringNoRelated meeting ID
tagsarrayNoTask tags

Example Request:

bash
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:

json
{
  "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 /tasks

Query Parameters:

ParameterTypeDescription
workspace_idstringWorkspace to list tasks from
statusstringFilter: open, in_progress, completed, cancelled
assigned_tostringFilter by assignee
limitnumberResults per page (default: 20)

Example Request:

bash
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:

json
{
  "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 /webhooks

Request Body:

ParameterTypeRequiredDescription
urlstringYesWebhook URL
eventsarrayYesEvents to subscribe to
secretstringYesSecret for HMAC signature

Available Events:

document.analyzed
document.deleted
transcription.completed
meeting.analyzed
action_items.extracted
task.created
task.updated
task.completed
content.generated

Example Request:

bash
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 /webhooks

Delete Webhook

Unregister a webhook.

DELETE /webhooks/{webhook_id}

Searching & Filtering

Search across documents using natural language.

POST /search

Request Body:

ParameterTypeDescription
querystringNatural language search query
workspace_idstringWorkspace to search in
limitnumberResults to return (default: 10, max: 100)
filtersobjectAdditional filters

Example Request:

bash
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:

json
{
  "results": [
    {
      "id": "doc_abc123",
      "title": "Service Agreement",
      "relevance": 0.98,
      "excerpt": "Either party may terminate this agreement...",
      "source": "document"
    }
  ],
  "total": 3
}

Common Response Codes

CodeMeaningAction
200OKRequest succeeded
201CreatedResource created
202AcceptedRequest queued for processing
400Bad RequestCheck parameters
401UnauthorizedCheck API key
403ForbiddenInsufficient permissions
404Not FoundResource not found
429Too Many RequestsRate limited
500Server ErrorRetry later

Rate Limits

PlanRequests/Minute
Individual60
Team300
EnterpriseCustom

Check response headers:

  • X-RateLimit-Limit
  • X-RateLimit-Remaining
  • X-RateLimit-Reset

Next Steps

Released under the MIT License.