Практическая документация соответствует текущей публичной версии API сервиса «Химия слова».
Быстрый старт
- Коммерческие маршруты:
/api/v1/.... - Публичные инструменты:
/api/public/v1/tools/.... - Коммерческий запрос выполняется с заголовком:
Authorization: Bearer <API_KEY>. - Создавать и отзывать ключи можно после регистрации в
личном кабинете. - В ответе используется единый envelope:
ok,data,
meta.request_id.
Rate-limit заголовки
Коммерческий и анонимный публичный контуры используют независимые счётчики. Для публичных вычислительных запросов заголовок X-RateLimit-Scope равен public; стоимость операции видна в X-RateLimit-Weight. В успешных ответах и при исчерпании лимита используются:
X-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-ResetRateLimit-Policy- и
Retry-Afterна 429.
Технический лимит зависит от тарифа плана и не дублируется в коде публичного блока этой страницы.
Происхождение и лицензии
Морфологические ответы содержат manifest_registry_version, current_registry_version, точные версии движка и словаря, источник, лицензию, attribution и уведомление об изменениях. Неизменяемая версия manifest и текущая версия реестра намеренно разделены. Полное публичное уведомление опубликовано на странице «Источники и лицензии».
Безопасный пример запроса к коммерческому endpoint
curl -X POST "https://proto-ere.ru/api/v1/money/words" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <API_KEY>" \
-d '{"value":"2500","currency":"RUB"}'
{
"data": {
"input": "2500",
"normalized": "2500",
"currency": "RUB",
"negative": false,
"rubles_value": "2500",
"rubles_words": "две тысячи пятьсот",
"words": "две тысячи пятьсот рублей",
"confidence": 1.0,
"warnings": [],
"sources": ["project-rules"]
},
"meta": {"request_id": "req-..."},
"ok": true
}
Справка по ключевым правилам по контракту
Money words
- Scope: только целые RUB без копеек и без десятичной части.
- Токен для
value:^-?(0|[1-9][0-9]{0,35})$. - Диапазон: до 36 цифр по модулю; максимальное абсолютное значение — 36 девяток.
- Крупнейший поддерживаемый именованный класс — дециллионы; квинтиллионы и секстиллионы также поддерживаются.
- Строки с
1.00,10.0, ведущими нулями, пробелами,
JSON-числами или boolean отбрасываются схемой как422 validation_error.
Дата
На страницах сайта пользователь вводит и видит дату как
ДД.ММ.ГГГГ. Ниже описан отдельный машинный JSON-контракт API,
в котором дата передаётся в ISO 8601.
- Паттерн: строго
^[0-9]{4}-[0-9]{2}-[0-9]{2}$, длина 10 символов. - Допустимый диапазон:
1900-01-01..2099-12-31. - Обрабатываются только корректные даты календаря.
Примеры public API (без ключа)
curl -X POST "https://proto-ere.ru/api/public/v1/tools/parse/word" \
-H "Content-Type: application/json" \
-d '{"word":"дом","limit":1}'
curl -X POST "https://proto-ere.ru/api/public/v1/tools/decline/word/paradigm" \
-H "Content-Type: application/json" \
-d '{"word":"дом"}'
Маршрут /paradigm возвращает сразу все шесть падежей; для слова,
словосочетания и должности ответ содержит единственное и множественное число.
Выбирать один падеж в пользовательской форме не требуется.
curl -X POST "https://proto-ere.ru/api/public/v1/tools/number/words" \
-H "Content-Type: application/json" \
-d '{"value":"-42","gender":"feminine"}'
Текстовые инструменты
curl -X POST "https://proto-ere.ru/api/public/v1/tools/text/slug" \
-H "Content-Type: application/json" \
-d '{"text":"Русский язык для людей","separator":"-"}'
curl -X POST "https://proto-ere.ru/api/public/v1/tools/text/case" \
-H "Content-Type: application/json" \
-d '{"text":"пРИВЕТ. мИР!","mode":"sentence"}'
curl -X POST "https://proto-ere.ru/api/public/v1/tools/text/layout" \
-H "Content-Type: application/json" \
-d '{"text":"Ghbdtn? rfr ltkf&","direction":"auto"}'
curl -X POST "https://proto-ere.ru/api/public/v1/tools/html/clean" \
-H "Content-Type: application/json" \
-d '{"html":"<p class=\"MsoNormal\">Текст <strong>жирный</strong></p>"}'
Очиститель HTML сохраняет безопасную смысловую разметку, таблицы и разрешённые
ссылки, но удаляет скрипты, обработчики событий, служебные стили и классы.
Лимит текста и HTML — 100 000 символов; для генератора ЧПУ — 5 000.
Python без сторонних зависимостей
import json
from urllib.request import Request, urlopen
request = Request(
"https://proto-ere.ru/api/public/v1/tools/stress/lookup",
data=json.dumps({"word": "алфавит"}).encode("utf-8"),
headers={"Content-Type": "application/json"},
method="POST",
)
with urlopen(request, timeout=10) as response:
result = json.load(response)
print(result["data"]["stressed_form"])
PHP cURL
<?php
$handle = curl_init('https://proto-ere.ru/api/public/v1/tools/stress/lookup');
curl_setopt_array($handle, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(['word' => 'алфавит'], JSON_UNESCAPED_UNICODE),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 10,
]);
$result = json_decode(curl_exec($handle), true, 512, JSON_THROW_ON_ERROR);
curl_close($handle);
echo $result['data']['stressed_form'];
Рабочие публичные endpoint’ы
POST /api/v1/parse/word—/api/public/v1/tools/parse/wordPOST /api/v1/decline/word—/api/public/v1/tools/decline/wordPOST /api/v1/number/words—/api/public/v1/tools/number/wordsPOST /api/v1/money/words—/api/public/v1/tools/money/wordsPOST /api/v1/date/words—/api/public/v1/tools/date/wordsPOST /api/v1/fio/decline—/api/public/v1/tools/fio/declinePOST /api/v1/decline/phrase—/api/public/v1/tools/decline/phrasePOST /api/v1/position/decline—/api/public/v1/tools/position/declinePOST /api/v1/org/decline—/api/public/v1/tools/org/declinePOST /api/v1/geo/forms—/api/public/v1/tools/geo/formsPOST /api/v1/stress/lookup—/api/public/v1/tools/stress/lookupPOST /api/v1/paronyms/lookup—/api/public/v1/tools/paronyms/lookupPOST /api/v1/text/slug—/api/public/v1/tools/text/slugPOST /api/v1/text/case—/api/public/v1/tools/text/casePOST /api/v1/text/layout—/api/public/v1/tools/text/layoutPOST /api/v1/html/clean—/api/public/v1/tools/html/clean
Полные таблицы склонения для пользовательского интерфейса
POST /api/public/v1/tools/decline/word/paradigmPOST /api/public/v1/tools/fio/paradigmPOST /api/public/v1/tools/decline/phrase/paradigmPOST /api/public/v1/tools/position/paradigmPOST /api/public/v1/tools/org/paradigm
Ошибки
422— схема: validation_error.400— проверенные доменные ошибки для бизнес-ограничений.- Внутренние трассировки и secrets в ответах не передаются.