Перейти к содержимому

Справочник API

Справочник собран из OpenAPI того же коммита, что и сайт. Файл целиком: openapi.json. В нём servers указывает на боевой API, а кнопка «Попробовать запрос» отправляет запросы на https://api.staging.donatty.com.

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

Для публичного ключа сервер проверяет адрес сайта (Origin). Из справочника запрос уходит с адреса https://developers.staging.donatty.com: чтобы ключ сработал, добавьте его в адреса ключа или проверяйте ключ со своего сайта, как описано в быстром старте для сайта.

Текстовая версия справочника

Профиль стримера. Публичный профиль стримера, выпустившего ключ.

Доступ: секретный ключ (personalToken), право profile:read; публичный ключ (publishableKey), право profile:read

Ответы:

Пример ответа 200:

{
"id": "str_5b0c2f4e-8d61-4f43-9a7e-2f1d3c6b9a10",
"slug": "teststreamer",
"displayName": "Test Streamer",
"avatarUrl": "https://storage.donatty.com/avatars/teststreamer.png",
"donatePageUrl": "https://donatty.com/teststreamer"
}

Донаты. Все донаты стримера от новых к старым: Донатти и Donation Alerts (если подключён), включая отклонённые модерацией и ожидающие её решения, с полным текстом и текущим статусом модерации. Без контактов донатеров, платёжных данных и комиссий. Только секретные ключи.

Доступ: секретный ключ (personalToken), право donations:read

Параметры:

Имя Где Тип Описание
limit в адресе integer, 1–100, по умолчанию 20
cursor в адресе string nextCursor предыдущей страницы.
since в адресе string:date-time Только донаты, созданные в этот момент или позже (RFC 3339).
source в адресе список string, значения: DONATTY, DONATION_ALERTS Источники через запятую.
moderation в адресе список string, значения: PENDING, PASSED, BLOCKED, NONE Статусы модерации через запятую, например PASSED,NONE.

Ответы:

Пример ответа 200:

{
"items": [
{
"id": "don_0f6e2a4c-91b3-4d7a-8c5e-3b2a1f0e9d84",
"createdAt": "2026-11-09T10:15:30.123456Z",
"source": "DONATTY",
"donorName": "Alex",
"message": "Thanks for the stream!",
"amount": {
"value": "500.00",
"currency": "RUB"
},
"goal": {
"id": "goal_7e3a9c10-4b2d-4f8e-a1c6-0d9b8e7f6a52",
"title": "New microphone"
},
"moderation": {
"status": "PENDING",
"deadline": "2026-11-09T10:16:30Z"
},
"media": {
"title": "Song of the day",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"provider": "YOUTUBE",
"durationSeconds": 212,
"moderation": {
"status": "PENDING",
"deadline": "2026-11-09T10:16:30Z"
}
}
},
{
"id": "don_3c9d7b21-5e84-4a6f-b0d2-8e1f4a7c6b35",
"createdAt": "2026-11-09T10:02:11Z",
"source": "DONATTY",
"donorName": "Anonymous",
"message": "This text was rejected by moderation but is returned in full.",
"amount": {
"value": "150.50",
"currency": "RUB"
},
"goal": null,
"moderation": {
"status": "BLOCKED",
"deadline": null
},
"media": null
},
{
"id": "don_9a1b2c3d-4e5f-4a6b-8c7d-0e1f2a3b4c5d",
"createdAt": "2026-11-09T09:58:00Z",
"source": "DONATION_ALERTS",
"donorName": "Maria",
"message": "Hi from Donation Alerts",
"amount": {
"value": "5.00",
"currency": "USD"
},
"goal": null,
"moderation": {
"status": "NONE",
"deadline": null
},
"media": null
}
],
"nextCursor": "MTc5NDIxODI4MDAwMDAwMC45YTFiMmMzZC00ZTVmLTRhNmItOGM3ZC0wZTFmMmEzYjRjNWQ"
}

Цели сбора. Цели сбора Донатти от новых к старым. raised — сумма, собранная целью по всем донатам Донатти (включая отклонённые модерацией), плюс её ручной старт; цели Donation Alerts и настройки виджета не учитываются, поэтому прогресс на стриме может отличаться.

Доступ: секретный ключ (personalToken), право goals:read; публичный ключ (publishableKey), право goals:read

Параметры:

Имя Где Тип Описание
status в адресе string, значения: ACTIVE, CLOSED
limit в адресе integer, 1–100, по умолчанию 20
cursor в адресе string nextCursor предыдущей страницы.

Ответы:

Пример ответа 200:

{
"items": [
{
"id": "goal_7e3a9c10-4b2d-4f8e-a1c6-0d9b8e7f6a52",
"title": "New microphone",
"target": {
"value": "15000.00",
"currency": "RUB"
},
"raised": {
"value": "6420.50",
"currency": "RUB"
},
"status": "ACTIVE",
"endsAt": "2026-12-31T21:00:00Z",
"createdAt": "2026-10-01T12:00:00Z"
}
],
"nextCursor": "MTc5MDg1NjAwMDAwMDAwMC43ZTNhOWMxMC00YjJkLTRmOGUtYTFjNi0wZDliOGU3ZjZhNTI"
}

Топ донатеров. Топ донатеров за календарный период [from, to) в зоне timeZone: все подключённые источники в рублях, донатеры с одним именем объединены по источникам, сортировка по сумме по убыванию.

Доступ: секретный ключ (personalToken), право stats:read; публичный ключ (publishableKey), право stats:read

Параметры:

Имя Где Тип Описание
period в адресе string, значения: DAY, WEEK, MONTH, YEAR, ALL_TIME, по умолчанию ALL_TIME
limit в адресе integer, 1–100, по умолчанию 10
timeZone в адресе string, по умолчанию Europe/Moscow Часовой пояс календарного периода (IANA).

Ответы:

Пример ответа 200:

{
"period": "WEEK",
"from": "2026-11-08T21:00:00Z",
"to": "2026-11-15T21:00:00Z",
"items": [
{
"rank": 1,
"name": "Alex",
"total": {
"value": "12500.00",
"currency": "RUB"
}
},
{
"rank": 2,
"name": "Maria",
"total": {
"value": "4300.75",
"currency": "RUB"
}
},
{
"rank": 3,
"name": "Ivan",
"total": {
"value": "1000.00",
"currency": "RUB"
}
}
]
}

Сумма донатов. Сумма донатов за календарный период [from, to) в зоне timeZone: все подключённые источники в рублях.

Доступ: секретный ключ (personalToken), право stats:read; публичный ключ (publishableKey), право stats:read

Параметры:

Имя Где Тип Описание
period в адресе string, значения: DAY, WEEK, MONTH, YEAR, ALL_TIME, по умолчанию ALL_TIME
timeZone в адресе string, по умолчанию Europe/Moscow Часовой пояс календарного периода (IANA).

Ответы:

Пример ответа 200:

{
"period": "DAY",
"from": "2026-11-09T17:00:00Z",
"to": "2026-11-10T17:00:00Z",
"total": {
"value": "18250.25",
"currency": "RUB"
}
}
Поле Тип Описание
value string Десятичная сумма с двумя знаками после запятой.
currency string Код ISO 4217.
Поле Тип Описание
status string, значения: PENDING, PASSED, BLOCKED, NONE PENDING — модерация идёт; PASSED — одобрен (в том числе «Повторить на стриме»); BLOCKED — отклонён; NONE — модерации не было (выключена, никого нет онлайн, Donation Alerts).
deadline string,null:date-time Только для PENDING: когда сработает решение по умолчанию.
Поле Тип Описание
id string
slug string
displayName string
avatarUrl string,null:uri
donatePageUrl string:uri
Поле Тип Описание
id string
createdAt string:date-time
source string, значения: DONATTY, DONATION_ALERTS
donorName string
message string
amount Money
goal object (или null)
moderation Moderation
media object (или null)
Поле Тип Описание
items список Donation
nextCursor string,null Передайте как cursor, чтобы получить следующую страницу; null — страница последняя.
Поле Тип Описание
id string
title string
target Money
raised Money
status string, значения: ACTIVE, CLOSED
endsAt string,null:date-time
createdAt string:date-time
Поле Тип Описание
items список Goal
nextCursor string,null Передайте как cursor, чтобы получить следующую страницу; null — страница последняя.
Поле Тип Описание
period string, значения: DAY, WEEK, MONTH, YEAR, ALL_TIME
from string:date-time
to string:date-time Не включается: начало следующего периода; для ALL_TIME — момент ответа.
items список object
Поле Тип Описание
period string, значения: DAY, WEEK, MONTH, YEAR, ALL_TIME
from string:date-time
to string:date-time Не включается.
total Money
Поле Тип Описание
type string:uri https://developers.donatty.com/errors/<code>
title string
status integer
detail string
code string, значения: missing_token, invalid_token, token_expired, token_in_query, wrong_token_type, insufficient_scope, origin_not_allowed, invalid_parameter, not_found, rate_limited, internal_error, service_unavailable
policy (необязательный) string, значения: app-user, app, user, publishable-ip Только для rate_limited: исчерпанный уровень.