API · WebMCP · JSON
API и инструменты для ИИ-агентов
Каталог опасных товаров доступен программам и ИИ-агентам: открытый JSON API только для чтения и инструменты WebMCP прямо в браузере. Ключ не нужен.
- 120 запросов в минуту с одного IP
- CORS GET *
- Ответы кешируются 5-60 минут
Эндпоинты
/api/v1/alertsПоиск оповещений, сначала новые. Те же фильтры, что и на сайте.
| Параметр | Тип | Описание |
|---|---|---|
q | string | Текст: название, бренд, модель, штрихкод или номер оповещения. Каждое слово ищется по началу, все слова обязательны. |
category | string | Ключ категории из /taxonomy, например toys |
risk | string | Ключ риска из /taxonomy, например chemical |
origin | CC | Страна происхождения, код ISO 3166-1 (CN) |
country | CC | Страна, подавшая оповещение (DE) |
year | integer | Год публикации |
barcode | digits | Штрихкод EAN / UPC; 12- и 13-значные формы сопоставляются |
sort | new | old | Порядок, по умолчанию new |
page | integer | Страница, с 1 |
per_page | integer | Размер страницы, 1..50, по умолчанию 20 |
lang | ru | en | Язык подписей и текстов, по умолчанию ru |
/api/v1/alerts/{id}?lang=ruПолная карточка: описание, опасность, нарушенные требования, меры, штрихкоды, партии, фото.
/api/v1/taxonomy?lang=ruКатегории, типы риска, страны и годы: ключи, подписи и число оповещений.
/api/v1/stats?lang=ruСводка: всего оповещений, даты, распределение по годам, топ категорий, рисков и стран.
/api/v1/openapi.jsonОписание в формате OpenAPI 3.1.
Пример
curl 'https://safety.weblocally.com/api/v1/alerts?q=charger&risk=electric.shock&per_page=1&lang=ru'
{
"lang": "ru",
"total": 962,
"page": 1,
"per_page": 1,
"pages": 962,
"results": [
{
"id": 10119149,
"reference": "SR/02886/26",
"published": "2026-10-09T07:37:20.972Z",
"modified": "2026-10-09T07:37:20.973Z",
"title": {
"text": "USB-зарядное устройство",
"en": "USB charger",
"translated": true
},
"name_specific": "DM132",
"brands": [
"DAM"
],
"models": [
"97177085"
],
"barcodes": [],
"category": {
"key": "electrical.appliances.and.equipment",
"source_key": "product.category.electrical.appliances.and.equipment",
"label": "Электроприборы и электрооборудование",
"en": "Electrical appliances and equipment",
"translated": true
},
"risks": [
{
"key": "electric.shock",
"source_key": "riskType.electric.shock",
"label": "Поражение электрическим током",
"en": "Electric shock",
"translated": true
}
],
"origin_country": {
"code": "CN",
"label": "Китай",
"en": "People's Republic of China",
"translated": true
},
"notifying_country": {
"code": "FR",
"label": "Франция",
"en": "France",
"translated": true
},
"photo": {
"thumb": "https://cdn.weblocally.com/safety-gate/10119149/11235691-t.webp",
"full": "https://cdn.weblocally.com/safety-gate/10119149/11235691-f.webp"
},
"url": "https://safety.weblocally.com/ru/alert/10119149",
"api_url": "https://safety.weblocally.com/api/v1/alerts/10119149?lang=ru",
"source_url": "https://ec.europa.eu/safety-gate-alerts/screen/webReport/alertDetail/10119149"
}
]
}
Переводы и источник
Свободные тексты приходят объектом { text, en, translated }: при lang=ru поле text содержит проверенный перевод, если он есть (translated: true), иначе английский оригинал. Оригинал всегда лежит в en. Подписи категорий, рисков и стран: { key, label, en, translated }.
Каждая запись содержит source_url: ссылку на оригинал на сайте Еврокомиссии. Данные © Европейский союз, Safety Gate; повторное использование разрешено с указанием источника.
Ошибки: JSON { "error": { "code", "message" } } с кодом 400, 404 или 429 (заголовок Retry-After).
WebMCP
Страницы сайта регистрируют инструменты для ИИ-агента, встроенного в браузер, по черновику стандарта WebMCP (W3C Web Machine Learning CG, document.modelContext). Агент может искать товары, открывать карточки и проверять штрихкоды, не разбирая HTML. В браузерах без WebMCP скрипт ничего не делает.
| Инструмент | Что делает |
|---|---|
search_dangerous_productsтолько чтение | Поиск по каталогу опасных товаров: текст, категория, риск, страны, год.query stringcategory stringrisk stringorigin_country stringnotifying_country stringyear integersort newest | oldestpage integerper_page integerlang ru | en |
get_product_alertтолько чтение | Полная карточка оповещения: описание, опасность, меры, штрихкоды, фото.id integerreference stringlang ru | en |
list_categories_and_risksтолько чтение | Справочник: категории, типы риска, страны и годы с числом оповещений.lang ru | en |
check_barcodeтолько чтение | Проверка штрихкода (EAN / UPC) по базе опасных товаров.barcode* stringlang ru | en |
open_alert_pageтолько чтение | Открыть страницу оповещения на сайте в текущей вкладке.id* integerlang ru | en |
Декларативный инструмент
| Форма | Что делает |
|---|---|
report_site_mistake | Форма «Сообщить об ошибке» (декларативный инструмент, отправку подтверждает пользователь). |
Все инструменты только читают данные и не требуют личных данных. Тексты оповещений пришли из внешнего источника и помечены untrustedContentHint. Инструменты доступны только этому сайту (без exposedTo).
Машиночитаемые описания
- /api/v1/openapi.json OpenAPI 3.1
- /.well-known/api-catalog RFC 9727
- /.well-known/webmcp.json список инструментов WebMCP
- /llms.txt краткое описание сайта для LLM