Начало работы
Быстрый старт
От регистрации до первого запроса – три шага: вход по коду из письма, ключ в кабинете, запрос к шлюзу https://api.lexaai.ru.
1. Вход и ключ
- Откройте app.lexaai.ru, укажите адрес электронной почты и введите шестизначный код из письма. Код действует 10 минут. Учетная запись создается при первом входе.
- В кабинете откройте раздел «Свой агент» и выпустите ключ, задав ему название, например по имени интеграции.
- Скопируйте ключ сразу: полностью он показывается один раз. Ключ начинается с
lx_. Храните его в хранилище секретов или в переменной окружения, а не в коде.
export LEXAAI_API_KEY="lx_..."Ограничение частоты, отзыв ключа и запросы, недоступные по ключу, описаны в разделе Авторизация и лимиты.
2. Досье по вопросу
POST /v1/research проходит по очереди закон, разъяснения и практику и возвращает досье – дословные выдержки с реквизитами и провенансом. Языковая модель в этом режиме не вызывается, запрос списывает одну единицу.
curl -sS https://api.lexaai.ru/v1/research \
-H "X-Api-Key: $LEXAAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"question": "С какой даты применяется кадастровая стоимость, установленная в размере рыночной по ст. 22.1 Закона о кадастровой оценке?"}'Сокращенный ответ:
{
"question": "С какой даты применяется кадастровая стоимость, ...",
"as_of": "2026-10-07",
"extractive": true,
"steps": [
{"step": "extract_norms", "available": true, "norms_found": 1},
{"step": "law", "norm_lookups": 1, "search_available": true},
{"step": "clarifications", "search_segments": 2, "by_norm_hits": 3},
{"step": "practice", "search_available": true, "by_norm_hits": 20}
],
"norms_in_question": [{"law_key": "237-ФЗ", "article": "22.1"}],
"law": {"norms": ["..."], "search": {"available": true, "results": ["..."]}},
"clarifications": {"search": ["..."], "by_norm": ["..."]},
"practice": {"search": {"available": true, "results": ["..."]}, "by_norm": ["..."]},
"practice_coverage": "Состав всего корпуса судебной практики по снимку на ...",
"gaps": [],
"disclaimer": "Справочная информация на основе дословных выдержек из правовых источников; ...",
"full_context": true,
"billing": {"actual_cost_usd": 0, "known_cost_usd": 0, "unpriced_calls": 0, "llm_calls": 0, "models": [], "source": "provider_usage"}
}Что читать в ответе:
steps– этапы конвейера и число находок на каждом. Все этапы обязательны; пустой результат тоже фиксируется.law,clarifications,practice– слои досье: нормы в редакции на датуas_of, разъяснения судов и госорганов, судебные акты. Каждый фрагмент – дословный текст с реквизитами документа и хешем источника.gaps– чего не хватило: недоступный слой, норма вне корпуса, отсутствие редакции на дату, срез корпуса практики.disclaimer– текст, который клиент обязан показать конечному пользователю (см. Правила использования API).
Поля досье подробно описаны в разделе Исследование.
3. Поиск
POST /v1/search ищет одним запросом в слое законодательства и в слое судебной практики; слои возвращаются раздельно. Запрос списывает одну единицу.
curl -sS https://api.lexaai.ru/v1/search \
-H "X-Api-Key: $LEXAAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "установление кадастровой стоимости в размере рыночной", "as_of": "2025-01-01", "top_k": 5}'Поиск только по судебной практике, с фильтрами и сортировкой по дате – POST /v1/practice/search:
curl -sS https://api.lexaai.ru/v1/practice/search \
-H "X-Api-Key: $LEXAAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "расходы на отчет об оценке", "filters": {"date_from": "2025-01-01"}, "sort": "date", "top_k": 10}'Что читать в ответе:
layers.norms– нормы в редакции на датуas_of: у действующихok: true;foundпоказывает, нашлась ли хотя бы одна действующая норма.layers.practiceи выдача/v1/practice/search– фрагменты актов с реквизитами вdocumentи провенансом вprovenance;total– сколько найдено,shown– сколько показано.disclaimer– как в досье.
Поля выдачи подробно описаны в разделах Федеративный поиск и Судебная практика. Ответы ИИ-агента LexaAI (/v1/answer) по ключу API недоступны – они доступны в чате app.lexaai.ru, см. Авторизация и лимиты.
4. Python
Простой запрос досье (нужен пакет httpx):
import os
import httpx
response = httpx.post(
"https://api.lexaai.ru/v1/research",
headers={"X-Api-Key": os.environ["LEXAAI_API_KEY"]},
json={"question": "Каков срок обращения в суд с требованием о пересчете земельного налога?"},
timeout=httpx.Timeout(10.0, read=600.0),
)
response.raise_for_status()
dossier = response.json()
for step in dossier["steps"]:
print(step)
for gap in dossier["gaps"]:
print("Пробел:", gap)
print(dossier["disclaimer"])Поиск по законодательству и практике в одной сессии:
import os
import httpx
API_URL = "https://api.lexaai.ru"
API_KEY = os.environ["LEXAAI_API_KEY"]
def search(client: httpx.Client, query: str) -> dict:
response = client.post("/v1/search", json={"query": query, "top_k": 5})
response.raise_for_status()
return response.json()
def practice(client: httpx.Client, query: str, date_from: str) -> dict:
response = client.post("/v1/practice/search", json={
"query": query,
"filters": {"date_from": date_from},
"sort": "date",
"top_k": 10,
})
response.raise_for_status()
return response.json()
def main() -> None:
with httpx.Client(base_url=API_URL, headers={"X-Api-Key": API_KEY},
timeout=httpx.Timeout(10.0, read=120.0)) as client:
found = search(client, "установление кадастровой стоимости в размере рыночной")
norms = found["layers"]["norms"]
if not norms.get("available"):
print("Слой законодательства недоступен:", norms.get("error"))
else:
for norm in norms["results"]:
print(norm["address"], norm["status"])
acts = practice(client, "расходы на отчет об оценке", "2025-01-01")
print("Найдено фрагментов:", acts["total"], "показано:", acts["shown"])
for chunk in acts["results"]:
document = chunk["document"]
print(document["decision_date"], document["court"], document["title"])
print(acts["disclaimer"])
if __name__ == "__main__":
main()5. Таймауты
Шлюз отвечает только после завершения работы и до этого не передает данных. Пределы на сервере – текущие настройки шлюза; таймаут чтения на клиенте нужен с запасом.
| Запрос | Предел на сервере | Таймаут чтения на клиенте |
|---|---|---|
/v1/search, /v1/practice/* | поиск по слою законодательства – до 90 с, по слою практики – до 30 с | 2 минуты |
/v1/research | этапы конвейера выполняются последовательно, обычно за секунды | 10 минут |
Если между клиентом и шлюзом есть прокси, который закрывает соединения без трафика, увеличьте его таймаут простоя. Повторы после сбоев – в разделе Ошибки и деградация.
6. Тест-консоль
Для ручной проверки есть тест-консоль api.lexaai.ru/console. Ключ вводится в форме и хранится только в браузере, там же – история последних 10 запросов. Запросы из консоли списывают единицы так же, как запросы клиента.