Monitor povinností týkajících se obalů
Jazyk: Čeština

Monitor povinností týkajících se obalů · PŘÍSTUP PRO VÝVOJÁŘE

API a webhooky

V následujících příkladech použijte adresu URL svého produktu. Klíče API uchovávejte na svém serveru. Otevřít interaktivní dokumentaci API ↗

Číst veřejné záznamy

curl 'https://verpackung.getregisters.com/api/v1/feeds/de-packaging-compliance/records?limit=50&offset=0'

Veřejné odpovědi obsahují pouze tři nejnovější záznamy z každého registru. Starší obsah vyžaduje PRO; přímé adresy URL nabízejí omezený náhled. Sledujte next_offset, dokud nebude mít hodnotu null, i když filtrovaná stránka neobsahuje žádné záznamy. Uvádějte původní source_url každého záznamu. Datum zveřejnění a datum pozorování označují různé události.

Číst záznamy PRO

curl 'https://verpackung.getregisters.com/api/v1/feeds/de-packaging-compliance/records?limit=50&offset=0' \
  -H 'Authorization: Bearer YOUR_SCOPED_KEY'

Vytvořit nebo vyměnit klíč ve svém účtu. Klíč funguje pouze pro tento produkt a jen při aktivním placeném přístupu.

Formáty exportu

PRO zahrnuje CSV, Excel (.xlsx), XML, RSS a Atom. Pro každý formát použijte klíč API svého produktu a stejné filtry. Například stáhněte až 100 záznamů jako sešit 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

Nahraďte xlsx za csv, xml, rss nebo atom. Přidejte filtry, například document_type=adopted nebo facility_id=YOUR_FACILITY_ID. Sledujte hlavičku Link v odpovědi s rel="next", dokud nezmizí, a u každého požadavku zachovejte hlavičku Authorization. Jedna stránka obsahuje nejvýše 100 záznamů; filtrovaná stránka může být prázdná, i když existuje další.

Pro RSS a Atom nastavte čtečku podporující hlavičku Authorization. Adresy URL čteček neobsahují klíč. Položky mají stálá ID záznamů; čtečky bez stránkování obdrží nejnovější stránku. Pokud potřebujete všechny záznamy, použijte stránkované API.

Číst historii záznamu

curl 'https://verpackung.getregisters.com/api/v1/records/RECORD_ID/history?limit=50&offset=0' \
  -H 'Authorization: Bearer YOUR_SCOPED_KEY'

Nahraďte RECORD_ID ID vráceného záznamu. Historie vrací pole od nejnovější verze. Zvyšujte offset o délku stránky, dokud nedostanete stránku kratší než požadovaný limit. Verze mohou odrážet změny zdroje nebo opravy vytěžení údajů.

Připojit přes 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"}}}'

Pro pole PRO přidejte stejnou hlavičku Authorization. Koncový bod podporuje také initialize, tools/list a notifications/initialized. Pro přečtení celého registru použijte výše uvedené stránkování REST.

Ověřit podpisy webhooků

Podpisová hlavička má podobu X-Register-Signature: t=TIMESTAMP,v1=HEX_DIGEST. Před zpracováním JSON ověřte nezměněné tělo požadavku. Trvale uchovávejte ID X-Register-Event úspěšně zpracovaných událostí, aby opakované pokusy znovu nevyvolaly jejich následky.

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);
}

Úspěšnou odpověď vraťte až po trvalém zaznamenání události. Počet opakovaných pokusů o doručení je omezený; účet ukazuje poslední zaznamenaný výsledek. Potvrzení doručení nedokazuje, že vaše aplikace dokončila zpracování události.