Документация
FRANKLAB API

Подключение к API

Подключите приложение: ключ, запросы, файлы и получение результата.

Открыть .md
Открыть в AI

Разобраться с AI-ассистентом

Передаётся документация выбранного раздела, без ваших ключей. Большие разделы копируются целиком для вставки в чат.

Cursor и Claude Code откроются с готовым текстом, если он помещается в ссылку. ChatGPT и Antigravity: вставьте скопированный контекст вручную.

Задать вопрос

Используйте операции Make-модулей непосредственно из своего сервера, скрипта или HTTP Request в n8n. Устанавливать Make для HTTP-запросов не требуется.

1. Получите ключ и проверьте баланс

Зарегистрируйтесь на Apergrex, затем в Настройки → API создайте отдельный ключ для интеграции. Пополните баланс в кабинете или через платёжный API. Генерации и обработка списываются с баланса вашего аккаунта.

Базовый адрес:

text
https://apergrex.ru/franklab/api

Все пути в руководствах прибавляются к этому адресу. Например, /franklab/jobs/image даёт полный URL https://apergrex.ru/franklab/api/franklab/jobs/image: повторение franklab здесь намеренное.

bash
read -rsp 'API key: ' FRANKLAB_KEY; echo
export FRANKLAB_KEY
export FRANKLAB_BASE_URL='https://apergrex.ru/franklab/api'
curl --fail-with-body --max-time 30 \
  -H "X-API-Key: ${FRANKLAB_KEY:?Set your API key}" \
  "$FRANKLAB_BASE_URL/v1/billing/balance"

Храните ключ в секретах серверного приложения. Не передавайте его в URL, браузерный код, логи и диалог с AI. Заголовок авторизации указан в каждом руководстве: Make-модули утилит используют Authorization: Bearer, многие генеративные маршруты — X-API-Key.

2. Выберите функцию и контракт

Что нужно сделатьРазделМодули
Создать или изменить видеоГенерация видеоAlibaba Video, HEYGEN AGENT, MARS, MOON, MiniMax, OMNI, SATURN, VECTOR, VENUS, X
Создать изображение, текст, речь или музыку; подготовить элементыИзображения, текст и аудиоAlibaba Image, JUPITER, KUSOK, MOON GPT, ORKESTR, VOLNA
Обработать файлы, смонтировать, добавить субтитры, выполнить SEO-аудитУтилиты и монтажC2PA, FORSAJ, HOLST, INDEXLIFT, KLEY, OVERLAY, PLASTINKA, SPEKTR, SUFLER

Название в Make помогает найти функцию, но не всегда совпадает с REST-параметром. Передавайте значения из примера конкретной операции, а не подписи выпадающего списка или выражения {{parameters.…}}. Один модуль может обращаться к нескольким маршрутам с разными форматами ответа.

3. Подготовьте входные файлы

Если выбранная операция принимает URL, он должен быть доступен серверу. Локальный путь /Users/…/video.mp4 и браузерный blob: не подходят. Требования к типу файла, размеру и длительности зависят от операции.

Для утилит с входным медиа можно загрузить файл через партнёрский маршрут:

bash
curl --fail-with-body --max-time 120 -X POST \
  -H "Authorization: Bearer ${FRANKLAB_KEY:?Set your API key}" \
  -F 'file=@./input.mp4' \
  "$FRANKLAB_BASE_URL/franklab/jobs/upload" \
  -o upload.json
jq -er '.data.url' upload.json

Не задавайте Content-Type: application/json для этого multipart-запроса: cURL сам добавит корректный boundary. Передайте data.url в поле выбранной операции, например videoUrl или imageUrl. Маршруты с собственным upload/file API описаны отдельно: идентификатор файла одной системы не равнозначен URL или идентификатору другой.

4. Оцените стоимость и создайте одну задачу

Используйте оценку именно выбранного маршрута, модели и набора параметров. Сверьте сумму с available; прайс-лист показывает базовые ставки, а не гарантированную персональную цену запроса. Где отдельная оценка отсутствует, это указано в руководстве; неизвестная стоимость не означает ноль.

Первый полный пример MARS проходит все шаги: баланс → оценка → запуск → статус → ссылка на видео. Команда создания задачи может зарезервировать деньги. Не запускайте весь каталог примеров подряд.

5. Дождитесь результата

Сохраните ID сразу после создания. Опрос выполняйте через статусный маршрут той же операции и с тем же аккаунтом. Форматы различаются:

СемействоИдентификатор и результат
MARS text2videodata.task_id, data.task_status; успешный результат — data.task_result.videos[0].url
Make jobs facadedata.taskId, data.status; результат — data.result.downloadUrl
Другие функцииСмотрите контракт модуля: синхронный ответ, отдельная задача или иной формат результата

Ограничьте число проверок и время ожидания. Сохраните ID при исчерпании ожидания и продолжайте проверять его позже. При тайм-ауте запуска, 5xx или отсутствии ID не повторяйте POST автоматически: сервер мог принять задачу. Сверьте историю и обратитесь в поддержку. Idempotency-Key платёжного API не делает произвольный маршрут генерации идемпотентным.

Успех подтверждается доступным результатом. Скачайте файл и проверьте формат; для текста проверьте содержимое ответа. Итоговое списание сверяйте по транзакциям. Оценка, резерв и окончательная стоимость могут различаться.

Python: проверка подключения

Стандартная библиотека, без дополнительных пакетов. Пример только читает баланс.

python
import json
import os
from urllib.request import Request, urlopen

base = "https://apergrex.ru/franklab/api"
request = Request(base + "/v1/billing/balance", headers={
    "X-API-Key": os.environ["FRANKLAB_KEY"],
})
with urlopen(request, timeout=30) as response:
    balance = json.load(response)
print({name: balance.get(name) for name in ("available", "reserved")})

Для JSON-запроса генерации задайте method="POST", data=json.dumps(payload).encode() и заголовок Content-Type: application/json. payload, путь создания и статусный путь берите из раздела выбранного модуля; не добавляйте автоматические повторы создания задачи.

JavaScript: проверка подключения

Для серверного Node.js с встроенным fetch. Пример только читает баланс.

javascript
const key = process.env.FRANKLAB_KEY;
if (!key) throw new Error("Set FRANKLAB_KEY");
const base = "https://apergrex.ru/franklab/api";
const response = await fetch(`${base}/v1/billing/balance`, {
  headers: { "X-API-Key": key },
  redirect: "error",
  signal: AbortSignal.timeout(30000),
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const { available, reserved } = await response.json();
console.log({ available, reserved });

Для JSON-запроса генерации добавьте method: "POST", body: JSON.stringify(payload) и Content-Type: application/json. Перед следующим шагом проверьте не только HTTP-статус, но и поля успеха/ошибки конкретного контракта.

Передать документацию в AI

В каждом разделе доступны открытие, скачивание и копирование Markdown, а также передача в AI. Передавайте раздел нужного семейства вместе с этой инструкцией. Настоящий API-ключ подставляйте только в своём окружении после получения кода.

/docs/integration.md
Не нашли ответ?Связаться с поддержкой