Glitch
Документация API · Как устроено API

Основы

Как устроено API

Адрес и версия

Все запросы отправляются на один адрес. Номер версии входит в него.

https://api.glitchapp.online/v10

Сейчас действует версия 10, та же, что у API Discord. Всё, что в ней опубликовано, мы не ломаем. Новые поля и ручки добавляются, а существующие не переименовываются, не удаляются и не меняют смысл. Если когда-нибудь понадобится несовместимое изменение, оно выйдет в новой версии с новым адресом, а старая версия продолжит работать.

Отсюда простое правило для вашей программы. Не падайте, если в ответе появилось незнакомое поле, просто пропускайте его.

Запросы принимаются только по HTTPS.

Вход

Как программа подтверждает, что ей можно выполнить запрос, зависит от того, кто она.

КтоКак подтверждает
ВебхукКлючом в адресе, /webhooks/{webhook.id}/{webhook.token}. Заголовок Authorization не нужен
БотЗаголовком Authorization: Bot <ключ бота>. Появится вместе с ботами

Ключи выглядят как длинная случайная строка из латинских букв, цифр, - и _. Храните их так же, как пароли.

Запросы

JSON

Обычный запрос отправляется с телом в JSON и заголовком Content-Type: application/json.

curl
curl -X POST "https://api.glitchapp.online/v10/webhooks/ID/KEY" \
  -H "Content-Type: application/json" \
  -d '{"content": "Привет", "username": "Мониторинг"}'

Файлы

Запрос с файлами отправляется формой multipart/form-data, так же как в Discord.

  • Сами файлы передаются полями files[0], files[1] и так далее, до 10 файлов.
  • Остальные поля запроса передаются одной JSON-строкой в поле payload_json.
  • Имя файла берётся из формы. По нему файл подписывается в канале, и на него же ссылаются карточки через attachment://имя.
curl
curl -X POST "https://api.glitchapp.online/v10/webhooks/ID/KEY" \
  -F 'payload_json={"content": "Логи за ночь", "username": "Сервер"}' \
  -F "files[0]=@server.log"

Если полей немного, вместо payload_json их можно передать обычными полями той же формы, например -F "content=Логи за ночь". Но вложенные объекты вроде embeds и allowed_mentions так передать нельзя, для них нужен payload_json.

Размер

Весь запрос вместе с файлами должен быть не больше 30 МБ. Запрос крупнее получает отказ 413 с кодом 40005, как в Discord.

Параметры, которых нет в Glitch

Если в запросе есть поле Discord, которого Glitch не понимает, например tts: true или components, сервер не станет его молча пропускать. Запрос получит отказ 50035, и в сообщении будет название поля. Поля со значением по умолчанию (tts: false, flags: 0, пустые списки) отказа не вызывают. Библиотеки часто отправляют их всегда, и это нормально.

Список всего, чего в Glitch нет, есть на странице Отличия от Discord.

Ответы

  • Успешный ответ — это 200 с объектом в JSON или 204 без тела.
  • Любой отказ имеет одинаковый вид {"code": …, "message": "…"}. Подробнее о нём на странице Ошибки.
  • Каждый ответ содержит заголовки X-RateLimit-*. По ним видно, сколько запросов ещё можно сделать, см. Пределы частоты.

Номера

У каждого объекта есть номер, поле id. Номера ссылок на другие объекты лежат в полях вида channel_id, webhook_id, guild_id. В ответах номер всегда передаётся строкой, как в Discord.

JSON
{"id": "1053147923963904", "channel_id": "1053143874918656"}

Строкой номер передаётся потому, что в JavaScript обычное число теряет точность на таких больших значениях. В запросах номер можно передавать и строкой, и числом.

Номера Glitch растут со временем, поэтому более новый объект имеет больший номер. Но вычислить по номеру дату создания нельзя, как это делают в Discord. Для этого у объектов есть поля времени.

Время

Время передаётся строкой в формате ISO 8601, всегда в UTC и с явным поясом.

JSON
{"timestamp": "2026-10-28T08:30:00+00:00", "edited_timestamp": null}

Время, которое передаёте вы, например timestamp в карточке, тоже записывается в ISO 8601. Если пояс не указан, время считается в UTC.

Язык сообщений

Поле message в отказах написано для человека. Язык выбирается по заголовку Accept-Language. Поддерживаются русский (ru), английский (en), украинский (uk) и китайский (zh), по умолчанию ответ приходит на русском.

curl
curl -H "Accept-Language: en" …

Программа не должна разбирать текст message. Он может меняться, а для решений есть поле code.

На этой странице
  1. Адрес и версия
  2. Вход
  3. Запросы
  4. Ответы
  5. Номера
  6. Время
  7. Язык сообщений