Overvåking av emballasjeforpliktelser · UTVIKLERTILGANG
API og webhooks
Bruk produktets adresse i eksemplene nedenfor. Oppbevar API-nøkler på serveren din. Åpne interaktiv API-dokumentasjon ↗
Les offentlige oppføringer
curl 'https://verpackung.getregisters.com/api/v1/feeds/de-packaging-compliance/records?limit=50&offset=0' Offentlige svar inneholder bare de tre nyeste oppføringene per register. Innhold i eldre oppføringer krever PRO; direkte adresser gir en begrenset forhåndsvisning. Følg next_offset til verdien er null, også når en filtrert side ikke har oppføringer. Henvis til hver original source_url. Publiserings- og observasjonsdatoer gjelder ulike hendelser.
Les PRO-oppføringer
curl 'https://verpackung.getregisters.com/api/v1/feeds/de-packaging-compliance/records?limit=50&offset=0' \
-H 'Authorization: Bearer YOUR_SCOPED_KEY' Opprett eller bytt nøkkel i kontoen din. En nøkkel virker bare for dette produktet og mens betalt tilgang er aktiv.
Eksportformater
PRO inkluderer CSV, Excel (.xlsx), XML, RSS og Atom. Bruk produktets API-nøkkel og de samme filtrene for hvert format. Du kan for eksempel laste ned opptil 100 oppføringer som en Excel-arbeidsbok:
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 Erstatt xlsx med csv, xml, rss eller atom. Legg til filtre som document_type=adopted eller facility_id=YOUR_FACILITY_ID. Følg Link-headeren i svaret med rel="next" til den ikke finnes lenger, og behold Authorization-headeren i hver forespørsel. Hver side er begrenset til 100 oppføringer; en filtrert side kan være tom selv om det finnes flere sider.
For RSS og Atom må du konfigurere en leser som støtter Authorization-headeren. Lesernes adresser inneholder ingen nøkkel. Elementene har stabile oppførings-ID-er, og lesere som ikke følger sideinndelingen, får den nyeste siden. Bruk det sideinndelte API-et når du trenger alle oppføringer.
Les historikken til en oppføring
curl 'https://verpackung.getregisters.com/api/v1/records/RECORD_ID/history?limit=50&offset=0' \
-H 'Authorization: Bearer YOUR_SCOPED_KEY' Erstatt RECORD_ID med en returnert oppførings-ID. Historikken returnerer en liste med de nyeste først. Fortsett med å øke offset med sidelengden til en side er kortere enn den forespurte limit-verdien. Versjoner kan være kildeendringer eller korrigeringer av datauttrekket.
Koble til med 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"}}}' Legg til den samme Authorization-headeren for PRO-felt. Endepunktet støtter også initialize, tools/list og notifications/initialized. Bruk REST-sideinndelingen over når du leser hele registeret.
Verifiser webhook-signaturer
Signaturheaderen er X-Register-Signature: t=TIMESTAMP,v1=HEX_DIGEST. Verifiser den rå meldingskroppen før du tolker JSON. Lagre ID-ene til X-Register-Event-hendelser som er behandlet, så nye leveringsforsøk ikke gjentar sidevirkninger.
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);
} Returner et vellykket svar først etter at hendelsen er lagret varig. Antall nye leveringsforsøk er begrenset; den siste registrerte statusen vises i kontoen din. En leveringsbekreftelse betyr ikke at applikasjonen din er ferdig med å behandle hendelsen.