Legible
Scan APIChrome extension

Mailtrap

mailtrap.io

Score 99 out of 100

165 of 167 points.

Missed 2 points:

An AI agent's path through Mailtrap

  1. FindCan an agent get in and find what it needs?100/100

    5 of 5 pass

  2. ReadCan it read what it finds?100/100

    13 of 13 pass

  3. ActCan it do something with your product?Weakest step96/100

    11 of 12 pass · 1 gap

GoalAn agent uses Mailtrap

Wider segments are worth more points. The overall adds up every check's points, so it isn't the average of the three parts. 1 check doesn't count here: see why.

Easy to find, read and use.

Mailtrap passes every Find check, every Read check and 11 of 12 Act checks. The weakest step is Act. One more fails there, but we'd skip it for now.

The pages marketing owns pass. What's left sits with engineering and product.

See what fails ↓See all 31 checks ↓
Rank
1st of 15 Email APIsOn our 9 Nov 2026 scan
Checks passed
29 of 30 counted
This scan

From our 9 Nov 2026 scan.

Board results come from one dated scan, so every company is compared on the same day. A live scan reads the site as it is now.

Details

1 check doesn't count here:

  • 1 needs an OAuth sign-in to judge, and there isn't one.

What to fixPart 1 of 4

Nobody on the board passes our check yet

No email API on our board passes our check on these yet, so there's no example to show.

  • We didn't find tools for browser agents in your homepage's HTML or inline scripts

    Tools for browser agents: tools your web page offers to AI agents that work in a browser (a proposed standard).

    It costs a point, but it's only worth building if agents need to operate forms on your site. If they do, a browser agent may find no tools to call and have to click through instead.

    Don't do it for the score. It's still a proposed standard, and almost nobody on our boards passes our check, though Bird, Postmark and CrewAI load it from a script our check doesn't read. Build it only if agents need to operate forms on your site. Our judgement.

Show every address our checks read

Where our checks looked

Every address our checks read in our 9 Nov 2026 scan, by host. What each check read, not a recording of a visit, so there's no order.

passes on this address alone fails: select it to open the fix also read here

mailtrap.io

  • /robots.txt200 OKAI agents allowed, homepage reachable: also read here
  • /200 OKOur scanner gets in: also read herellms.txt linked from your pages: also read hereReadable without JavaScript: also read hereMeta description: PassStructured data: PassTools for browser agents: Fail
  • /llms.txt200 OKllms.txt linked from your pages: also read herellms.txt: Passllms.txt links work, and it fits: Pass
  • /sitemap.xml200 OKSitemap: Pass
  • /leaderfile-check-404404 · expected, it's a probeReal 404s: Pass
  • /pricing/200 OKReadable pricing: PassFree tier in emails: Pass
  • /.well-known/oauth-authorization-server404 not foundMachine-readable discovery file: also read hereSign-in an MCP client can use: Not counted
  • /.well-known/oauth-protected-resource404 not foundMachine-readable discovery file: also read here
  • /.well-known/openid-configuration404 not foundMachine-readable discovery file: also read here
  • /.well-known/api-catalog200 OKMachine-readable discovery file: also read here
  • /.well-known/agent-card.json404 not foundMachine-readable discovery file: also read here
  • /.well-known/agent-skills/index.json200 OKAn agent skill is published: also read here

docs.mailtrap.io

  • /robots.txt200 OKAI agents allowed, homepage reachable: also read here
  • /developers200 OKOur scanner gets in: also read hereDocs page: PassReadable without JavaScript: also read hereDocs readable without a login: also read hereDocs pages fit an agent's context: also read hereStructured docs page: PassDocs in Markdown: also read herenpm and PyPI packages: PassInstall shown for four languages: Pass
  • /getting-started/email-api-smtp200 OKReadable without JavaScript: also read hereDocs readable without a login: also read hereDocs pages fit an agent's context: also read hereDocs in Markdown: also read hereAuth an agent can follow (proxy): Pass
  • /200 OKReadable without JavaScript: also read hereDocs readable without a login: also read hereDocs pages fit an agent's context: also read hereDocs in Markdown: also read here
  • /guides200 OKReadable without JavaScript: also read hereDocs readable without a login: also read hereDocs pages fit an agent's context: also read hereDocs in Markdown: also read here
  • /developers/authentication200 OKReadable without JavaScript: also read hereDocs readable without a login: also read hereDocs pages fit an agent's context: also read hereDocs in Markdown: also read here
  • /developers/rate-limits200 OKReadable without JavaScript: also read hereDocs readable without a login: also read hereDocs pages fit an agent's context: also read hereDocs in Markdown: also read here
  • /developers/openapi-specs200 OKReadable without JavaScript: also read hereDocs readable without a login: also read hereDocs pages fit an agent's context: also read hereDocs in Markdown: also read here

raw.githubusercontent.com

  • /mailtrap/mailtrap-mcp/main/README.md200 OKCode samples say their language: PassMCP server or CLI: PassMCP server: Pass
  • /mailtrap/mailtrap-openapi/main/specs/email-sending-transactional.openapi.yml200 OKOpenAPI spec: PassEvery operation has an operationId: PassErrors have a schema: PassSend operation in the spec: Pass
  • /mailtrap/mailtrap-skills/refs/heads/main/skills/sending-emails/SKILL.md200 OKAn agent skill is published: also read here

Nothing here fails with an example to follow.Sign-in an MCP client can use weren't counted.

How it comparesPart 2 of 4

How Mailtrap compares

Where Mailtrap stands

On our board

The 15 email APIs on our board average 88, and the top score is 99.

Find, Read and Act against the other 14 email APIs

Out of 100. On each bar, the light mark is their median and the dark one their best.

  1. FindFind: 100, median 100, best 100.
  2. ReadRead: 100, median 94, best 100.
  3. ActAct: 96, median 82, best 96.

Neighbours on the board

  1. Mailtrap99
  2. Bird (ex-SparkPost)96−3
  3. Resend96−3

Nobody on the board scores higher than Mailtrap.

Email APIs, our 9 Nov 2026 board. Our maths, not a forecast.

What Mailtrap does well

One more thing: only 6 of the 15 email APIs on our board pass Install shown for four languages. Mailtrap does.

The checks Mailtrap passes that are rarest among the 15 email APIs on our board.

  • Install shown for four languagesEM-01 · 6 of 15 on our board pass this
  • Machine-readable discovery fileAR-READ-06 · 8 of 15 on our board pass this
  • OpenAPI specAR-ACT-02 · 11 of 15 on our board pass this

Compare Mailtrap with rivals

Every checkPart 3 of 4

What these checks can't tell you

  • Whether an agent can sign up and get a key. One registry found 30 of 100 developer tools blocked it.
  • Whether coding agents write current code for your API. In our small test, a 96 and a 71 came out the same: what we found.
  • Whether your bot protection lets an agent in when a person sends one. Check your CDN settings.
  • Whether ChatGPT recommends you. That depends on far more than these files.
  • What another scanner would give you. They ask different questions and weigh them differently: why the numbers differ.

All 31 checks

29 pass, 1 fail, 0 couldn't check, 1 not counted. The count on each row is how many of the 15 email APIs on our board pass that check.

Find · 5 of 5 pass · 36 of 36 points

  • PassAI agents allowed, homepage reachableAR-FIND-01checked /; none of the user or search agents is blocked; checked /developers; none of the user or search agents is blocked10 of 10 points · 15 of 15 pass

    10 of 10 points · Gate, worth 10

    What our check kept, up to 60 lines or 6 KB

    # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
    #
    # To ban all spiders from the entire site uncomment the next two lines:
    # User-agent: *
    # Disallow: /
    
    User-agent: *
    Content-Signal: ai-train=yes, search=yes, ai-input=yes
    Disallow: /wp-admin/
    Disallow: /trackback/
    Disallow: /feed/
    Disallow: /xmlrpc.php

    How we test this:

    • We read robots.txt and check it doesn't disallow / for the agents that fetch for a user or find sites for AI search: ChatGPT-User, OAI-SearchBot, Claude-User, Claude-SearchBot, Perplexity-User, PerplexityBot (no robots.txt counts as allowed).
    • We show blocks on GPTBot (OpenAI model training), not scored; ClaudeBot (Anthropic model training), not scored; Google-Extended (Gemini training and grounding), not scored in v1; CCBot (Common Crawl's open dataset), not scored: blocking them is the site's own call.
    • Whether Google-Extended should be scored is a rubric v2 question, and we'll announce it before changing anything.
    • Then we fetch your homepage as LeaderfileBot and check it returns 2xx after redirects, with no challenge page.
  • PassOur scanner gets inLG-FIND-01homepage: a real answer (200); docs page: a real answer (200)10 of 10 points

    10 of 10 points · Gate, worth 10

    How we test this:

    • We fetch your homepage and your docs page as LeaderfileBot, our own scanner, and check neither answers with a challenge page, or a 401 or 403 that a normal browser gets past.
    • One blocked page is a fail; both caps your score at 39.
    • Firewalls often let in crawlers they can verify, so ChatGPT or Claude may still get in where our scanner can't.
  • PassDocs pageAR-FIND-02docs page, linked from https://mailtrap.io/7 of 7 points · 15 of 15 pass

    7 of 7 points · High, worth 7

    How we test this:

    • We look for your docs page: the first homepage link to a docs., dev. or developer(s). subdomain of your domain, or to a /docs or /developer(s) path; with none, we try https://docs.<host>/ then https://<host>/docs.
    • It passes if that page returns 200.
    • Board companies use a docs URL we confirmed by hand.
  • Passllms.txt linked from your pagesLG-FIND-02homepage: a Link header to https://mailtrap.io/llms.txt; an llms.txt with markdown links7 of 7 points

    7 of 7 points · High, worth 7

    What our check kept, up to 60 lines or 6 KB

    a Link header: https://mailtrap.io/llms.txt

    How we test this:

    • We read your homepage and your docs page and look for a pointer to an llms.txt: a link to it, a <link> tag, a Link header with rel="llms-txt" or an X-Llms-Txt header, or a line on the page naming /llms.txt.
    • It passes when one points at an llms.txt that answers with markdown links.
    • AFDocs checks the same (llms-txt-directive).
  • PassSitemapAR-FIND-03sitemap at /sitemap.xml, <sitemapindex> root2 of 2 points · 15 of 15 pass

    2 of 2 points · Low, worth 2

    What our check kept, up to 60 lines or 6 KB

    <?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="//mailtrap.io/main-sitemap.xsl"?>
    <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    	<sitemap>
    		<loc>https://mailtrap.io/post-sitemap1.xml</loc>
    		<lastmod>2026-11-07T09:42:48+00:00</lastmod>
    	</sitemap>
    	<sitemap>
    		<loc>https://mailtrap.io/post-sitemap2.xml</loc>
    		<lastmod>2026-11-06T10:19:28+00:00</lastmod>
    	</sitemap>
    	<sitemap>
    		<loc>https://mailtrap.io/post-sitemap3.xml</loc>
    		<lastmod>2026-11-05T10:51:58+00:00</lastmod>
    	</sitemap>
    	<sitemap>
    		<loc>https://mailtrap.io/post-sitemap4.xml</loc>
    		<lastmod>2026-11-04T12:28:46+00:00</lastmod>
    	</sitemap>
    	<sitemap>
    		<loc>https://mailtrap.io/page-sitemap1.xml</loc>
    		<lastmod>2026-11-03T12:12:56+00:00</lastmod>
    	</sitemap>
    	<sitemap>
    		<loc>https://mailtrap.io/page-sitemap2.xml</loc>
    		<lastmod>2026-11-03T12:12:35+00:00</lastmod>
    	</sitemap>
    	<sitemap>
    		<loc>https://mailtrap.io/page-sitemap3.xml</loc>
    		<lastmod>2026-11-03T12:12:13+00:00</lastmod>
    	</sitemap>
    	<sitemap>
    		<loc>https://mailtrap.io/case_study-sitemap.xml</loc>
    		<lastmod>2023-03-29T16:34:14+00:00</lastmod>
    	</sitemap>
    </sitemapindex>
    <!-- XML Sitemap generated by Rank Math SEO Plugin (c) Rank Math - rankmath.com -->

    How we test this:

    • We fetch the Sitemap: URL from robots.txt, else /sitemap.xml, and check it returns 200 with a <urlset> or <sitemapindex> root element.

Read · 13 of 13 pass · 75 of 75 points

  • PassReadable without JavaScriptAR-READ-01homepage: 1549 words in the raw HTML; docs page: 1532 words in the raw HTML; docs surface: 2425 words in the raw HTML; linked from the docs page: 727 words in the raw HTML; linked from the docs page: 449 words in the raw HTML; linked from the docs page: 388 words in the raw HTML; linked from the docs page: 437 words in the raw HTML; linked from the docs page: 235 words in the raw HTML10 of 10 points · 12 of 15 pass

    10 of 10 points · Gate, worth 10

    How we test this:

    • We count the visible words in the raw HTML (no JavaScript run) of your homepage and your docs page, and check each has at least 150.
    • With no docs page found (AR-FIND-02), the homepage is judged alone.
  • PassDocs readable without a loginLG-READ-01docs page: readable without a login; docs surface: readable without a login; linked from the docs page: readable without a login10 of 10 points

    10 of 10 points · Gate, worth 10

    How we test this:

    • We read your docs page and up to 7 more docs pages (the ones we read for other checks, then links on your docs page).
    • A page fails when it answers 401 or 403 to a normal browser too, redirects to a sign-in page, or is a sign-in form with little else on it.
    • A redirect counts as a sign-in when it adds one: a sign-in path the page didn't have, a login subdomain, or an identity provider's site such as Okta's when the page was on another site.
    • A sign-up page, one whose title or main heading says sign up or create an account, isn't a login.
    • A refusal only to automated readers is our scanner being blocked, not a login.
    • A login on your docs page caps your score at 39; across the pages, a share of 25% or less caps it at 39, 50% or less at 59.
  • PassReal 404sAR-READ-02returned 404 for a page that doesn't exist10 of 10 points · 15 of 15 pass

    10 of 10 points · Must, worth 10

    How we test this:

    • We fetch /leaderfile-check-404, a page that shouldn't exist, and check it returns 404 or 410 after redirects.
    • Off the board, if that address refuses automated readers, we try /leaderfile-check-404.html.
  • Passllms.txtAR-READ-07text file with markdown links7 of 7 points · 14 of 15 pass

    7 of 7 points · High, worth 7

    What our check kept, up to 60 lines or 6 KB

    # Mailtrap
    
    > Mailtrap is an email platform for developers and product teams: 
    > send transactional and bulk emails via Email API/SMTP, 
    > run marketing campaigns with Email Marketing, 
    > test emails safely in Email Sandbox, and
    > automate email workflows with AI agents.
    
    ## Products
    
    - **[Email API/SMTP](https://docs.mailtrap.io/email-api-smtp/overview.md)** — Email sending infrastructure. Supports transactional and bulk email streams via REST API or SMTP, with email templates, real-time analytics, deliverability tools (SPF/DKIM/DMARC, dedicated IPs, suppression lists), webhooks, and email logs.
    - **[Email Sandbox](https://docs.mailtrap.io/email-sandbox/overview.md)** — Safe email testing environment for development and QA. Captures outgoing emails without delivering them, with HTML validation, spam score checking, bounce simulation, and load testing — so bugs are caught before emails are delivered.
    - **[Email Marketing](https://docs.mailtrap.io/email-marketing/overview.md)** — Campaign creation, scheduling, and analytics for marketing emails. Includes contact management, list segmentation, automation sequences, and campaign performance tracking.
    
    ## Getting Started
    
    - [Documentation Home](https://docs.mailtrap.io/readme.md): Complete email infrastructure overview
    - [Complete docs index](https://docs.mailtrap.io/llms.txt): Full documentation catalog for deep ingestion
    - [AI Onboarding](https://docs.mailtrap.io/getting-started/ai-onboarding.md): Onboard an AI agent to Mailtrap in minutes
    - [Email API/SMTP Quickstart](https://docs.mailtrap.io/getting-started/email-api-smtp.md): Send production emails from your app
    - [Email Sandbox Quickstart](https://docs.mailtrap.io/getting-started/email-sandbox.md): Test and debug emails safely before going to production
    - [Email Marketing Quickstart](https://docs.mailtrap.io/getting-started/email-marketing.md): Set up and send email marketing campaigns
    
    ## Email API & SMTP
    
    - [Overview](https://docs.mailtrap.io/email-api-smtp/overview.md): Key features, use cases, and how the sending infrastructure works
    - [Setup & Configuration](https://docs.mailtrap.io/email-api-smtp/setup.md): Get API credentials and start sending in minutes
    - [Sending Domain Setup](https://docs.mailtrap.io/email-api-smtp/setup/sending-domain.md): Verify your domain with SPF, DKIM, and DMARC
    - [API Integration](https://docs.mailtrap.io/email-api-smtp/setup/api-integration.md): Send via REST API with SDK and code samples
    - [SMTP Integration](https://docs.mailtrap.io/email-api-smtp/setup/smtp-integration.md): Send via SMTP credentials
    - [Bulk Stream](https://docs.mailtrap.io/email-api-smtp/setup/bulk-stream.md): Send promotional or bulk emails with compliance features
    - [Email Templates](https://docs.mailtrap.io/email-api-smtp/email-templates.md): Build templates with drag-and-drop editor or HTML; use Handlebars variables
    - [Analytics & Reports](https://docs.mailtrap.io/email-api-smtp/analytics.md): Track delivery, open, click, bounce, and spam rates
    - [Deliverability Features](https://docs.mailtrap.io/email-api-smtp/deliverability.md): Tools for high inbox placement — suppressions, dedicated IPs, bounce handling
    - [Webhooks](https://docs.mailtrap.io/email-api-smtp/advanced/webhooks.md): Real-time event notifications for email delivery events
    
    ### API Reference
    
    - [Overview & Authentication](https://docs.mailtrap.io/developers/readme.md): Base URL, authentication, rate limits
    - [Transactional Email API](https://docs.mailtrap.io/developers/email-sending/transactional.md): Send individual emails via API
    - [Bulk Email API](https://docs.mailtrap.io/developers/email-sending/bulk.md): Send marketing and bulk emails via API
    - [Email Templates API](https://docs.mailtrap.io/developers/templates/templates.md): Manage templates programmatically
    - [Contacts API](https://docs.mailtrap.io/developers/promotional/contacts.md): Manage contacts, lists, and segments
    - [Webhooks API](https://docs.mailtrap.io/developers/email-sending/webhooks.md): Register and manage webhook endpoints
    - [OpenAPI Specs](https://docs.mailtrap.io/developers/openapi-specs.md): Download spec for API client generation
    - [OpenAPI Specs (GitHub)](https://github.com/mailtrap/mailtrap-openapi): Official OpenAPI specs collection
    
    ## SDKs
    
    - [Node.js](https://github.com/mailtrap/mailtrap-nodejs): Official Node.js / TypeScript client
    - [Python](https://github.com/mailtrap/mailtrap-python): Official Python client
    - [PHP](https://github.com/mailtrap/mailtrap-php): Official PHP client
    - [Ruby](https://github.com/mailtrap/mailtrap-ruby): Official Ruby client
    - [Java](https://github.com/mailtrap/mailtrap-java): Official Java client
    - [.NET](https://github.com/mailtrap/mailtrap-dotnet): Official .NET / C# client
    - [Elixir](https://github.com/mailtrap/mailtrap-elixir): Official Elixir client
    
    ## AI Integrations
    
    - [Mailtrap for AI Agents](https://mailtrap.io/for-ai-agents.md): Complete guide — MCP setup, agent capabilities, supported platforms, and Mailtrap Skills

    How we test this:

    • We read llms.txt at your site root and, if your docs live on another host, at your docs root, and check one returns 200, isn't HTML and has at least one markdown link.
    • Off the board, we also try your docs. host and /docs/llms.txt.
    • We read the first 2 MB: a larger file is judged on that part, and the result says "read the first 2 MB; the file is larger".
  • Passllms.txt links work, and it fitsLG-READ-027,068 characters, 45 links; 12 of 12 we tried resolve7 of 7 points

    7 of 7 points · High, worth 7

    How we test this:

    • We read the llms.txt AR-READ-07 passes on (the first with markdown links) and fetch up to 12 of its links, spread through the file, two at a time.
    • A link is broken when it answers 404 or 410, or its host doesn't exist.
    • A 2xx after redirects resolves, and so does an answer like 400, 405 or 406 that shows the address is there (an MCP endpoint answers a plain GET with 405).
    • A refusal, a 429 or a server error isn't judged.
    • The credit is the share that resolve, halved when the file runs to 50,000 characters or more, and nothing past 100,000: AFDocs' size bands.
    • With no llms.txt it isn't counted: AR-READ-07 counts that.
  • PassDocs pages fit an agent's contextLG-READ-04docs page: 14,703 characters of text; docs surface: 19,831 characters of text; linked from the docs page: 5,173 characters of text; linked from the docs page: 3,113 characters of text; linked from the docs page: 2,601 characters of text; linked from the docs page: 2,850 characters of text; linked from the docs page: 1,652 characters of text7 of 7 points

    7 of 7 points · High, worth 7

    How we test this:

    • On each docs page we read (up to 7) we count the characters of visible text in the raw HTML, and of its Markdown copy if it has one, and judge the page by the larger of the two: an agent reading either may be cut off.
    • Under 50,000 passes, up to 100,000 is half, more fails: AFDocs' bands, from the limits agents cut pages at.
    • The credit is the average across the pages.
  • PassMeta descriptionAR-READ-03has a meta description4 of 4 points · 15 of 15 pass

    4 of 4 points · Medium, worth 4

    What our check kept, up to 60 lines or 6 KB

    <meta name="description" content="Modern Email Delivery Platform for developer &amp; product teams. Fast delivery. High inboxing rates. 24/7 expert support. Email API/SMTP for reliable email sending"/>

    How we test this:

    • We check your homepage's raw HTML (no JavaScript run) has a non-empty meta description or og:description.
  • PassStructured docs pageAR-READ-046 headings (h1 to h3), 1532 words in the raw HTML4 of 4 points · 13 of 15 pass

    4 of 4 points · Medium, worth 4

    What our check kept, up to 60 lines or 6 KB

    <h1>Overview</h1>
    <h3>LLM & AI Agent Integration</h3>
    <h2>Documentation structure</h2>
    <h2>Quick Start</h2>
    <h3>Email Sending Options</h3>
    <h3>Testing with Email Sandbox</h3>

    How we test this:

    • We check your docs page's raw HTML (no JavaScript run) has at least 2 headings (h1 to h3) with text and at least 150 visible words.
    • Off the board, a docs page that comes back as markdown counts # to ### lines outside code blocks as its headings.
  • PassCode samples say their languageAR-READ-05MCP page: a code block with a language tag4 of 4 points · 13 of 15 pass

    4 of 4 points · Medium, worth 4

    What our check kept, up to 60 lines or 6 KB

    ```bash

    How we test this:

    • On your docs surface, we look for a code block that carries a language tag: language-* or lang-* on <pre> or <code>, code-language-* on any element (a code block's wrapper, say), or a data-language or data-lang attribute.
    • In markdown files, a fenced block with a language (```ts) counts.
    • If no page shows one, we read the markdown copy each HTML page declares (a <link rel="alternate" type="text/markdown">, or its URL plus .md listed in your llms.txt), since many docs sites add the language label with JavaScript.
    • If none of the pages we read is a quickstart or SDK page, a miss isn't counted: it can't fail you or withhold your score.
  • PassReadable pricingAR-READ-11raw text shows "Free" next to a month or year4 of 4 points · 15 of 15 pass

    4 of 4 points · Medium, worth 4

    What our check kept, up to 60 lines or 6 KB

    r emails Email Marketing Send promo campaigns How many emails do you plan to send? 4K | 10K | 50K | 100K | 250K | 500K | 750K | 1.5M | 2.5M | 2.5M+ | Free To try out Mailtrap $0 $0 /month 4,000 emails Start for Free Start for Free 1 user 3 days of email logs 1 domain 150 emails/day Basic For startups an

    How we test this:

    • We fetch the first homepage link with 'pricing' in its path, else /pricing (board companies: a pricing URL we confirmed by hand), and check it returns 200 and its raw text (no JavaScript run) shows a price or 'free' within 80 characters of month, mo, year or yr.
    • Off the board, a pricing address that answers with JSON counts when it has a price field.
  • PassDocs in MarkdownLG-READ-03docs page: answers Accept: text/markdown; docs surface: answers Accept: text/markdown; linked from the docs page: answers Accept: text/markdown4 of 4 points

    4 of 4 points · Medium, worth 4

    What our check kept, up to 60 lines or 6 KB

    > For the complete documentation index, see [llms.txt](https://docs.mailtrap.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mailtrap.io/developers/readme.md).
    
    # Overview
    
    Complete API documentation for the Mailtrap email platform
    
    Welcome to the Mailtrap API documentation. Our APIs provide comprehensive access to email sending, testing, contact management, and account administration features.
    
    The Mailtrap API follows REST principles. Authenticated users can interact with any endpoint using standard HTTP methods. All requests must be sent over HTTPS, as TLS encryption is enforced.
    
    ### LLM & AI Agent Integration
    
    For AI assistants and coding agents: a structured, LLM-optimized version of this documentation is available at <https://docs.mailtrap.io/llms.txt>. It includes API routing instructions, endpoint summaries, and integration guidance formatted for accurate code generation.
    
    ## Documentation structure
    
    The API documentation is organized into the following sections:
    
    {% columns %}
    {% column width="33.33333333333333%" %}
    **Email API/SMTP**
    
    Endpoints to send transactional and [bulk](https://docs.mailtrap.io/email-api-smtp/setup/bulk-stream) (promotional) emails, as well as manage sending domains, suppressions, and delivery statistics.
    {% endcolumn %}
    
    {% column width="33.33333333333333%" %}
    **Email Sandbox**
    
    Endpoints for testing and inspecting emails in a safe environment.\
    **Note**: Email Sending and Email Sandbox use different base URLs.
    {% endcolumn %}
    
    {% column %}
    **Email Marketing**
    
    Endpoints to manage [contacts](https://docs.mailtrap.io/email-marketing/contacts), send [email campaigns](https://docs.mailtrap.io/developers/email-marketing/email-campaigns), and get [campaign stats](https://docs.mailtrap.io/developers/email-marketing/campaign-stats).
    {% endcolumn %}
    {% endcolumns %}
    
    {% columns %}
    {% column %}
    **Inbound**
    
    Endpoints to receive incoming emails and manage inbound folders, inboxes, messages, and threads.
    {% endcolumn %}
    
    {% column %}
    **Templates**
    
    Endpoints to manage [email templates](https://docs.mailtrap.io/email-api-smtp/email-templates) used for email sending, email sandbox, and campaigns.
    {% endcolumn %}
    
    {% column %}
    **Account Management**
    
    Endpoints for programmatic management of account details and access permissions.
    {% endcolumn %}
    {% endcolumns %}
    
    ## Quick Start

    How we test this:

    • On each docs page we read (up to 7), one Markdown answer with content passes the page: it answers Accept: text/markdown with text/markdown, declares a copy with <link rel="alternate" type="text/markdown"> that returns Markdown, or the address the page lands on, after redirects, ending in .md does (for one ending in a slash, both /page.md and /page/index.md).
    • An empty answer doesn't count.
    • The credit is the share of pages that pass.
    • AFDocs, Cloudflare's isitagentready and is-agentic check it.
  • PassStructured dataAR-READ-08has an application/ld+json block2 of 2 points · 13 of 15 pass

    2 of 2 points · Low, worth 2

    What our check kept, up to 60 lines or 6 KB

    {"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://mailtrap.io/#organization","name":"Mailtrap","logo":{"@type":"ImageObject","@id":"https://mailtrap.io/#logo","url":"https://mailtrap.io/app/uploads/2018/11/cropped-512px-mailtrap-logo-1.png","contentUrl":"https://mailtrap.io/app/uploads/2018/11/cropped-512px-mailtrap-logo-1.png","caption":"Mailtrap","inLanguage":"en-US","width":"512","height":"512"}},{"@type":"WebSite","@id":"https://mailtrap.io/#website","url":"https://mailtrap.io","name":"Mailtrap","publisher":{"@id":"https://mailtrap.io/#organization"},"inLanguage":"en-US","potentialAction":{"@type":"SearchAction","target":"https://mailtrap.io/?s={search_term_string}","query-input":"required name=search_term_string"}},{"@type":"ImageObject","@id":"https://mailtrap.io/app/uploads/2022/12/home_page_5.png","url":"https://mailtrap.io/app/uploads/2022/12/home_page_5.png","width":"2720","height":"1360","caption":"Mailtrap - Email Delivery Platform","inLanguage":"en-US"},{"@type":"WebPage","@id":"https://mailtrap.io/#webpage","url":"https://mailtrap.io/","name":"Mailtrap: Modern Email Delivery for dev and product teams","datePublished":"2025-05-20T14:45:53+01:00","dateModified":"2026-09-23T12:13:44+01:00","about":{"@id":"https://mailtrap.io/#organization"},"isPartOf":{"@id":"https://mailtrap.io/#website"},"primaryImageOfPage":{"@id":"https://mailtrap.io/app/uploads/2022/12/home_page_5.png"},"inLanguage":"en-US"}]}

    How we test this:

    • We check your homepage's raw HTML has an application/ld+json block that parses as JSON and has @type or @context.
  • PassMachine-readable discovery fileAR-READ-06valid JSON2 of 2 points · 8 of 15 pass

    2 of 2 points · Low, worth 2

    What our check kept, up to 60 lines or 6 KB

    {
      "linkset": [
        {
          "anchor": "https://mailtrap.io",
          "service-desc": [
            {
              "href": "https://raw.githubusercontent.com/mailtrap/mailtrap-openapi/main/specs/account-management.openapi.yml",
              "type": "application/vnd.oai.openapi+yaml;version=3.1",
              "title": "Account Management"
            },
            {
              "href": "https://raw.githubusercontent.com/mailtrap/mailtrap-openapi/main/specs/contacts.openapi.yml",
              "type": "application/vnd.oai.openapi+yaml;version=3.1",
              "title": "Contacts"
            },
            {
              "href": "https://raw.githubusercontent.com/mailtrap/mailtrap-openapi/main/specs/email-sending.openapi.yml",
              "type": "application/vnd.oai.openapi+yaml;version=3.1",
              "title": "Email Sending"
            },
            {
              "href": "https://raw.githubusercontent.com/mailtrap/mailtrap-openapi/main/specs/sandbox.openapi.yml",
              "type": "application/vnd.oai.openapi+yaml;version=3.1",
              "title": "Email Sandbox (management)"
            },
            {
              "href": "https://raw.githubusercontent.com/mailtrap/mailtrap-openapi/main/specs/templates.openapi.yml",
              "type": "application/vnd.oai.openapi+yaml;version=3.1",
              "title": "Templates"
            }
          ],
          "service-doc": [
            {
              "href": "https://docs.mailtrap.io/developers",
              "type": "text/html"
            }
          ]
        },
        {
          "anchor": "https://send.api.mailtrap.io",
          "service-desc": [
            {
              "href": "https://raw.githubusercontent.com/mailtrap/mailtrap-openapi/main/specs/email-sending-transactional.openapi.yml",
              "type": "application/vnd.oai.openapi+yaml;version=3.1",
              "title": "Transactional"
            }
          ],
          "service-doc": [
            {
              "href": "https://docs.mailtrap.io/developers",
              "type": "text/html"
            }
          ]
        },
        {
          "anchor": "https://bulk.api.mailtrap.io",
          "service-desc": [
            {
              "href": "https://raw.githubusercontent.com/mailtrap/mailtrap-openapi/main/specs/email-sending-bulk.openapi.yml",
              "type": "application/vnd.oai.openapi+yaml;version=3.1",

    How we test this:

    • We fetch five standard .well-known files and check at least one returns 200 with valid JSON: oauth-authorization-server (RFC 8414), oauth-protected-resource (RFC 9728), openid-configuration, api-catalog (RFC 9727) and agent-card.json (A2A).
    • This list is ours: AgentReady v2.0 doesn't name one.
    • Off the board, on a miss, we also read oauth-protected-resource on the mcp., api. and docs. hosts of your domain, where that metadata usually lives, and it counts only with its resource field.

Act · 11 of 12 pass · 54 of 56 points

  • PassMCP server or CLIAR-ACT-10MCP page: tools send-email, batch-send-transactional-email, list-email-logs, get-sending-stats, create-template, list-sending-domains; send-email, batch-send-transactional-email, list-email-logs, get-sending-stats, create-template, list-sending-domains act on the product (AR-ACT-03)10 of 10 points · 12 of 15 pass

    10 of 10 points · Must, worth 10

    • https://raw.githubusercontent.com/mailtrap/mailtrap-mcp/main/README.mdHTTP 200MCP page: tools send-email, batch-send-transactional-email, list-email-logs, get-sending-stats, create-template, list-sending-domains; send-email, batch-send-transactional-email, list-email-logs, get-sending-stats, create-template, list-sending-domains act on the product (AR-ACT-03)

    What our check kept, up to 60 lines or 6 KB

    _ID` - Required for templates, get-sending-stats, email logs, sandbox list/show, sending domains, and suppressions. Optional only for the send tools (send-email, send-sandbox-email, and the batch-send-\* tools), the email campaign tools, get-marketing-stats, the company info tools, and the tracking opt-out to

    How we test this:

    • Passes when AR-ACT-03 passes (your docs surface names your own MCP server, not just a mention or a blog post about one; on the board, only an MCP server with a tool that acts on the product: send, manage or query, not only search docs, since AgentReady calls this "the interface an agent acts through"), or when your docs surface shows a CLI install: brew install, npm i -g, npm install -g, pipx install, uv tool install, go install, az extension add, or curl ... | sh (or | bash).
    • A mention of MCP that isn't your own server, with no CLI install, isn't counted.
    • For board companies, the CLI half counts only a command of the product's own CLI that we confirmed by hand, like az communication email send or twilio email:send, on the pages we read or on the docs page that shows it: an install alone could be any tool (an MCP setup guide installing pnpm, say).
    • For a product inside a larger platform, the platform's MCP server or CLI counts when its docs show it covers the product.
    • An MCP server earns both this check and AR-ACT-03, because AgentReady lists them as two items.
    • If none of the pages we read is a quickstart or SDK page, a miss isn't counted: it can't fail you or withhold your score.
  • PassOpenAPI specAR-ACT-02OpenAPI 3.1.0, 2 paths7 of 7 points · 11 of 15 pass

    7 of 7 points · High, worth 7

    How we test this:

    • We look for an OpenAPI or Swagger document: for board companies, a URL we confirmed by hand; then up to 2 links on your docs surface whose URL mentions openapi or swagger, or whose link text does for a .json or .yaml file (files on other sites count when your docs link them; an address written out in your llms.txt or another text file counts as a link, and its line as the link text); then /openapi.json and /openapi.yaml on your host and your docs host.
    • Off the board, a .json or .yaml link under an llms.txt heading that names OpenAPI counts as a link to a spec, or, where that section has none, a link with no file extension, and on a miss we also try those two on the docs., developers. and api. hosts of your domain.
    • It passes if one parses as JSON or YAML with an openapi or swagger key and at least one path.
    • A spec over 10 MB counts as couldn't check.
  • Passnpm and PyPI packagesAR-ACT-06docs page: npm install "npm install mailtrap"; docs page: pip install "pip install mailtrap"7 of 7 points · 11 of 15 pass

    7 of 7 points · High, worth 7

    What our check kept, up to 60 lines or 6 KB

    npm install mailtrap
    pip install mailtrap

    How we test this:

    • On your docs surface we look for an npm install (npm, yarn, pnpm or bun) and a pip install (pip, poetry or uv) of a named package.
    • Both must appear, on any of the pages (AgentReady: npm and PyPI).
    • Off the board, uv tool install and pipx install also count as a pip install.
    • Off the board, if one is missing we also read the markdown copy each HTML page declares (a <link rel="alternate" type="text/markdown">, or its URL plus .md listed in your llms.txt), then up to 2 pages your llms.txt names for that language.
    • AgentReady v2.0 asks for SDKs and a CLI here; this check tests the npm and PyPI half, and a CLI counts under AR-ACT-10.
    • If none of the pages we read is a quickstart or SDK page, a miss isn't counted: it can't fail you or withhold your score.
  • PassAuth an agent can follow (proxy)AR-ACT-01quickstart page: "_API_KEY" next to an auth header4 of 4 points · 12 of 15 pass

    4 of 4 points · Medium, worth 4

    What our check kept, up to 60 lines or 6 KB

    w your test emails Safe environment switching What's Next? Was this helpful? Ask Copy curl -X POST "https://mailtrap.io/api/accounts/{account_id}/sending_domains" \ -H "Authorization: Bearer $MAILTRAP_API_KEY" \ -H "Content-Type: application/json" \ -d '{"sending_domain": {"domain_name": "yourdomain.com"}}' Ask Copy { "id": 12345, "domain_name": "yourdomain.com", "dns_verified": false, "compliance_status"

    How we test this:

    • A stand-in: AgentReady asks for self-serve key generation with documented scopes, or OAuth metadata, and key sign-up can't be tested in code.
    • It passes if OAuth metadata parses as JSON with the field its RFC requires (issuer for RFC 8414, resource for RFC 9728), or if your docs say "API key" or "API token" (also inside a placeholder like YOUR_API_KEY) within 200 characters of a documented auth header: an X-...-Key or X-...-Token header, a header named ...-Key or ...-Token, Authorization with Bearer, or "Bearer API key".
    • The word "token" on its own doesn't count.
    • For board companies we also read the authentication page their docs link.
    • Off the board, OAuth metadata with its resource field on your mcp., api. or docs. host also counts.
    • A board company whose API signs each request (like AWS Signature Version 4) or takes the key in the request body isn't counted: this stand-in can't judge that kind of auth either way.
    • If none of the pages we read is a quickstart or SDK page, a miss isn't counted: it can't fail you or withhold your score.
  • PassEvery operation has an operationIdLG-ACT-012 of 2 operations have an operationId4 of 4 points

    4 of 4 points · Medium, worth 4

    How we test this:

    • In the OpenAPI spec AR-ACT-02 finds, we count the operations with a non-empty operationId.
    • The credit is the share that have one.
    • With no spec, it isn't counted: AR-ACT-02 already counts that.
  • PassMCP serverAR-ACT-03MCP page: tools send-email, batch-send-transactional-email, list-email-logs, get-sending-stats, create-template, list-sending-domains; send-email, batch-send-transactional-email, list-email-logs, get-sending-stats, create-template, list-sending-domains act on the product4 of 4 points · 14 of 15 pass

    4 of 4 points · Medium, worth 4

    • https://raw.githubusercontent.com/mailtrap/mailtrap-mcp/main/README.mdHTTP 200MCP page: tools send-email, batch-send-transactional-email, list-email-logs, get-sending-stats, create-template, list-sending-domains; send-email, batch-send-transactional-email, list-email-logs, get-sending-stats, create-template, list-sending-domains act on the product

    What our check kept, up to 60 lines or 6 KB

    _ID` - Required for templates, get-sending-stats, email logs, sandbox list/show, sending domains, and suppressions. Optional only for the send tools (send-email, send-sandbox-email, and the batch-send-\* tools), the email campaign tools, get-marketing-stats, the company info tools, and the tracking opt-out to

    How we test this:

    • On your docs surface we look for your own MCP server and quote the line: your name next to "MCP" ("Acme MCP server"), "our" or "official" MCP server, or an mcp.<your domain> address.
    • Any other mention of "MCP server" or "Model Context Protocol", like a directory or an explainer, isn't counted: it can't fail you and it earns no points, because we can't tell the server is yours.
    • A mention in a link to a blog post, or on an llms.txt line that links to one, doesn't count at all: a post about building a server isn't one you ship.
    • For board companies we read the MCP page their docs link and list the tools it documents: a server that only searches your docs counts here, as AgentReady describes an MCP server as a "standard tool protocol for docs search and actions".
    • We don't probe /mcp or call any server.
    • Off the board, OAuth metadata with its resource field on your mcp. host also counts: it's the server's own file.
    • If none of the pages we read is a quickstart or SDK page, a miss isn't counted: it can't fail you or withhold your score.
  • PassErrors have a schemaLG-ACT-022 of 2 operations declare an error response with a schema4 of 4 points

    4 of 4 points · Medium, worth 4

    How we test this:

    • In the OpenAPI spec AR-ACT-02 finds, we count the operations that declare a 4xx, 5xx or default response with a schema, directly or through a $ref.
    • The credit is the share that do.
    • We note when they use application/problem+json (RFC 9457), the standard shape.
    • With no spec, it isn't counted.
    • The IETF's draft agent-friendly API profile, is-agentic and Alpic check it.
  • FailTools for browser agentsAR-ACT-07We didn't find tools for browser agents in your homepage's HTML or inline scripts0 of 2 points · 0 of 15 pass

    We didn't find tools for browser agents in your homepage's HTML or inline scripts. It costs a point, but it's only worth building if agents need to operate forms on your site. If they do, a browser agent may find no tools to call and have to click through instead.

    0 of 2 points · Low, worth 2

    How we test this:

    • We check your homepage's raw HTML, inline scripts included, contains modelContext (AgentReady names document.modelContext).
    • External scripts aren't fetched.
  • PassAn agent skill is publishedLG-ACT-036 skills listed (sending-emails, testing-with-sandbox, using-email-templates, ...); the first skill, sending-emails, answers2 of 2 points

    2 of 2 points · Low, worth 2

    What our check kept, up to 60 lines or 6 KB

    {
      "$schema": "https://schemas.agentskills.io/discovery/0.2.0/schema.json",
      "skills": [
        {
          "name": "sending-emails",
          "type": "skill-md",
          "description": "Use when integrating, configuring, or troubleshooting Mailtrap live email sending (Email API or SMTP). Use when wiring outbound mail from an application or choosing how to send.",
          "url": "https://raw.githubusercontent.com/mailtrap/mailtrap-skills/refs/heads/main/skills/sending-emails/SKILL.md",
          "digest": "sha256:683c0390b9f86263a7591893d321a7c48f917e045210375ada5d4e23359d1689"
        },
        {
          "name": "testing-with-sandbox",
          "type": "skill-md",
          "description": "Use when capturing outbound email in development or staging without delivering to real recipients, inspecting HTML or headers, running spam or structure checks, or automating tests against a fake inbox. Use when testing outgoing mail from an app without committing to a production ESP yet. Use when using Mailtrap Email Sandbox, Sandbox API, or sandbox-mode sending.",
          "url": "https://raw.githubusercontent.com/mailtrap/mailtrap-skills/refs/heads/main/skills/testing-with-sandbox/SKILL.md",
          "digest": "sha256:4edde41776549b144fcac43bd5d52e7b413feb9cf8c59d3fd5438a51ce033ccc"
        },
        {
          "name": "using-email-templates",
          "type": "skill-md",
          "description": "Use when creating or sending Mailtrap-hosted email templates, Handlebars personalization, template UUID in API payloads, or debugging variables and preview. Use when separating email design from application code for transactional or bulk sends.",
          "url": "https://raw.githubusercontent.com/mailtrap/mailtrap-skills/refs/heads/main/skills/using-email-templates/SKILL.md",
          "digest": "sha256:d11639391ed124e7924712ee4a8b4aeb4ba21efb55df7b574f6732663e99f0df"
        },
        {
          "name": "converting-email-templates",
          "type": "skill-md",
          "description": "Use when converting or migrating email templates from another provider (SendGrid, Mailgun, Mandrill, Postmark, Brevo, Amazon SES) to Mailtrap-compatible Handlebars syntax. Supports single file, bulk directory, and inline HTML conversion.",
          "url": "https://raw.githubusercontent.com/mailtrap/mailtrap-skills/refs/heads/main/skills/converting-email-templates/SKILL.md",
          "digest": "sha256:e279422605e93d3cf32853850684287f9c0b81f7c95e8325f3553e03038eda9e"
        },
        {
          "name": "setting-up-sending-domain",
          "type": "skill-md",
          "description": "Use when adding or verifying a Mailtrap sending domain, DNS propagation issues, registrar or DNS provider steps, compliance after verification, or click tracking. Domain must be verified before sending from it.",
          "url": "https://raw.githubusercontent.com/mailtrap/mailtrap-skills/refs/heads/main/skills/setting-up-sending-domain/SKILL.md",
          "digest": "sha256:8fbe6b442e235b19dc84d5809dbef0a65fbcd452cd9e34bbf68ea298dd606a6b"
        },
        {
          "name": "managing-contacts",
          "type": "skill-md",
          "description": "Use when using Mailtrap Contacts API or UI to add, update, bulk import, list, segment marketing contacts, custom fields, or custom events. Use when syncing contacts from a CRM or warehouse, or building audiences for campaigns.",
          "url": "https://raw.githubusercontent.com/mailtrap/mailtrap-skills/refs/heads/main/skills/managing-contacts/SKILL.md",
          "digest": "sha256:077eda98bc47133a7f27171697f00eff40bae2ea95b91c76fb2dab9e91c4f328"
        }
      ]
    }

    How we test this:

    • Any of three passes: /.well-known/agent-skills/index.json on your site or your docs (or one a Link header names) lists a skill whose file answers; your docs or llms.txt link a SKILL.md that answers with a name and a description; or your docs show a skills install command, on a page we read or on up to 3 pages your docs or llms.txt link about skills or your CLI.
    • An install is npx skills add, claude plugin install, a git clone into a skills folder, or your own command line running plugin install or skills add right after the word skill.
    • An index under a folder, like /developer/, may list its files from that folder.
    • Cloudflare's isitagentready, agenticplug and Alpic check it.
  • Not countedSign-in an MCP client can useLG-ACT-04no OAuth sign-in found to judge

    Not in the score · Low, worth 2

    How we test this:

    • We look for OAuth authorization server metadata (RFC 8414): at /.well-known/oauth-authorization-server on your site, through the authorization_servers your protected-resource metadata (RFC 9728) names, and on your mcp. host.
    • It passes when it lists S256 in code_challenge_methods_supported, has scopes_supported, and has a registration_endpoint or client_id_metadata_document_supported, as the MCP authorization spec asks.
    • With no OAuth metadata, it isn't counted.
  • PassInstall shown for four languagesEM-01docs page: TypeScript/JavaScript "npm install mailtrap"; docs page: Python "pip install mailtrap"; docs page: Go "go get github.com/mailtrap/mailtrap-go"; docs page: Java "< artifactId > mailtrap-java </ artifactId >"4 of 4 points · 6 of 15 pass

    4 of 4 points · Medium, worth 4

    What our check kept, up to 60 lines or 6 KB

    TypeScript/JavaScript: npm install mailtrap
    Python: pip install mailtrap
    Go: go get github.com/mailtrap/mailtrap-go
    Java: < artifactId > mailtrap-java </ artifactId >

    How we test this:

    • On your docs surface we look for an install in each of four languages: TypeScript/JavaScript (npm, yarn, pnpm or bun), Python (pip, poetry or uv), Go (go get) and Java (a Maven <artifactId> or a Gradle implementation line).
    • All four must appear.
    • This shows how to install, not that a package is official.
    • If none of the pages we read is a quickstart or SDK page, a miss isn't counted: it can't fail you or withhold your score.
    • Ours, not AgentReady's.
  • PassSend operation in the specEM-02the spec has POST /api/send4 of 4 points · 11 of 15 pass

    4 of 4 points · Medium, worth 4

    How we test this:

    • In the OpenAPI spec AR-ACT-02 found, we look for a POST operation on a path containing mail, email, message or send.
    • No spec counts as a fail.
    • Ours, not AgentReady's.
  • PassFree tier in emailsEM-03free tier: "150 emails/day"4 of 4 points · 13 of 15 pass

    4 of 4 points · Medium, worth 4

    What our check kept, up to 60 lines or 6 KB

    | 750K | 1.5M | 2.5M | 2.5M+ | Free To try out Mailtrap $0 $0 /month 4,000 emails Start for Free Start for Free 1 user 3 days of email logs 1 domain 150 emails/day Basic For startups and small businesses $15 $15 /month 10,000 emails $20 $20 /month 50,000 emails $30 $30 /month 100,000 emails Get Started Get Start

    How we test this:

    • On the pricing page AR-READ-11 reads, we look for "free" within 300 characters of a number followed by emails, messages or sends and a period (a month, a day, or 30 days), like "3,000 emails/month" or "4,000 sends in any rolling 30-day window", in the raw text (no JavaScript run).
    • A one-time allowance with no period doesn't count.
    • Ours, not AgentReady's.

How we check: every check, its points and the thresholds, from the same code that runs the scan.

Something wrong? Report it to rahulu626@gmail.com

Your next stepsPart 4 of 4

Your next steps

  1. Pick your fixes
  2. Hand them off
  3. Rescan once it's live
  4. Stay ahead of your category
  5. Then back to 1 when a rival passes you
  1. Pick your fixes

    Usually the founder or DevRel lead

    Nothing to fix that a company on our boards already does.

    Nothing copied yet from this browser.

  2. Hand them off

    To whoever ships it

    Fix with AI writes each fix for whoever ships it: your coding agent, an engineer, product or marketing. Open it in Cursor, as a GitHub issue or in Linear, or copy it. Nothing runs until you send it.

    No fix to hand off yet.
  3. Rescan once it's live

    Usually the engineer, after the deploy

    A rescan reads Mailtrap again and shows what now passes, the new score and who you passed.

    Last scan: 99 on 9 Nov, 1st of 15 email APIs.

    Weekly, for 4 weeks. A calendar file: no email from us.
    Bookmark this page: it opens on our 9 Nov 2026 scan, with a live scan one press away.
  4. Stay ahead of your category

    DevRel, the founder

    Rivals ship too. Watch Mailtrap with Bird (ex-SparkPost) and Resend, the nearest on the board: home keeps all three, and Rescan all there shows who moved.

Track it weekly, or scan from your terminal

Scan from your terminal

npx legible-cli mailtrap
+ Add a rival

No sign-up. Checks the files and URLs agents read. It doesn't test an agent using your product, or whether ChatGPT recommends you.

Share Mailtrap's result

From our 9 Nov 2026 scan.

Mailtrap's result card
  • ImageA 1200 × 630 card from the dated board, for a post or a slide.
  • LinkThis result, so whoever opens it sees the same.
  • A line to postWhat it passes, and a way to check their own.