MailAudit
API‑dokumentasjon

API‑referanse

Integrer MailAudit i din egen applikasjon: DNS-, blacklist- og omdømmesjekker samt fullstendige tester av e‑postlevering via et REST API.

Rate limit

60 forespørsler/minutt, 1 000/dag per nøkkel

Base‑URL

https://api.mailaudit.io/api/v1

Autentisering

Hver forespørsel krever en API-nøkkel. Send den i headeren Authorization som Bearer-token (eller i headeren X-API-Key). Hold nøkkelen hemmelig – ikke bygg den inn i kode som kjører i nettleseren.

bash
curl -H "Authorization: Bearer ma_live_xxxxxxxxxxxx" \
  "https://api.mailaudit.io/api/v1/tools/mx-check?domain=example.com"

Hvert svar inneholder headerne X-RateLimit-Remaining og X-RateLimit-Daily-Remaining. Når en grense overskrides, får du HTTP 429 med headeren Retry-After.

Få en API-nøkkel

Endepunkter

MX‑sjekk

GET/tools/mx-check

Hent et domenes MX‑oppføringer samt SPF‑ og DMARC‑innstillinger.

Parametere

domainstringpåkrevd
Domenenavnet som skal sjekkes (f.eks. example.com)

Eksempel på forespørsel

bash
curl -H "Authorization: Bearer $MAILAUDIT_API_KEY" \
  "https://api.mailaudit.io/api/v1/tools/mx-check?domain=gmail.com"

Eksempel på respons

json
1{
2  "domain": "gmail.com",
3  "hasMx": true,
4  "records": [
5    {
6      "exchange": "gmail-smtp-in.l.google.com",
7      "priority": 5,
8      "ip": ["142.250.150.27"]
9    },
10    {
11      "exchange": "alt1.gmail-smtp-in.l.google.com",
12      "priority": 10,
13      "ip": ["142.250.141.26"]
14    }
15  ],
16  "hasSpf": true,
17  "spfRecord": "v=spf1 redirect=_spf.google.com",
18  "hasDmarc": true,
19  "dmarcRecord": "v=DMARC1; p=none; sp=quarantine; rua=mailto:..."
20}

Blacklist‑sjekk

GET/tools/blacklist-check

Sjekk om en IP‑adresse eller et domene står på sentrale spam‑blokklister (32 DNSBL-er).

Parametere

querystringpåkrevd
IP‑adresse (f.eks. 192.168.1.1) eller domenenavn

Eksempel på forespørsel

bash
curl -H "Authorization: Bearer $MAILAUDIT_API_KEY" \
  "https://api.mailaudit.io/api/v1/tools/blacklist-check?query=8.8.8.8"

Eksempel på respons

json
1{
2  "query": "8.8.8.8",
3  "queryType": "ip",
4  "totalChecked": 32,
5  "totalListed": 0,
6  "results": [
7    {
8      "name": "Spamhaus ZEN",
9      "zone": "zen.spamhaus.org",
10      "listed": false,
11      "responseTime": 45
12    },
13    {
14      "name": "Barracuda",
15      "zone": "b.barracudacentral.org",
16      "listed": false,
17      "responseTime": 32
18    }
19    // ...
20  ]
21}

Domeneomdømme‑sjekk

GET/tools/reputation

Full beregning av domeneomdømme. Sjekker SPF, DKIM, DMARC, MX‑oppføringer, blacklist‑status, STARTTLS‑støtte, domenealder og reverse DNS.

Parametere

domainstringpåkrevd
Domenenavnet som skal sjekkes (f.eks. gmail.com)

Eksempel på forespørsel

bash
curl -H "Authorization: Bearer $MAILAUDIT_API_KEY" \
  "https://api.mailaudit.io/api/v1/tools/reputation?domain=gmail.com"
Karakterskala
90-100 = A+
80-89 = A
70-79 = B
60-69 = C
50-59 = D
0-49 = F

Eksempel på respons

json
1{
2  "domain": "gmail.com",
3  "ip": "142.250.150.27",
4  "score": 100,
5  "grade": "A+",
6  "factors": [
7    { "name": "SPF", "status": "pass", "detail": "Policy: present", "impact": 15 },
8    { "name": "DKIM", "status": "warn", "detail": "Not found", "impact": 0 },
9    { "name": "DMARC", "status": "warn", "detail": "Policy: none", "impact": 5 },
10    { "name": "MX Records", "status": "pass", "detail": "5 record(s)", "impact": 10 },
11    { "name": "Blacklists", "status": "pass", "detail": "Clean (39 checked)", "impact": 20 },
12    { "name": "STARTTLS", "status": "pass", "detail": "Supported", "impact": 10 },
13    { "name": "Domain Age", "status": "pass", "detail": "30.3 years", "impact": 10 },
14    { "name": "Reverse DNS", "status": "pass", "detail": "wa-in-f27.1e100.net", "impact": 5 }
15  ],
16  "details": {
17    "mx": { "valid": true, "count": 5, "primary": "gmail-smtp-in.l.google.com" },
18    "spf": { "valid": true, "record": "v=spf1 redirect=_spf.google.com" },
19    "dkim": { "valid": false, "selectors": [] },
20    "dmarc": { "valid": true, "policy": "none", "rua": ["mailto:..."] },
21    "blacklists": { "checked": 10, "listed": 0, "clean": true },
22    "tls": { "valid": true, "starttls": true },
23    "domainAge": { "valid": true, "years": 30.3, "registrationDate": "1995-08-13" },
24    "rdns": { "valid": true, "hostname": "wa-in-f27.1e100.net" }
25  },
26  "checkedAt": "2025-12-03T07:05:46.232Z",
27  "cached": false
28}

Test av e‑postlevering

Opprett en testadresse, send e‑posten din til den fra serveren du vil teste, og spør deretter etter resultatet til statusen er completed (vanligvis innen ett minutt). Testadresser utløper etter én time.

POST/test/generate

Opprett en ny testadresse.

Eksempel på forespørsel

bash
curl -X POST -H "Authorization: Bearer $MAILAUDIT_API_KEY" \
  "https://api.mailaudit.io/api/v1/test/generate"

Eksempel på respons

json
1{
2  "testId": "k3v9x2m1qa",
3  "email": "[email protected]",
4  "expiresAt": "2026-09-24T18:44:14.762Z",
5  "checkUrl": "/test/k3v9x2m1qa"
6}
GET/test/{testId}

Hent status og resultater for en test. Status: pending → processing → completed (eller expired / error). Poengsummen er 0–10.

Parametere

testIdstringpåkrevd
Test-ID returnert av /test/generate

Eksempel på forespørsel

bash
curl -H "Authorization: Bearer $MAILAUDIT_API_KEY" \
  "https://api.mailaudit.io/api/v1/test/k3v9x2m1qa"

Eksempel på respons

json
1{
2  "testId": "k3v9x2m1qa",
3  "status": "completed",
4  "score": 9.2,
5  "createdAt": "2026-09-24T17:44:14.763Z",
6  "receivedAt": "2026-09-24T17:45:02.118Z",
7  "expiresAt": "2026-09-24T18:44:14.762Z",
8  "email": {
9    "from": "[email protected]",
10    "subject": "Our September newsletter",
11    "bounceAddress": null
12  },
13  "checks": {
14    "spf": { "status": "pass", ... },
15    "dkim": { "status": "pass", ... },
16    "dmarc": { "status": "pass", ... },
17    "blacklist": { "status": "pass", ... },
18    "spamassassin": { "status": "pass", ... }
19  }
20}
POST/test/{testId}/recheck

Kjør alle sjekker på nytt på en e‑post som allerede er mottatt, uten å sende en ny.

Parametere

testIdstringpåkrevd
Test-ID returnert av /test/generate

Eksempel på respons

json
1{
2  "success": true,
3  "testId": "k3v9x2m1qa",
4  "message": "Recheck initiated - checks are running"
5}

Utviklerinnboks

Hver konto har sin egen engangsadresse ([email protected], valgfri +tagg). E‑post som sendes dit, lagres i 24 timer og kan leses via API-et, i kontrollpanelet eller via en delingslenke. Bruk den i ende-til-ende-tester i stedet for en ekte postkasse.

GET/inbox/wait

Venter (long-poll, opptil 60 s) til en samsvarende melding kommer, og returnerer den med tekst, HTML, lenker og engangskoder. Returnerer 408 hvis ingenting kommer i tide.

Parametere

tagstring
Bare e‑post sendt til dev-xxxxxx+{tag}@…
timeoutnumber
Antall sekunder å vente, 1–60 (standard 30)
sinceISO 8601
Bare e‑post mottatt etter dette tidspunktet (standard: nå)

Eksempel på forespørsel

bash
1curl -H "Authorization: Bearer $MAILAUDIT_API_KEY" \
2  "https://api.mailaudit.io/api/v1/inbox/address?tag=signup-42"
3# → { "address": "[email protected]", … }
4
5curl -H "Authorization: Bearer $MAILAUDIT_API_KEY" \
6  "https://api.mailaudit.io/api/v1/inbox/wait?tag=signup-42&timeout=60"

Også tilgjengelig:

  • GET /inbox · GET /inbox/address · GET /inbox/messages?tag=&since=
  • GET /inbox/messages/{id} · GET /inbox/messages/{id}/raw · DELETE /inbox/messages/{id}

Eksempel på respons

json
1{
2  "id": "81ab56fe-9546-41a1-b7d1-b0f1a594ad37",
3  "to": "[email protected]",
4  "tag": "signup-42",
5  "from": { "address": "[email protected]", "name": "YourApp" },
6  "subject": "Confirm your email address",
7  "receivedAt": "2026-09-24T19:53:43.624Z",
8  "expiresAt": "2026-09-25T19:53:43.624Z",
9  "links": ["https://yourapp.dev/confirm?t=abc"],
10  "codes": ["482913"],
11  "shareUrl": "https://mailaudit.io/m/UjKgBYNGYXjTaGLe…",
12  "text": "Your code: 482 913 …",
13  "html": "<p>Your code: <b>482 913</b></p>…",
14  "headers": { "subject": "Confirm your email address", … }
15}

Bruk den fra en AI-agent (MCP)

Den samme innboksen er en MCP-server, så Claude Code, Cursor og andre MCP-klienter kan selv opprette adresser, vente på e‑post og lese den:

bash
claude mcp add --transport http mailaudit https://api.mailaudit.io/mcp \
  --header "Authorization: Bearer $MAILAUDIT_API_KEY"

Verktøy: new_address, wait_for_message, list_messages, get_message, extract, share_link, delete_message.

HTTP‑statuskoder

KodeStatusBeskrivelse
200OKVellykket forespørsel
400Bad RequestManglende eller ugyldig parameter
401UnauthorizedAPI-nøkkel mangler, er ugyldig eller er tilbakekalt
404Not FoundTest ikke funnet
429Too Many RequestsGrensen for antall forespørsler er overskredet (60/minutt eller 1 000/dag)
500Internal Server ErrorServerfeil

Feilrespons

Ved feil inneholder responsen et error-felt med beskrivelse av feilen:

json
{
  "error": "Domain is required"
}

Kodeeksempler

JavaScript / Node.js

javascript
1// Hent MX‑oppføringer
2const response = await fetch(
3  'https://api.mailaudit.io/api/v1/tools/mx-check?domain=example.com',
4  { headers: { Authorization: `Bearer ${process.env.MAILAUDIT_API_KEY}` } }
5);
6const data = await response.json();
7
8if (data.hasMx) {
9  console.log('MX‑oppføringer:', data.records);
10  console.log('SPF:', data.hasSpf ? data.spfRecord : 'Ingen');
11  console.log('DMARC:', data.hasDmarc ? data.dmarcRecord : 'Ingen');
12}

Python

python
1import os
2import requests
3
4# Blacklist‑sjekk
5response = requests.get(
6    'https://api.mailaudit.io/api/v1/tools/blacklist-check',
7    params={'query': '192.168.1.1'},
8    headers={'Authorization': f"Bearer {os.environ['MAILAUDIT_API_KEY']}"},
9)
10data = response.json()
11
12print(f"Sjekket: {data['totalChecked']} lister")
13print(f"Oppført på: {data['totalListed']} steder")
14
15for result in data['results']:
16    if result['listed']:
17        print(f"⚠️  {result['name']}: OPPFØRT")

Python - Reputation Check

python
1import os
2import requests
3
4# Domeneomdømme‑sjekk
5response = requests.get(
6    'https://api.mailaudit.io/api/v1/tools/reputation',
7    params={'domain': 'example.com'},
8    headers={'Authorization': f"Bearer {os.environ['MAILAUDIT_API_KEY']}"},
9)
10data = response.json()
11
12print(f"Score: {data['score']}/100 ({data['grade']})")
13print("\nFaktorer:")
14for factor in data['factors']:
15    icon = "✅" if factor['status'] == 'pass' else "⚠️" if factor['status'] == 'warn' else "❌"
16    print(f"  {icon} {factor['name']}: {factor['detail']} ({factor['impact']:+d})")

Python - Email deliverability test

python
1import os
2import time
3import requests
4
5# Fullstendig leveringstest
6api = 'https://api.mailaudit.io/api/v1'
7headers = {'Authorization': f"Bearer {os.environ['MAILAUDIT_API_KEY']}"}
8
9test = requests.post(f'{api}/test/generate', headers=headers).json()
10print('Send your email to:', test['email'])
11
12while True:
13    result = requests.get(f"{api}/test/{test['testId']}", headers=headers).json()
14    if result['status'] in ('completed', 'expired', 'error'):
15        break
16    time.sleep(10)
17
18print(f"Status: {result['status']}, score: {result['score']}/10")

PHP

php
1<?php
2// MX‑sjekk
3$domain = 'example.com';
4$url = "https://api.mailaudit.io/api/v1/tools/mx-check?domain=" . urlencode($domain);
5
6$context = stream_context_create(['http' => [
7    'header' => 'Authorization: Bearer ' . getenv('MAILAUDIT_API_KEY'),
8]]);
9$response = file_get_contents($url, false, $context);
10$data = json_decode($response, true);
11
12if ($data['hasMx']) {
13    foreach ($data['records'] as $mx) {
14        echo "MX: {$mx['exchange']} (prioritet: {$mx['priority']})\n";
15    }
16}
17?>

Har du lyst til å teste API‑et?

Prøv verktøyene våre i webgrensesnittet, eller kom i gang med API‑integrasjon.