Utilities

Free email & domain check API and MCP server

The full report from the home page as one JSON answer, for your scripts and AI assistants: 20 checks for a domain, 14 for an email address. No sign-up and no key; 10 queries a day per network.

By using these tools you accept the Terms and the Privacy page.

Calls GET /developers/api/domain and shows the answer. Up to 25 seconds; counts as 1 of your network’s 10 queries today unless the domain was checked in the last 10 minutes.

REST API

Two endpoints, JSON in and out, no key. An email address goes in a POST body, never in a URL.

RequestRuns
GET /developers/api/domain?domain=example.comThe domain report: 20 checks plus Spamhaus and AI intelligence. CORS allowed.
POST /developers/api/email
{"email": "jane@example.com"}
The email report: 14 checks plus Spamhaus and AI intelligence, without the live mailbox check. content-type: application/json.
curl -s 'https://tanase.ai/developers/api/domain?domain=example.com'
curl -s https://tanase.ai/developers/api/email \
  -H 'content-type: application/json' \
  -d '{"email": "jane@example.com"}'

MCP server

Add https://tanase.ai/mcp to your AI assistant: Streamable HTTP, no sign-in. It has two tools, check_domain and check_email, which answer with a short text summary plus the same JSON as the API (structuredContent, with an output schema).

https://tanase.ai/mcp

Claude and Claude Desktop

Settings → Connectors → Add custom connector, paste the URL and click Add (Pro, Max, Team and Enterprise plans; on Team and Enterprise an owner adds it). Turn it on in a chat with the + button → Connectors. No OAuth settings are needed.

ChatGPT

Open Plugins, press +, choose Add custom MCP server, give it a name, enter the URL including /mcp under Connection, choose no authentication and create it. Your account or workspace must allow custom MCP servers.

Cursor

In ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):

{
  "mcpServers": {
    "tanase": { "url": "https://tanase.ai/mcp" }
  }
}

Other clients and discovery

Any MCP client with Streamable HTTP works with the URL alone. The server card is at /mcp/server-card and the AI Catalog at /.well-known/ai-catalog.json (MCP Server Card extension).

The answer

The same fields from the API and the MCP tools (the MCP tools publish them as a JSON Schema):

FieldWhat it holds
verdictstatus (pass, warn, fail, error), summary (the report’s sentence) and counts per status.
fixFirstProblems, then warnings, across every check, duplicates dropped; each names its check.
checks[]id, title, state (done, error, late), status, grade, summary, text, facts, issues and link, the tool page with the full results.
panelsspamhaus and ai: one summary line each, or “couldn’t check”.
mailboxEmail only: the live mailbox check wasn’t run, with the ZeroBounce link (sponsored).
reportUrl, generatedAt, late, limitsThe report page, when it ran, which checks missed the deadline, and the daily limit with its reset time.

Limits and error codes

Errors are JSON: {"ok": false, "error": "…", "code": "…"}. Messages are written to be shown as they are. In the MCP tools, input problems and limits come back as a tool result with isError: true.

HTTPcodeMeaning
400invalid_domain, invalid_email, invalid_jsonThe input isn’t a domain, an address or JSON. Not counted.
403cross_siteA browser call from another site that isn’t a CORS fetch() of the domain query.
405, 413, 415method_not_allowed, too_large, unsupported_media_typeWrong method, a body over 4 KB, or an email query that isn’t JSON.
429daily_limitThis network’s 10 queries today are used. Retry-After, resetsAt and retryAfterSeconds say when it resets (00:00 UTC).
429daily_limit_siteThe 2,000 queries for everyone today are used.
429daily_limit_platformClaude’s or ChatGPT’s 1,500 shared queries today are used.
429rate_limitedMore than 10 queries in a minute from one network. Wait a minute.
500, 503internal, unavailableSomething failed on our side, or the query counter didn’t answer; nothing was counted.

By using the API or the MCP server you accept the terms of use and the privacy page: a free hobby project with no support and no warranty, whose results are hints rather than guarantees. For bulk or commercial email verification, use ZeroBounce.

How the free API and MCP server work

This API runs exactly what the full report runs, but on tanase.ai’s server, in one request, and answers with JSON instead of a page. It exists so that scripts, monitoring jobs and AI assistants such as Claude and ChatGPT can ask the same question a person asks on the home page: is this domain, or this email address, set up and reputed well?

What a domain query runs

The 20 checks of the domain report: the deliverability score, the Gmail, Yahoo and Microsoft sender rules, SPF, DKIM, DMARC, BIMI and DANE; the blocklists, VirusTotal, Google Safe Browsing and the disposable-domain lists; the website’s TLS, security headers, Core Web Vitals, redirects, technologies and links; and the domain’s DNS services, WHOIS and network. The Spamhaus intelligence and AI intelligence panels come with it. A name that doesn’t exist in DNS is answered as such, with WHOIS only, as on the report page.

What an email query runs

The 14 checks of the email report without the live mailbox check: the address checks (syntax, mail servers, disposable and role addresses, likely typos), known data leaks (counts, dates and kinds of data, never the leaked values), and the domain’s authentication, reputation, DNS services and WHOIS, plus an AI profile of the address. Whether the exact mailbox exists isn’t asked; the answer’s mailbox field says so and links to a mailbox verification service.

Deadlines and connections

The whole answer has one 25-second deadline. The checks that a browser normally runs itself, such as SPF, DKIM, DMARC and the blocklists, run on the server here, through one queue of six connections in which lookups that others wait for go ahead of bulk probes. A check that is still running at the deadline is reported as “couldn’t check”, which is never a verdict and never cached.

Limits and the cache

  • 10 queries a day per network: an IPv4 address or an IPv6 /48.
  • Claude and ChatGPT call from their own servers, so their users share a pool instead: 1,500 queries a day each, matched against the server addresses Anthropic and OpenAI publish (OpenAI’s list is downloaded daily).
  • 2,000 queries a day for everyone else together.
  • Both reset at 00:00 UTC; a refusal is HTTP 429 with Retry-After and the reset time.
  • A domain answer in which every check finished is cached for 10 minutes; a repeat in that time is free.
  • A query in which no check could run is given back.
  • The paid parts (VirusTotal, Google Web Risk, Spamhaus, LeakCheck, the AI model) keep their own daily caps; when one is spent, that part says “couldn’t check” and the rest still answers.

Privacy

Send email addresses only in a POST body, never in a URL: the email query refuses anything else. Answers don’t contain links with the address in them. The daily counter keeps a hash of your network address, not the address, for two days. What each check sends where is on the privacy page.

Updated · Maintained by Liviu Tanase

Questions

Is the API really free?

Yes: no sign-up, no key and no payment. tanase.ai is a free hobby project, so the API has limits instead: 10 queries a day per network (your IPv4 address or IPv6 /48) and 2,000 a day for everyone together; Claude and ChatGPT users share 1,500 a day each. A domain checked in the last 10 minutes is answered from the cache and doesn’t count. There is no support and no uptime promise; see the terms of use.

How many checks do ChatGPT and Claude get?

They call MCP servers from their own servers, not from your device, so their users share a pool: 1,500 queries a day for Claude and 1,500 for ChatGPT, recognized by the server addresses Anthropic and OpenAI publish. When a pool is used up, the tool answer says when it resets (00:00 UTC). You can always run the same checks yourself on the full report page, which isn’t counted against these limits.

Does the email query check whether the mailbox exists?

No. It runs every other check of the email report: syntax, mail servers, disposable and role addresses, typos, known data leaks and the domain’s own checks. It doesn’t ask the mail server about the mailbox; that live SMTP check is on the email address checker, 5 a day per network. For mailbox-level verification the answer links to ZeroBounce, a sponsored link.

What happens when a check is slow?

Everything shares one 25-second deadline. A check without an answer by then comes back with state late and status error (“couldn’t check”), never as a pass, and an answer with a late part isn’t cached, so asking again reruns it. The AI profile often needs longer: it keeps running and is saved, so a later query usually has it.

Which MCP versions and clients work?

Protocol 2026-07-28 (stateless, with server/discover) and the earlier handshake versions 2025-11-25, 2025-06-18 and 2025-03-26, over Streamable HTTP at https://tanase.ai/mcp without sign-in. Claude, Claude Desktop, ChatGPT and Cursor connect with the URL alone; any client that speaks Streamable HTTP works the same way.

Can I call the API from a web page?

The domain query, yes: it sends CORS headers, so another site’s fetch() can read the answer, and the visitor’s network pays the daily cap. Images, scripts, frames and forms pointing at the API from other sites are refused. The email query only accepts calls from scripts and from tanase.ai’s own pages, so no other site can make a visitor’s browser send an address.