API / автоматизация
Интеграции Anycon Reels
Подключите обработку фото и видео к агенту, сценарию автоматизации или собственному коду. Базовый адрес API:
https://anycon.online/api/public/v1
Отдельный баланс API не создаётся. Платная генерация сначала использует квоту тарифа, затем общий баланс; при «Бесплатном доступе» (гранте) генерации бесплатны.
Перед подключением
- В кабинете выпустите отдельный ключ для интеграции. Храните его в переменной окружения или хранилище секретов, не в коде, чате или аргументах команды.
- Ключ даёт полный доступ к публичному API: отдельных прав чтения и записи сейчас нет. Для MCP-процесса можно задать локальный
ANYCON_MAX_SPEND_MINOR— потолок суммы в копейках, проверяемый перед созданием заказа. Счётчик действует только внутри процесса и сбрасывается при его перезапуске; это не серверный лимит ключа. Серверный ключ отзывается в кабинете. - На ключ действует предел 60 запросов в минуту. Одновременно допускаются две загрузки; активных заказов — до пяти при оплате с баланса, а по тарифу — зависит от тарифа (Старт и Про — 3, Студия — 5).
Архив инструментов
MCP-сервер, командная строка, клиент для Node.js и примеры собраны в один архив без внешних зависимостей: npm install не нужен. Скачайте архив: anycon-tools-0.1.0.zip (144 КБ). SHA-256: e9cc3344469688babadde9ab91bc94633d1c8ccd85d794f39b0eec0bfe8ea0ce
- Нужен Node.js 22.12 или новее.
- Распакуйте архив в постоянную папку, например
C:/anycon-toolsили~/anycon-tools(tar -xf anycon-tools-<версия>.zip -C <папка>; папка должна существовать). Папкиanycon-client,anycon-cliиanycon-mcpдолжны остаться рядом. - Проверьте:
node anycon-cli/bin/anycon.cjs --help. Сверьте SHA-256 скачанного файла с указанным выше: Windows —certutil -hashfile anycon-tools-<версия>.zip SHA256, Linux —sha256sum anycon-tools-<версия>.zip, macOS —shasum -a 256 anycon-tools-<версия>.zip.
Публикация в npm планируется; сейчас инструменты распространяются только этим архивом. В нём же есть README.md с краткой инструкцией.
MCP для Claude Code и Codex
MCP (протокол контекста модели) позволяет агенту загрузить файл, оценить заказ, дождаться результата и скачать его. Нужны Node.js 22.12 или новее и распакованный архив инструментов: сервер запускается файлом anycon-mcp/bin/anycon-mcp.cjs из архива.
Задайте ANYCON_API_KEY и ANYCON_BASE_URL=https://anycon.online/api/public/v1 в окружении. SDK, CLI и MCP также поддерживают прежние имена переменных для совместимости; при одновременной настройке приоритет имеют ANYCON_*.
Claude Code
- Задайте
ANYCON_API_KEYиANYCON_BASE_URLв окружении терминала. - Скопируйте пример .mcp.json в проект и замените только путь к
anycon-mcp.cjsна папку, куда вы распаковали архив. - Ограничьте доступ к файлам через
ANYCON_ALLOWED_DIRS. Ключ подставляется из окружения как${ANYCON_API_KEY}, а не записывается в конфигурацию.
{
"mcpServers": {
"anycon": {
"type": "stdio",
"command": "node",
"args": ["C:/путь/к/anycon-tools/anycon-mcp/bin/anycon-mcp.cjs"],
"env": {
"ANYCON_API_KEY": "${ANYCON_API_KEY}",
"ANYCON_BASE_URL": "https://anycon.online/api/public/v1",
"ANYCON_ALLOWED_DIRS": "${ANYCON_ALLOWED_DIRS:-.}",
"ANYCON_OUTPUT_DIR": "./anycon-output"
}
}
}
}
Codex
- Задайте ключ в окружении процесса Codex.
- Перенесите раздел из примера config.toml в конфигурацию и укажите путь к распакованному архиву.
- Оставьте
tool_timeout_sec = 300для ожидания заказа. Для коротких вызовов задавайте меньшийtimeout_secondsи повторяйтеwait_order.
[mcp_servers.anycon]
command = "node"
args = ["C:/путь/к/anycon-tools/anycon-mcp/bin/anycon-mcp.cjs"]
env_vars = ["ANYCON_API_KEY"]
startup_timeout_sec = 20
tool_timeout_sec = 300
[mcp_servers.anycon.env]
ANYCON_BASE_URL = "https://anycon.online/api/public/v1"
ANYCON_ALLOWED_DIRS = "C:/Users/me/photos"
ANYCON_OUTPUT_DIR = "C:/Users/me/photos/anycon-output"
Инструмент process_file выполняет полный цикл. Сервер MCP маскирует ключ, проверяет разрешённые реальные пути и возвращает локальные пути скачанных файлов вместо временных ссылок.
Командная строка (CLI)
CLI anycon входит в архив инструментов и запускается из распакованной папки: anycon-cli/bin/anycon.cjs. Ключ читает из ANYCON_API_KEY.
node anycon-cli/bin/anycon.cjs account
node anycon-cli/bin/anycon.cjs process photo.jpg --copies 3 --mode clean --out ./result
node anycon-cli/bin/anycon.cjs order wait <order_id> --json
Для сценариев используйте --json. Команда process поддерживает несколько файлов и ограничение параллельности; ключ в вывод не попадает.
n8n: три готовых шаблона
Импортируйте JSON и создайте учётные данные Header Auth (авторизация заголовком): имя заголовка Authorization, значение Bearer <ключ из кабинета>. В сам workflow (рабочий процесс) ключ не вставляйте. Шаблоны проверены статически, но живой импорт в n8n не выполнялся; после импорта проверьте связи узлов и одну тестовую обработку.
- Обработка с опросом — один файл, первый запрос статуса через 5 секунд, затем через 15 секунд.
- Обработка с уведомлением — ждёт подписанный вебхук до 30 минут, затем безопасно переходит к опросу.
- Папка пакетами — запускает шаблон опроса по два файла; не запускайте несколько таких потоков одновременно на одном ключе.
После импорта откройте узел Config (настройки): проверьте baseUrl, clientRef, число копий и режим. Выберите созданные учётные данные в каждом HTTP Request (HTTP-запрос) к API Anycon Reels. Для шаблона 03 сначала импортируйте 01 и замените REPLACE_WITH_WORKFLOW_01_ID в узле «Подпроцесс 01» его настоящим идентификатором.
В узле чтения файла задайте путь, доступный внутри контейнера n8n; при включённом ограничении добавьте каталог в N8N_RESTRICT_FILE_ACCESS_TO. Для проверки SHA-256 разрешите встроенный модуль: NODE_FUNCTION_ALLOW_BUILTIN=crypto. Шаблону с вебхуком нужен секрет в ANYCON_WEBHOOK_SECRET; если N8N_BLOCK_ENV_ACCESS_IN_NODE=true, Code-узел не увидит переменную — разрешите доступ к окружению или настройте эквивалентное защищённое хранилище.
Учётные данные Header Auth назначаются API-запросам к Anycon Reels. Узел скачивания обращается к временной download_url без Authorization: сама ссылка даёт доступ на 15 минут, поэтому не записывайте её в журналы и чаты.
В каждом создании заказа есть устойчивый Idempotency-Key (ключ идемпотентности) и предохранители maxPolls = 480/maxPollSeconds = 7200. Остановка опроса не отменяет заказ: проверьте его позже по order_id. Повторный запуск не должен менять деловой ключ. При сетевой ошибке, 429 или 5xx узлы статуса повторяют запрос до пяти раз с паузой 5 секунд.
Make и Zapier
Make
Сценарий собирается из HTTP-модулей: получить бинарный файл → POST /uploads с сырым телом → POST /orders → опрос или вебхук → результаты. Храните ключ в Connections/Keychain (подключения/хранилище ключей). Для заказа используйте первые 40 символов SHA-256, copies до 3 символов, mode до 20 и clientRef до 40: anycon-{sha40}-c{copies}-{mode}-{clientRef}. Замените прочие символы на дефис; итог должен быть не длиннее 128 символов. Не включайте номер запуска, время или случайное значение. Инструкция собрана по документации, но живой сценарий Make не проверялся; сначала выполните один тестовый файл.
Zapier
Можно использовать HTTP и Webhooks by Zapier (вебхуки Zapier) для запросов к API и приёма уведомлений. Полноценная загрузка по ссылке пока не поддерживается: API принимает сырое тело файла, а не URL. Если шаг Zapier не может отправить бинарное тело с точным Content-Length, загрузите файл своим сервером или используйте CLI, n8n либо MCP.
curl, PowerShell и Python
После безопасной настройки ANYCON_API_KEY в окружении проверьте аккаунт коротким запросом:
# Bash / curl
curl "https://anycon.online/api/public/v1/account" -H "Authorization: Bearer $ANYCON_API_KEY"
# PowerShell
Invoke-RestMethod "https://anycon.online/api/public/v1/account" -Headers @{ Authorization = "Bearer $env:ANYCON_API_KEY" }
# Python 3, стандартная библиотека
import os, urllib.request
request = urllib.request.Request("https://anycon.online/api/public/v1/account",
headers={"Authorization": "Bearer " + os.environ["ANYCON_API_KEY"]})
print(urllib.request.urlopen(request).read().decode())
Полные примеры цикла лежат в папке examples архива инструментов: examples/curl/process.sh, examples/curl/process.ps1 и examples/python/process.py. Они загружают файл, создают заказ, ждут и скачивают результат с проверкой SHA-256.
Для Node.js в архиве есть клиент без внешних зависимостей (anycon-client/src/index.cjs): new Anycon({ apiKey: process.env.ANYCON_API_KEY, baseUrl: "https://anycon.online/api/public/v1" }). Он повторяет 429/5xx с учётом Retry-After, ожидает заказ и проверяет хэш результата.
Надёжность, повторная оплата и вебхуки
Idempotency-Key
Для каждого POST /orders обязателен ключ из 8–128 символов A–Z a–z 0–9 _ . : -. Стройте его из SHA-256 содержимого файла, числа копий, всех options (параметров) и вашей устойчивой метки задания. Один ключ с тем же телом в течение 7 дней возвращает тот же заказ с Idempotent-Replay: true без второго списания. Тот же ключ с другим телом даёт 409; новый upload_id тоже меняет тело. Чтобы сознательно повторить заказ, измените метку. После 7 дней ключ может создать новый платный заказ.
Опрос и повторы
Первый статус запрашивайте через 5 секунд, последующие — не чаще одного раза в 15 секунд. На 429, 409 в процессе создания и временные 5xx соблюдайте Retry-After и повторяйте создание только с тем же ключом и телом.
Подписанные уведомления
Anycon Reels подписывает точные сырые байты тела: X-Anycon-Signature: t=<unix>,v1=<hex>, где подпись равна HMAC-SHA256(secret, "<t>.<raw body>"). Проверяйте подпись за постоянное время и окно ±5 минут. Отсекайте повторы по X-Anycon-Delivery. События order.completed, order.failed, order.cancelled и order.review могут прийти повторно и не обязаны приходить в порядке создания заказов; состояние заказа сверяйте по его данным. Повторы доставки идут через 1 минуту, 5 минут, 30 минут, 2 часа и 6 часов.
webhook_url не входит в хэш идемпотентности. При повторе того же заказа допустимый новый адрес становится последним адресом для ещё не доставленных событий. Уже доставленное событие на новый адрес повторно не отправляется; его состояние получите через GET /orders/{id}.
Полный контракт методов и ошибок: документация API; машиночитаемая схема: OpenAPI 3.1.
