Lytter …
Teknisk reference
Spørg, om en modtager er frameldt, før I kontakter vedkommende. Kaldet bærer en hash, ikke en person: vi kan hverken læse nummeret eller vende hashen om. Svaret er ja eller nej, plus et kvitteringsnummer, I kan fremvise senere.
API'et har to endpoints. /v1/suppression/check svarer for én modtager ad gangen og bruges i realtid — for eksempel i en opkaldskø eller lige før en afsendelse. /v1/suppression/batch tager en liste og bruges, når en kampagne forberedes.
Begge accepterer hashede identifikatorer. Intet endpoint returnerer personoplysninger, og intet endpoint bekræfter, at en person findes i vores system — kun at hashen ikke bør kontaktes.
Et svar med suppressed: false betyder, at vi ikke kender til nogen framelding. Det er ikke samtykke, og det erstatter ikke jeres egen lovlighedsvurdering.
Hvert kald bærer en nøgle i Authorization-headeren. Nøgler er miljøbundne: mm_test_ til testmiljøet, mm_live_ til produktion. En nøgle brugt mod det forkerte miljø afvises med 401 i stedet for stiltiende at falde tilbage.
Authorization: Bearer mm_live_…Content-Type: application/jsonIdempotency-Key: <uuid v4> # anbefales til hvert skrivekaldHashen beregnes hos jer, med en pepper, der er unik for jeres organisation. Det gør to ting: vi kan ikke rekonstruere kontaktoplysningen, og et læk af jeres hashes kan ikke krydsrefereres mod nogen andres.
# 1. Normalisér til E.164, før noget som helst andet 070-123 45 67 -> +46701234567 Name@Example.COM -> name@example.com # 2. Hash med jeres tildelte pepper (aldrig i klienten) sha256(pepper + normalized) # 3. Send hashen, aldrig værdien "identifier_hash": "sha256:9f1a3c…c07d"Normalisering skal ske, før der hashes. 070-123 45 67 og +46 70 123 45 67 er den samme abonnent, men forskellige strenge — uden normalisering hashes de forskelligt, og tjekket overser frameldingen.
Bruges pr. modtager, i realtid. Svartiden er designet til at passe ind i et opkaldsforløb, så tjekket kan ligge direkte før opringningen.
POST /v1/suppression/check HTTP/1.1Host: api.marketmute.comAuthorization: Bearer mm_live_…Content-Type: application/jsonIdempotency-Key: 8c1f0b52-3a77-4a1e-9f0c-2b7d4e11ab90 { "channel": "phone", "identifier_hash": "sha256:9f1a3c…c07d", "purpose": "direct_marketing", "sender_ref": "campaign-2026-h2"}HTTP/1.1 200 OKContent-Type: application/jsonRateLimit-Remaining: 986 { "suppressed": true, "channel": "phone", "scope": "sender", "effective_from": "2026-03-04T09:12:00Z", "receipt_id": "rcpt_01HZK4Q2M8V3XT", "checked_at": "2026-08-19T07:41:02Z"}Gem receipt_id sammen med jeres sendelog. Det er den eneste reference, der kæder jeres tjek sammen med vores svar, hvis udfaldet nogensinde bliver draget i tvivl.
Send op til 10.000 hashes pr. kald. Resultatlisten har altid samme rækkefølge og samme længde som identifier_hashes, så I kan indeksere direkte på tværs uden at matche på værdier.
POST /v1/suppression/batch HTTP/1.1Authorization: Bearer mm_live_…Content-Type: application/json { "channel": "phone", "purpose": "direct_marketing", "identifier_hashes": [ "sha256:9f1a3c…c07d", "sha256:41b8ee…9a20" ]} # Svar: samme rækkefølge som forespørgslen, aldrig omrokeret{ "results": [ { "suppressed": true, "scope": "sender" }, { "suppressed": false, "scope": null } ], "receipt_id": "rcpt_01HZK4Q2M8V44P"}Større lister opdeles af jer, ikke af os. Et kald, der overskrider grænsen, afvises med 400 i stedet for stiltiende at blive afkortet.
| Felt | Type | Betydning |
|---|---|---|
| suppressed | boolean | Sand, hvis en framelding gælder for hashen på den givne kanal og det givne formål. |
| scope | string | null | sender = frameldingen gælder for jeres organisation. global = frameldingen gælder al direkte markedsføring. |
| effective_from | string (RFC 3339) | Hvornår frameldingen trådte i kraft. Mangler, når suppressed er false. |
| receipt_id | string | Kvitteringsnummer for tjekket. Beviser, at I spurgte, hvornår I spurgte, og hvilket svar I fik. |
| checked_at | string (RFC 3339) | Serverens tidsstempel for svaret. Brug dette, ikke jeres eget ur, i logs. |
suppressed: true — kontakt ikke hashen på den kanal.suppressed: false — ingen kendt framelding. Jeres egen vurdering gælder stadig.Alle fejl returneres som JSON med felterne error og message. Statuskoden er autoritativ — læs den, før I læser body'en.
RateLimit-Remaining.Idempotency-Key, og forsøget tæller kun én gang.Testnøglen er tilgængelig med det samme og spejler produktion med syntetiske hashes. Produktionsnøglen kræver, at afsenderen er registreret, med en kontaktkanal for rettighedsanmodninger på fil.