Inleiding
Onlinespamfilter biedt haar resellers de mogelijkheid een aantal veel voorkomende handelingen uit te voeren via een API. Deze API kan via https://api.onlinespamfilter.nl worden aangesproken. API toegang is alleen op aanvraag beschikbaar voor resellers. U kunt hiervoor contact opnemen met uw contactpersoon binnen Onlinespamfilter.
De API kent twee soorten aanroepen:
Lezen (XML of JSON) — GET-requests geven standaard JSON terug; stuur Accept: application/xml als u XML wilt. Zie Deel 1.
Schrijven (JSON) — aanmaken en wijzigen gebeurt uitsluitend met een JSON request-body. Zie Deel 2.
De API luistert naar HTTP-requests van het type GET, POST, PUT/PATCH en DELETE. Alleen GET en POST zijn in webbrowsers gedefinieerd; voor volledige functionaliteit schrijft u een eigen client of gebruikt u een tool als cURL (https://curl.se). Bij onverwachte fouten kan een HTML-pagina worden teruggegeven; houd hier rekening mee.
⚠️ Gewijzigd: Het aanmaken en wijzigen van domeinen werkt niet langer via een XML request-body (<api-domain>…</api-domain>). Gebruik hiervoor de JSON-aanroepen in Deel 2. Bestaande XML lees-aanroepen blijven ongewijzigd werken.
Deel 1 — Lezen (XML of JSON)
Alle lees-aanroepen ondersteunen zowel JSON als XML via de Accept-header:
Voor het aanmaken en wijzigen van domeinen, zie Deel 2.
Domein overzicht
| https://api.onlinespamfilter.nl/api_domains
|
|---|
| https://api.onlinespamfilter.nl/api_domains
|
|---|
Actie | GET |
Response | Domein-objecten voor de geauthenticeerde gebruiker |
Voorbeeld (XML) | curl -k -H 'Accept: application/xml' -u username:password 'https://api.onlinespamfilter.nl/api_domains'
|
Voorbeeld (JSON) | curl -k -H 'Accept: application/json' -u username:password 'https://api.onlinespamfilter.nl/api_domains'
|
Domein details
| https://api.onlinespamfilter.nl/api_domains/[domeinnaam]
|
|---|
| https://api.onlinespamfilter.nl/api_domains/[domeinnaam]
|
|---|
Actie | GET |
Response | Object voor [domeinnaam] |
Voorbeeld (XML) | curl -k -H 'Accept: application/xml' -u username:password 'https://api.onlinespamfilter.nl/api_domains/[domeinnaam]'
|
Voorbeeld (JSON) | curl -k -H 'Accept: application/json' -u username:password 'https://api.onlinespamfilter.nl/api_domains/[domeinnaam]'
|
Domein verwijderen
| https://api.onlinespamfilter.nl/api_domains/[domeinnaam]
|
|---|
| https://api.onlinespamfilter.nl/api_domains/[domeinnaam]
|
|---|
Actie | DELETE |
Gevolg | Indien toegestaan wordt het domein verwijderd. Eventuele geschiedenis of andere verwante gegevens verdwijnen hiermee ook! |
Response | Een ok in de HTTP-header. Geen object. |
Voorbeeld | curl -k -u username:password -X DELETE 'https://api.onlinespamfilter.nl/api_domains/[domeinnaam]'
|
DomeinAlias overzicht
| https://api.onlinespamfilter.nl/api_domain_aliases
|
|---|
| https://api.onlinespamfilter.nl/api_domain_aliases
|
|---|
Actie | GET |
Response | Domein-alias-objecten voor de geauthenticeerde gebruiker |
Voorbeeld (XML) | curl -k -H 'Accept: application/xml' -u username:password 'https://api.onlinespamfilter.nl/api_domain_aliases'
|
Voorbeeld (JSON) | curl -k -H 'Accept: application/json' -u username:password 'https://api.onlinespamfilter.nl/api_domain_aliases'
|
Berichten overzicht
| https://api.onlinespamfilter.nl/api_histories/[domeinnaam]
|
|---|
| https://api.onlinespamfilter.nl/api_histories/[domeinnaam]
|
|---|
Actie | GET |
Response | Lijst met bericht-objecten voor [domeinnaam], inclusief het unieke id (de osfsum) voor inleren of het opvragen van berichtinhoud |
Voorbeeld (XML) | curl -k -H 'Accept: application/xml' -u username:password 'https://api.onlinespamfilter.nl/api_histories/[domeinnaam]'
|
Voorbeeld (JSON) | curl -k -H 'Accept: application/json' -u username:password 'https://api.onlinespamfilter.nl/api_histories/[domeinnaam]'
|
Berichten corrigeren
| https://api.onlinespamfilter.nl/api_histories/[osfsum]
|
|---|
| https://api.onlinespamfilter.nl/api_histories/[osfsum]
|
|---|
Actie | PUT (lege body) |
Gevolg | Indien toegestaan wordt het bericht in de database gecorrigeerd. Het bericht wordt niet doorgestuurd naar de oorspronkelijke ontvanger. Let op: afhankelijk van het type inleeractie is de berichtinhoud daarna mogelijk niet meer op te vragen — vraag deze indien nodig vooraf op via api_messages. |
Response | Object met de nieuwe classificering |
Voorbeeld (XML) | curl -k -H 'Accept: application/xml' -u username:password -X PUT -d '' 'https://api.onlinespamfilter.nl/api_histories/[osfsum]'
|
Voorbeeld (JSON) | curl -k -H 'Accept: application/json' -u username:password -X PUT -d '' 'https://api.onlinespamfilter.nl/api_histories/[osfsum]'
|
Bericht inhoud
| https://api.onlinespamfilter.nl/api_messages/[osfsum]
|
|---|
| https://api.onlinespamfilter.nl/api_messages/[osfsum]
|
|---|
Actie | GET |
Response | Object met header, body en osfsum van bericht [osfsum] (berichtdata in gecomprimeerde/Zlib-vorm, tot 14 dagen bewaard) |
Voorbeeld (XML) | curl -k -H 'Accept: application/xml' -u username:password 'https://api.onlinespamfilter.nl/api_messages/[osfsum]'
|
Voorbeeld (JSON) | curl -k -H 'Accept: application/json' -u username:password 'https://api.onlinespamfilter.nl/api_messages/[osfsum]'
|
Domein Statistieken
| https://api.onlinespamfilter.nl/api_statistics/[domeinnaam]
|
|---|
| https://api.onlinespamfilter.nl/api_statistics/[domeinnaam]
|
|---|
Actie | GET |
Invoer | Optionele GET-parameter startdate (formaat dd-mm-yyyy); standaard 14 dagen terug |
Response | Lijst van objecten met per dag de telling van spam, innocent, virus en banned berichten |
Voorbeeld (XML) | curl -k -H 'Accept: application/xml' -u username:password 'https://api.onlinespamfilter.nl/api_statistics/[domeinnaam]?startdate=01-06-2026'
|
Voorbeeld (JSON) | curl -k -H 'Accept: application/json' -u username:password 'https://api.onlinespamfilter.nl/api_statistics/[domeinnaam]?startdate=01-06-2026'
|
Toegestane IP-adressen overzicht
| https://api.onlinespamfilter.nl/api_allowed_ips
|
|---|
| https://api.onlinespamfilter.nl/api_allowed_ips
|
|---|
Actie | GET |
Response | Toegestane-IP-objecten (velden: ip, description, created_at) voor de geauthenticeerde gebruiker |
Voorbeeld (XML) | curl -k -H 'Accept: application/xml' -u username:password 'https://api.onlinespamfilter.nl/api_allowed_ips'
|
Voorbeeld (JSON) | curl -k -H 'Accept: application/json' -u username:password 'https://api.onlinespamfilter.nl/api_allowed_ips'
|
Toegestane IP-adres details
| https://api.onlinespamfilter.nl/api_allowed_ips/[ip]
|
|---|
| https://api.onlinespamfilter.nl/api_allowed_ips/[ip]
|
|---|
Actie | GET |
Response | Object voor [ip] (velden: ip, description, created_at) |
Voorbeeld (XML) | curl -k -H 'Accept: application/xml' -u username:password 'https://api.onlinespamfilter.nl/api_allowed_ips/[ip]'
|
Voorbeeld (JSON) | curl -k -H 'Accept: application/json' -u username:password 'https://api.onlinespamfilter.nl/api_allowed_ips/[ip]'
|
SASL accounts overzicht
| https://api.onlinespamfilter.nl/api_sasl_accounts
|
|---|
| https://api.onlinespamfilter.nl/api_sasl_accounts
|
|---|
Actie | GET |
Response | SASL-account-objecten (velden: username, description, created_at) voor de geauthenticeerde gebruiker. Het wachtwoord wordt nooit teruggegeven. |
Voorbeeld (XML) | curl -k -H 'Accept: application/xml' -u username:password 'https://api.onlinespamfilter.nl/api_sasl_accounts'
|
Voorbeeld (JSON) | curl -k -H 'Accept: application/json' -u username:password 'https://api.onlinespamfilter.nl/api_sasl_accounts'
|
SASL account details
| https://api.onlinespamfilter.nl/api_sasl_accounts/[gebruikersnaam]
|
|---|
| https://api.onlinespamfilter.nl/api_sasl_accounts/[gebruikersnaam]
|
|---|
Actie | GET |
Response | Object voor [gebruikersnaam] (velden: username, description, created_at). Het wachtwoord wordt nooit teruggegeven. |
Voorbeeld (XML) | curl -k -H 'Accept: application/xml' -u username:password 'https://api.onlinespamfilter.nl/api_sasl_accounts/[gebruikersnaam]'
|
Voorbeeld (JSON) | curl -k -H 'Accept: application/json' -u username:password 'https://api.onlinespamfilter.nl/api_sasl_accounts/[gebruikersnaam]'
|
Deel 2 — Schrijven (JSON)
Stuur bij schrijfacties een JSON request-body met Content-Type: application/json. De velden zijn flat (geen <api-domain>-wrapper).
Domein aanmaken
| https://api.onlinespamfilter.nl/api_domains
|
|---|
| https://api.onlinespamfilter.nl/api_domains
|
|---|
Actie | POST |
Invoer | JSON. Verplicht: domain, testuser. Optioneel: transportip, transportport, description |
Gevolg | Domein wordt aangemaakt |
Response | JSON object van het aangemaakte domein |
Voorbeeld | curl -k -H 'Content-Type: application/json' -u username:password -X POST -d '{"domain":"new-domein.nl","testuser":"postmaster","transportip":"mail.new-domain.com","transportport":2525,"description":"Optionele omschrijving"}' 'https://api.onlinespamfilter.nl/api_domains'
|
Domein details aanpassen
| https://api.onlinespamfilter.nl/api_domains/[domeinnaam]
|
|---|
| https://api.onlinespamfilter.nl/api_domains/[domeinnaam]
|
|---|
Actie | PATCH (PUT wordt ook geaccepteerd) |
Invoer | JSON met aan te passen attributes. Toegestaan: transportip, transportport, testuser, description |
Gevolg | De opgegeven attributes worden aangepast |
Response | JSON object van het domein |
Voorbeeld | curl -k -H 'Content-Type: application/json' -u username:password -X PATCH -d '{"description":"Nieuwe omschrijving"}' 'https://api.onlinespamfilter.nl/api_domains/[domeinnaam]'
|
Toegestane IP omschrijving aanpassen
| https://api.onlinespamfilter.nl/api_allowed_ips/[ip]
|
|---|
| https://api.onlinespamfilter.nl/api_allowed_ips/[ip]
|
|---|
Actie | PATCH (PUT wordt ook geaccepteerd) |
Invoer | JSON. Alleen description kan worden aangepast (max. 255 tekens) |
Gevolg | De omschrijving van het toegestane IP wordt aangepast |
Response | JSON object van het toegestane IP |
Voorbeeld | curl -k -H 'Content-Type: application/json' -u username:password -X PATCH -d '{"description":"Nieuwe omschrijving"}' 'https://api.onlinespamfilter.nl/api_allowed_ips/[ip]'
|
SASL account omschrijving aanpassen
| https://api.onlinespamfilter.nl/api_sasl_accounts/[gebruikersnaam]
|
|---|
| https://api.onlinespamfilter.nl/api_sasl_accounts/[gebruikersnaam]
|
|---|
Actie | PATCH (PUT wordt ook geaccepteerd) |
Invoer | JSON. Alleen description kan worden aangepast (max. 255 tekens). De gebruikersnaam en het wachtwoord kunnen niet via de API worden gewijzigd. |
Gevolg | De omschrijving van het SASL-account wordt aangepast |
Response | JSON object van het SASL-account (zonder wachtwoord) |
Voorbeeld | curl -k -H 'Content-Type: application/json' -u username:password -X PATCH -d '{"description":"Nieuwe omschrijving"}' 'https://api.onlinespamfilter.nl/api_sasl_accounts/[gebruikersnaam]'
|
Spam berichten corrigeren zonder API key
Voor berichten die als spam hadden moeten worden geclassificeerd kan correctie (Innocent → Spam) zonder API key, op basis van de unieke combinatie domeinnaam + X-OSF-Sum header. Bruikbaar voor bijvoorbeeld een 'spam'-knop in een mailclient. Vervangt op termijn de "retrain by mail"-functionaliteit.
| https://api.onlinespamfilter.nl/api_classify_spam
|
|---|
| https://api.onlinespamfilter.nl/api_classify_spam
|
|---|
Actie | POST |
Invoer | domain en osfsum (Spamfilter ID uit de X-OSF-Sum header)
|
Response | JSON {"status":"OK"} of {"error":"…"} |
Voorbeeld | curl -X POST -F 'domain=<domain_name>' -F 'osfsum=<Spamfilter ID>' https://api.onlinespamfilter.nl/api_classify_spam
|
Domein Status informatie (token)
Geeft connectie- en MX-status, het aantal deferred e-mails en of het domein actief is. Werkt met een per-domein token dat in de loginportal wordt gegenereerd.
| https://api.onlinespamfilter.nl/api_domains/status
|
|---|
| https://api.onlinespamfilter.nl/api_domains/status
|
|---|
Actie | GET |
Response | JSON datastructuur |
Voorbeeld | curl -H 'Accept: application/json' -H 'Authorization: Bearer <<token>>' https://api.onlinespamfilter.nl/api_domains/status
|