Журнал изменений
У каждого изменения публичного API есть запись с датой. Новое появляется в /api/v1; несовместимое изменение вышло бы как /api/v2, а v1 работал бы ещё какое-то время для перехода. Glitchmug пока не запущен: до открытой беты v1 может меняться — несовместимые изменения помечены Несовместимо.
2026-10-30
- Очки и медали:
GET /games/{slug}/leaderboard(period=month|all, вviewerстрока вошедшего пользователя) иGET /users/{username}/points. Считаются раз в сутки; три первых места в игре на конец месяца, от 100 очков, получают постоянную медаль. - Клиентские ключи для мод-менеджеров:
X-Glitchmug-ClientвGET /files/{id}/downloadснимает ограничение скорости для гостей. - Звуковые моды сами выбирают превью: мод в категории «Звуки» (или ниже), у которого нет аудио-превью, получает самый длинный найденный звук, в
GET /mods/{id}/audio-previewsон помеченauto: true. Один раз на мод: удалённый автовыбор не возвращается, а загрузка или выбор звука вручную выключают автовыбор для мода. Переименование превью ставитautoвfalse.
2026-10-29
- Несколько аудио-превью (до 8 на мод):
POST /mods/{id}/audio-previewтеперь добавляет, а не заменяет,409, если их уже 8.GET /mods/{id}/audio-previews— все по порядку со статусом иerrorCode(владелец или maintainer),PUT /mods/{id}/audio-previews/orderменяет порядок ({ ids }),PATCH /mods/{id}/audio-previews/{previewId}задаётlabel(до 60 символов),DELETEудаляет,GET …/{previewId}/fileотдаёт файл.POST /mods/{id}/audio-preview/candidates/use-allдобавляет все найденные звуки, сколько поместится. В карточках и карточке мода появилосьaudioPreviews: [{ id, url, durationMs, label }];audioPreviewостаётся и равен первому. Одинаковые звуки из разных файлов в кандидатах показываются один раз. - Скачивание:
GET /files/{id}/downloadотвечает302на подписанную ссылку наdl.glitchmug.com(6 часов) — файлы больше не идут через Cloudflare. Включите следование редиректам. - Аудио-превью: один короткий фрагмент на мод.
POST /mods/{id}/audio-preview(multipart/form-data, полеfile: mp3, ogg, opus, wav, flac или m4a, до 10 МБ и 30 секунд; владелец или соавтор-maintainer; 20 в сутки на пользователя,429 audio_preview_rate_limited) отвечает202; задача переводит файл в Ogg Opus, аGET /mods/{id}/audio-preview/stateпоказываетprocessing,readyилиfailed(errorCode:no_audio,too_long,unreadable,encode_failed).GET /mods/{id}/audio-previewотдаёт файлaudio/ogg(Range поддерживается),DELETEудаляет. В карточках модов и в карточке мода появилосьaudioPreview: { url, durationMs },null, пока превью не готово.415для других типов файлов,413при размере больше 10 МБ. - Аудио-превью из ваших файлов: после проверки файла задача ищет в нём звуки: обычные mp3, ogg, opus, wav, flac и m4a и звуки внутри паков Valve VPK (
.vpk, v1 и v2, в том числе многотомные_dir.vpk+_NNN.vpk;.wav/.mp3Source 1 и.vsnd_cSource 2 с данными PCM, MP3 или ADPCM). Из них готовится до 5 кандидатов (не длиннее 30 секунд, сначала самые длинные) в Ogg Opus.GET /mods/{id}/audio-preview/candidates(владелец или соавтор-maintainer) отдаёт список{ id, sourcePath, durationMs, url },GET …/candidates/{candidateId}/fileпроигрывает кандидата, аPOST …/candidates/{candidateId}/useделает его аудио-превью мода (заменяя текущее). Кандидаты удаляются, когда удалён их файл (раз в час; в списке пропадают сразу), когда выбран один из них или загружено другое превью. - Ключи API:
GET /me/api-keys/{id}/stats?days=30— запросы по дням UTC (всего и с ответами 4xx/5xx) и самые частые маршруты; считается каждый запрос с ключом, включая отклонённые лимитом. Хранится 30 дней. - Загрузки: вместо 10 загрузок в час теперь ограничен объём за 24 часа (по умолчанию 5 ГБ у автора и 20 ГБ у проверенного, настраивается в админке). Сверх лимита
POST …/uploadsотвечает429 upload_volume_exceededсlimitBytesиusedBytes. Защита от потока мелких файлов — 100 загрузок в час (upload_rate_limited). - Шаблоны загрузки:
GET/POST /me/mod-templates,PATCH/DELETE /me/mod-templates/{id}. Личный набор полей мода (game,category,tags,isNsfw,isWip,updatesNotPlanned,licenseс примечанием,aiUsage,credits, при желанииdescription) под названием до 60 символов; сайт применяет его при создании нового мода. Не больше 10 на человека (409 too_many_templates);PATCHпереименовывает и/или заменяетdata; чужой шаблон —404. У шаблона 12-символьный публичныйid; на моды он не влияет, пока вы его не примените.
2026-10-28
-
Моды:
updatesNotPlanned(boolean, по умолчаниюfalse) в карточке мода,POST /modsиPATCH /mods/{id}. Автор не планирует регулярные обновления; мод может продолжать работать. Это отдельный признак отisObsolete, он не влияет на скачивание, публикацию и порядок в каталоге: переключение не двигает мод вsort=updated. -
POST /mods/assist: черновик от ИИ (название, краткое описание, описание в Markdown, факты для проверки) по ответам автора; 10 в сутки на пользователя. Ничего не сохраняется;503 assist_unavailable, когда ИИ выключен. -
PATCH /mods/{id}поднимает мод вsort=updatedтолько при реальном изменении содержимого (повторная отправка тех же значений — нет). -
Гайды: вики-страницы по играм в Markdown.
GET /games/{game}/guides(опубликованные, фильтрlocale),GET/PATCH /games/{game}/guides/{slug},POST /games/{game}/guides(10 в сутки; черновик, если нет праваguide:publish), публичная история в/revisionsиPOST …/revert(guide:edit),POST …/hideи/unhide(guide:hide, журнал модерации). Новые праваguide:create,guide:publish,guide:edit,guide:hide;guide— тип цели в журнале модерации. См. Гайды. -
Несовместимо:
idмода или коллекции теперь числовой (число, например1042) везде: карточки модов, коллекции, лента, уведомления, отзывы, жалобы, DMCA, подписки,pinnedMods,modIdу версий и объектыmodв вебхуках. Отдельное полеnumубрано. У пользователей, комментариев, файлов, версий, отзывов и картинок остаются 12-символьные public id. -
Входные параметры, принимающие мод или коллекцию (пути,
modId,targetIdжалоб и подписок,pinnedMods,orderколлекции,withholdв DMCA,ownerIdкартинки), принимают числовой id; старый public id по-прежнему принимается для старых ссылок.
2026-10-27
- Адреса на сайте — по числовому id: моды —
/mods/{num}/{slug}, коллекции —/collections/{num}; старые ссылки по public id постоянно перенаправляются. Slug мода короче (не больше 6 слов / 50 символов, повторы слов убраны). - Любой путь
/mods/{id}…и/collections/{id}…(и/collections/{id}/items/{modId}) принимает и числовой id, и public id.idпо-прежнему public id. - Карточки модов, коллекции, коллекции в ленте, ссылки на мод в уведомлениях и отзывах получили
num(числовой id) иpath(канонический путь на сайте без префикса языка, например/mods/1042/neon-haze-skin). В вебхуках уmodпоявилсяnum,url— в новом виде.
2026-10-26
- Лента:
GET /feed(filter=all,authors,games,mods): новые моды и версии, коллекции и отзывы из ваших подписок, сначала новые.GET /users/{username}/activity: публичная активность одного человека. - Стена профиля:
GET/POST /users/{username}/wall(2 уровня, Markdown без картинок, 3 записи в сутки на одну стену; ответ говоритcanPostи почему нельзя),PATCH/DELETE /wall/{id}(правка 15 минут),POST /wall/{id}/hideи/unhide(владелец стены — без правила, модераторы — с правилом).PATCH /meпринимаетwallMode(all,followers,closed);/me/wall/bans— список, бан и снятие бана. В профилях появилсяwallCount, у жалоб — цельwall_post. - Бейджи:
GET /users/{username}/badges,GET /me/badges(все бейджи с вашим прогрессом). Автоматические бейджи выдаются раз в сутки и не снимаются, если числа упали.PATCH /meпринимаетshownBadges(до 3 полученных) иframe(полученный бейдж, открывающий рамку аватара). В профилях появилисьbadgesиbadgesCount, во всех ссылках на пользователя (author, авторы комментариев) —frame. - Отзывы:
GET /mods/{id}/reviews(sort=helpful,new,negative),GET /users/{username}/reviews,GET /mods/{id}/reviews/me,PUT/DELETE /mods/{id}/review(рекомендую или нет + 20–2000 символов; только после скачивания мода, один на человека, не на свой мод),PUT/DELETE /reviews/{id}/reply(ответ автора мода),POST/DELETE /reviews/{id}/helpful. В карточках модов появилисьreviewsCountиrecommendPercent(null, пока отзывов меньше 5), в профилях —recommendPercent. Новая сортировкаsort=bestвGET /mods, событие вебхукаreview.createdи цель жалобыreview. - Профили:
PATCH /meпринимаетaccent,links(до 5, https, ссылки на бренды проверяются по их сайту) иpinnedMods(до 4 своих опубликованных модов).GET /users/{username}отдаётbanner,accent,links,pinnedMods(карточки модов),downloadsCountиlikesCount. - Повторы вебхуков теперь растянуты примерно на 21 час (1 мин, 5 мин, 30 мин, 2 ч, 6 ч, 12 ч) вместо примерно 20 минут.
- Вебхуки:
/me/webhooksс событиямиmod.updated,version.published,comment.created,report.resolvedиping. Подпись HMAC-SHA256, повторы, автоотключение. См. Вебхуки. - API-ключи:
Authorization: Bearer gm_<prefix>_<secret>со scopesmods:read,mods:write,files:upload,comments:write,webhooks:manage; свой лимит запросов у каждого ключа. См. Авторизация. - Ключи с
files:uploadмогут загружать картинки (POST /images). - Спецификация OpenAPI объявляет оба способа входа (ключ или cookie сайта) у каждого метода; публичные работают без них.
- Коллекции:
GET /collections(публичные списки сsort,game,q),GET /mods/{id}/collections,PUT /collections/{id}/order. У коллекций появилось полеcovers. - Несовместимо:
GET /users/{username}/collectionsтеперь листается курсором (обёрткаpage). - Предложения игр:
POST /game-requests(5 в сутки; повторное предложение считается голосом).
2026-10-25
- Комментарии к модам (
/mods/{id}/comments, ветки до 3 уровней, правка в течение 15 минут). - Лайки и подписки на моды, авторов и игры; уведомления (
/notifications). - Коллекции: именованные списки модов, публичные или приватные, с заметками.
- Жалобы (
POST /reports) на моды, версии, файлы, пользователей и комментарии. - DMCA: снятые моды отвечают
451 unavailable_legal. - Модерация: очередь премодерации; для отправки мода нужна выпущенная версия с файлами.
- Несовместимо: загрузка работает по tus 1.0 (
POST /versions/{id}/uploads,PATCH/HEAD/DELETE /uploads/{id}). См. Загрузка мода. - Скачивание файлов, список содержимого архива (
GET /files/{id}/entries), антивирусная проверка перед выпуском (POST /versions/{id}/submit). - Каталог: игры, категории, моды, версии, теги, картинки, полнотекстовый поиск (
q), публичные профили.
2026-10-24
- Открыт
/api/v1: health, сессии,/me, лимиты с заголовкамиRateLimit-*,Idempotency-KeyдляPOST, ошибки RFC 9457, OpenAPI 3.1.