Skip to main content

API quickstart

Make your first Synjar API call in 5 minutes.

Prerequisites

  • Synjar account (Cloud or self-hosted)
  • API key from Settings > API Keys

Step 1: Set up your environment

export SYNJAR_API_KEY="your-api-key"
export SYNJAR_BASE_URL="https://api.synjar.com/v1" # Cloud
# OR
export SYNJAR_BASE_URL="https://your-domain.com/api/v1" # Self-hosted

Step 2: List your workspaces

curl "${SYNJAR_BASE_URL}/workspaces" \
-H "Authorization: Bearer ${SYNJAR_API_KEY}"

Response:

[
{
"id": "ws_abc123",
"name": "My Workspace",
"createdAt": "2025-01-01T12:00:00Z"
}
]

Step 3: Upload a document

curl -X POST "${SYNJAR_BASE_URL}/workspaces/ws_abc123/documents" \
-H "Authorization: Bearer ${SYNJAR_API_KEY}" \
-F "file=@document.pdf" \
-F "title=My Document"

Response:

{
"id": "doc_xyz789",
"title": "My Document",
"uploadStatus": "COMPLETED",
"processingStatus": "PROCESSING"
}

Step 4: Wait for processing

Check document status until ready:

curl "${SYNJAR_BASE_URL}/documents/doc_xyz789" \
-H "Authorization: Bearer ${SYNJAR_API_KEY}"

Wait for processingStatus: "VERIFIED".

Step 5: Search your documents

curl -X POST "${SYNJAR_BASE_URL}/workspaces/ws_abc123/search" \
-H "Authorization: Bearer ${SYNJAR_API_KEY}" \
-H "Content-Type: application/json" \
-d '{"query": "What is this document about?"}'

Response:

{
"results": [
{
"documentId": "doc_xyz789",
"content": "This document describes...",
"score": 0.95
}
]
}

Code examples

JavaScript

const apiKey = process.env.SYNJAR_API_KEY;
const baseUrl = 'https://api.synjar.com/v1';

// Search documents
async function search(workspaceId, query) {
const response = await fetch(`${baseUrl}/workspaces/${workspaceId}/search`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ query }),
});

return response.json();
}

const results = await search('ws_abc123', 'What is the refund policy?');
console.log(results);

Python

import os
import requests

api_key = os.environ['SYNJAR_API_KEY']
base_url = 'https://api.synjar.com/v1'

def search(workspace_id, query):
response = requests.post(
f'{base_url}/workspaces/{workspace_id}/search',
headers={'Authorization': f'Bearer {api_key}'},
json={'query': query}
)
return response.json()

results = search('ws_abc123', 'What is the refund policy?')
print(results)

Next steps

See also