API · WebMCP · JSON

API и инструменты для ИИ-агентов

Каталог опасных товаров доступен программам и ИИ-агентам: открытый JSON API только для чтения и инструменты WebMCP прямо в браузере. Ключ не нужен.

  • 120 запросов в минуту с одного IP
  • CORS GET *
  • Ответы кешируются 5-60 минут

Эндпоинты

GET/api/v1/alerts

Поиск оповещений, сначала новые. Те же фильтры, что и на сайте.

ПараметрТипОписание
qstringТекст: название, бренд, модель, штрихкод или номер оповещения. Каждое слово ищется по началу, все слова обязательны.
categorystringКлюч категории из /taxonomy, например toys
riskstringКлюч риска из /taxonomy, например chemical
originCCСтрана происхождения, код ISO 3166-1 (CN)
countryCCСтрана, подавшая оповещение (DE)
yearintegerГод публикации
barcodedigitsШтрихкод EAN / UPC; 12- и 13-значные формы сопоставляются
sortnew | oldПорядок, по умолчанию new
pageintegerСтраница, с 1
per_pageintegerРазмер страницы, 1..50, по умолчанию 20
langru | enЯзык подписей и текстов, по умолчанию ru
GET/api/v1/alerts/{id}?lang=ru

Полная карточка: описание, опасность, нарушенные требования, меры, штрихкоды, партии, фото.

GET/api/v1/taxonomy?lang=ru

Категории, типы риска, страны и годы: ключи, подписи и число оповещений.

GET/api/v1/stats?lang=ru

Сводка: всего оповещений, даты, распределение по годам, топ категорий, рисков и стран.

GET/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).

Машиночитаемые описания