API met gegevens over politieke reclameboodschappen voor media- en uitgeverspartners
https://polads.eu/api/v1Alle eindpunten vereisen verificatie met een partner-Bearer-token
GET /advertisement-full/{PAID}
1.000 verzoeken per minuut
GET /advertisement/{PAID}
1.000 verzoeken per minuut
De snelheidslimiet geldt per partnertoken voor alle eindpunten samen
Pro-abonnement, bij elk verzoek opnieuw gecontroleerd
De partner-API maakt deel uit van het Pro-abonnement, zowel voor lezen als voor schrijven. Er is geen aparte API-uitbreiding te koop. Het abonnement wordt bij elk afzonderlijk verzoek gecontroleerd in plaats van eenmalig vastgelegd bij het aanmaken van het token. Een verlopen abonnement blokkeert de toegang dus al bij de eerstvolgende aanroep met 403 PRO_PLAN_REQUIRED, en een verlenging herstelt de toegang even snel.
Toegangsbereiken
Elk partnertoken mag lezen. Voor het rapporteren van betrokkenheidscijfers is daarnaast het toegangsbereik metrics:write nodig. Toegangsbereiken worden gekozen bij het aanmaken van het token en kunnen daarna niet meer worden gewijzigd: trek het token in en maak een nieuw token aan als u ze wilt wijzigen.
Alleen partnertokens
Deze eindpunten weigeren een SSP-token met 401, en het SSP-eindpunt weigert een partnertoken op dezelfde manier. De twee niveaus zijn afzonderlijke toegangsgegevens, geen twee rechtenniveaus binnen één set toegangsgegevens.
GET /advertisement/{PAID} zoekt de transparantieverklaring op volgens dezelfde zichtbaarheidsregel als het openbare register. Een transparantieverklaring die nog niet is bevestigd, die de uitgever nog niet heeft goedgekeurd of waarvan de startdatum van publicatie nog in de toekomst ligt, geeft hier 404, precies zoals in het register. Hetzelfde geldt voor het SSP-eindpunt.
Het eindpunt voor volledige gegevens werkt bewust anders
GET /advertisement-full/{PAID} is beperkt tot uw eigen transparantieverklaringen en antwoordt daarom ook voor een transparantieverklaring waarvan de startdatum nog niet is bereikt. U bent de uitgever die die transparantieverklaring moet controleren voordat de advertentie loopt, dus deze voor u achterhouden zou het doel voorbijschieten.
/advertisement-full/{PAID}Beperkt tot uw eigen transparantieverklaringen. Het PA-ID van een andere uitgever, een zelf gepubliceerde transparantieverklaring zonder uitgever en een identificatiecode die niet bestaat, geven allemaal dezelfde 404 terug, en het antwoord maakt geen onderscheid tussen deze gevallen.
⚠️ Waarschuwing: AVG-gevoelige gegevens
Dit eindpunt geeft ALLE velden terug, inclusief e-mailadressen, telefoonnummers en volledige adressen. Gebruik dit eindpunt alleen als u een gerechtvaardigde zakelijke behoefte hebt en passende verwerkersovereenkomsten hebt gesloten.
curl -X GET "https://polads.eu/api/v1/advertisement-full/ABC12" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"Adverteerdervelden:
companyName, legalName, firstName, lastName, email, phone, streetAddress, postalCode, city, country
Campagnevelden:
name, totalValue, medium, isOngoing, startDate, endDate
Adverteerders en verwerkingsverantwoordelijken:
Alle velden, inclusief e-mailadressen, telefoonnummers en volledige adressen
/advertisement/{PAID}/metricsDit eindpunt vereist een sleutel met de scope Lezen en schrijven. De partner-API is inbegrepen in het Pro-abonnement.
U kunt alleen cijfers melden voor transparantieverklaringen die via uw eigen account zijn gepubliceerd.
De transparantieverklaring hoort bij een andere uitgever. Er wordt niets weggeschreven.
curl -X PUT "https://polads.eu/api/v1/advertisement/ABC12/metrics" \
-H "Authorization: Bearer YOUR_PARTNER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"viewsCount": 15000, "engagementsCount": 320}'Basisinformatie
Naleving en financiering
Targetingtechnieken
Juridisch en metagegevens
// Get single ad
const response = await fetch('https://polads.eu/api/v1/advertisement/PAID-0000001');
const data = await response.json();401 INVALID_TOKEN
Geen actief token komt overeen met de Bearer-referentie, of het token is ingetrokken. Een ontbrekende of onjuiste Authorization-header levert eveneens 401 op, maar alleen het metrics-eindpunt voorziet die van deze code. Een SSP-token op een partnereindpunt krijgt hetzelfde antwoord.
GET /advertisement/{PAID}GET /advertisement-full/{PAID}{
"error": "Invalid or revoked partner API token. This endpoint only accepts partner tokens, not SSP tokens.",
"code": "INVALID_TOKEN"
}PUT /advertisement/{PAID}/metrics{
"error": "Invalid or revoked partner API token.",
"code": "INVALID_TOKEN"
}PUT /advertisement/{PAID}/metrics{
"error": "Missing or invalid Authorization header. Expected: Bearer <token>",
"code": "INVALID_TOKEN"
}GET /advertisement/{PAID}GET /advertisement-full/{PAID}{
"error": "Missing or invalid Authorization header. Expected: Bearer <token>"
}403 PRO_PLAN_REQUIRED
Het token is geldig, maar de uitgever ervan heeft geen Pro-abonnement. Dit wordt vóór het toegangsniveau gecontroleerd, dus bij een alleen-lezentoken van een uitgever zonder Pro-abonnement wordt het abonnement gemeld en niet het toegangsniveau.
GET /advertisement/{PAID}GET /advertisement-full/{PAID}PUT /advertisement/{PAID}/metrics{
"error": "The Pro plan is required to use the partner API.",
"code": "PRO_PLAN_REQUIRED"
}403 INSUFFICIENT_SCOPE
Het token is geldig en heeft Pro, maar mist het toegangsniveau metrics:write dat nodig is om cijfers te rapporteren.
PUT /advertisement/{PAID}/metrics{
"error": "This token is not authorised to write metrics. Required scope: metrics:write.",
"code": "INSUFFICIENT_SCOPE"
}403 FORBIDDEN
De transparantieverklaring hoort bij een andere uitgever. Er wordt niets weggeschreven.
PUT /advertisement/{PAID}/metrics{
"error": "This advertisement belongs to a different publisher.",
"code": "FORBIDDEN"
}400 INVALID_METRICS
De inhoud van het verzoek is geen geldige JSON, of de twee aantallen ontbreken, zijn negatief of zijn geen gehele getallen. De reactie vermeldt wat er niet klopte.
PUT /advertisement/{PAID}/metrics{
"error": "Invalid engagement metrics",
"code": "INVALID_METRICS",
"issues": [
{
"path": "viewsCount",
"message": "Too small: expected number to be >=0"
}
]
}PUT /advertisement/{PAID}/metrics{
"error": "Invalid request body",
"code": "INVALID_METRICS"
}409 METRICS_NOT_APPLICABLE
De transparantieverklaring valt buiten het toepassingsgebied waarvoor betrokkenheidscijfers zijn gedefinieerd. Bijlage II, noot 15, heeft betrekking op een transparantieverklaring voor een online of ingebedde politieke reclameboodschap waarvoor targetingtechnieken of technieken voor de aanlevering van een reclameboodschap zijn gebruikt en waarvan de verspreiding is begonnen. Er wordt niets weggeschreven.
PUT /advertisement/{PAID}/metrics{
"error": "Engagement metrics do not apply to this notice",
"code": "METRICS_NOT_APPLICABLE"
}404 NOT_FOUND
Geen enkele transparantieverklaring komt overeen met dat PA-ID, of zij is nog niet voor u zichtbaar. Lees het gedeelte hierboven voordat u aanneemt dat de identificatiecode onjuist is.
PUT /advertisement/{PAID}/metrics{
"error": "Advertisement not found",
"code": "NOT_FOUND"
}GET /advertisement/{PAID}{
"error": "Advertisement not found"
}GET /advertisement-full/{PAID}{
"error": "Advertisement not found or not yet confirmed"
}429 RATE_LIMITED
De limiet per token is overschreden. De reactie bevat X-RateLimit-Limit, X-RateLimit-Remaining en X-RateLimit-Reset.
PUT /advertisement/{PAID}/metrics{
"error": "Rate limit exceeded",
"code": "RATE_LIMITED",
"limit": 1000,
"remaining": 0,
"reset": "2026-05-14T15:14:00.000Z"
}GET /advertisement/{PAID}GET /advertisement-full/{PAID}{
"error": "Rate limit exceeded",
"limit": 1000,
"remaining": 0,
"reset": "2026-05-14T15:14:00.000Z"
}Dit is API-versie v1, en elke reactie vermeldt dat in een X-API-Version-header. Niet-compatibele wijzigingen verschijnen onder een nieuw pad, zodat dit pad ongewijzigd blijft. Een v1-eindpunt wordt niet uitgeschakeld zonder dat ten minste 90 dagen vooraf een Deprecation-header is meegestuurd, conform RFC 8594.
Machineleesbare specificatie
Het volledige OpenAPI 3.1-document is beschikbaar op /api/docs. Richt Postman, Swagger UI of een clientgenerator daar rechtstreeks op in plaats van deze pagina over te nemen.
https://polads.eu/api/docs