Быстрый старт
Тестовый токен уже в примере — скопируйте в терминал и получите реальную бухотчётность «Татнефти». Регистрация не нужна.
curl -H "Authorization: Bearer tbz_live_ItPY9Edf209jODxMstCXtbKsXETPGTJHiNTFf20m" \
"https://api.tebiz.ru/v1/financials?inn=eq.1644003838&select=year,name,2110&limit=2"import requests
r = requests.get(
"https://api.tebiz.ru/v1/financials",
headers={"Authorization": "Bearer tbz_live_ItPY9Edf209jODxMstCXtbKsXETPGTJHiNTFf20m"},
params={"inn": "eq.1644003838", "select": "year,name,2110", "limit": 2},
)
print(r.json()["data"])const r = await fetch(
"https://api.tebiz.ru/v1/financials?inn=eq.1644003838&select=year,name,2110&limit=2",
{ headers: { Authorization: "Bearer tbz_live_ItPY9Edf209jODxMstCXtbKsXETPGTJHiNTFf20m" } }
);
console.log((await r.json()).data);Ответ
{
"data": [
{ "year": 2023, "name": "ПАО \"ТАТНЕФТЬ\" …", "2110": 1313569025 },
{ "year": 2024, "name": "ПАО \"ТАТНЕФТЬ\" …", "2110": 1563778385 }
],
"next_cursor": "eyJ5ZWFyIjogMjAyNCwgImlubiI6ICIxNjQ0MDAzODM4In0="
}Тестовый токен ограничен демо-набором (несколько компаний по отчётности и кодов ОКПД2 по закупкам) — полный список в DEMO_DATA. Больше готовых примеров — в репозитории ↗. Доступ ко всему массиву — по своему токену из каталога.
Доступ по токену
Каждый запрос несёт токен в заголовке. Токен выдаётся после оформления подписки и показывается один раз — сохраните его.
Authorization: Bearer tbz_live_...Хотите просто попробовать? В блоке «Быстрый старт» — рабочий тестовый токен, регистрация не нужна.
Токен привязан к набору грантов (какие наборы доступны) и к лимитам. У подписки есть срок действия — по его истечении токен перестаёт работать (нужно продлить). Потеряли — обратитесь за перевыпуском.
REST API
База: https://api.tebiz.ru/v1/<набор>. Ответ — JSON {"data":[...],"next_cursor":...}.
Фильтры
Синтаксис ?колонка=оператор.значение; несколько фильтров объединяются по И. Какие операторы доступны колонке — зависит от её типа (см. страницу набора).
| Оператор | Смысл | Пример |
|---|---|---|
eq | равно | year=eq.2024 |
ne | не равно | okfs=ne.34 |
gt · gte | больше · больше-равно | year=gte.2022 |
lt · lte | меньше · меньше-равно | year=lte.2023 |
like | шаблон, * — любой хвост | okved=like.62* |
in | один из списка (через запятую) | inn=in.7707083893,7708004767 |
is_null | пусто, без значения | kpp=is_null |
curl -H "Authorization: Bearer tbz_live_..." \
"https://api.tebiz.ru/v1/financials?limit=5&year=eq.VALUE&select=year,inn,name"Выбор колонок и лимит
select=a,b,c — только эти колонки. limit=N — размер страницы (не больше максимума набора). Фильтров не более 50, список in — не более 1000 значений.
Пагинация курсором
Сортировки нет — порядок задаёт курсор. В ответе есть next_cursor; если он не null, повторите запрос с cursor=<значение> до null.
Первый запрос к большому набору делайте с фильтром (например ?year=eq.2025). Запрос без единого фильтра и без курсора к крупному набору вернёт 400 с подсказкой — это защита от полного скана.
cursor = None
while True:
params = {"year": "eq.2024", "limit": 500}
if cursor:
params["cursor"] = cursor
body = requests.get(URL, headers=HEADERS, params=params).json()
process(body["data"])
cursor = body["next_cursor"]
if not cursor: # null — данные закончились
breakЛимиты в заголовках
| Заголовок | Смысл |
|---|---|
X-RateLimit-Remaining | Остаток запросов в окне |
X-Quota-Rows-Remaining | Остаток квоты строк в текущем месяце |
X-Quota-Scope | Какая квота ближе: resource или global |
Retry-After | Через сколько секунд повторять (при 429) |
MCP — для ИИ-агентов
Эндпоинт https://api.tebiz.ru/mcp/ (со слэшем), транспорт Streamable HTTP, тот же токен авторизации.
{
"mcpServers": {
"tebiz": {
"url": "https://api.tebiz.ru/mcp/",
"headers": { "Authorization": "Bearer tbz_live_..." }
}
}
}Формат url+headers понимают клиенты с нативной поддержкой удалённых MCP-серверов (напр. Cursor). Для Claude Desktop нужен мост mcp-remote — готовый конфиг в mcp/ ↗.
Список доступных наборов. Вызвать первым.
Колонки, типы, операторы, 3 примера строк.
Выборка: filters, select, limit, cursor. Колоночный ответ.
list_resources → describe_resource("financials") → query.
Наборы данных
Список из реестра — при добавлении набора обновляется автоматически. Откройте набор, чтобы увидеть полный справочник колонок, типы и примеры.
Коды ошибок
Тело — JSON {"error":"...","detail":"..."}. В detail — что поправить.
| HTTP | Код ошибки | Причина |
|---|---|---|
200 | — | Тело {"data":[]} — запрос корректен, но под фильтр ничего не попало (у тестового токена — данные вне демо-набора). Это не ошибка. |
400 | bad_request | Неизвестная колонка/оператор, битое значение или cursor; либо первая страница большого набора без фильтра — добавьте фильтр. |
401 | unauthorized | Нет/невалидный токен. |
404 | not_found | Ресурс не существует или нет гранта (не различаем). |
429 | rate_limit_exceeded / row_quota_exceeded | Превышен лимит запросов или квота строк. |
504 | timeout | Запрос не уложился в лимит времени — добавьте фильтры. |