Repository navigation
05 API
Mikhail Deynekin edited this page Oct 22, 2026
·
1 revision
Базовый URL: https://<хост>/<префикс>/api/v1/. Машиночитаемая спецификация — /api/v1/openapi.yaml.
| Способ | Заголовки | Для кого |
|---|---|---|
| Bearer | Authorization: Bearer rg_… |
интеграции, cron, AI-агент |
| Cookie-сессия | cookie rg_session + X-CSRF-Token
|
веб-интерфейс |
CSRF-токен выдаёт GET /api/v1/bootstrap. Bearer-запросы CSRF не требуют.
read → write → dns:write; отдельно secrets:read, admin, regru:raw.
| Scope | Что разрешает |
|---|---|
read |
инвентарь, баланс, журналы |
write |
продление, автопродление, синхронизация, доступы |
dns:write |
DNS-записи и SOA |
secrets:read |
расшифровка паролей (каждое чтение — в журнал) |
admin |
токены, настройки, очистка зоны, сертификат |
regru:raw |
произвольные команды REG.RU API |
Успех:
{ "data": { }, "meta": { "total": 68, "page": 1, "per_page": 50 } }Ошибка:
{
"error": { "code": "VALIDATION_FAILED", "message": "…", "details": { } },
"request_id": "8d65ccf249db974a"
}request_id = заголовок X-Request-Id = строка в журнале.
-
Accept-Language: de-DE,de;q=0.9— язык ответа (en,ru,zh,hi,de,es); по умолчаниюen. -
GET /api/v1/locales— список языков. -
POST /api/v1/locale{"locale":"es"}— сохранить выбор в cookie. - Коды ошибок стабильны и не зависят от языка.
| Метод | Путь | Право | Описание |
|---|---|---|---|
| GET | /health |
— | статус, версия, PHP, БД |
| GET | /bootstrap |
опционально | актор, CSRF, enum'ы, локаль |
| GET | /locales |
— | список языков |
| POST | /locale |
— | сохранить язык |
| POST | /auth/login |
— | вход |
| POST | /auth/logout |
сессия | выход |
| GET | /auth/me |
любое | текущий актор |
| POST | /auth/password |
сессия | смена пароля |
| GET | /dashboard |
read | агрегаты обзора |
| GET | /inventory |
read | инвентарь без секретов |
| GET | /audit |
admin | журнал |
| Метод | Путь | Право |
|---|---|---|
| GET | /domains |
read |
| GET | /domains/{name} |
read |
| POST | /domains/{name}/renew |
write |
| POST | /domains/{name}/autorenew |
write |
| PUT | /domains/{name}/ns |
write |
| POST | /domains/{name}/refresh |
read |
| POST | /domains/{name}/certificate |
admin |
| GET/POST | /domains/{name}/dnssec |
read / admin |
| GET | /domains/{name}/dns |
read |
| POST/PUT/DELETE | /domains/{name}/dns/records |
dns:write |
| PUT | /domains/{name}/dns/soa |
dns:write |
| POST | /domains/{name}/dns/clear |
admin |
Типы записей: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA. Для SRV content — "<вес> <порт> <цель>"; для CAA — "[flags] <tag> <value>".
| Метод | Путь | Право |
|---|---|---|
| GET | /hostings |
read |
| GET | /hostings/{id} |
read |
| POST | /hostings/sync |
write |
| POST | /hostings/{id}/reveal |
secrets:read |
| GET/POST/PUT/DELETE | /credentials… |
read/write |
| POST | /credentials/{id}/reveal |
secrets:read |
| POST | /credentials/generate |
write |
| GET |
/billing, /billing/unpaid, /billing/bills
|
read |
| GET/POST | /sync |
read / write |
| GET/POST | /tokens |
admin |
| DELETE | /tokens/{id} |
admin |
| GET |
/meta, /meta/commands, /meta/prices
|
read |
| POST | /regru/call |
regru:raw |
# инвентарь
curl -s -H "Authorization: Bearer $TOKEN" \
"https://example.com/regru/api/v1/inventory" | jq
# DNS-запись
curl -s -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"subname":"api","rectype":"A","content":"203.0.113.10"}' \
"https://example.com/regru/api/v1/domains/example.com/dns/records"
# любая команда REG.RU
curl -s -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"command":"user/get_balance","input":{}}' \
"https://example.com/regru/api/v1/regru/call"- Вход: 10 попыток на аккаунт за 15 минут + лимит по IP.
- API панели: 600 запросов в минуту на токен/IP.
- Исходящие REG.RU: локальный предохранитель 1100/час; официально 1200/час.
- Ошибка лимита —
429сRetry-After.
REG.RU Control · репозиторий · релизы · MIT