# Ключи Маленькие умные функции, доступные обычным HTTP-запросом. Никаких библиотек и ключей доступа. Работает из любого языка. Каталог: https://monoblock.casa/keys/ Список в JSON: https://monoblock.casa/keys/keys Машинная спека: https://monoblock.casa/keys/openapi.json Для ассистентов (MCP): https://monoblock.casa/keys/mcp С ключом доступа запросы не считаются вовсе. Без ключа — 20 запросов в минуту и 100 в сутки на адрес; ответы из кэша не считаются. Публичный ключ лежит открыто на /public-token. В ответе есть поле cached — пришёл ли он из кэша. ## Общие аргументы, работают у любого ключа fmt=text короткая строка для человека (в короткой форме по умолчанию) fmt=json все поля fmt=bool голое true/false only=поле вернуть только это поле; можно несколько через запятую token=... ключ доступа (лучше заголовком Authorization: Bearer) --- ## alive — Жив ли канал Проверяет ссылку Telegram без аккаунта, без Bot API и без токена. Читает публичную превью-страницу t.me — ту самую, которую Telegram отдаёт мессенджерам для картинки ссылки. Отвечает, существует ли канал/группа/бот/аккаунт, и заодно отдаёт всё, что вообще есть на странице: название, описание, галочку верификации, число подписчиков или участников, сколько сейчас онлайн, аватарку и прямую ссылку в приложение. Мёртвые и заблокированные страницы отличаются от живых по разметке, а не по коду ответа: Telegram на удалённый канал возвращает 200 и заглушку. Параметры: link (string, обязательный) — @username, ссылка t.me/... или приватный инвайт +hash Возвращает: is_alive (boolean) — существует ли страница kind (string) — channel, group, bot, user или unknown; приватность типа не отменяет — она в поле is_private, а private_invite остаётся только когда вид по странице не определить title (string) — название description (string) — описание из шапки members_count (integer) — подписчиков, участников или пользователей бота за месяц members_label (string) — чего именно счётчик: subscribers, members, monthly users online_count (integer) — сколько участников группы сейчас онлайн verified (boolean) — стоит ли галочка Telegram is_private (boolean) — вход по приглашению +hash, страницы без ссылки не найти needs_request (boolean) — войти можно только по заявке, которую кто-то должен одобрить restricted (boolean) — заблокирован Telegram за нарушения has_preview (boolean) — у канала открыта публичная лента t.me/s/... avatar_url (string) — прямая ссылка на аватарку deep_link (string) — ссылка вида tg://resolve — открывает прямо в приложении action (string) — надпись на кнопке страницы: View in Telegram, Start Bot, Send Message username (string) — имя, приведённое к канону, без @ и без t.me url (string) — адрес проверенной страницы error (string) — почему не жив, если не жив Пример: GET https://monoblock.casa/keys/k/alive?link=durov link=durov -> живой канал с 11 млн подписчиков link=@BotFather -> бот — счётчик тут «monthly users» link=ru_python -> группа — есть members_count и online_count link=t.me/+PRIVATEHASHEXAMPLE00 -> закрытая группа по приглашению — kind: group, is_private: true link=nonexistentchannel12345xyz -> заглушка — is_alive: false --- ## answer — Ответ на вопрос Спрашивает много источников разом и отдаёт ответ каждого плюс лучший. Вопрос уходит параллельно в Википедию, Викиданные, Викисловарь, DuckDuckGo, на карту OpenStreetMap, в погоду, в курсы валют (166 штук, включая рубль), в научные базы, в каталог книг и в реестры пакетов. Каждый источник отвечает своим полем, отдельно называется лучший ответ и ссылки, которыми его можно проверить. Если sources не указать, ключ смотрит на сам вопрос и решает, кого спрашивать: про город — карту, про валюту — курсы, про пакет — реестры. Моделей тут нет намеренно: бесплатные упираются в лимиты, а их ответ нечем проверить. Выдача поисковиков не скребётся — берутся только источники с открытым интерфейсом, которые сами разрешают к себе ходить. Параметры: q (string, обязательный) — сам вопрос, обычными словами sources (string, необязательный) — через запятую: wiki, ddg, wikidata, wiktionary, osm, weather, rates, crossref, arxiv, books, pypi, npm, github; пусто — ключ выберет сам; all — все lang (string, необязательный) — ru или en Возвращает: ok (boolean) — нашлось ли хоть что-то answer (string) — лучший ответ из всех источников source (string) — чей это ответ asked (string) — кого спрашивали found (string) — кто ответил не пустым links (string) — ссылки, которыми ответ можно проверить wiki (string) — Википедия: сводка статьи ddg (string) — DuckDuckGo: краткая справка wikidata (string) — Викиданные: что это за сущность wiktionary (string) — Викисловарь: значение слова osm (string) — OpenStreetMap: место на карте weather (string) — погода в этом месте прямо сейчас rates (string) — курс и пересчёт суммы: 166 валют, включая рубль, гривну, тенге crossref (string) — научная статья по теме arxiv (string) — препринт по теме books (string) — книга из каталога Open Library pypi (string) — пакет Python npm (string) — пакет JavaScript github (string) — репозиторий на GitHub error (string) — что не так с вопросом, если не так dict (string) — толкование английского слова: значение, часть речи, транскрипция sea (string) — море рядом: высота волны, период, температура воды history (string) — какая погода была в указанный день (дату писать в вопросе) flood (string) — расход воды в ближайшей реке — грубый признак паводка time (string) — который час и часовой пояс в этом месте country (string) — страна: столица, население, валюта, площадь steam (string) — игра в Steam: цена, платформы drug (string) — лекарство по данным FDA: для чего, предупреждения Пример: GET https://monoblock.casa/keys/k/answer?q=кто такой Павел Дуров q=кто такой Павел Дуров -> общая справка: Википедия, Викиданные, DuckDuckGo q=погода в Хайфе -> ключ сам поймёт, что нужны карта и погода q=курс доллара к шекелю -> курс от Европейского центробанка q=Хайфа, sources=osm,wiki -> только карта и Википедия q=кватернион, sources=all -> все тринадцать источников разом q=Хайфа, sources=weather -> спросить именно погодный источник q=50000 рублей в тенге -> сумму и валюты ключ разберёт сам q=который час в Токио -> время по координатам места q=столица Израиля -> справочник стран q=море в Хайфе -> волны и температура воды --- ## crypto — Цена монеты Курс криптовалюты сразу в нескольких валютах, с движением за сутки. Отдельно от обычных курсов намеренно. У валюты курс — одно число от центробанка, меняется раз в день. У монеты есть цена сразу в нескольких валютах, движение за сутки, объём торгов и капитализация, и всё это меняется ежеминутно. Складывать их в один ответ значило бы сделать хуже обоим. Понимает и коды (BTC, ETH), и слова — «биткоин», «эфир», «курс тона в шекелях». Источник — CoinGecko, открытый и без ключа, знает больше десяти тысяч монет. Параметры: q (string, обязательный) — монета словом или кодом; можно сразу указать валюту vs (string, необязательный) — в каких валютах показать цену, через запятую Возвращает: coin (string) — название монеты symbol (string) — биржевой код id (string) — имя монеты в CoinGecko price (string) — цена в запрошенных валютах change_24h (string) — изменение за сутки market_cap (string) — капитализация volume_24h (string) — объём торгов за сутки rank (integer) — место по капитализации ok (boolean) — нашлась ли монета error (string) — что не так, если не нашлась Пример: GET https://monoblock.casa/keys/k/crypto?q=биткоин q=биткоин -> цена сразу в долларах, евро и шекелях q=курс тона в шекелях -> монета и валюта одной строкой q=ETH, vs=usd -> код монеты и одна валюта --- ## dev — Уязвимость, домен или адрес CVE, домен или IP — одной строкой, без трёх вкладок в браузере. Три вещи, которые разработчик ищет чаще всего и каждый раз открывает разные сайты. Номер уязвимости — что за дыра, насколько опасна, что затронуто. Домен — кто владелец, когда истекает, куда указывает, есть ли копия в веб-архиве. IP-адрес — чей он, откуда и какой провайдер. Что именно вы дали, ключ понимает сам: номер, домен и адрес друг на друга не похожи. Источники открытые и без ключей: CIRCL (зеркало базы CVE), RDAP вместо устаревшего whois, DNS через Cloudflare, Веб-архив, ip-api. Параметры: q (string, обязательный) — номер уязвимости, домен или IP-адрес Возвращает: kind (string) — что распознали: cve, domain или ip subject (string) — то же, приведённое к канону severity (string) — оценка опасности уязвимости по CVSS published (string) — когда уязвимость опубликовали description (string) — в чём суть уязвимости affected (string) — чьи продукты затронуты registrar (string) — через кого зарегистрирован домен created (string) — когда домен зарегистрировали expires (string) — когда регистрация истекает nameservers (string) — чьи DNS-серверы обслуживают домен status (string) — состояние регистрации ips (string) — адреса, на которые указывает домен mx (string) — куда идёт почта домена archived (string) — дата последней копии в веб-архиве country (string) — страна адреса city (string) — город адреса isp (string) — провайдер org (string) — организация, которой выделен адрес asn (string) — автономная система reverse (string) — обратное имя адреса ok (boolean) — получилось ли что-то узнать error (string) — что не так, если не получилось Пример: GET https://monoblock.casa/keys/k/dev?q=CVE-2021-44228 q=CVE-2021-44228 -> та самая дыра в log4j q=github.com -> домен: владелец, сроки, куда указывает q=8.8.8.8 -> адрес: чей и откуда ---