Документация
API Syntet.ru
Внешний HTTP API: запуск генерации изображений, видео и аудио, проверка статуса задачи и получение готовых файлов по URL. Ключ берётся в личном кабинете Syntet.ru и передаётся в теле JSON как auth_key.
1. Сценарий (один проход)
- POST …/external/generate — тело с id_model, промптом и параметрами модели.
- Сохраните из ответа идентификатор истории и передавайте его в поле
id_historyдля картинок, видео и аудио. - При необходимости пауза 30–60 с перед первым опросом (одно изображение редко готово быстрее).
- POST …/external/status каждые ~5 с, пока статус не станет успешным (например
SUCCESS) или не вернётся ошибка. - POST …/external/files — в ответе список URL готовых файлов (картинка / видео / аудио по типу задачи).
При ошибке можно повторить generate с другим id_model.
2. Базовый URL
Запросы: POST, заголовок
Content-Type: application/json.
3. Эндпоинты
| Тип | Генерация | Статус | Файлы |
|---|---|---|---|
| Изображения | /api/imageAiModel/external/generate |
/api/imageAiModel/external/status |
/api/imageAiModel/external/files |
| Видео | /api/modelAiVideo/external/generate |
/api/modelAiVideo/external/status |
/api/modelAiVideo/external/files |
| Аудио | /api/modelAiAudio/external/generate |
/api/modelAiAudio/external/status |
/api/modelAiAudio/external/files |
Полный URL: https://syntet.ru + путь из таблицы.
4. Тела запросов для status и files
Изображения — поле истории id_history:
{
"auth_key": "ваш_ключ",
"id_history": "ИД_ИЗ_ОТВЕТА_GENERATE"
}
Видео и аудио используют то же поле id_history:
{
"auth_key": "ваш_ключ",
"id_history": "ИД_ИЗ_ОТВЕТА_GENERATE"
}
Ответ files содержит ссылки на результат (или URL после обработки callback).
5. Примеры curl
Замените YOUR_API_KEY и идентификаторы. В Windows: Git Bash или curl.exe.
Изображения
Генерация
curl -sS -X POST "https://syntet.ru/api/imageAiModel/external/generate" \
-H "Content-Type: application/json" \
-d '{
"auth_key": "YOUR_API_KEY",
"id_model": "1",
"referenceUrls": ["https://example.com/image1.jpg","https://example.com/image2.jpg","https://example.com/image3.jpg"],
"prompt": "Your prompt here.",
"aspectRatio": "2:3",
"quality": "1k",
"amount": "1"
}'
Статус · файлы
curl -sS -X POST "https://syntet.ru/api/imageAiModel/external/status" \
-H "Content-Type: application/json" \
-d '{"auth_key":"YOUR_API_KEY","id_history":"1"}'
curl -sS -X POST "https://syntet.ru/api/imageAiModel/external/files" \
-H "Content-Type: application/json" \
-d '{"auth_key":"YOUR_API_KEY","id_history":"1"}'
Видео
Генерация (пример: LTX2.3, id_model 2)
curl -sS -X POST "https://syntet.ru/api/modelAiVideo/external/generate" \
-H "Content-Type: application/json" \
-d '{
"auth_key":"YOUR_API_KEY",
"id_model":2,
"prompt":"Slow camera move over a city at sunset",
"aspectRatio":"16:9",
"videoLength":"5s",
"referenceUrls":[
"https://example.com/video-ref-image-1.jpg",
"https://example.com/video-ref-image-2.jpg"
],
"generateAudio":false,
"multiShot":false,
"enhancedPrompt":false,
"fixedLens":false,
"keepOriginalSound":false
}'
curl -sS -X POST "https://syntet.ru/api/modelAiVideo/external/status" \
-H "Content-Type: application/json" \
-d '{"auth_key":"YOUR_API_KEY","id_history":"1"}'
curl -sS -X POST "https://syntet.ru/api/modelAiVideo/external/files" \
-H "Content-Type: application/json" \
-d '{"auth_key":"YOUR_API_KEY","id_history":"1"}'
Аудио
Генерация (MiniMax Voice Clone)
curl -sS -X POST "https://syntet.ru/api/modelAiAudio/external/generate" \
-H "Content-Type: application/json" \
-d '{
"auth_key":"YOUR_API_KEY",
"id_model":1,
"prompt":"Спокойный голос за кадром, дружелюбный тон",
"model":"speech-02-turbo",
"languageBoost":"Russian",
"voiceId":"maximus007",
"pronunciationDict":[],
"speed":1,
"audioReferenceUrl":"https://example.com/voice-sample.wav"
}'
curl -sS -X POST "https://syntet.ru/api/modelAiAudio/external/status" \
-H "Content-Type: application/json" \
-d '{"auth_key":"YOUR_API_KEY","id_history":"1"}'
curl -sS -X POST "https://syntet.ru/api/modelAiAudio/external/files" \
-H "Content-Type: application/json" \
-d '{"auth_key":"YOUR_API_KEY","id_history":"1"}'
6. Полный опрос статуса (Bash)
Переключатель API_KIND: image · video · audio. После выхода из цикла вызовите нужный /external/files.
AUTH="YOUR_API_KEY"
HISTORY_ID="1"
API_KIND="video"
sleep 45
while true; do
case "$API_KIND" in
image)
BODY=$(printf '{"auth_key":"%s","id_history":"%s"}' "$AUTH" "$HISTORY_ID")
STATUS_URL="https://syntet.ru/api/imageAiModel/external/status"
;;
video)
BODY=$(printf '{"auth_key":"%s","id_history":"%s"}' "$AUTH" "$HISTORY_ID")
STATUS_URL="https://syntet.ru/api/modelAiVideo/external/status"
;;
audio)
BODY=$(printf '{"auth_key":"%s","id_history":"%s"}' "$AUTH" "$HISTORY_ID")
STATUS_URL="https://syntet.ru/api/modelAiAudio/external/status"
;;
esac
RESP=$(curl -sS -X POST "$STATUS_URL" -H "Content-Type: application/json" -d "$BODY")
echo "$RESP"
echo "$RESP" | grep -q 'SUCCESS' && break
echo "$RESP" | grep -qi 'ERR\|FAILED\|ERROR' && exit 1
sleep 5
done
7. Модели изображений
Общая схема тела: auth_key, id_model, prompt, aspectRatio, quality, amount: 1, referenceUrls (длина по таблице), enhancedPrompt.
У Ultra Upscale добавляется scaleFactor (x1/x2/x4), prompt может быть пустой строкой.
| Модель | id_model | Референсы | Замечания |
|---|---|---|---|
| Qwen 2511 | 1 | 3 | aspectRatio: 1:1, 16:9, 9:16, 5:4, 4:5 · quality 1k |
| Nano Banana Pro | 2 | 10 | quality 1k | 2k |
| Z-Image Turbo | 3 | 0 | referenceUrls [] |
| Flux Klein | 4 | 5 | aspectRatio 1:1, 16:9, 9:16 |
| Nano Banana 2 | 5 | 10 | quality 2k, 1k, 4k |
| Ультра апскейл | 8 | 1 | scaleFactor · prompt допускается пустым |
| GPT Image 2 | 15 | 0 | quality как в ЛК |
| GPT Image 2 Edit | 16 | 10 | — |
8. Модели видео (сводная таблица)
У большинства моделей общий набор полей: prompt, при необходимости aspectRatio, resolution, videoLength, referenceUrls, флаги generateAudio, multiShot, enhancedPrompt, fixedLens, keepOriginalSound; при необходимости negativePrompt, shotPrompt1…, referenceVideo, referenceVideoDurationSec, audioReferenceUrl, presetId.
| Модель | id | Реф. картинок | Примечание |
|---|---|---|---|
| Wan 2.1 Lip Sync | 1 | 1 | resolution 720p, videoLength 5s/10s |
| LTX2.3 | 2 | 2 | длинный ряд videoLength |
| Kling V3.0 Std T2V | 3 | 0 | negativePrompt, shotPrompt… |
| Kling V3.0 Std I2V | 4 | 2 | — |
| Kling V3.0 Pro T2V | 5 | 0 | — |
| Kling V3.0 Pro I2V | 6 | 2 | — |
| Kling Video O3 Std T2V | 7 | 0 | — |
| Kling Video O3 Std I2V | 8 | 2 | — |
| Kling Video O3 Pro T2V | 9 | 0 | — |
| Kling Video O3 Pro I2V | 10 | 2 | — |
| Kling Omni O3 Video-Edit | 11 | 1 + video | referenceVideo, referenceVideoDurationSec |
| Kling O3 Pro Video-Edit | 12 | 4 + video | — |
| Kling O3 Std Ref-Video | 13 | 4 + video | — |
| Kling O3 Pro Ref-Video | 14 | 4 + video | — |
| Kling V3.0 Std Motion Ctrl | 15 | 1 + video | — |
| Kling V3.0 Pro Motion Ctrl | 16 | 1 + video | — |
| Sora 2 Pro T2V | 17 | 0 | videoLength 15s |
| Sora 2 Pro I2V | 18 | 0 | — |
| Kling 2.6 Pro Motion Ctrl | 19 | 1 + video | — |
| Kling 2.6 Std Motion Ctrl | 20 | 1 + video | — |
| Grok Imagine T2V | 21 | 0 | resolution 480p/720p |
| Grok Imagine I2V | 22 | 7 | — |
| Grok Imagine Edit | 23 | 0 + video | — |
| Veo3.1 Fast T2V | 24 | 0 | — |
| Veo3.1 Pro T2V | 25 | 0 | — |
| Veo3.1 Fast I2V | 26 | 3 | — |
| Veo3.1 Fast End-Last Frame | 27 | 2 | первый/последний кадр |
| Veo3.1 Pro End-Last Frame | 28 | 2 | — |
| Seedance v1.5 Pro Fast T2V | 29 | 0 | fixedLens часто true |
| Seedance v1.5 Pro T2V | 30 | 0 | — |
| Seedance v1.5 Pro Fast I2V | 31 | 2 | — |
| Seedance v1.5 Pro I2V | 32 | 2 | — |
| LTX 2.3 I2V | 33 | 1 | — |
| LTX 2.3 I2V Lip Sync | 34 | 1 + audio | audioReferenceUrl |
| Seedance 2 Fast I2V | 35 | 2 | — |
| Seedance 2 Multi I2V | 36 | 8 + опц. видео/аудио | — |
| Happyhorse 1.0 I2V | 37 | 1 | — |
| Happyhorse 1.0 R2V | 38 | 9 | — |
| Happyhorse 1.0 Video Edit | 39 | 5 + video | — |
9. Модели аудио
Выберите модель, раскройте блок и скопируйте готовый JSON или curl. API-ключ замените на значение из личного кабинета.
| Модель | id_model | Ключевые поля |
|---|---|---|
| MiniMax Voice Clone | 1 | model, languageBoost, voiceId, speed, audioReferenceUrl, pronunciationDict |
| MiniMax Music 2.5 | 2 | lirycs (текст/лирика), pronunciationDict |
| MiniMax Speech Turbo 2.8 | 3 | pronunciationDict |
| MiniMax Speech HD 2.8 | 4 | emotion, speed, volume, pitch, pronunciationDict, base64Output, englishNormalization |
| Qwen3 TTS Clone Voice | 5 | audioReferenceUrl, pronunciationDict |
| Cosy Voice 3 | 6 | audioReferenceUrl, pronunciationDict |
| Ace Step 1.5 Music | 7 | lirycs, pronunciationDict |
Пример JSON: MiniMax Voice Clone (id_model 1) ▼
{
"auth_key": "YOUR_API_KEY",
"id_model": 1,
"prompt": "Спокойный голос за кадром, дружелюбный тон",
"model": "speech-02-turbo",
"languageBoost": "Russian",
"voiceId": "maximus007",
"pronunciationDict": [],
"speed": 1,
"audioReferenceUrl": "https://example.com/voice-sample.wav"
}
10. Правила полей
referenceUrls— длина должна совпадать с требованиями модели; допускается[], где указано «0 референсов».id_modelзадаётся отдельно для графики, видео и аудио (одинаковый номер в разных таблицах — разные домены).- Опционально
presetId, если используете пресеты из кабинета. - В музыкальных моделях текст песни может передаваться полем
lirycs— при ошибке валидации сверьтесь с ответом API. - Допустимые значения
aspectRatio,videoLengthи качества уточняйте по интерфейсу генерации на syntet.ru — они обновляются вместе с моделями.
11. Безопасность
- Не раскрывайте
auth_keyво фронтенде и публичных репозиториях — вызывайте API с сервера. - Ссылки в
referenceUrls,audioReferenceUrl,referenceVideoдолжны быть доступны по HTTPS для загрузки бэкендом Syntet.