API Documentation

Complete guide to integrating Syntra SX1 AI into your applications

Getting Started

Authentication

All API requests require an API key. Include it in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Base URL

https://api.syntra.ai/v1

Endpoints

Chat Completion

POST
/chat/completions

Generate AI responses with Solana-native context and reasoning.

Request Body:

{
  "model": "syntra-sx1",
  "messages": [
    {
      "role": "system",
      "content": "You are a Solana development expert"
    },
    {
      "role": "user",
      "content": "Explain Solana accounts"
    }
  ],
  "temperature": 0.7,
  "max_tokens": 1000
}

Response:

{
  "id": "chatcmpl-123",
  "object": "chat.completion",
  "created": 1677652288,
  "model": "syntra-sx1",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Solana accounts are..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 20,
    "completion_tokens": 150,
    "total_tokens": 170
  }
}

Stream Chat Completion

POST
/chat/completions

Stream responses in real-time for better user experience.

Request Body:

{
  "model": "syntra-sx1",
  "messages": [...],
  "stream": true
}

Embeddings

POST
/embeddings

Generate vector embeddings for semantic search and analysis.

Request Body:

{
  "model": "syntra-embed",
  "input": "Solana transaction structure"
}

Response:

{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "embedding": [0.1, 0.2, ...],
      "index": 0
    }
  ],
  "model": "syntra-embed",
  "usage": {
    "prompt_tokens": 5,
    "total_tokens": 5
  }
}

Parameters

model (string, required)

The model to use. Options: syntra-sx1, syntra-embed

messages (array, required)

Array of message objects with role and content properties

temperature (number, optional)

Controls randomness. Range: 0-2. Default: 0.7

max_tokens (integer, optional)

Maximum tokens to generate. Default: 1000

stream (boolean, optional)

Enable streaming responses. Default: false

Code Examples

JavaScript / TypeScript

const response = await fetch('https://api.syntra.ai/v1/chat/completions', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: JSON.stringify({
    model: 'syntra-sx1',
    messages: [
      { role: 'user', content: 'Explain Solana validators' }
    ]
  })
});

const data = await response.json();
console.log(data.choices[0].message.content);

Python

import requests

response = requests.post(
    'https://api.syntra.ai/v1/chat/completions',
    headers={
        'Content-Type': 'application/json',
        'Authorization': 'Bearer YOUR_API_KEY'
    },
    json={
        'model': 'syntra-sx1',
        'messages': [
            {'role': 'user', 'content': 'Explain Solana validators'}
        ]
    }
)

data = response.json()
print(data['choices'][0]['message']['content'])

cURL

curl https://api.syntra.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "syntra-sx1",
    "messages": [
      {"role": "user", "content": "Explain Solana validators"}
    ]
  }'

Error Codes

400 - Bad Request

Invalid request format or missing required parameters

401 - Unauthorized

Invalid or missing API key

429 - Rate Limit Exceeded

Too many requests. Check rate limit headers

500 - Internal Server Error

Server error. Contact support if persists

Rate Limits

60

Requests per minute

1000

Requests per day

100K

Tokens per minute

SDKs

JavaScript SDK

Official SDK for Node.js and browser environments

npm install @syntra/sdk

Python SDK

Official SDK for Python applications

pip install syntra-sdk

Security Best Practices

  • • Never expose API keys in client-side code
  • • Use environment variables to store credentials
  • • Rotate API keys regularly
  • • Implement rate limiting on your side
  • • Monitor API usage for anomalies

Need Help?

Check out our GitHub repository or join our community