Для внешнего API нужен токен подтверждённого аккаунта. Аккаунт
API документация
Генерация случайных данных через HTTP. Все методы ниже используют GET и возвращают JSON.
Как пользоваться API
GET /api/v1/*
Внешний API доступен только зарегистрированным пользователям с подтверждённым email. Все эндпоинты, включая каталоги, требуют пользовательский Bearer-токен. До 100 результатов за запуск. Сохраняются технические пределы: до 10 000 результатов в запросе, до 20 000 значений полей в конструкторе, естественные пределы генераторов и квоты внешних сервисов. Обычный API: 60 запросов/мин.
- Зарегистрируйтесь, подтвердите email и войдите. Откройте «Аккаунт» → «Токен API» → «Показать токен» и скопируйте его. Аккаунт ↗
- Передавайте токен только в заголовке Authorization: Bearer TOKEN. Замените TOKEN своим значением без кавычек вокруг него. Публичный ключ Supabase для этого не подходит.
- Выберите эндпоинт ниже, скопируйте URL и задайте параметры из его таблицы. Примеры используют генератор целых чисел; изменяйте путь и параметры для других генераторов.
Сейчас используется временный access token сессии Supabase, а не постоянный API-ключ. Его срок задаётся настройками проекта. При 401 снова откройте аккаунт, войдите при необходимости и скопируйте актуальный токен. Статический токен в скрипте сам не обновляется. Не публикуйте токен: он даёт права вашей сессии.
Запрос
Запросы: GET по HTTPS; параметры передаются в query string, без JSON-тела. Кодируйте значения через URLSearchParams или аналог библиотеки; один параметр — одно значение. count — положительное целое, в большинстве генераторов до 10000; точные пределы и доступные значения указаны ниже. Открытие ссылки без заголовка токена вернёт 401.
GET https://rand.by/api/v1/integer?count=3&min=1&max=100
Authorization: Bearer TOKENОтвет
Успех: HTTP 200 и JSON с массивом items. Тип элементов зависит от генератора. Каталоги имеют отдельную структуру: money/currencies возвращает asOf и items, geo/catalog — объект каталога. Ответы не кешируются. Сначала проверяйте HTTP-статус, затем разбирайте JSON; пример чисел справа условный.
{ "items": [42, 7, 91] }Готовые примеры и настройка
Для серверных примеров задайте RANDBY_API_TOKEN в окружении процесса; команда export показана во вкладке curl, вариант Windows — в PowerShell. Затем выполните подготовку выбранного примера. Не сохраняйте секреты в Git, URL, логах или публичных переменных Nuxt. В браузере используйте только токен текущего пользователя; общий токен храните на сервере. Пример маршрута Nuxt требует вашей собственной авторизации и ограничения частоты, иначе он откроет общий доступ к вашему токену через прокси.
Подготовка
export RANDBY_API_TOKEN='PASTE_TOKEN_HERE'curl
curl --fail-with-body --max-time 15 --get 'https://rand.by/api/v1/integer' \
--header "Authorization: Bearer $RANDBY_API_TOKEN" \
--data-urlencode 'count=3' \
--data-urlencode 'min=1' \
--data-urlencode 'max=100'| 400 | Неверные параметры, повторяющиеся значения или превышение технического предела. Проверьте таблицу эндпоинта и исправьте запрос. |
|---|---|
| 401 | Токен отсутствует, недействителен или истёк; также проверьте подтверждение email. Получите актуальный токен в аккаунте и повторите запрос. |
| 404 | Неизвестный путь или генератор. Проверьте URL; для API не нужен языковой префикс вроде /en. |
| 429 | Превышена частота публичного демо. Подождите минуту; не повторяйте запросы в цикле без задержки. |
| 503 | Сервис проверки авторизации временно недоступен или не настроен. Повторите позже; проверьте конфигурацию Supabase, если вы владелец сервиса. |
Песочница ниже работает без токена через отдельный демо-маршрут: до 10 записей и 60 запросов в минуту на IP. Это демонстрация. Внешний /api/v1/* остаётся закрытым и использует технические пределы эндпоинтов.
Генерация по seed для CI
POSTPremium
Одинаковые схема и seed дают одинаковые тестовые данные при той же версии генерации и тех же справочниках.
- API-ключи для CI · Создайте ключ и сохраните его в CI как секрет RANDBY_CI_KEY.
- Экспорт схемы · Экспортируйте схему Builder в JSON и храните рядом с тестовыми данными.
- Выберите пример ниже и запустите его из папки с экспортированной схемой.
Передавайте CI-ключ Premium в заголовке Authorization и храните его в секретах CI. Ключ действует 90 дней. Для ротации создайте новый ключ, обновите секрет и отзовите старый после успешного запуска.
Запрос
Отправьте POST-запрос с заголовком Content-Type application/json. В теле запроса три поля.
- schema
- Обязательный JSON-объект. Передайте содержимое экспортированной схемы Builder вместе со связанными таблицами.
- seed
- Обязательная непустая строка до 128 символов. Оставьте seed прежним для повтора или измените его для новой выборки.
- version
- Необязательная версия генерации. Текущее значение и значение по умолчанию — v1. В CI указывайте её явно.
POST https://rand.by/api/builder/ci/generate
Authorization: Bearer CI_KEY
Content-Type: application/json
{
"schema": {
"version": 1,
"count": 2,
"fields": [
{
"id": "id",
"path": "id",
"generator": "sequence",
"output": "value",
"settings": {
"start": 1,
"step": 1
},
"array": false,
"size": 1,
"nullPercent": 0
}
]
},
"seed": "fixtures-v1",
"version": "v1"
}Ответ
Ответ содержит version и либо items и columns, либо tables для схемы с несколькими таблицами. Для повторного прогона используйте ту же схему и seed.
Одна таблица
{
"version": "v1",
"columns": [
"id"
],
"items": [
{
"id": 1
},
{
"id": 2
}
]
}Несколько таблиц
{
"version": "v1",
"tables": [
{
"id": "main",
"name": "users",
"columns": [
"id"
],
"items": [
{
"id": 1
}
]
},
{
"id": "orders",
"name": "orders",
"columns": [
"user_id"
],
"items": [
{
"user_id": 1
}
]
}
]
}Храните схему, seed и версию генерации в репозитории или настройках задачи. Изменения схемы, генератора или справочников могут изменить результат. Данные по seed предназначены для тестов.
До 8 таблиц, 10 000 строк суммарно и 20 000 значений за запрос с учётом элементов массивов. Лимит — 60 запросов в минуту на аккаунт.
Готовые примеры и настройка
Примеры читают randby-builder-schema.json и записывают fixtures.json. Сохраните код под именем из блока «Подготовка». В GitHub Actions добавьте шаг после checkout и используйте файл в следующем шаге.
Подготовка
bash --version
curl --version
jq --version
bash generate-fixtures.shcurl + jq
set -euo pipefail
: "${RANDBY_CI_KEY:?RANDBY_CI_KEY is required}"
jq -n --slurpfile schema randby-builder-schema.json --arg seed 'fixtures-v1' \
'{schema: $schema[0], seed: $seed, version: "v1"}' |
curl --fail --silent --show-error --max-time 60 'https://rand.by/api/builder/ci/generate' \
--header "Authorization: Bearer $RANDBY_CI_KEY" \
--header 'Content-Type: application/json' \
--data-binary @- --output fixtures.json| 400 | Некорректный JSON, seed, версия или схема. При ошибке схемы проверьте data.code и data.field в ответе. |
|---|---|
| 401 | Ключ отсутствует, неверен, просрочен или отозван, либо Premium неактивен. Проверьте секрет и аккаунт. |
| 413 | Тело запроса больше 260 КиБ. Уменьшите размер схемы. |
| 429 | Превышен лимит запросов. Подождите минуту перед повтором. |
| 502 | Сервер не смог сгенерировать данные. Если схема корректна, повторите запрос позже. |
| 503 | Сервис проверки ключей временно недоступен. Повторите запрос позже. |
Эндпоинты API
Выберите метод, изучите его параметры и откройте песочницу. Измените строку запроса и выполните GET-запрос, чтобы увидеть реальный JSON-ответ сервера.
URL сам по себе не авторизует запрос. Получите токен в аккаунте и передайте его в заголовке Authorization: Bearer TOKEN. Не добавляйте токен в URL. Для проверки без токена используйте песочницу в документации. Как пользоваться API
Целые числа
GET /api/v1/integerГенерация отрицательных и положительных целых чисел
| Название | Описание | Значение по умолчанию |
|---|---|---|
| count | Количество генерируемых чисел (Целое число от 1 до 10000) | 100 |
| min | Левая граница диапазона генерируемых чисел (Целое число от -100000000 до 100000000) | -100 |
| max | Правая граница диапазона генерируемых чисел (Целое число от -100000000 до 100000000) | 100 |
| round | Округление полученных чисел до ближайших кратных заданному в этом параметре числу. Например, нужно получить набор чисел, кратных 50. Таким образом 2489 станет 2500, 131 станет 100, а 851 станет 900 | 0 |
Песочница: до 10 записей, до 60 запросов в минуту.
Вещественные числа
GET /api/v1/floatГенерация вещественных чисел с заданной точностью
| Название | Описание | Значение по умолчанию |
|---|---|---|
| count | Количество генерируемых чисел (Целое число от 1 до 10000) | 100 |
| min | Левая граница диапазона генерируемых чисел (Целое число от -100000000 до 100000000) | -1 |
| max | Правая граница диапазона генерируемых чисел (Целое число от -100000000 до 100000000) | 1 |
| precision | Количество знаков после запятой (от 1 до 8). | 2 |
Песочница: до 10 записей, до 60 запросов в минуту.
Байты
GET /api/v1/byteГенерация байтов в различных системах счисления
| Название | Описание | Значение по умолчанию |
|---|---|---|
| count | Количество генерируемых байтов (Целое число от 1 до 10000) | 100 |
| min | Левая граница диапазона генерируемых байтов (Целое число от 0 до 255) | 0 |
| max | Правая граница диапазона генерируемых байтов (Целое число от 0 до 255) | 255 |
| radix | Система счисления генерируемых байтов (2, 8, 10 или 16). | 10 |
Песочница: до 10 записей, до 60 запросов в минуту.
Пароли
GET /api/v1/passwordГенерация взломоустойчивых паролей
| Название | Описание | Значение по умолчанию |
|---|---|---|
| count | Количество генерируемых паролей (Целое число от 1 до 10000) | 1 |
| min | Минимальная длина генерируемого пароля (Целое число от 1 до 64) | 8 |
| max | Максимальная длина генерируемого пароля (Целое число от 1 до 64) | 12 |
| digits | Количество цифр в пароле (Целое число от 0 до 64). | 2 |
| capitals | Количество букв верхнего регистра в пароле (Целое число от 0 до 64). | 2 |
| special | Количество спецсимволов в пароле (Целое число от 0 до 64). | 2 |
Песочница: до 10 записей, до 60 запросов в минуту.
Время
GET /api/v1/timeГенерация случайного времени суток
| Название | Описание | Значение по умолчанию |
|---|---|---|
| count | Количество генерируемых времен (Целое число от 1 до 1440) | 10 |
| min | Левая граница диапазона генерируемых времен (от 00:00 до 23:59) | 08:00 |
| max | Правая граница диапазона генерируемых времен (от 00:00 до 23:59) | 17:00 |
| interval | Интервал генерируемых времен (Целое число от 1 до 60). | 1 |
| sort | Сортировка результатов ("asc" - по возрастанию, "desc" - по убыванию или "none" - без сортировки). | none |
Песочница: до 10 записей, до 60 запросов в минуту.
Дата
GET /api/v1/dateГенерация случайных календарных дат в различных форматах
| Название | Описание | Значение по умолчанию |
|---|---|---|
| count | Количество дат: целое число от 1 до 10000. | 10 |
| min | Левая граница диапазона генерируемых дат в формате "ГГГГ-ММ-ДД" Формат может отличаться, но важно, чтобы он был валиден для функции Date.parse() | 0000-01-01 |
| max | Правая граница диапазона генерируемых дат в формате "ГГГГ-ММ-ДД" Формат может отличаться, но важно, чтобы он был валиден для функции Date.parse() | 2999-12-31 |
| format | Формат отображения генерируемых дат Подробнее о форматах можно прочитать здесь. | DD.MM.YYYY |
| locale | Языковая локаль генерируемых дат Двухбуквенный код стандарта ISO 639-1 | en (резервная локаль) |
| days | Дни недели, которые следует включать в набор генерируемых дат (целые числа от 1 до 7, разделенные запятой. 1 - понедельник, 7 - воскресенье) Если параметр не задан, сгенерирован будет любой день недели | 1,2,3,4,5,6,7 |
| sort | Сортировка результатов ("asc" - по возрастанию, "desc" - по убыванию или "none" - без сортировки). | none |
Песочница: до 10 записей, до 60 запросов в минуту.
WEB-цвета
GET /api/v1/colorГенерация цветовых кодов в разных форматах
| Название | Описание | Значение по умолчанию |
|---|---|---|
| count | Количество генерируемых элементов (Целое число от 1 до 10000) | 1 |
Песочница: до 10 записей, до 60 запросов в минуту.
Географические координаты
GET /api/v1/geoГенерируйте координаты по всему миру, только на суше или на выбранном континенте. Выбирайте случайные города и аэропорты с названиями и IATA-кодами.
| Название | Описание | Значение по умолчанию |
|---|---|---|
| count | Количество результатов: целое число от 1 до 10000, по умолчанию 1. | 1 |
| mode | coordinates — весь мир, land — без океанов, city — города, airport — аэропорты с IATA. coordinateslandcityairport | coordinates |
| continent | any либо AF, AN, AS, EU, NA, OC, SA. Выбранный континент ограничивает координаты сушей. Если в каталоге нет подходящих записей, возвращается 400. anyAFANASEUNAOCSA | any |
Песочница: до 10 записей, до 60 запросов в минуту.
Генератор случайных имен
GET /api/v1/namesСлучайные имена с заданным порядком частей и данными о культуре. Массив items содержит fullName, locale, sex, firstName, lastName и patronymic. Невыбранные или недоступные части — null. Некорректные параметры возвращают HTTP 400. Уникальность и проверка личности не предусмотрены.
| Название | Описание | Значение по умолчанию |
|---|---|---|
| count | Количество имен: целое число от 1 до 10000. | 10 |
| locales | Неповторяющиеся коды культур имен через запятую или be для белорусских имен. Все доступные коды перечислены ниже. Одна культура на имя, равные вероятности. Отмеченные локали используют английский словарь при отсутствии данных. af_ZAarazbebn_BDcs_CZcydadede_ATde_CHdvelenen_AUen_AU_ockeren_BORKen_CAen_GBen_GHen_HKen_IEen_INen_NGen_USen_ZAeoeses_MXfafifrfr_BEfr_CAfr_CHfr_LUfr_SNhehrhuhyid_IDitjaka_GEkoku_ckbku_kmr_latinlvmknb_NOnenlnl_BEplpt_BRpt_PTroro_MDrusksl_SIsr_RS_latinsvta_INthtrukuruz_UZ_latinviyo_NGzh_CNzh_TWzu_ZA | ru |
| parts | Неповторяющиеся части в порядке вывода: firstName, lastName, patronymic. Отчества только для ru, be, uk, иначе пропускаются. При выборе только отчества используются совместимые культуры; если их нет — 400. | firstName,lastName |
| sex | Формы имен: any, male или female. В режиме any мужские и женские имена равновероятны для каждой записи. | any |
Песочница: до 10 записей, до 60 запросов в минуту.
Генератор случайных email-адресов
GET /api/v1/emailГенерируйте случайные email-адреса: выбирайте культуру имен, случайных провайдеров, тестовые домены или свой домен и основу имени пользователя.
| Название | Описание | Значение по умолчанию |
|---|---|---|
| count | Количество адресов: целое число от 1 до 10000. | 10 |
| locale | Один код культуры имен из списка ниже. По умолчанию: en. af_ZAarazbebn_BDcs_CZcydadede_ATde_CHdvelenen_AUen_AU_ockeren_BORKen_CAen_GBen_GHen_HKen_IEen_INen_NGen_USen_ZAeoeses_MXfafifrfr_BEfr_CAfr_CHfr_LUfr_SNhehrhuhyid_IDitjaka_GEkoku_ckbku_kmr_latinlvmknb_NOnenlnl_BEplpt_BRpt_PTroro_MDrusksl_SIsr_RS_latinsvta_INthtrukuruz_UZ_latinviyo_NGzh_CNzh_TWzu_ZA | en |
| mode | free: случайные провайдеры; example: example.com/net/org; custom: домен из provider. | free |
| provider | Обязателен только при mode=custom. Домен без URL, порта и адреса почты. Международные домены преобразуются в ASCII. | |
| firstName | Необязательная основа имени, до 80 символов; пустое значение — случайное. Генератор может нормализовать, транслитерировать или пропускать части. | |
| lastName | Необязательная основа имени, до 80 символов; пустое значение — случайное. Генератор может нормализовать, транслитерировать или пропускать части. | |
| allowSpecialCharacters | true или false: дополнительные знаки пунктуации в части адреса до домена. | false |
Песочница: до 10 записей, до 60 запросов в минуту.
Генератор случайных денежных сумм
GET /api/v1/moneyГенерируйте случайные денежные суммы в заданном диапазоне. Выбирайте несколько валют и отдельную локаль форматирования для каждой валюты.
| Название | Описание | Значение по умолчанию |
|---|---|---|
| count | Количество сумм: целое число от 1 до 10000. | 10 |
| min | Включительная граница от -1000000000 до 1000000000, до 4 дробных знаков. Точка или запятая, без разделителей тысяч. | 0 |
| max | Включительная граница от -1000000000 до 1000000000, до 4 дробных знаков. Точка или запятая, без разделителей тысяч. | 1000 |
| currencies | Неповторяющиеся коды валют через запятую. Для каждой записи одна валюта выбирается равновероятно. AEDAFNALLAMDAOAARSAUDAWGAZNBAMBBDBDTBHDBIFBMDBNDBOBBRLBSDBTNBWPBYNBZDCADCDFCHFCLPCNYCOPCRCCUPCVECZKDJFDKKDOPDZDEGPERNETBEURFJDFKPGBPGELGHSGIPGMDGNFGTQGYDHKDHNLHTGHUFIDRILSINRIQDIRRISKJMDJODJPYKESKGSKHRKMFKPWKRWKWDKYDKZTLAKLBPLKRLRDLSLLYDMADMDLMGAMKDMMKMNTMOPMRUMURMVRMWKMXNMYRMZNNADNGNNIONOKNPRNZDOMRPABPENPGKPHPPKRPLNPYGQARRONRSDRUBRWFSARSBDSCRSDGSEKSGDSHPSLESOSSRDSSPSTNSYPSZLTHBTJSTMTTNDTOPTRYTTDTWDTZSUAHUGXUSDUYUUZSVESVNDVUVWSTXAFXCDXCGXOFXPFYERZARZMWZWG | USD,EUR |
| locales | Необязательные пары ВАЛЮТА:локаль через запятую, например USD:en-US,EUR:fr-FR. Только выбранные валюты и разрешенные для них локали. Для пропущенных валют используется локаль по умолчанию. Список: money/currencies. |
Песочница: до 10 записей, до 60 запросов в минуту.
Валюты и локали
GET /api/v1/money/currenciesСписок кодов валют, дробных знаков, defaultLocale и допустимых locales. Поле asOf содержит дату снимка каталога.
Песочница: до 10 записей, до 60 запросов в минуту.
Генератор раскладов таро
GET /api/v1/tarotСделайте случайный расклад из колоды таро на 78 карт. Одна карта, прошлое–настоящее–будущее, крест из пяти карт или свой расклад с перевернутыми положениями. Краткие авторские пояснения помогают рассматривать символы как темы для размышления. Это развлечение, а не предсказания или описание личности. У младших арканов объединяются темы ранга и масти; перевернутая карта предлагает посмотреть на препятствия и избыток.
| Название | Описание | Значение по умолчанию |
|---|---|---|
| spread | Шаблон: single (1), three (3), cross (5) или custom. | three |
| count | Для custom: целое число от 1 до размера колоды (78, 22 или 56). Для шаблона явно переданное количество должно совпадать с его размером. | 3 |
| deck | full: 78 карт; major: 22 старших аркана; minor: 56 младших арканов. Повторов нет. | full |
| reversed | true или false. При true каждая выбранная карта независимо переворачивается с вероятностью 50%. | true |
| locale | Язык названий карт, позиций и положений: один из 13 кодов локалей интерфейса. ruendeplbyukesfritptidjatr | en |
Песочница: до 10 записей, до 60 запросов в минуту.
Генератор случайных знаков зодиака
GET /api/v1/zodiacГенерируйте случайные знаки западного, китайского, вьетнамского и ведического зодиака. Выбирайте системы, восточные стихии и генерацию без повторов. Краткие авторские пояснения помогают рассматривать символы как темы для размышления. Это развлечение, а не предсказания или описание личности.
| Название | Описание | Значение по умолчанию |
|---|---|---|
| count | Количество результатов: целое число от 1 до 10000. | 1 |
| systems | Неповторяющиеся системы через запятую: western, chinese, vietnamese, vedic. Системы с доступными вариантами выбираются равновероятно. westernchinesevietnamesevedic | western |
| withElements | true или false. Китайская и вьетнамская системы используют 60 допустимых сочетаний животного и стихии при true или 12 животных при false. Западные и ведические стихии остаются фиксированными. | true |
| unique | true или false. Запрещает повтор id в одном ответе. Количество не должно превышать число вариантов: 12 для каждой западной/ведической системы, 12 или 60 для каждой восточной. | false |
| locale | Один из 13 кодов языка интерфейса; влияет только на названия. По умолчанию: en. enrubyukdeplesfritptidjatr | en |
Песочница: до 10 записей, до 60 запросов в минуту.
Магический шар
GET /api/v1/magic-ballЗадайте вопрос мысленно и потрясите магический шар: случайный ответ появится в светящемся окошке. Можно нажать на шар или воспользоваться кнопкой. Вопрос остается у вас: сервер получает только язык ответа. Каждый из 20 ответов равновероятен: 10 положительных, 5 неопределенных и 5 отрицательных. Это игра, а не способ предсказать будущее.
| Название | Описание | Значение по умолчанию |
|---|---|---|
| locale | Язык названий карт, позиций и положений: один из 13 кодов локалей интерфейса. ruendebyukplesfritptidjatr | en |
Песочница: до 10 записей, до 60 запросов в минуту.
Каталог геогенератора
GET /api/v1/geo/catalogРазмеры выборок по континентам, дата снимка, ссылки на открытые источники и контрольные суммы файлов. Генерация работает по локальному снимку данных.
Песочница: до 10 записей, до 60 запросов в минуту.