Обзор API
Здесь описано только то, что сторонний разработчик может вызвать уже сегодня. Большая часть платформы общается сама с собой через закрытые эндпоинты, которых здесь нет, и ваши запросы они отклонят. Чего нет на этих страницах, то пока не публичное API.
Что открыто
| API | Хост | Доступ | Статус |
|---|---|---|---|
| Вход через Syndicate | auth.aperturesyndicate.com | OAuth-клиент из Dev Studio | Открыт разработчикам |
| ASAI | asai.aperturesyndicate.com | ключ asai_… | Платно |
| Каталог Resonance | resonance-api.aperturesyndicate.com | не нужен | Открыт, для личных и некоммерческих проектов |
| Сервер игры Apeiron | apeiron.aperturesyndicate.com | игровой ключ ags_… | Открыт опубликованным играм |
| Реестр SYNX | synx.aperturesyndicate.com | чтение без доступа, публикация — сессия CLI | Открыт |
| Статус | status.aperturesyndicate.com | не нужен | Открыт |
Вебхуков, оплаты по факту вне ASAI и публичных API чата, профилей и датасетов нет.
Как получить доступ
Всё, что требует доступа, начинается в Dev Studio. Студия работает на вашем обычном аккаунте Синдиката.
- Запросите доступ разработчика на dev.aperturesyndicate.com/apply. Бейдж Developer выдаётся в момент отправки; заявку мы читаем потом и можем бейдж снять.
- Sign-in apps — заведите OAuth-клиент и получите
client_id. - Wallet и ASAI keys — пополните папку кошелька и выпустите ключ
asai_…, который из неё платит. - Apps & games → ваша игра → Items — выпустите ключи
ags_…для сервера игры.
Если бейдж Developer снят, ваши ключи отзываются вместе с ним.
Запросы и ответы
- Только HTTPS, тело в JSON с
content-type: application/json, если на странице не сказано иное. - Время — ISO 8601 в UTC; у длительностей единица в имени поля (
durationMs). - Идентификаторы — UUID, если не сказано иное. Id игры — её
pb_…. - Списки принимают
limitиoffsetи возвращают страницу вместе с общимcount.
Ошибки
Большинство API отвечает на ошибку JSON с понятным человеку текстом и постоянным машинным кодом:
{ "error": "Unknown client", "code": "INVALID_CLIENT" }Ветвитесь по code, а не по тексту. Исключение — ASAI: он отвечает в формате OpenAI, чтобы готовые SDK его понимали, см. ASAI.
| Статус | Значит |
|---|---|
400 | Запрос собран неправильно или ссылается на то, чего нет |
401 | Доступа нет, он неверный или отозван |
402 | Папка кошелька за ключом ASAI пуста |
403 | Доступ верный, но этого не разрешает |
404 | Не найдено — и для того, что существует, но не ваше |
409 | Действие отклонило правило: лимит, повтор, состояние проверки |
429 | Лимит запросов — притормозите и повторите позже |
5xx | Ошибка на нашей стороне; повторите с паузой |
Лимиты
| API | Лимит |
|---|---|
Вход, /authorize | 30 в минуту с IP |
Вход, /token | 60 в минуту с IP |
| ASAI | 60 запросов в минуту на ключ |
| Каталог Resonance | 300 запросов в минуту с IP |
Запрос сверх лимита получает 429. Сделайте паузу: повтор в тесном цикле только продлевает ограничение.
Стабильность
Описанное поле не удаляется и не переименовывается без предупреждения на этой странице. Новые поля могут появиться в любом ответе в любой момент — незнакомые просто пропускайте. Неописанные поля меняются без предупреждения.
Правила
Пользуясь API, вы принимаете Условия для разработчиков и API. На каталог Resonance действует ещё и раздел 8 Условий Resonance, он строже: без коммерческого использования без договорённости, с обязательной ссылкой на источник, а удалённые треки должны исчезнуть из вашего приложения в течение семи дней.
Нашли уязвимость? См. Ответственное раскрытие.