Monitorul obligațiilor privind ambalajele · ACCES PENTRU DEZVOLTATORI
API și webhookuri
Folosește adresa URL a produsului în exemplele de mai jos. Păstrează cheile API pe serverul tău. Deschide documentația API interactivă ↗
Citește înregistrări publice
curl 'https://verpackung.getregisters.com/api/v1/feeds/de-packaging-compliance/records?limit=50&offset=0' Răspunsurile publice conțin doar cele mai recente trei înregistrări pentru fiecare registru. Conținutul înregistrărilor mai vechi necesită PRO; adresele URL directe oferă o previzualizare limitată. Urmează next_offset până când valoarea este null, inclusiv atunci când o pagină filtrată nu conține înregistrări. Citează fiecare source_url originală. Datele publicării și observării reprezintă evenimente diferite.
Citește înregistrări PRO
curl 'https://verpackung.getregisters.com/api/v1/feeds/de-packaging-compliance/records?limit=50&offset=0' \
-H 'Authorization: Bearer YOUR_SCOPED_KEY' Creează sau schimbă cheia în contul tău. O cheie funcționează numai pentru acest produs și doar cât timp accesul plătit este activ.
Formate de export
PRO include CSV, Excel (.xlsx), XML, RSS și Atom. Folosește cheia API a produsului și aceleași filtre pentru fiecare format. De exemplu, poți descărca până la 100 de înregistrări ca registru 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 Înlocuiește xlsx cu csv, xml, rss sau atom. Adaugă filtre precum document_type=adopted sau facility_id=YOUR_FACILITY_ID. Urmează antetul Link al răspunsului cu rel="next" până când nu mai apare, păstrând antetul Authorization pentru fiecare solicitare. Fiecare pagină are cel mult 100 de înregistrări; o pagină filtrată poate fi goală chiar dacă există una ulterioară.
Pentru RSS și Atom, configurează un cititor care acceptă antetul Authorization. Adresele URL ale cititorului nu conțin cheia. Elementele au identificatori stabili ai înregistrărilor, iar cititoarele care nu urmează paginarea primesc pagina cea mai nouă. Folosește API-ul paginat când ai nevoie de toate înregistrările.
Citește istoricul unei înregistrări
curl 'https://verpackung.getregisters.com/api/v1/records/RECORD_ID/history?limit=50&offset=0' \
-H 'Authorization: Bearer YOUR_SCOPED_KEY' Înlocuiește RECORD_ID cu identificatorul unei înregistrări returnate. Istoricul returnează o listă cu versiunile cele mai noi primele. Continuă prin creșterea lui offset cu lungimea paginii până când o pagină este mai scurtă decât limita cerută. Versiunile pot reflecta modificări ale sursei sau corectări ale extragerii datelor.
Conectează-te prin 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"}}}' Adaugă același antet Authorization pentru câmpurile PRO. Punctul de acces acceptă și initialize, tools/list și notifications/initialized. Folosește paginarea REST de mai sus când citești întregul registru.
Verifică semnăturile webhookurilor
Antetul semnăturii este X-Register-Signature: t=TIMESTAMP,v1=HEX_DIGEST. Verifică corpul brut înainte de a interpreta JSON. Păstrează permanent identificatorii X-Register-Event ai evenimentelor procesate cu succes, astfel încât reîncercările să nu repete efectele.
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);
} Returnează un răspuns de succes doar după ce evenimentul a fost înregistrat permanent. Numărul reîncercărilor de livrare este limitat; ultimul rezultat înregistrat apare în contul tău. Confirmarea livrării nu dovedește că aplicația ta a terminat procesarea evenimentului.