Начало работы

Spectra API совместим с OpenAI SDK. Вы можете использовать знакомые библиотеки на Python, JavaScript и других языках, просто указав наш base URL.

1

Создайте API-ключ

Перейдите в раздел API-ключей и создайте новый ключ.

2

Установите OpenAI SDK

pip install openai или npm install openai

3

Отправьте первый запрос

Укажите base_url и ваш API-ключ — готово!

Аутентификация

Все запросы к API требуют Bearer-токен в заголовке Authorization.

Authorization: Bearer sk-your-api-key

Base URL: https://api.spectra.ai/v1

API-ключи можно создать и управлять ими на странице API-ключей. Никогда не передавайте ключи в клиентском коде или публичных репозиториях.

Chat Completions

Генерация текстовых ответов на основе диалога. Поддерживает стриминг, function calling и structured output.

POST/v1/chat/completions

Параметры запроса

ПараметрТипОбяз.Описание
modelstringДаID модели (gpt-5.5, claude-opus-4.8 и др.)
messagesarrayДаМассив сообщений диалога
temperaturenumberНетТемпература выборки (0-2, по умолчанию 1)
max_tokensintegerНетМаксимальное количество токенов в ответе
streambooleanНетВключить потоковую передачу (по умолчанию false)
top_pnumberНетNucleus sampling (0-1)

Примеры

from openai import OpenAI

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://api.spectra.ai/v1"
)

response = client.chat.completions.create(
    model="gpt-5.5",
    messages=[
        {"role": "system", "content": "Ты полезный ассистент."},
        {"role": "user", "content": "Привет! Расскажи о квантовых компьютерах."}
    ],
    temperature=0.7,
    max_tokens=1000
)

print(response.choices[0].message.content)

Пример ответа

{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1700000000,
  "model": "gpt-5.5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Привет! Квантовые компьютеры — это..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 25,
    "completion_tokens": 150,
    "total_tokens": 175
  }
}

Генерация изображений

Создание изображений по текстовому описанию. Поддерживает DALL-E 3, Stable Diffusion и другие модели.

POST/v1/images/generations
ПараметрТипОбяз.Описание
modelstringНетID модели (dall-e-3 по умолчанию)
promptstringДаТекстовое описание изображения
nintegerНетКоличество изображений (1-4)
sizestringНетРазмер: 1024x1024, 1792x1024, 1024x1792
qualitystringНетКачество: standard или hd
response = client.images.generate(
    model="dall-e-3",
    prompt="Закат над горами в стиле импрессионизма",
    size="1024x1024",
    quality="hd",
    n=1
)

image_url = response.data[0].url
print(image_url)

Пример ответа

{
  "created": 1700000000,
  "data": [
    {
      "url": "https://api.spectra.ai/v1/storage/image/abc123.png",
      "revised_prompt": "Закат над горными вершинами..."
    }
  ]
}

Аудио / TTS

Синтез речи (Text-to-Speech) и транскрипция аудио.

Синтез речи

POST/v1/audio/speech
ПараметрТипОбяз.Описание
modelstringДаtts-1 или tts-1-hd
inputstringДаТекст для озвучивания (до 4096 символов)
voicestringДаГолос: alloy, echo, fable, onyx, nova, shimmer
speednumberНетСкорость (0.25-4.0, по умолчанию 1.0)
response = client.audio.speech.create(
    model="tts-1-hd",
    voice="nova",
    input="Привет! Это синтез речи через Spectra API."
)

response.stream_to_file("output.mp3")

Эмбеддинги

Получение векторных представлений текста для семантического поиска, кластеризации и классификации.

POST/v1/embeddings
ПараметрТипОбяз.Описание
modelstringДаtext-embedding-3-small или text-embedding-3-large
inputstring | arrayДаТекст или массив текстов
dimensionsintegerНетРазмерность вектора (опционально)
response = client.embeddings.create(
    model="text-embedding-3-small",
    input="Поисковый запрос: лучшие рестораны Москвы"
)

embedding = response.data[0].embedding
print(f"Размерность: {len(embedding)}")

Пример ответа

{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "index": 0,
      "embedding": [0.0023, -0.009, 0.015, ...]
    }
  ],
  "model": "text-embedding-3-small",
  "usage": {
    "prompt_tokens": 8,
    "total_tokens": 8
  }
}

Модели

Список доступных моделей и их стоимость.

GET/v1/models
МодельТипВход / 1M токеновВыход / 1M токенов
gpt-5.5Текст3.00 ₽12.00 ₽
gpt-5-miniТекст0.15 ₽0.60 ₽
claude-sonnet-4.6Текст3.00 ₽15.00 ₽
gemini-3.5Текст1.25 ₽5.00 ₽
midjourney-v7Изображение~40 ₽/изобр.-
tts-1-hdАудио~30 ₽/1M симв.-
text-embedding-3-smallЭмбеддинги0.02 ₽-
text-embedding-3-largeЭмбеддинги0.13 ₽-

* Цены ориентировочные и могут отличаться. Актуальные цены доступны на странице тарифов.

Rate Limits

Лимиты запросов устанавливаются для каждого API-ключа. По умолчанию лимит составляет 60 запросов в минуту (RPM).

ЗаголовокОписание
X-RateLimit-LimitМаксимальное количество запросов в минуту
X-RateLimit-RemainingОставшееся количество запросов
X-RateLimit-ResetВремя сброса лимита (Unix timestamp)
Retry-AfterВремя ожидания (сек) при превышении лимита

При превышении лимита API вернёт 429 Too Many Requests. Используйте экспоненциальный backoff для автоматических повторов.

Коды ошибок

API использует стандартные HTTP-коды статуса и возвращает JSON с описанием ошибки.

КодТипОписание
400Bad RequestНеверный формат запроса или отсутствуют обязательные параметры
401UnauthorizedОтсутствует или недействителен API-ключ
402Payment RequiredНедостаточно средств на балансе
403ForbiddenДоступ запрещён для данного ключа
404Not FoundЗапрошенный ресурс или модель не найдены
429Rate LimitedПревышен лимит запросов в минуту
500Server ErrorВнутренняя ошибка сервера
503Service UnavailableСервис временно недоступен (обслуживание)

Формат ошибки

{
  "error": {
    "message": "Недостаточно средств на балансе",
    "type": "insufficient_balance",
    "code": "402",
    "param": null
  }
}