AgenticWebScore
Scan

rubric v0.9 · scanned

resend.com

OpenAPI checker

Your OpenAPI result

The OpenAPI checker puts these checks first. The full report below lists every check, these included.

  • Passed Adopted OpenAPI definition — OpenAPI 3.0.3 at /openapi.yaml (api-catalog service-desc (/.well-known/api-catalog)) declares info.title "Resend", info.version 1.5.0, and 47 paths. Not scored: it is not JSON, and the scan reads operations only from JSON, so none was requested.

    Observation

    tried: /openapi.yaml 200

    An OpenAPI document describes an HTTP API so a client can call it without guessing.

    Sources: OpenAPI 3.1 (OpenAPI Initiative), RFC 8631 (IETF)

    Read today by
    API clients and code generators.
    Google Search
    None

    Read the check page

  • Passed Adopted API catalog — Linkset at /.well-known/api-catalog carries 1 entry, and 1 of them pairs an anchor with a service-desc link, the first pointing at https://resend.com/openapi.yaml. The scan requested the same-origin service-desc target /openapi.yaml, which answered HTTP 200. Not scored: the service-doc target /docs redirected to https://resend.com/docs/introduction and answered HTTP 200. Not scored: the status target is on status.resend.com, which this scan does not request. Not scored: that target is the API description, not an operation.

    Observation

    relations: service-desc, service-doc, status; observed target: /openapi.yaml

    An API catalog lists a publisher's APIs in one document at a fixed address (RFC 9727).

    Sources: RFC 9727 (IETF, 2025-06)

    Read today by
    API clients that follow RFC 9727.
    Google Search
    None

    Read the check page

  • Passed Adopted Documentation reachable — Documentation is reachable at /docs (api-catalog service-doc (/.well-known/api-catalog)) and returns HTTP 200 text/html with 255 readable words.

    Observation

    tried: /docs 200 | /docs/dashboard/emails/send-test-emails 200 | /docs/webhooks/introduction 200 | /docs/send-with-nextjs 200 | /documentation 404 | /developers 404 | /gelistiriciler 404

    Documentation linked as service-doc (RFC 8631), or from the homepage, is how a client learns the API.

    Sources: RFC 8631 (IETF)

    Read today by
    Developers and agents integrating the API.
    Google Search
    None

    Read the check page

  • Passed Adopted OAuth discovery documents — RFC 8414 metadata at /.well-known/oauth-authorization-server declares issuer https://api.resend.com, authorization_endpoint, token_endpoint, and 1 response type.

    OAuth metadata tells a client where and how to authorise against the API.

    Sources: RFC 8414 (IETF), RFC 9728 (IETF)

    Read today by
    OAuth clients; MCP clients use RFC 9728.
    Google Search
    None

    Read the check page

Read the full report Open the OpenAPI checker

Verdict

86.3
out of 100

L5 · Agent-native

Web standards 98.8 · Agent conventions 57.1

Usable by agents: Yes: documented API (OpenAPI)

L5 is the highest level in this rubric. Read the level rules

Readable: HTTP 200 at https://resend.com/, 2,121 words in the HTML. 7 to fix, 1 optional choice, 4 agent conventions not used, 1 agent convention to correct, and 22 out of scope.

How this was measured

Measured once, from 1 vantage point, at https://resend.com. The scanner reads the homepage and at most 129 URLs, runs no JavaScript, and calls no API or MCP tool it finds.

Not a ranking prediction, not AI visibility, not a certification.

We sell no consulting. No ads, no sponsored listings, and we never contact the sites that are scanned. Scanning is free today.

Defects 7

Web-standards checks that fail or are partial, and optional files served with an error. Each lists what fixing it is worth.

  • Partial worth 0.5 points Adopted Service status and changelog feed — A status page answered at /status (HTTP 200), but the homepage links no status or changelog feed.

    A status page and a changelog feed say whether the service is up and what changed.

    Sources: RFC 9727 (status relation) (IETF), RFC 4287 (IETF)

    Read today by
    Integrators and monitoring tools.
    Google Search
    None

    Fix

    <link rel="alternate" type="application/atom+xml" title="Changelog" href="https://resend.com<choose: path of the changelog feed>">

    Note

    A link only counts if it resolves: a feed that 404s is served with an error, and one whose newest entry is months old is stale. The scan reads a status page on the scanned origin, such as /status; a status page on another host is not requested, so it is reported as not measured.

    Verify with

    ORIGIN=https://resend.com
    curl -sSL -A 'AgenticWebScore/0.3 (+https://agenticwebscore.com/bot)' -H 'Accept-Language: en' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,text/plain;q=0.8,*/*;q=0.7' "$ORIGIN/" | grep -oiE '<link[^>]+(atom|rss)[^>]*>|href="[^"]*(status|changelog)[^"]*"' | sort -u
    for p in /status /changelog; do printf '%s -> ' "$p"; curl -sSL -A 'AgenticWebScore/0.3 (+https://agenticwebscore.com/bot)' -H 'Accept-Language: en' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,text/plain;q=0.8,*/*;q=0.7' -o /dev/null -w '%{http_code} %{content_type}\n' "$ORIGIN$p"; done

    Read the check page

  • Partial worth 0.4 points Adopted Responsive markup — viewport content "width=device-width, initial-scale=1, maximum-scale=1" sets maximum-scale=1, which stops a reader from zooming. WCAG 1.4.4 asks that text can be enlarged to 200%.

    Observation

    viewport meta: width=device-width, initial-scale=1, maximum-scale=1

    Google indexes the smartphone rendering of a page. A viewport that blocks zoom fails WCAG 1.4.4.

    Sources: Google: mobile-first indexing (Google Search Central), WCAG 2.2, 1.4.4 (W3C)

    Read today by
    Browsers; Google's smartphone crawler renders the page with it. No Google feature reads the tag itself.
    Google Search
    Indirect

    Fix

    <meta name="viewport" content="width=device-width, initial-scale=1">

    Note

    Never set user-scalable=no or a maximum-scale below 2: they keep a reader from enlarging text to 200%.

    Verify with

    HOMEPAGE=https://resend.com/
    curl -sSL -A 'AgenticWebScore/0.3 (+https://agenticwebscore.com/bot)' -H 'Accept-Language: en' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,text/plain;q=0.8,*/*;q=0.7' "$HOMEPAGE" | perl -0777 -ne 'print m{<meta\b[^>]*\bname=["\x27]?viewport["\x27]?[^>]*>}i ? "viewport: $&\n" : "viewport: none\n"'

    Read the check page

  • optional file, served with an error 0 points Draft Agent Skills declaration — Agent skills index at /.well-known/agent-skills/index.json lists 5 skills, but it lacks 1 member: sha256 digest.

    An agent skills index lists skill packages for agent runtimes. It is a draft on GitHub.

    Sources: Agent Skills Discovery RFC (Cloudflare)

    Read today by
    Agent runtimes that read the draft.
    Google Search
    None

    Fix

    {
      "skills": [
        {
          "name": "<choose: skill name>",
          "type": "skill-md",
          "description": "<choose: what the skill does>",
          "url": "https://resend.com/.well-known/agent-skills/<choose: skill name>/SKILL.md",
          "digest": "sha256:<choose: SHA-256 of the SKILL.md bytes, in hex>"
        }
      ]
    }

    Note

    Give each skill a name, a description, a url, a type (skill-md or archive), and the sha256 digest of the bytes served at its url.

    Verify with

    ORIGIN=https://resend.com
    for p in /.well-known/agent-skills/index.json /.well-known/agent-skills.json /.well-known/skills.json; do printf '%s -> ' "$p"; curl -sSL -A 'AgenticWebScore/0.3 (+https://agenticwebscore.com/bot)' -H 'Accept-Language: en' -H 'Accept: application/json, application/linkset+json;q=0.9, */*;q=0.5' "$ORIGIN$p" | jq -c '{skills:[.skills[]? | {name,type,url,digest}]}' 2>/dev/null || echo "missing or not JSON"; done

    Read the check page

  • optional file, served with an error 0 points Experimental ARD resource discovery manifest — ARD manifest at /.well-known/ai-catalog.json lists 1 entry of which 0 are complete and 0 carry both url and data, which the specification forbids.

    An ARD manifest lists a site's agent resources. Lighthouse does not count a missing one against a site.

    Sources: Lighthouse agentic browsing (Chrome for Developers)

    Read today by
    Lighthouse (ard-schema audit).
    Google Search
    None

    Note

    Give each entry an identifier, a displayName, a type, and exactly one of url or data.

    Verify with

    ORIGIN=https://resend.com
    curl -sSL -A 'AgenticWebScore/0.3 (+https://agenticwebscore.com/bot)' -H 'Accept-Language: en' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,text/plain;q=0.8,*/*;q=0.7' "$ORIGIN/" | grep -oiE '<link[^>]+rel="?ard"?[^>]*>'
    for p in /.well-known/ard.json /.well-known/agent-resources.json /.well-known/ai-catalog.json /ard.json; do printf '%s -> ' "$p"; curl -sSL -A 'AgenticWebScore/0.3 (+https://agenticwebscore.com/bot)' -H 'Accept-Language: en' -H 'Accept: application/json, application/linkset+json;q=0.9, */*;q=0.5' "$ORIGIN$p" | jq -c '[.entries[]? | {identifier,displayName,type,url}]' 2>/dev/null || echo "missing or not JSON"; done

    Read the check page

  • optional file, served with an error 0 points Draft /auth.md agent authentication guide — The guide at /auth.md names 0 of 3 registration methods, 0 of 2 endpoint keys and no protected-resource metadata pointer. An agent cannot register itself from it.

    auth.md is one vendor's convention (WorkOS) for telling an agent how to authenticate.

    Sources: WorkOS auth.md (WorkOS)

    Read today by
    Agents built on WorkOS.
    Google Search
    None

    Note

    auth.md is one vendor's convention (WorkOS): the file is the agent-readable guide, while the machine-readable contract lives in the agent_auth block of your /.well-known/oauth-authorization-server metadata, so publish both.

    Verify with

    ORIGIN=https://resend.com
    printf '/auth.md matches='; curl -sSL -A 'AgenticWebScore/0.3 (+https://agenticwebscore.com/bot)' -H 'Accept-Language: en' -H 'Accept: text/plain, text/markdown;q=0.9, */*;q=0.5' "$ORIGIN/auth.md" | grep -cE 'identity_endpoint|claim_endpoint|identity_assertion|service_auth'

    Read the check page

  • optional file, served with an error 0 points Draft MCP server card — MCP server card at /.well-known/mcp/server-card.json names its server "resend", which is not a reverse-DNS name with one slash, such as com.resend/mcp. Its 0 remotes entries yield 0 usable transports.

    An MCP server card describes a remote MCP server. It is an optional extension (SEP-2127), not core MCP.

    Sources: SEP-2127 (Model Context Protocol, 2026-10), discovery.md (Model Context Protocol)

    Read today by
    MCP clients that implement SEP-2127; Cloudflare's scanner.
    Google Search
    None

    Fix

    {
      "name": "com.resend/mcp",
      "remotes": [
        {
          "type": "streamable-http",
          "url": "<choose: MCP endpoint URL>",
          "supportedProtocolVersions": [
            "<choose: MCP protocol version the server supports>"
          ]
        }
      ]
    }

    Note

    Give the card a name in reverse-DNS form with exactly one slash, as the server card format defines, such as the name in the artifact.

    Verify with

    ORIGIN=https://resend.com
    for p in /.well-known/ai-catalog.json /.well-known/mcp/server-card.json /.well-known/mcp.json /mcp.json; do printf '%s -> ' "$p"; curl -sSL -A 'AgenticWebScore/0.3 (+https://agenticwebscore.com/bot)' -H 'Accept-Language: en' -H 'Accept: application/json, application/linkset+json;q=0.9, */*;q=0.5' "$ORIGIN$p" | jq -c '{name,version,description,remotes,entries}' 2>/dev/null || echo "missing or not JSON"; done

    Read the check page

  • optional file, served with an error 0 points Adopted security.txt (RFC 9116) — security.txt at /.well-known/security.txt: 1 Contact line; no Expires line. RFC 9116 says every file carries a Contact and an Expires line. Not scored: its Policy URL /security answered HTTP 200.

    Observation

    Contact: security@resend.com Policy: https://resend.com/security

    security.txt tells a researcher where to report a vulnerability (RFC 9116). It has no effect on search.

    Sources: RFC 9116 (IETF, 2022-04)

    Read today by
    Security researchers and disclosure tools.
    Google Search
    None

    Fix

    Expires: 2027-04-18T17:05:45.000Z
    

    Note

    Add this line to /.well-known/security.txt, in place of any Expires line it has. RFC 9116 recommends an Expires less than a year ahead.

    Verify with

    ORIGIN=https://resend.com
    curl -sSL -o /dev/null -w '/.well-known/security.txt HTTP %{http_code} %{content_type}\n' -A 'AgenticWebScore/0.3 (+https://agenticwebscore.com/bot)' -H 'Accept-Language: en' -H 'Accept: text/plain, */*;q=0.5' "$ORIGIN/.well-known/security.txt"
    curl -sSL -o /dev/null -w '/security.txt HTTP %{http_code} %{content_type}\n' -A 'AgenticWebScore/0.3 (+https://agenticwebscore.com/bot)' -H 'Accept-Language: en' -H 'Accept: text/plain, */*;q=0.5' "$ORIGIN/security.txt"
    curl -sSL -A 'AgenticWebScore/0.3 (+https://agenticwebscore.com/bot)' -H 'Accept-Language: en' -H 'Accept: text/plain, */*;q=0.5' "$ORIGIN/.well-known/security.txt" | grep -Ei '^(contact|expires|canonical|policy|preferred-languages):'

    Read the check page

Optional choices 3

Show 3 in Optional choices

Decisions only you can make. None earns points or holds a level.

  • Not used 0 points Experimental Sandbox or test environment documented — Not published: the 1 developer document the scan read and the OpenAPI description at /openapi.yaml name no sandbox, staging or test environment.

    A documented sandbox lets a client test calls without touching production data.

    Sources: OpenAPI 3.1 (servers) (OpenAPI Initiative)

    Read today by
    API integrators.
    Google Search
    None

    Note

    Merge the two servers entries into the OpenAPI document you already publish rather than replacing it: OpenAPI standardises servers but says nothing about test keys, sandbox tenants, or data resets, so those can only be stated as info.description prose. A sandbox on its own host is reported as declared, not observed, because this scan requests no other host; one on the scanned host has to answer a request without credentials. The declaring source also has to say what the sandbox excludes - no live data, test data only, resets nightly - because that statement is part of what the check reads.

    Verify with

    ORIGIN=https://resend.com
    { curl -sSL -A 'AgenticWebScore/0.3 (+https://agenticwebscore.com/bot)' -H 'Accept-Language: en' -H 'Accept: application/json, application/linkset+json;q=0.9, */*;q=0.5' "$ORIGIN/openapi.json" | jq -r '.servers[]?.url' 2>/dev/null | grep -iE 'sandbox|staging|test'; curl -sSL -A 'AgenticWebScore/0.3 (+https://agenticwebscore.com/bot)' -H 'Accept-Language: en' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,text/plain;q=0.8,*/*;q=0.7' "$ORIGIN/docs/sandbox" | grep -oiE 'https://[a-z0-9.-]*(sandbox|staging)[a-z0-9./_-]*'; } | sort -u | while read -r u; do printf '%s -> ' "$u"; curl -sSL -A 'AgenticWebScore/0.3 (+https://agenticwebscore.com/bot)' -H 'Accept-Language: en' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,text/plain;q=0.8,*/*;q=0.7' -o /dev/null -w '%{http_code} %{content_type}\n' "$u"; done

    Read the check page

  • Present 0 points Adopted Snippet and AI grounding directives — 5 elements carry data-nosnippet, so Bing shows no snippet from their text, which may limit the quality of Copilot's citations. The effects of noarchive, nocache, nosnippet and data-nosnippet are as Bing Webmaster Guidelines §10 states them.

    Observation

    <meta name="robots" content="index, follow"> · <meta name="googlebot" content="index, follow"> · data-nosnippet: 5 elements

    noarchive, nocache, nosnippet and data-nosnippet limit how Bing shows a page and how Copilot uses it. Each is the site owner's choice.

    Sources: Bing Webmaster Guidelines, §10: NOARCHIVE, NOCACHE and NOSNIPPET (Microsoft Bing), Bing: robots meta tags and attributes that Bing supports (Microsoft Bing), Google: robots meta tag specifications (Google Search Central)

    Read today by
    Bing reads all five, and Copilot follows noarchive and nocache. Google reads nosnippet, max-snippet and data-nosnippet.
    Google Search
    Direct

    Read the check page

  • Present 0 points Adopted Breadcrumb markup on an inner page — The inner page /docs/dashboard/emails/send-test-emails states a BreadcrumbList of 3 ListItems at positions 1–3, each with a name and an item URL.

    Observation

    https://resend.com/docs/dashboard/emails/send-test-emails · HTTP 200 · text/html · JSON-LD trail: Learn > Sending > Send Test Emails · ListItem: 3 · item URLs: 3

    BreadcrumbList states where an inner page sits in the site. A homepage has no trail.

    Sources: Google: breadcrumb (Google Search Central), Google blog (Google Search Central, 2025-01)

    Read today by
    Google shows breadcrumbs in desktop results.
    Google Search
    Direct

    Read the check page

Agent conventions 9

Show 9 in Agent conventions

The scored ones make up 30% of the score, and the unscored ones earn no points. None has an effect on Google Search today. Each scored row not in use lists what using it is worth.

  • Not used worth 4.3 points Adopted AI crawler policy in robots.txt — All 18 AI crawler tokens follow the * group (1 rule); none has its own group.

    Observation

    * group: 1 rule, allowed, followed by 18 AI crawler tokens · robots.txt: 1 group, 1 rule

    A crawler follows the robots.txt group that names it, otherwise the * group. A named group states the site's rules for that crawler.

    Sources: RFC 9309, 2.2.1 (IETF), Google common crawlers (Google Search Central), OpenAI bots (OpenAI)

    Read today by
    AI crawlers that document robots.txt tokens.
    Google Search
    None

    Note

    A crawler obeys the one group that names it and skips the * group (RFC 9309, 2.2.1), so a named group repeats every * rule it should keep. This convention counts a named group that allows / for its crawler. Whether to block a crawler is your choice, and a block earns no points.

    Verify with

    ORIGIN=https://resend.com
    curl -sSL -A 'AgenticWebScore/0.3 (+https://agenticwebscore.com/bot)' -H 'Accept-Language: en' -H 'Accept: text/plain, */*;q=0.5' "$ORIGIN/robots.txt" | grep -Ein '^[[:space:]]*(user-agent|allow|disallow)[[:space:]]*:'

    Read the check page

  • Served with an error worth 4.3 points Draft /llms-full.txt expanded context — /llms-full.txt is a list of links, not page text: 56 link lines of 92 lines, 925 words in 9.2 KB.

    Observation

    HTTP 200 · text/plain · 9.2 KB · # Resend > Resend is the email API for developers. Send transactional and marketing emails at scale with a simple, mode…

    A convention that puts a site's text in one file. The llms.txt proposal does not define it.

    Sources: llmstxt.org (llmstxt.org), Mintlify (Mintlify)

    Read today by
    Some documentation tools.
    Google Search
    None

    Note

    Tools that write /llms.txt can also write /llms-full.txt from the same pages: the text of each page, under its URL. Link it from /llms.txt.

    Verify with

    ORIGIN=https://resend.com
    curl -sSL -o /dev/null -w 'status=%{http_code} type=%{content_type} bytes=%{size_download}\n' -A 'AgenticWebScore/0.3 (+https://agenticwebscore.com/bot)' -H 'Accept-Language: en' -H 'Accept: text/plain, text/markdown;q=0.9, */*;q=0.5' "$ORIGIN/llms-full.txt"
    curl -sSL -A 'AgenticWebScore/0.3 (+https://agenticwebscore.com/bot)' -H 'Accept-Language: en' -H 'Accept: text/plain, text/markdown;q=0.9, */*;q=0.5' "$ORIGIN/llms.txt" | grep -i 'llms-full'

    Read the check page

  • Not used worth 4.3 points Adopted Structured errors for JSON requests — Not used: /aws-probe-5a36f3ef766b, asked for JSON, answered HTTP 404 with an HTML page, not a JSON error.

    Observation

    HTTP 404 · text/html · first 16 KB read

    An agent that asks for JSON and gets an HTML error page has to read a page meant for people. RFC 9457 defines a JSON error format.

    Sources: RFC 9457: Problem Details for HTTP APIs (IETF, 2023-07), RFC 9110, 12.5.1: Accept (IETF)

    Read today by
    API clients and agents that send Accept: application/json. No search engine reads it.
    Google Search
    None

    Fix

    {
      "type": "about:blank",
      "title": "Not Found",
      "status": 404,
      "detail": "Nothing is published at this address."
    }
    

    Note

    Send this with Content-Type: application/problem+json and the status 404 when a request for a missing path asks for JSON. Browsers can keep the HTML page (RFC 9457).

    Verify with

    ORIGIN=https://resend.com
    MISSING="/aws-probe-$(head -c 6 /dev/urandom | od -An -tx1 | tr -d ' \n')"
    curl -sS -D - -A 'AgenticWebScore/0.3 (+https://agenticwebscore.com/bot)' -H 'Accept-Language: en' -H 'Accept: application/json, application/problem+json;q=0.9, */*;q=0.1' "$ORIGIN$MISSING" | head -20

    Read the check page

  • Present Draft Content-Signal preferences — robots.txt states Content-Signal search=yes, ai-input=yes, ai-train=yes in the User-agent: * group.

    Observation

    robots.txt: ai-train=yes, search=yes, ai-input=yes

    Content-Signal states search, ai-input and ai-train preferences in robots.txt. No crawler documents honouring it.

    Sources: Cloudflare: Content Signals Policy (Cloudflare, 2025-09), IETF AIPREF (IETF)

    Read today by
    Cloudflare's scanner scores it. The IETF AIPREF drafts are the standards track.
    Google Search
    None

    Read the check page

  • Present Adopted Discovery via Link response headers — The homepage Link header names the API catalog at /.well-known/api-catalog (rel=api-catalog). It does not name /llms.txt, the OpenAPI document at /openapi.json, and a markdown variant of the homepage.

    Observation

    link: </.well-known/api-catalog>; rel="api-catalog"

    A Link header (RFC 8288) points a client at a resource before it parses the HTML.

    Sources: RFC 8288 (IETF), IANA link relations (IANA)

    Read today by
    Clients that follow RFC 8288 and RFC 9727 links.
    Google Search
    None

    Read the check page

  • Present Draft /llms.txt published and well-structured — /llms.txt opens with H1 "Resend", with 19 H2 link sections and 58 links, 8.1 KB. The scan requested 13 links it names, and each answered 2xx. Not requested: 18 links on another origin and 25 same-origin links (the scan samples up to 6).

    Observation

    HTTP 200 · text/plain · 8.1 KB · headings: Resend | When to use Resend | Setup | Command line tool | MCP Server | Skills | Documentation | Support | OpenAPI spec …

    A 2024 proposal for a markdown index of a site. Google Search does not use it.

    Sources: llmstxt.org (llmstxt.org), Google: AI optimization guide (Google Search Central), Lighthouse llms.txt (Chrome for Developers)

    Read today by
    Some documentation tools and coding agents. Lighthouse audits it.
    Google Search
    None

    Read the check page

  • Present Experimental Markdown content negotiation — The homepage serves text/markdown to `Accept: text/markdown, text/html;q=0.5`, with Vary: Accept, accept-encoding (HTTP 200).

    Observation

    HTTP 200 · text/markdown · Vary: Accept, accept-encoding · markdown body: yes

    Some coding agents ask for text/markdown. Google Search does not use markdown.

    Sources: RFC 7763 (IETF), Cloudflare: Markdown for Agents (Cloudflare), Google: AI optimization guide (Google Search Central)

    Read today by
    Claude Code, OpenCode and Cursor send Accept: text/markdown by default (Cloudflare, 2026-04).
    Google Search
    None

    Read the check page

  • Not used 0 points Experimental DNS-AID discovery record — Not published: 0 SVCB records and 0 TXT records resolve at _index._agents.resend.com.

    Observation

    DNS-AID names queried for SVCB and TXT records: _index._agents.resend.com

    DNS-AID publishes agents in DNS. It is an individual Internet-Draft with no IETF standing.

    Sources: draft-mozleywilliams-dnsop-dnsaid (IETF)

    Read today by
    Cloudflare's scanner.
    Google Search
    None

    Fix

    ; DNS-AID organization entry point (draft-mozleywilliams-dnsop-dnsaid)
    _index._agents.resend.com. IN SVCB 1 <choose: host name that serves the agent index, ending in a dot> alpn=<choose: ALPN of the agent endpoint>
    

    Note

    DNS-AID is an individual Internet-Draft with no IETF standing. TYPE64 is the SVCB type by number, which older dig builds also answer.

    Verify with

    DOMAIN=resend.com
    dig +short TYPE64 _index._agents.$DOMAIN; dig +short TXT _index._agents.$DOMAIN

    Read the check page

  • Not used 0 points Draft MPP discovery in OpenAPI (x-payment-info) — Not declared: /openapi.yaml is a YAML description that does not mention x-payment-info.

    Observation

    /openapi.yaml: HTTP 200, 140 KB

    An operation with x-payment-info tells an agent that the call is paid, and states the intent, the payment method, and the amount. MPP is a draft, and charging agents is a business decision.

    Sources: MPP (mpp.dev), MPP: multi-method discovery (mpp.dev), draft-ryan-httpauth-payment (IETF (individual draft)), isitagentready.com: MPP skill (isitagentready.com)

    Read today by
    Agents that pay with MPP; isitagentready.com.
    Google Search
    None

    Note

    Add x-payment-info to each operation you charge for, inside the OpenAPI description you already serve. Whether to charge agents, how much, and by which method are your decisions. MPP is a draft, so the field names may change.

    Verify with

    ORIGIN=https://resend.com
    # The scan reads the OpenAPI description it already holds. /openapi.json is the usual path; use the path your description is served at.
    curl -sSL -A 'AgenticWebScore/0.3 (+https://agenticwebscore.com/bot)' -H 'Accept-Language: en' -H 'Accept: application/json, application/linkset+json;q=0.9, */*;q=0.5' "$ORIGIN/openapi.json" | jq -c '[.paths | to_entries[] | .key as $p | .value | to_entries[] | select(.value | type == "object" and has("x-payment-info")) | {operation: ((.key | ascii_upcase) + " " + $p), "x-payment-info": .value["x-payment-info"]}]'

    Read the check page

Out of scope for this site 22

Show 22 in Out of scope for this site

The scan did not ask this site for these checks. Each says why. If one should apply, the error is ours, not yours.

Sites with an API or agent surface

The scan found an MCP server, OAuth, and an HTTP API. A check that reads another kind of surface is not asked.

  • Out of scope 0 points Draft A2A agent card — Not scored: this check applies to a site that runs an A2A agent, and the scan found none.

    An A2A agent card describes an agent the site runs. An A2A server publishes it.

    Sources: A2A specification (A2A Project)

    Read today by
    A2A clients.
    Google Search
    None

    Read the check page

  • Out of scope 0 points Draft Cryptographically signed agent card — Not scored: this check applies to a site that runs an A2A agent, and the scan found none.

    An A2A card may be signed with JWS. Signing is optional in the specification.

    Sources: A2A specification (A2A Project), RFC 7515 (IETF)

    Read today by
    A2A clients that verify cards.
    Google Search
    None

    Read the check page

  • Out of scope Adopted MCP server answers and lists its tools — Not scored: /.well-known/ai-catalog.json lists a server card at https://mcp.resend.com/mcp/server-card, off the scanned origin, which this scan does not request. /mcp answered HTTP 200, which does not signal an MCP server.

    An agent given the address of an MCP server can call its tools. The scan opens one session to see that the server answers and what it offers.

    Sources: MCP 2025-11-25: lifecycle (Model Context Protocol, 2025-11), MCP 2025-11-25: transports (Model Context Protocol, 2025-11), MCP 2025-11-25: tools (Model Context Protocol, 2025-11), Agentic AI Foundation: MCP joins the Linux Foundation (Linux Foundation, 2025-12)

    Read today by
    MCP clients: agent apps, coding agents, and chat products that connect to MCP servers.
    Google Search
    None

    Read the check page

  • Out of scope 0 points Experimental Rate limits and quotas documented — Not scored: this check applies to API platform sites; this site was measured as SaaS.

    Declared limits let a client pace its calls. RateLimit headers are an IETF draft.

    Sources: draft-ietf-httpapi-ratelimit-headers (IETF)

    Read today by
    API clients.
    Google Search
    None

    Read the check page

  • Out of scope 0 points Draft Web Bot Auth key directory — Not scored: this check applies to a site that runs an A2A agent, and the scan found none.

    The operator of a signing agent publishes its keys here. A site that only serves content needs none.

    Sources: draft-ietf-webbotauth-httpsig-protocol (IETF, 2026-09), Cloudflare: Web Bot Auth (Cloudflare)

    Read today by
    Sites and CDNs that verify signed agents.
    Google Search
    None

    Read the check page

Sites with a commercial signal

The homepage shows no commercial signal, so commerce checks are not asked of this site.

  • Out of scope 0 points Draft ACP discovery (/.well-known/acp.json) — Not scored: the homepage shows no commercial signal, so commerce checks are not asked of this site.

    An ACP discovery document at /.well-known/acp.json tells an agent where a business's checkout API is and which services it offers. The RFC behind it is a proposal.

    Sources: ACP discovery RFC (status: Proposal) (Agentic Commerce Protocol), isitagentready.com: ACP skill (isitagentready.com)

    Read today by
    Agents that implement ACP checkout; isitagentready.com.
    Google Search
    None

    Read the check page

  • Out of scope 0 points Draft Agent purchase policy — Not scored: the homepage shows no commercial signal, so commerce checks are not asked of this site.

    Whether agents may buy, and with what approval, is a policy the site states.

    Sources: ACP (Agentic Commerce Protocol)

    Read today by
    Agent checkouts.
    Google Search
    None

    Read the check page

  • Out of scope Adopted Inventory and price freshness — Not scored: the homepage shows no commercial signal, so commerce checks are not asked of this site.

    availability says whether an item is in stock. A past priceValidUntil can hide a product snippet.

    Sources: Google: product snippet (Google Search Central)

    Read today by
    Google product snippets.
    Google Search
    Direct

    Read the check page

  • Out of scope 0 points Draft Agent payment protocol (UCP profile or x402) — Not scored: the homepage shows no commercial signal, so commerce checks are not asked of this site.

    Agent payment protocols are early. Accepting one is a business decision. This check reads UCP and x402. ACP and MPP have checks of their own.

    Sources: UCP (Universal Commerce Protocol), x402 (x402)

    Read today by
    Agent checkouts that implement UCP or x402.
    Google Search
    None

    Read the check page

  • Out of scope Adopted Product/catalog schema — Not scored: the homepage shows no commercial signal, so commerce checks are not asked of this site.

    Product and Offer markup on product pages feeds merchant listings.

    Sources: Google: merchant listing (Google Search Central), Google: product (Google Search Central)

    Read today by
    Google merchant listings and shopping agents.
    Google Search
    Direct

    Read the check page

  • Out of scope Adopted Return policy machine-readable — Not scored: the homepage shows no commercial signal, so commerce checks are not asked of this site.

    A MerchantReturnPolicy states return terms in markup, also under the Organization.

    Sources: Google: return policy (Google Search Central)

    Read today by
    Google merchant listings.
    Google Search
    Direct

    Read the check page

  • Out of scope Adopted Seller identity declared — Not scored: the homepage shows no commercial signal, so commerce checks are not asked of this site.

    On a marketplace, the seller named on an offer is who the buyer contracts with.

    Sources: Google: merchant listing (Google Search Central)

    Read today by
    Google merchant listings.
    Google Search
    Direct

    Read the check page

  • Out of scope Adopted Shipping cost and delivery declared — Not scored: the homepage shows no commercial signal, so commerce checks are not asked of this site.

    shippingDetails lets a client compute the delivered price.

    Sources: Google: merchant listing (Google Search Central)

    Read today by
    Google merchant listings.
    Google Search
    Direct

    Read the check page

  • Out of scope 0 points Draft UCP manifest (/.well-known/ucp) — Not scored: the homepage shows no commercial signal, so commerce checks are not asked of this site.

    A UCP profile at /.well-known/ucp declares commerce capabilities. UCP is a draft.

    Sources: UCP (Universal Commerce Protocol), Shopify profiles (Shopify)

    Read today by
    UCP agents; Shopify stores serve it.
    Google Search
    None

    Read the check page

Every site

  • Out of scope 0 points Experimental AI usage policy page — Not scored: robots.txt and Content-Signal state no AI restriction, so there is none for a policy page to explain.

    A page that explains in prose the AI restrictions the site states. No standard defines it.

    Sources: RFC 9309 (IETF)

    Read today by
    People reading the site's terms.
    Google Search
    None

    Read the check page

  • Out of scope 0 points Draft Machine-readable booking action — Not scored: this check applies to services sites; this site was measured as SaaS.

    A ReserveAction declares a booking target in markup. No search engine documents a feature that reads it.

    Sources: schema.org/ReserveAction (Schema.org)

    Read today by
    None documented.
    Google Search
    None

    Read the check page

  • Out of scope 0 points Adopted Documents in machine-readable formats — Not scored: this check applies to institution sites; this site was measured as SaaS.

    Tagged PDF or an HTML version can be read by screen readers and by machines.

    Sources: GOV.UK: HTML not PDF (Government Digital Service), ISO 14289 (PDF/UA) (ISO)

    Read today by
    Screen readers; GOV.UK publishes HTML first.
    Google Search
    None

    Read the check page

  • Out of scope 0 points Adopted FAQ markup for visible questions — Not scored: no heading on the homepage names a FAQ section, and the homepage carries no FAQPage markup.

    Observation

    visible questions under a FAQ heading: 0

    FAQPage marks up questions that are visible on the page. Google stopped showing FAQ rich results on 7 May 2026.

    Sources: Google Search updates (Google Search Central), Google: structured data policies (Google Search Central)

    Read today by
    Bing names FAQ markup as an example of labelled content.
    Google Search
    None

    Read the check page

  • Out of scope 0 points Draft Reuse and licensing terms declared — Not scored: this check applies to publisher or institution sites; this site was measured as SaaS.

    TDMRep reserves text and data mining rights in a machine-readable form, as EU DSM Article 4(3) allows.

    Sources: TDMRep CG report (W3C), Directive (EU) 2019/790 (European Union)

    Read today by
    Text and data mining tools that implement TDMRep.
    Google Search
    None

    Read the check page

  • Out of scope 0 points Adopted Content provenance declared — Not scored: this check applies to publisher or institution sites; this site was measured as SaaS.

    Article markup with an author and dates lets a client attribute and date a source.

    Sources: Google: Article structured data (Google Search Central)

    Read today by
    Google article features.
    Google Search
    Direct

    Read the check page

  • Out of scope Adopted Service/product scope machine-readable — Not scored: the homepage markup declares no Service-type node.

    Service markup states what is offered, by whom and where. An incomplete node leaves a client to guess.

    Sources: schema.org/Service (Schema.org)

    Read today by
    Clients that read schema.org Service. Google has no Service rich result.
    Google Search
    None

    Read the check page

  • Out of scope Experimental WebMCP browser tool declaration — Not scored: the homepage has no form and calls no registerTool, so it offers no task to declare.

    WebMCP lets a page register tools for an in-browser agent. It is a W3C Community Group draft.

    Sources: WebMCP draft (W3C Web Machine Learning Community Group), Chrome: WebMCP (Chrome for Developers)

    Read today by
    Chrome, behind an origin trial. Lighthouse audits it.
    Google Search
    None

    Read the check page

Passed 19

Show 19 in Passed

Scored checks that pass, the heaviest first.

  • Passed Adopted OpenAPI definition — OpenAPI 3.0.3 at /openapi.yaml (api-catalog service-desc (/.well-known/api-catalog)) declares info.title "Resend", info.version 1.5.0, and 47 paths. Not scored: it is not JSON, and the scan reads operations only from JSON, so none was requested.

    Observation

    tried: /openapi.yaml 200

    An OpenAPI document describes an HTTP API so a client can call it without guessing.

    Sources: OpenAPI 3.1 (OpenAPI Initiative), RFC 8631 (IETF)

    Read today by
    API clients and code generators.
    Google Search
    None

    Read the check page

  • Passed Adopted JSON-LD structured data — 1 JSON-LD block parses, and the page entity, Organization "Resend", is stated under a schema.org @context.

    Observation

    JSON-LD: 1 blocks, 1 parsed · schema.org @context: yes · Microdata: 0 items · RDFa: 0 items · top-level types: Organization, WebSite, SoftwareApplication, WebPage, BreadcrumbList

    Structured data names the entity a page describes. Google reads JSON-LD, Microdata and RDFa alike.

    Sources: Google: intro to structured data (Google Search Central), schema.org (Schema.org), Bing Webmaster Guidelines, §14: structured data (Microsoft Bing)

    Read today by
    Google rich results; any schema.org reader.
    Google Search
    Direct

    Read the check page

  • Passed Adopted Content that needs no JavaScript — 14345 characters of text are in the HTML before any script runs.

    Observation

    static text: 14345 characters · inside <noscript>: 0 characters · markup: 419817 characters

    Several AI crawlers do not run JavaScript. Text that appears only after scripts run is invisible to them.

    Sources: Vercel: the rise of the AI crawler (Vercel), Google: JavaScript SEO basics (Google Search Central), Bing Webmaster Guidelines, §8: rendering (Microsoft Bing)

    Read today by
    GPTBot and ClaudeBot fetch HTML without rendering; Googlebot renders.
    Google Search
    Indirect

    Read the check page

  • Passed Adopted Readable homepage — HTTP 200 text/html, 410 KB, 2121 words of visible text.

    Observation

    HTTP 200 · text/html · 410 KB

    The homepage is the first URL every agent requests. An error or an empty page gives it nothing to read.

    Sources: RFC 9110 (IETF), Google: 301 redirects (Google Search Central), Bing Webmaster Guidelines, §7: 301 and 302 redirects (Microsoft Bing)

    Read today by
    Every crawler and agent.
    Google Search
    Direct

    Read the check page

  • Passed Adopted OAuth discovery documents — RFC 8414 metadata at /.well-known/oauth-authorization-server declares issuer https://api.resend.com, authorization_endpoint, token_endpoint, and 1 response type.

    OAuth metadata tells a client where and how to authorise against the API.

    Sources: RFC 8414 (IETF), RFC 9728 (IETF)

    Read today by
    OAuth clients; MCP clients use RFC 9728.
    Google Search
    None

    Read the check page

  • Passed Adopted Semantic heading structure — 1 H1, 14 H2s, and 12 H3s in an outline of 27 headings, with no skipped level.

    Observation

    outline: H1 H2 H2 H2 H2 H2 H2 H2 H2 H2 H2 H2 H3 H3 H3 H3 H3 H3 H3 H3 H3 H2 H3 H3 H3 H2 H2

    Headings outline the page for screen readers and for any client that splits text by section.

    Sources: W3C WAI headings tutorial (W3C), Google SEO starter guide (Google Search Central), Bing Webmaster Guidelines, §13: titles, descriptions and headings (Microsoft Bing)

    Read today by
    Screen readers; clients that chunk HTML by heading.
    Google Search
    Indirect

    Read the check page

  • Passed Adopted Homepage indexable: no noindex directive — No noindex: the homepage states <meta name="robots" content="index, follow"> and <meta name="googlebot" content="index, follow">, and none of them asks to leave the page out.

    Observation

    <meta name="robots" content="index, follow"> · <meta name="googlebot" content="index, follow">

    A noindex in a meta tag or in a response header keeps the page out of search results. Bing keeps it out of Copilot too.

    Sources: Bing Webmaster Guidelines, §10: NOINDEX and the other robots directives (Microsoft Bing), Bing: robots meta tags and attributes that Bing supports (Microsoft Bing), Google: block indexing with noindex (Google Search Central), Google: robots meta tag specifications (Google Search Central)

    Read today by
    Google and Bing. Bing applies the same directives to Copilot answers.
    Google Search
    Direct

    Read the check page

  • Passed Adopted Title and description — Title "Resend · Email for developers" (29 characters) and a description of 106 characters.

    Observation

    title (29 characters): Resend · Email for developers · description (106 characters): The best way to reach humans instead of spam folders. Deliver transactional and marketing emails at scale. · first H1: Email for developers

    The title and the description say what a page is about. Google uses them for the title link and the snippet.

    Sources: Google: title links (Google Search Central), Google: snippets (Google Search Central), Bing Webmaster Guidelines, §13: titles, descriptions and headings (Microsoft Bing), Microsoft: optimizing content for AI search answers (Microsoft Advertising, 2025-10)

    Read today by
    Google, Bing, and link previews.
    Google Search
    Direct

    Read the check page

  • Passed Adopted robots.txt crawl policy — /robots.txt has 1 group and 1 rule across all groups, and 1 Sitemap line.

    Observation

    HTTP 200 · text/plain · 143 bytes · User-agent: * Allow: / Content-Signal: ai-train=yes, search=yes, ai-input=yes Sitemap: https://resend.com/sitemap.xml Host: https://resend.…

    Crawlers read robots.txt before they fetch a page (RFC 9309). Its Sitemap line tells them where the URL list is.

    Sources: RFC 9309 (IETF, 2022-09), Google robots.txt (Google Search Central)

    Read today by
    Google, Bing, and the AI crawlers that document robots.txt support.
    Google Search
    Direct

    Read the check page

  • Passed Adopted XML sitemap — Sitemap index https://resend.com/sitemap.xml parses and lists 12 child sitemaps. This scan does not read the child sitemaps.

    Observation

    HTTP 200 · application/xml · 942 bytes · root <sitemapindex>

    A sitemap lists the URLs a site wants crawled. Google says a small, well-linked site may not need one.

    Sources: Google: build a sitemap (Google Search Central), sitemaps.org (sitemaps.org), Bing Webmaster Guidelines, §3: lastmod (Microsoft Bing)

    Read today by
    Google and Bing.
    Google Search
    Direct

    Read the check page

  • Passed Adopted API catalog — Linkset at /.well-known/api-catalog carries 1 entry, and 1 of them pairs an anchor with a service-desc link, the first pointing at https://resend.com/openapi.yaml. The scan requested the same-origin service-desc target /openapi.yaml, which answered HTTP 200. Not scored: the service-doc target /docs redirected to https://resend.com/docs/introduction and answered HTTP 200. Not scored: the status target is on status.resend.com, which this scan does not request. Not scored: that target is the API description, not an operation.

    Observation

    relations: service-desc, service-doc, status; observed target: /openapi.yaml

    An API catalog lists a publisher's APIs in one document at a fixed address (RFC 9727).

    Sources: RFC 9727 (IETF, 2025-06)

    Read today by
    API clients that follow RFC 9727.
    Google Search
    None

    Read the check page

  • Passed Adopted Documentation reachable — Documentation is reachable at /docs (api-catalog service-doc (/.well-known/api-catalog)) and returns HTTP 200 text/html with 255 readable words.

    Observation

    tried: /docs 200 | /docs/dashboard/emails/send-test-emails 200 | /docs/webhooks/introduction 200 | /docs/send-with-nextjs 200 | /documentation 404 | /developers 404 | /gelistiriciler 404

    Documentation linked as service-doc (RFC 8631), or from the homepage, is how a client learns the API.

    Sources: RFC 8631 (IETF)

    Read today by
    Developers and agents integrating the API.
    Google Search
    None

    Read the check page

  • Passed Adopted Canonical URL — Canonical https://resend.com/ matches the page reached.

    Observation

    <link rel="canonical" href="https://resend.com">

    A canonical link names the one URL a page is known by. Google treats it and redirects as canonical signals.

    Sources: Google: consolidate duplicate URLs (Google Search Central), RFC 6596 (IETF), Bing Webmaster Guidelines, §6: duplicate URLs and canonicals (Microsoft Bing)

    Read today by
    Google and Bing.
    Google Search
    Direct

    Read the check page

  • Passed Adopted Structured pricing information — Homepage markup carries 1 complete price node; the first, Offer "Free", states 0 USD.

    Observation

    {"price":0,"priceCurrency":"USD","where":"homepage"}

    A price in markup is read without parsing prose. An Offer with a price and no currency is ambiguous.

    Sources: schema.org/Offer (Schema.org), Google: product snippet (Google Search Central)

    Read today by
    Clients that read schema.org Offer. Google reads an Offer only inside a Product, which product-schema measures.
    Google Search
    None

    Read the check page

  • Passed Adopted Structured contact information — Homepage markup declares 1 organization-type node; Organization "Resend" has a ContactPoint of contactType "customer support" reachable at support@resend.com.

    A ContactPoint in the Organization markup makes the contact route machine-readable.

    Sources: Google: Organization structured data (Google Search Central)

    Read today by
    Google lists contactPoint as a recommended Organization property.
    Google Search
    Indirect

    Read the check page

  • Passed Adopted HTTP caching of the homepage — The homepage sends Cache-Control "public, max-age=0, must-revalidate" and ETag, and a request with If-None-Match was answered HTTP 304 Not Modified.

    Observation

    Cache-Control: public, max-age=0, must-revalidate · ETag: W/"p2p9rpm6398zxl" · Last-Modified: (none) · conditional GET with If-None-Match: HTTP 304

    Cache-Control says how long the homepage may be reused. A validator lets a crawler ask whether it changed, and a 304 answer skips the body.

    Sources: RFC 9111: HTTP Caching (IETF, 2022-06), RFC 9110, 13: conditional requests (IETF), Google: HTTP caching for crawlers (Google Search Central, 2024-12), Bing Webmaster Guidelines, §3: ETag and lastmod (Microsoft Bing)

    Read today by
    Googlebot sends If-None-Match and If-Modified-Since. Every HTTP cache reads Cache-Control.
    Google Search
    Direct

    Read the check page

  • Passed Adopted Language declaration and multilingual access — html lang="en" is a well-formed BCP 47 tag, with no hreflang alternates.

    Observation

    html lang="en" · alternates: none · content-language: (none)

    The lang attribute names the language of the text. WCAG 3.1.1 requires it at level A. Google reads hreflang, not lang.

    Sources: WCAG 2.2, 3.1.1 (W3C), Google: managing multi-regional sites (Google Search Central), Google: localized versions (Google Search Central)

    Read today by
    Screen readers and translation tools. Google ignores the lang attribute and reads hreflang.
    Google Search
    Indirect

    Read the check page

  • Passed Adopted A real 404 for a missing page — /aws-probe-5a36f3ef766b, a path that does not exist, answered HTTP 404.

    Observation

    HTTP 404 · text/html · first 16 KB read

    A URL that does not exist answers 404 or 410 (RFC 9110). A 200 there makes every mistyped link look like a page.

    Sources: RFC 9110, 15.5.5: 404 Not Found (IETF), Google: HTTP status codes and soft 404s (Google Search Central), Bing Webmaster Guidelines, §9: 404 for missing pages (Microsoft Bing)

    Read today by
    Google reports a missing page that answers 200 as a soft 404. Every HTTP client reads the status first.
    Google Search
    Direct

    Read the check page

  • Passed Adopted Per-page content separation (no SPA fallback) — The homepage and /about have different titles ("Resend · Email for developers" and "About · Resend") and different main text (15% word overlap).

    Observation

    compared / with /about · titles "Resend · Email for developers" / "About · Resend" · skeleton 34% · main-text word overlap 15% · main text 4781 characters

    A route that answers every URL with the same page makes every URL look alike to a crawler.

    Sources: Google: HTTP errors and soft 404s (Google Search Central)

    Read today by
    Google flags such pages as soft 404s.
    Google Search
    Direct

    Read the check page

Hand this report to your coding agent

The prompt lists 7 checks to fix. Each has the value the scan measured and a command that repeats the measurement. It adds the change to make where the scan could build one. After them it lists 3 agent conventions, at lower priority. The prompt is served at https://agenticwebscore.com/aws/resend.com/prompt.md. The command below prints it, so you can paste the output into your agent.

curl -s https://agenticwebscore.com/aws/resend.com/prompt.md

This scan cannot see which AI answers cite the site. Bing Webmaster Tools reports citations in Copilot and in Bing's AI summaries under AI Performance. Google Search Console includes AI Overviews and AI Mode in its Performance report totals, without a separate view (Google's guide to AI features). Both need a verified owner of the site.

Badge

Show this score on your own site. Press Get the badge, paste its snippet into your homepage, and press Check my badge. The directory then lists your site as a verified listing.

Agent readiness score for resend.com

Read how listing works

Ship a fix, then re-scan

Measured 8 days ago. Nothing re-scans a site on its own. A scan runs once, when somebody asks for it — and that somebody need not be you. Anyone can request a scan of any public host, so this page may be the first you hear of it. After you ship a fix, press Re-scan now. A check that now passes adds its points to the score.

Why a re-scan can differ

The current rubric evaluates 3 of its 60 checks against a clock: security-txt, status-page, and inventory-freshness. They can change with no change to the site. A response slower than 12 s is reported as not measured, so the same bytes served slowly can move the score and the fingerprint.

Measured as: SaaS / software product

Can an agent understand what the product does, what it costs, and how to call it? Checks that only apply to other site profiles were not scored, so you are not asked to do work that does not apply to you.

  • · SaaS / software product (score 7), matched: SoftwareApplication schema; A pricing page responds; A documentation path responds.

Signal scores

  • SaaS 7
  • API platform 5
  • Publisher 3
  • Services 2

Modules

  • Every site: always in scope.
  • Sites with an API or agent surface : in scope.
    • · Link rel="api-catalog" </.well-known/api-catalog> on the homepage
    • · /.well-known/api-catalog lists 1 linkset entry
    • · /openapi.json is an OpenAPI 3.0 document
    • · /.well-known/oauth-protected-resource names resource https://api.resend.com
    • · /.well-known/oauth-authorization-server names issuer https://api.resend.com
    • · /.well-known/ai-catalog.json lists an MCP server card
  • Sites with a commercial signal : out of scope. The homepage shows no commercial signal.

Scan record

Target
https://resend.com
Measured at
https://resend.com/
Scanned
Requests
60
Duration
6.8s
Confidence
100% · high
Rubric
rubric v0.9

Fingerprint

4fae6b60df53… verify this record

full hash

4fae6b60df53d147252d8cfe5d83d782ecf051ec4fe4576599a90e7e59d7cf32

Page as an agent receives it

Words
2121
Est. tokens
2863
Markup
410.0 KB
Language
en

“Resend · Email for developers”

By dimension

Each score is the share of the in-scope web-standards points a dimension earned. A dash means the dimension has no web-standards check in scope. The agent conventions are scored apart, as their own part.

  • Discoverability

    100
    Pass
    6
    Partial
    0
    Fails
    0
    Not counted
    0

    Unscored: 0 in use, 1 not used

  • Content

    98.6
    Pass
    8
    Partial
    1
    Fails
    0
    Not counted
    1

    Unscored: 1 in use, 0 not used

  • Crawler access

    100
    Pass
    1
    Partial
    0
    Fails
    0
    Not counted
    0

    Unscored: 1 in use, 0 not used, 1 with an error

  • API and agent

    97.5
    Pass
    4
    Partial
    1
    Fails
    0
    Not counted
    1

    Unscored: 0 in use, 2 not used, 4 with an error

  • Commerce

    —
    Pass
    0
    Partial
    0
    Fails
    0
    Not counted
    5

    Unscored: 0 in use, 0 not used

Request transcript 60 requests

Every fetch this scan record logged, in order. A fetch that followed redirects shows how many redirect requests it made.

57 fetches, 3 redirect requests.

  1. /

    200 410.0 KB 328ms

  2. /robots.txt

    200 143 B 54ms

  3. /sitemap.xml

    200 942 B 37ms

  4. /llms.txt

    200 8.1 KB 246ms

  5. /.well-known/security.txt

    200 64 B 234ms

  6. /security.txt

    404 16.0 KB 212ms

  7. /about

    200 235.0 KB 1086ms

  8. /contact

    200 +1 redirect 310.8 KB 2274ms

  9. /pricing

    200 522.3 KB 207ms

  10. /docs

    200 +1 redirect 326.2 KB 415ms

  11. /developers

    404 16.0 KB 181ms

  12. /.well-known/api-catalog

    200 416 B 244ms

  13. /openapi.json

    200 195.3 KB 383ms

  14. /.well-known/openapi.json

    404 16.0 KB 201ms

  15. /.well-known/mcp/server-card.json

    200 678 B 242ms

  16. /.well-known/ai-catalog.json

    200 213 B 226ms

  17. /.well-known/agent-card.json

    404 16.0 KB 233ms

  18. /.well-known/oauth-protected-resource

    200 239 B 184ms

  19. /.well-known/oauth-authorization-server

    200 757 B 185ms

  20. /.well-known/openid-configuration

    404 16.0 KB 239ms

  21. /llms-full.txt

    200 9.2 KB 427ms

  22. /.well-known/mcp.json

    200 4.9 KB 221ms

  23. /mcp.json

    404 16.0 KB 196ms

  24. /mcp

    200 266.4 KB 779ms

  25. /openapi.yaml

    200 140.4 KB 258ms

  26. /api/openapi.json

    401 105 B 146ms

  27. /swagger.json

    404 16.0 KB 175ms

  28. /.well-known/agent-skills/index.json

    200 3.2 KB 225ms

  29. /.well-known/agent-skills.json

    404 16.0 KB 174ms

  30. /.well-known/skills.json

    404 16.0 KB 182ms

  31. /auth.md

    200 4.6 KB 225ms

  32. /.well-known/ard.json

    404 16.0 KB 203ms

  33. /.well-known/agent-resources.json

    404 16.0 KB 201ms

  34. /ard.json

    404 16.0 KB 183ms

  35. /documentation

    404 16.0 KB 177ms

  36. /gelistiriciler

    404 16.0 KB 225ms

  37. /status

    200 +1 redirect 534.6 KB 535ms

  38. /changelog

    200 605.7 KB 1406ms

  39. /releases

    404 16.0 KB 194ms

  40. /whats-new

    404 16.0 KB 204ms

  41. /docs/sandbox

    404 16.0 KB 340ms

  42. /sandbox

    404 16.0 KB 187ms

  43. /developers/sandbox

    404 16.0 KB 189ms

  44. /docs/dashboard/emails/send-test-emails

    200 330.8 KB 98ms

  45. /security

    200 297.0 KB 642ms

  46. /setup.md

    200 10.6 KB 236ms

  47. /install.sh

    200 12.1 KB 361ms

  48. /docs/llms.txt

    200 58.7 KB 460ms

  49. /support/llms.txt

    200 3.0 KB 446ms

  50. /support/agent.md

    200 13.1 KB 336ms

  51. /support

    200 310.8 KB 1317ms

  52. /docs/webhooks/introduction

    200 321.1 KB 93ms

  53. /docs/send-with-nextjs

    200 441.0 KB 89ms

  54. /

    200 8.1 KB 83ms

  55. /

    304 0 B 208ms

  56. /aws-probe-5a36f3ef766b

    404 16.0 KB 241ms

  57. /aws-probe-5a36f3ef766b

    404 16.0 KB 199ms