canonical: https://jentic.com/apis/mailtester.ninja/mailtester

# MailTester Ninja Email Verification and Finder API

The MailTester Ninja API verifies email addresses against the recipient's live mail server and finds work addresses from a person's name and company domain. The verify call checks syntax, domain, and MX records, then holds an SMTP conversation that stops before any message is sent, returning a code of ok, ko, mb, or -- with a message such as Accepted, Catch-All, or Disposable. The finder call takes first, last, and domain and tests common formats such as first.last and flast until the mail server accepts one, returning the address with its format and confidence, or a guess on catch-all domains. Nothing is stored.

## For AI agents

Verify whether an email address is deliverable with a live SMTP check, or find a person's work email from their first name, last name, and company domain.

## Scope

Does not handle sending email, bulk list uploads, or company firmographic data. Use for verifying single email addresses and finding work emails by name and domain only.

## Capabilities

- Verify one email address per GET /ninja call and branch on the code field: ok for deliverable, ko for invalid, mb for uncertain, and -- for no verdict
- Detect catch-all, disposable, greylisted, and no-MX domains through the message field on each verification
- Find a work email address with GET /find from first, last, and domain, getting the matched format, confidence, and every tested permutation
- Receive a best guess on catch-all domains through the guess field when no format can be confirmed
- Cap how long a finder search runs with the timeout query parameter
- Try verification with no signup using key=free before moving to a mtf_ free token or a sub_ subscription key

## Use cases

### Agent lead research through Jentic

A prospecting agent that has a name and a company domain calls the finder to get a likely work address, then verifies addresses it already holds before outreach. Through Jentic the agent finds both operations by intent, the sub_ subscription key stays in the developer's own Jentic One instance instead of travelling in prompts, and a rule can allow verification while keeping the finder off.

Example prompt: Call GET /find with first 'Tim', last 'Cook', and domain 'apple.com', then report the email, format, and confidence from the result

### Pre-send email list verification

Before a send, each address is checked with GET /ninja. Results with code ok go to the send list, ko results are dropped, and mb results such as Catch-All are held for review since a catch-all domain is never reported as valid. Results with code -- mean no check ran, so the address is retried rather than dropped.

Example prompt: Call GET /ninja with email 'jane.doe@example.com' and add the address to the send list only when code is 'ok'

### Company email format discovery

Sales teams often need the address pattern a company uses. GET /find returns the format that the mail server accepted, such as flast or first.last, along with the tested list of permutations and their codes, so the pattern can be applied to other contacts at the same domain.

Example prompt: Call GET /find with first 'Ana', last 'Silva', and domain 'example.com' and return the format and tested fields

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/ninja` | Verify an email address |
| GET | `/find` | Find a work email address |

## Key resources

- **Verification results** — code, message, domain, mx, email, and key usage fields such as limit and rate for one address
- **Finder results** — found, email, format, confidence, guess, permutations, and the tested list for a name and domain

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 51 / 100
- **Maturity:** Foundational
- **Dimensions:**
  - Foundational Compliance: 100 / 100
  - Developer Experience & Jentic Compatibility: 71 / 100
  - AI-Readiness & Agent Experience: 57 / 100
  - Agent Usability: 94 / 100
  - Security: 15 / 100
  - AI Discoverability: 81 / 100
- **View full report:** https://jentic.com/apis/mailtester.ninja/mailtester/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring MailTester Ninja by hand means appending the key to every URL as a query parameter, sending the Accept header to get JSON from the verify call, and pacing requests to your key's rate yourself. Through Jentic you install once, import MailTester Ninja from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** MailTester Ninja has no resource ids in its paths and takes the address or name as query values, so limit the agent to the operations it needs, such as verifying addresses. Rules bound which of the two operations your agent may call, not which addresses or domains it looks up.
- **Credential handling:** Your MailTester Ninja key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'verify an email address' or 'find someone's work email', and Jentic returns the matching MailTester Ninja operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Hunter API** — Email finder, domain search, and verification API
- **MailProbe API** — Real-time email verification with batches of up to 20 addresses
- **Mails.ai API** — Email sending and receiving for AI agent mailboxes

## FAQ

### Is there a MailTester Ninja MCP server?

You don't need an MCP server to give your agent MailTester Ninja. Jentic connects it directly from the API Directory: import it, store your key once, and your agent calls it. Operations are discovered on demand, so no extra tool definitions sit in the agent's context.

### What authentication does the MailTester Ninja API use?

Per its OpenAPI spec, the MailTester Ninja API takes an API key in the key query parameter. The value can be free for a no-signup trial, a mtf_ free token, or a sub_ subscription key, and the finder needs a subscription key. Because the key rides in the URL, Jentic stores it encrypted in your own Jentic One instance and adds it at execution time, so it never enters the agent's context.

### Can I limit what my agent is allowed to do with MailTester Ninja?

Yes. For example, write a rule that allows only GET /ninja, so the agent can verify addresses it already has but cannot run finder searches that spend several verifications per call. The address, name, and domain travel as query values, so rules bound which operation the agent calls, not which address it checks.

### What are the rate limits for the MailTester Ninja API?

Per the spec, key=free allows 10 checks a day per IP and a mtf_ token allows 50 checks a day, both at one request every 30 seconds. A paid key allows its daily limit divided by 8640 requests per 10 seconds across all connections. On the finder, each tested format counts as one verification, and one key can run up to 60 searches an hour on the same domain.

### How do I find a work email through Jentic?

Install Jentic One, import the MailTester Ninja API from the directory, and search for 'find a work email address'. Jentic returns the findEmail operation with its input schema; your agent sends first, last, and domain, and Jentic adds your subscription key. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### What does an mb result mean?

A code of mb means the result is uncertain: the domain accepts every address or could not be probed, with messages such as Catch-All, Timeout, or Greylisted. A catch-all domain is never reported as valid, so treat mb results as needing review rather than as deliverable.
