Vyzkoušet v sandboxu → Každý endpoint obsahuje tlačítko, které ho spustí proti živé službě. Nic zde nevyžaduje klíč, takže požadavek, který z této stránky odešlete, je skutečný: rezervuje skutečnou adresu a započítává se.
Postup
Dva požadavky a jeden e-mail. Třetí volání je potřeba jen proto, že analýza trvá několik sekund.
Rezervujte adresu
Odešlete POST na koncový bod schránky. Získáte adresu, která přijme právě jednu zprávu a vyprší za hodinu, a také slug, podle kterého se identifikuje vše ostatní.
Odešlete na ni skutečnou zprávu
Přes SMTP, z platformy, která bude kampaň odesílat. Polovina kontrol čte hlavičky přidané odesílací platformou, takže ručně vytvořená zpráva měří něco jiného.
Dotazujte se na stav a pak načtěte report
Koncový bod stavu má několik set bajtů a sdělí vám, zda už má smysl načíst úplný report. Samotný report má několik tisíc řádků.
# 1. reserve a single-use address curl -sX POST 'https://email-spam-tester.com/api/v1/inbox?lang=en' { "address": "test-<slug>@t.email-spam-tester.com", "slug": "<slug>", "expires_at": "2026-01-01T12:00:00Z" }
# 2. send your message to that address, then poll curl -s 'https://email-spam-tester.com/api/v1/tests/<slug>/status' { "slug": "<slug>", "analysis_status": "checks_ready", "ai_status": "running", "checks_done": 39, "checks_total": 39 }
# 3. read the report once analysis_status is checks_ready curl -s 'https://email-spam-tester.com/api/v1/tests/<slug>' { "report_url": "https://email-spam-tester.com/t/<slug>", "score_ours": 86.4, "score_compat": 9.2, "subscores": {"auth": 100.0, "infra_spam": 78.1, "content": 92.0, "compliance": 75.0}, "complete": true, "checks": [ { "id": "auth.dmarc", "status": "warn", "title": "DMARC result", "summary": "DMARC passes, but the policy is p=none.", "weight_ours": -4.0, "evidence": {"policy": "none", "aligned": "dkim"}, "citations": {"standards": [{"title": "RFC 9989 §4.7", "quote": "..."}]} } ], "fixes": [ {"id": "dmarc-enforce", "gain_ours": 4.0, "gain_compat": 0.0, "fix": {"title": "Move DMARC to quarantine", "severity": "medium"}} ] }
Ověřování
Žádné není. Není třeba žádat o klíč, nastavovat hlavičku ani vytvářet účet. Vrácený slug funguje jako přístupový údaj: kdokoli ho má, může daný report číst, a nikdo jiný ho nemůže uhodnout.
Koncové body
Základní adresa https://email-spam-tester.com. Vše vrací JSON.
POST/api/v1/inbox
Rezervuje jednorázovou adresu. Oba parametry jsou volitelné.
| lang | Jazyk, ve kterém budou napsány plán oprav a zjištění jednotlivých kontrol, uvedený jako kód ISO. Určuje se nyní, protože zpráva dorazí přes SMTP o několik minut později a neobsahuje žádný údaj o tom, kdo na ni čeká. Neznámý kód použije jako náhradní jazyk angličtinu. |
| utm_source, utm_medium, utm_campaign | Předávají se do naší analytiky. Užitečné, pokud měříte vlastní integraci. |
GET/api/v1/tests/{slug}/status
Je nenáročný na pravidelné dotazování. Vrací pouze dvě stavová pole a informaci o průběhu kontrol, nic jiného.
GET/api/v1/tests/{slug}
Celý report. Vrací 202, dokud je adresa rezervovaná a zatím nic nedorazilo, a 200, jakmile něco dorazí.
GET/api/v1/tests/{slug}/message
Zpráva přesně tak, jak byla doručena: každá hlavička v pořadí přenosu, obě těla, seznam příloh a nezpracovaný zdroj. Načítá se samostatně, protože report se pravidelně načítá a tato data mohou mít až jeden megabajt.
PUT/api/v1/tests/{slug}/locale
Změní jazyk rezervace, která ještě nebyla použita. Pro agenta, který zjistí, v jakém jazyce jeho uživatel čte, až poté, co již požádal o adresu. Po přijetí zprávy je požadavek odmítnut, protože v té době již probíhá analýza.
GET/api/health
Kontrola dostupnosti. Bez ověřování, bez vedlejších účinků.
Čtení reportu
Pole, která obsahují odpověď, v pořadí, v jakém je pravděpodobně budete potřebovat.
| score_ours | 0 až 100. Náš model. Ověřování a infrastruktura mají největší váhu, protože rozhodují o doručení dříve, než filtr přečte jediné slovo textu zprávy. |
| score_compat | 0 až 10. Reprodukuje číslo ve stylu SpamAssassin, které už lidé porovnávají, takže je report srovnatelný s tím, co někdo viděl jinde. |
| subscores | Stejná škála od 0 do 100 pro každou sekci: auth, infra_spam, content, compliance. |
| checks[] | Všech 41, každá se stavem, jednořádkovým zjištěním, podklady, podle nichž bylo rozhodnuto, a dopadem na obě skóre. |
| checks[].citations | Odkud zjištění pochází: část RFC citovaná doslovně a stránka, na které Google uvádí vlastní požadavek. Ručně sestavené, nikoli generované, takže se na ně lze spolehnout. |
| fixes[] | Co změnit, v daném pořadí, včetně počtu bodů, které každá změna přinese. Přínosy se počítají opětovným vyhodnocením reportu, nejsou odhadované. |
| complete | False, pokud kontrolu nebylo možné spustit. Nezkontrolovaná položka nikdy nemá stav pass, proto považujte skóre za optimistické, dokud nebude true. |
| report_url | Stránka čitelná pro člověka. Předejte ji člověku místo stěny JSON. |
Stavy
Kontrola má jeden z pěti stavů a rozdíl mezi dvěma z nich je důležitější, než se zdá.
| pass | Kontrola proběhla a nezjistila žádný problém. |
| warn | Stojí za opravu. Ubírá body. |
| fail | Zhorší doručitelnost. Stojí více bodů. |
| přeskočeno | Nevztahovalo se. Žádné přílohy ke kontrole, žádná část HTML k vyhodnocení. Nejde o úspěšný výsledek. |
| chyba | Nepodařilo se nám to zjistit. Výsledek je vyloučen z bodového hodnocení a označen příznakem, namísto aby byl započítán jako úspěšný. |
analysis_status nabývá hodnot received, analyzing, checks_ready, failed. ai_status nabývá hodnot pending, running, ready, fallback, error. Deterministický report je ve stavu checks_ready konečný; ai_status už pouze přidává plán.
Co může přijít v odpovědi
| 202 | Adresa je rezervována a žádná zpráva nedorazila. Tělo obsahuje adresu, dobu vypršení platnosti a jazyk, takže ji může zobrazit i volající, který rezervaci nevytvořil. |
| 404 | Takový slug neexistuje. Buď nikdy neexistoval, nebo byla rezervace zapomenuta. |
| 410 | Platnost adresy vypršela dříve, než dorazila zpráva. |
| 409 | Pokusili jste se změnit jazyk poté, co již zpráva dorazila. |
| 429 | Limit bezplatných testů pro vaši adresu. Tato služba nyní nemá žádný limit na osobu; pokud bude někdy nastaven, tělo uvádí, kdy se resetuje. |
Čtyři důležité věci
Jedna zpráva na adresu
Druhá zpráva je odmítnuta. Váš předchozí report zůstane beze změny, což je smyslem tohoto omezení.
Hodina na použití
Adresa vyprší; report nikoli. Odkazy na report jsou trvalé, takže odkaz vložený do požadavku podpory zůstane funkční.
Odesílejte z platformy
Testování kampaně z osobního účtu měří tento účet. Téměř vše v části o ověřování se týká infrastruktury pro odesílání, nikoli textu.
Po opravě test zopakujte
Očekávaná zlepšení se počítají vždy pro jednu opravu a nesčítají se. Druhý report uvádí skutečné číslo.
Pro stroje
- /api/openapi.json Popis OpenAPI vygenerovaný ze stejného kódu, který obsluhuje API.
- /llms.txt, /llms-full.txt Krátká mapa tohoto webu pro jazykové modely podle konvence llms.txt a delší verze s celým cyklem a poli reportu v jednom souboru.
- /mcp Server MCP se stejnou funkcí a blokujícím čekáním, které je lepší než opakované dotazování zevnitř modelu.
- For agents Stránka pro agenty: kdy tuto funkci použít, jak rozlišit přeskočenou kontrolu od úspěšné a která zjištění jsou záznamy DNS, jež musí změnit člověk, nikoli text, který může upravit agent.
Nejprve jeden vyzkoušejte ručně
Zabere to asi minutu a ukáže vám přesně to, co popisuje JSON.