MailAudit
API документација

API референца

Интегришите MailAudit у сопствену апликацију: провере DNS-а, blacklist‑а и репутације, као и потпуни тестови испоручивости мејлова преко REST API-ја.

Rate лимит

60 захтева / минут, 1.000 / дан по кључу

Основни URL

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

Аутентификација

За сваки захтев потребан је API кључ. Пошаљите га у заглављу Authorization као Bearer токен (или у заглављу X-API-Key). Чувајте кључ у тајности – немојте га уграђивати у код који се извршава у прегледачу.

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

Сваки одговор садржи заглавља X-RateLimit-Remaining и X-RateLimit-Daily-Remaining. Када се ограничење прекорачи, добијате HTTP 429 са заглављем Retry-After.

Набавите API кључ

Endpoint‑и

Провера MX записа

GET/tools/mx-check

Враћа MX записе домена, као и SPF и DMARC подешавања.

Параметри

domainstringобавезно
Домен који се проверава (нпр. example.com)

Пример захтева

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

Пример одговора

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‑а

GET/tools/blacklist-check

Провера да ли је IP адреса или домен на главним спам blocklist‑ама (32 DNSBL листа).

Параметри

querystringобавезно
IP адреса (нпр. 192.168.1.1) или назив домена

Пример захтева

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

Пример одговора

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}

Провера репутације домена

GET/tools/reputation

Свеобухватно израчунавање скора репутације домена. Провера SPF, DKIM, DMARC, MX записа, blacklist статуса, STARTTLS подршке, старости домена и reverse DNS‑а.

Параметри

domainstringобавезно
Домен који се проверава (нпр. gmail.com)

Пример захтева

bash
curl -H "Authorization: Bearer $MAILAUDIT_API_KEY" \
  "https://api.mailaudit.io/api/v1/tools/reputation?domain=gmail.com"
Скала оцењивања
90-100 = A+
80-89 = A
70-79 = B
60-69 = C
50-59 = D
0-49 = F

Пример одговора

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}

Тест испоручивости мејла

Направите тест адресу, пошаљите на њу мејл са сервера који желите да тестирате, а затим проверавајте резултат док статус не буде completed (обично у року од једног минута). Тест адресе истичу након сат времена.

POST/test/generate

Направите нову тест мејл адресу.

Пример захтева

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

Пример одговора

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}

Преузмите статус и резултате теста. Статус: pending → processing → completed (или expired / error). Скор је од 0 до 10.

Параметри

testIdstringобавезно
ID теста који враћа /test/generate

Пример захтева

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

Пример одговора

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

Поново покрените све провере на мејлу који је већ примљен, без слања новог.

Параметри

testIdstringобавезно
ID теста који враћа /test/generate

Пример одговора

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

Развојно сандуче

Сваки налог има сопствену једнократну адресу ([email protected], са било којом +ознаком). Пошта послата на њу чува се 24 сата и може се читати преко API-ја, на контролној табли или путем линка за дељење. Користите је у end-то-end тестовима уместо правог поштанског сандучета.

GET/inbox/wait

Чека (long-poll, до 60 с) док не стигне одговарајућа порука и враћа је са текстом, HTML-ом, линковима и једнократним кодовима. Враћа 408 ако ништа не стигне на време.

Параметри

tagstring
Само пошта послата на dev-xxxxxx+{tag}@…
timeoutnumber
Број секунди чекања, 1-60 (подразумевано 30)
sinceISO 8601
Само пошта примљена после овог времена (подразумевано: сада)

Пример захтева

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"

Доступно је и:

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

Пример одговора

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}

Коришћење из AI агента (MCP)

Исто сандуче је и MCP сервер, па Claude Code, Cursor и други MCP клијенти могу сами да праве адресе, чекају пошту и читају је:

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

Алати: new_address, wait_for_message, list_messages, get_message, extract, share_link, delete_message.

HTTP статус кодови

КодСтатусОпис
200OKУспешан захтев
400Bad RequestНедостаје или је неисправан параметар
401UnauthorizedAPI кључ недостаје, неисправан је или је опозван
404Not FoundТест није пронађен
429Too Many RequestsПрекорачено ограничење броја захтева (60/минут или 1.000/дан)
500Internal Server ErrorГрешка на серверу

Одговори при грешци

У случају грешке, одговор садржи поље error са описом проблема:

json
{
  "error": "Домен је обавезан"
}

Примери кода

JavaScript / Node.js

javascript
1// Упит за MX записе
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 записи:', data.records);
10  console.log('SPF:', data.hasSpf ? data.spfRecord : 'Нема');
11  console.log('DMARC:', data.hasDmarc ? data.dmarcRecord : 'Нема');
12}

Python

python
1import os
2import requests
3
4# Провера blacklist‑а
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"Проверено: {data['totalChecked']} листа")
13print(f"На листи: {data['totalListed']} пута")
14
15for result in data['results']:
16    if result['listed']:
17        print(f"⚠️  {result['name']}: НА ЛИСТИ")

Python - Reputation Check

python
1import os
2import requests
3
4# Провера репутације домена
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("\nФактори:")
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# Потпуни тест испоручивости
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 провера
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']} (приоритет: {$mx['priority']})\n";
15    }
16}
17?>

Желите да испробате API?

Испробајте наше алате преко wеб интерфејса или одмах крените са интеграцијом.