Монітор обов’язків щодо пакування · ДОСТУП ДЛЯ РОЗРОБНИКІВ
API та вебхуки
Використовуйте URL вашого продукту в прикладах нижче. Зберігайте ключі API на своєму сервері. Відкрити інтерактивну документацію API ↗
Читати публічні записи
curl 'https://verpackung.getregisters.com/api/v1/feeds/de-packaging-compliance/records?limit=50&offset=0' Публічні відповіді містять лише три найновіші записи для кожного реєстру. Вміст давніших записів потребує PRO; прямі URL показують обмежений попередній перегляд. Дотримуйтеся next_offset, доки значення не стане null, навіть якщо відфільтрована сторінка порожня. Посилайтеся на оригінальний source_url кожного запису. Дати публікації й спостереження позначають різні події.
Читати записи PRO
curl 'https://verpackung.getregisters.com/api/v1/feeds/de-packaging-compliance/records?limit=50&offset=0' \
-H 'Authorization: Bearer YOUR_SCOPED_KEY' Створіть або змініть ключ в обліковому записі. Ключ працює лише для цього продукту й доки активний платний доступ.
Формати експорту
PRO підтримує CSV, Excel (.xlsx), XML, RSS і Atom. Використовуйте ключ API свого продукту й однакові фільтри для кожного формату. Наприклад, щоб завантажити до 100 записів як книгу Excel:
curl 'https://verpackung.getregisters.com/api/v1/feeds/de-packaging-compliance/records/export.xlsx?limit=100&offset=0' \
-H 'Authorization: Bearer YOUR_SCOPED_KEY' \
-D export-headers.txt -o records.xlsx Замініть xlsx на csv, xml, rss або atom. Додайте фільтри на кшталт document_type=adopted чи facility_id=YOUR_FACILITY_ID. Переходьте за заголовком Link із rel="next", доки він не зникне, зберігаючи заголовок Authorization у кожному запиті. На сторінці не більше 100 записів; відфільтрована сторінка може бути порожньою, хоча наступна існує.
Для RSS й Atom налаштуйте читач, що підтримує заголовок Authorization. URL читача не містять ключа. Записи мають стабільні ідентифікатори; читачі без переходу між сторінками отримають лише найновішу сторінку. Якщо потрібні всі записи, використовуйте API з пагінацією.
Читати історію запису
curl 'https://verpackung.getregisters.com/api/v1/records/RECORD_ID/history?limit=50&offset=0' \
-H 'Authorization: Bearer YOUR_SCOPED_KEY' Замініть RECORD_ID ідентифікатором отриманого запису. Історія повертає масив від найновішого до найдавнішого. Збільшуйте offset на довжину сторінки, доки вона не стане коротшою за запитаний limit. Нові версії можуть виникати через зміни в джерелі або виправлення витягнутих даних.
Підключитися через MCP
curl 'https://verpackung.getregisters.com/api/v1/mcp' \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"read_register","arguments":{"feed_id":"de-packaging-compliance"}}}' Додайте той самий заголовок Authorization для полів PRO. Ця кінцева точка також підтримує initialize, tools/list і notifications/initialized. Щоб прочитати весь реєстр, використовуйте наведену вище пагінацію REST.
Перевірити підписи вебхуків
Формат заголовка підпису: X-Register-Signature: t=TIMESTAMP,v1=HEX_DIGEST. Перевірте необроблене тіло запиту до розбору JSON. Надійно зберігайте ідентифікатори X-Register-Event успішно оброблених подій, щоб повторні спроби не дублювали наслідки.
import { createHmac, timingSafeEqual } from 'node:crypto';
export function verify(rawBody, header, secret) {
const fields = Object.fromEntries(header.split(',').map(x => x.split('=')));
const timestamp = Number(fields.t);
if (!Number.isFinite(timestamp) || Math.abs(Date.now()/1000 - timestamp) > 300) return false;
if (!/^[a-f0-9]{64}$/.test(fields.v1 || '')) return false;
const expected = createHmac('sha256', secret).update(fields.t + '.').update(rawBody).digest();
const supplied = Buffer.from(fields.v1, 'hex');
return supplied.length === expected.length && timingSafeEqual(supplied, expected);
} Повертайте успішну відповідь лише після надійного збереження події. Кількість повторних спроб доставки обмежена; обліковий запис показує останній зафіксований результат. Підтвердження доставки не означає, що ваш застосунок завершив обробку події.