Certificat AgentReady.md vérifié
Émis le sig: 17bcf9ed702cdd3b Vérifier →

URL analysée

https://tenvio.email

Mesuré il y a 3 semaines

Analyser une autre URL

Score AI-Ready

Excellent

sur 100

Économie de tokens

Tokens HTML 6649
Tokens Markdown 1738
Économie 74%

Détail du score

Accessibilité 100/100
Visibilité IA 82/100
Données structurées 100/100
HTML sémantique 89/100
Efficacité du contenu 86/100

Protocoles émergents

0 sur 6 détectés

Endpoints well-known recherchés par les agents IA. Détecté signifie qu’un agent peut découvrir et se connecter automatiquement à votre service.

  • OAuth Protected Resource RFC 9728
    /.well-known/oauth-protected-resource
  • OAuth Discovery RFC 8414
    /.well-known/oauth-authorization-server
  • MCP Server Card SEP-1649 draft
    /.well-known/mcp/server-card.json
  • A2A Agent Card A2A v1.0
    /.well-known/agent-card.json
  • API Catalog RFC 9727
    /.well-known/api-catalog
  • Agent Skills index Discovery RFC v0.2.0 draft
    /.well-known/agent-skills/index.json

Cela ne reste pas en place. La surveillance n'existe pas encore : inscrivez-vous, on vous préviendra.

Vous êtes sur la liste ! Nous vous préviendrons lors du lancement.

Ce que nous avons mesuré No Content-Signal found (robots.txt or HTTP headers)

Aucune directive Content-Signal trouvée. Celles-ci indiquent aux agents IA comment ils peuvent utiliser votre contenu (indexation, entrée IA, données d'entraînement). L'emplacement recommandé est robots.txt.

Comment implémenter

Ajoutez Content-Signal à votre robots.txt : User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no. Vous pouvez aussi l'ajouter comme en-tête HTTP sur les réponses markdown.

Collez-le dans un agent de code pour appliquer le correctif

Ce que nous avons mesuré 22 semantic elements, 138 divs (ratio: 14%)

Votre page repose fortement sur les éléments <div>. Les éléments sémantiques comme <section>, <nav>, <header>, <footer> et <aside> fournissent une structure significative pour les AI agents.

Comment implémenter

Remplacez les conteneurs <div> génériques par les éléments sémantiques appropriés. Utilisez <section> pour les groupes thématiques, <nav> pour la navigation, <header>/<footer> pour les en-têtes et pieds de page ou de section.

Collez-le dans un agent de code pour appliquer le correctif
Tokens Markdown: 1738
Transactional email infrastructure

## Transactional email infrastructure for SaaS products and platforms.

Send product email from your own domains—or organize customer-owned domains and senders under one account—with a focused REST API, explicit DNS readiness, durable queues, retries, and delivery history.

Controlled onboarding · Critical, transactional, and approved permission-based traffic.

**POST** /v1/emails202 Accepted

{
  "from": "[email protected]",
  "to": \["[email protected]"\],
  "type": "critical",
  "subject": "New sign-in detected",
  "content": { "plain": "Review this activity." }
}

em\_7kR4…queueddurably accepted

One infrastructure layer

## Two ways to build on Tenvio.

Use the same account-level model whether email belongs to your own product or to the businesses your platform serves.

01

### For your own product

Operate multiple product domains and sender identities for authentication, billing, security, and workflow notifications.

your appdomainssenders

02

### For your platform

Provision customer-owned domains and senders programmatically with scoped Management API credentials and stable external IDs.

your platformcustomer domainssenders

The SMTP problem

## A successful API call is only the start.

Transactional mail crosses DNS, queues, retries, transport policy, and recipient infrastructure. Treating that path as a black box leaves product teams guessing when users are waiting.

**Before**Request accepted?

**With Tenvio**queuedsendingaccepted

Explicit state, SMTP outcomes, safe diagnostics, and timestamps—without claiming inbox placement.

Domains are first-class

## One account. Multiple sending identities.

Add domains independently, follow the exact DNS records each one needs, and attach multiple senders to the right domain. A sender’s effective state follows its own configuration and its domain’s readiness.

-   2 domains on the Free plan
-   3 senders per account
-   Up to 3 senders per domain
-   Independent domain and sender state

DOMAINS**2 of 2 used**

A

**acme.app**3 senders · checked 2 min ago

Ready

C

**customer.example**1 sender · DNS action required

Verifying

DNS READINESS · CUSTOMER.EXAMPLE**2 of 3 checks passing**

Ownership`_tenvio-verification`**Passed**

DKIM`tenvio1._domainkey`**Pending**

DMARC`_dmarc`**Passed**

ACCOUNT**Your SaaS platform**shared quota + scoped keys

DOMAIN**customer-a.com**ready

billing@alerts@

DOMAIN**customer-b.io**verifying

notifications@

For platforms

## A resource model built beyond one domain.

The multi-domain, multi-sender foundation is live. It can represent domains your company owns or domains your customers own without legacy single-domain branches.

Management API**Live · controlled onboarding**

Create separate `mg_live_` keys with exact scopes for account and usage reads, plus domain and sender operations. DNS actions use the domain scopes. Sending remains isolated behind `tv_live_` keys.

[Read the Management API guide](https://docs.tenvio.email/management/)

Direct delivery

## Your application to the recipient MX.

Tenvio operates the delivery path instead of forwarding sends to another email API provider.

01**Your application**Authenticated API request

02**Tenvio queue**Durable intake + idempotency

03**Delivery engine**Policy + retries

04**Recipient MX**SMTP outcome

A deliberate boundary

## Product email with explicit consent.

Critical and transactional messages are available to every plan. Permission-based broadcast requires a paid Custom plan and separate manual approval.

### Available

-   Verification and authentication
-   Security and account alerts
-   Receipts and order updates
-   Approved permission-based broadcast

### Prohibited

-   Cold outreach
-   Purchased recipient lists
-   Traffic without documented consent

Delivery lifecycle

## Every state means something precise.

**queued**

Durably accepted for delivery.

**sending**

An attempt is in progress.

**deferred**

A temporary failure will retry.

**accepted**

The recipient SMTP server accepted it.

**bounced**

The recipient server rejected it permanently.

**failed**

Delivery ended without acceptance.

Accepted does not guarantee inbox placement. The receiving system controls filtering and final presentation.

Developer API

## One explicit send contract.

Create an API key, keep it server-side, and send through the live REST endpoint. Every logical email requires an idempotency key so retries do not create duplicate messages.

**POST**Enqueue an email

**GET**List email history

**GET**Inspect email detail

[Read the complete API reference](https://docs.tenvio.email/)

Send a transactional email

```
curl -X POST https://api.tenvio.email/v1/emails \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 7f4d9b98-63a8-4c43-a958-41d641fe2fd2" \
  -d '{
    "from": "[email protected]",
    "to": ["[email protected]"],
    "cc": [],
    "bcc": [],
    "type": "transactional",
    "subject": "Your account is ready",
    "content": { "plain": "You can now sign in." }
  }'
```

Scale with guardrails

## Clear limits. Account-level control.

Free includes exact recipient-email quotas and safety limits. Purchased Custom capacity remains subject to abuse, reputation, and infrastructure safety restrictions.

**2**domains

**3**senders

**3**senders / domain

**3,000**recipient-emails / monthly cycle

**250**active delivery jobs

Also enforced on Free: 30 recipient-emails per rolling minute, 300 per hour, and 300 per rolling 24 hours.

Pricing v1

## Free and Custom.

Exact USD monthly pricing. Taxes may be additional where applicable.

FREE

### $0 / month

Critical and transactional REST API email: 3,000 recipient-emails per monthly cycle, 2 domains, 3 senders total and per domain, one sending key, 250 active deliveries, and 14-day history. Broadcast is disabled.

CUSTOM

### From $10 / month

Choose 10,000 to 2,500,000 recipient-emails and capacity for up to 10–1,000 managed domains. Hard Cap is the only exhaustion mode. Permission-based broadcast requires separate manual approval.

[Build and review exact pricing](https://docs.tenvio.email/plans/)

Controlled onboarding

## A focused product email surface.

### Available

-   Critical and transactional REST Email API
-   Multiple domains and senders
-   BCC input with address-private history
-   Approved Custom permission-based broadcast
-   Free and Custom Hard Cap plans

### Policy boundary

-   Explicit recipient permission
-   Documented audience source
-   No cold outreach
-   No purchased lists

FAQ

## The infrastructure, without the ambiguity.

**What is Tenvio?**

Tenvio is product email infrastructure for critical, transactional, and separately approved permission-based broadcast traffic.

**Can one account use multiple domains and senders?**

Yes. The Free plan supports 2 domains and 3 senders across the account, with up to 3 senders on one domain.

**Does “accepted” mean delivered to the inbox?**

No. It means the recipient mail server accepted the message. The receiving system controls filtering and inbox placement.

**How is broadcast enabled?**

A paid Custom plan is necessary but not sufficient. Tenvio separately reviews permission and risk controls before an operator approves broadcast capability. Payment never grants approval.

**Can I use a purchased list or send cold outreach?**

No. Both are prohibited. Broadcast recipients require a documented permission basis and audience source.

Request access

## Tell us what your product needs to send.

Tenvio is onboarding SaaS products and platforms during controlled onboarding. Share your domain model, transactional use case, and expected volume.

**Keep secrets out of this form.**Do not include API keys, passwords, recipient lists, or message payloads.
Tenvio - Transactional Email API for SaaS Platforms         [Skip to content](https://tenvio.email/#main)

[![](https://tenvio.email/brand-mark.png)Tenvio](https://tenvio.email/)

Transactional email infrastructure# Transactional email infrastructure for SaaS products and platforms.

Send product email from your own domains—or organize customer-owned domains and senders under one account—with a focused REST API, explicit DNS readiness, durable queues, retries, and delivery history.

[Request access →](https://tenvio.email/?topic=access#request-access)[Read the docs](https://docs.tenvio.email/)

Controlled onboarding · Critical, transactional, and approved permission-based traffic.

Send API LivePlatform Controlled onboarding

**POST** /v1/emails202 Accepted

{
  "from": "[email protected]",
  "to": \["[email protected]"\],
  "type": "critical",
  "subject": "New sign-in detected",
  "content": { "plain": "Review this activity." }
}

em\_7kR4…queueddurably accepted

Platform resource model**Live · controlled onboarding**

A

ACCOUNT**Acme Platform**

DOMAIN · READY**acme.app**

security@billing@

DOMAIN · VERIFYING**customer-one.com**

notifications@

Automate domains, DNS readiness, senders, account details, and usage with separate scoped management keys.

One infrastructure layer## Two ways to build on Tenvio.

Use the same account-level model whether email belongs to your own product or to the businesses your platform serves.

01

### For your own product

Operate multiple product domains and sender identities for authentication, billing, security, and workflow notifications.

your appdomainssenders

02

### For your platform

Provision customer-owned domains and senders programmatically with scoped Management API credentials and stable external IDs.

your platformcustomer domainssenders

The SMTP problem## A successful API call is only the start.

Transactional mail crosses DNS, queues, retries, transport policy, and recipient infrastructure. Treating that path as a black box leaves product teams guessing when users are waiting.

**Before**Request accepted?

**With Tenvio**queuedsendingaccepted

Explicit state, SMTP outcomes, safe diagnostics, and timestamps—without claiming inbox placement.

Domains are first-class## One account. Multiple sending identities.

Add domains independently, follow the exact DNS records each one needs, and attach multiple senders to the right domain. A sender’s effective state follows its own configuration and its domain’s readiness.

-   2 domains on the Free plan
-   3 senders per account
-   Up to 3 senders per domain
-   Independent domain and sender state

DOMAINS**2 of 2 used**

Add domain

A

**acme.app**3 senders · checked 2 min ago

Ready

C

**customer.example**1 sender · DNS action required

Verifying

DNS READINESS · CUSTOMER.EXAMPLE**2 of 3 checks passing**

Ownership`_tenvio-verification`**Passed**

DKIM`tenvio1._domainkey`**Pending**

DMARC`_dmarc`**Passed**

ACCOUNT**Your SaaS platform**shared quota + scoped keys

DOMAIN**customer-a.com**ready

billing@alerts@

DOMAIN**customer-b.io**verifying

notifications@

For platforms## A resource model built beyond one domain.

The multi-domain, multi-sender foundation is live. It can represent domains your company owns or domains your customers own without legacy single-domain branches.

Management API**Live · controlled onboarding**

Create separate `mg_live_` keys with exact scopes for account and usage reads, plus domain and sender operations. DNS actions use the domain scopes. Sending remains isolated behind `tv_live_` keys.

[Read the Management API guide →](https://docs.tenvio.email/management/)

Direct delivery## Your application to the recipient MX.

Tenvio operates the delivery path instead of forwarding sends to another email API provider.

01**Your application**Authenticated API request

02**Tenvio queue**Durable intake + idempotency

03**Delivery engine**Policy + retries

04**Recipient MX**SMTP outcome

A deliberate boundary## Product email with explicit consent.

Critical and transactional messages are available to every plan. Permission-based broadcast requires a paid Custom plan and separate manual approval.

### Available

-   Verification and authentication
-   Security and account alerts
-   Receipts and order updates
-   Approved permission-based broadcast

### Prohibited

-   Cold outreach
-   Purchased recipient lists
-   Traffic without documented consent

Delivery lifecycle## Every state means something precise.

**queued**

Durably accepted for delivery.

**sending**

An attempt is in progress.

**deferred**

A temporary failure will retry.

**accepted**

The recipient SMTP server accepted it.

**bounced**

The recipient server rejected it permanently.

**failed**

Delivery ended without acceptance.

Accepted does not guarantee inbox placement. The receiving system controls filtering and final presentation.

Developer API## One explicit send contract.

Create an API key, keep it server-side, and send through the live REST endpoint. Every logical email requires an idempotency key so retries do not create duplicate messages.

**POST**Enqueue an email

**GET**List email history

**GET**Inspect email detail

[Read the complete API reference →](https://docs.tenvio.email/)

Send a transactional emailCopy

```
curl -X POST https://api.tenvio.email/v1/emails \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 7f4d9b98-63a8-4c43-a958-41d641fe2fd2" \
  -d '{
    "from": "[email protected]",
    "to": ["[email protected]"],
    "cc": [],
    "bcc": [],
    "type": "transactional",
    "subject": "Your account is ready",
    "content": { "plain": "You can now sign in." }
  }'
```

Scale with guardrails## Clear limits. Account-level control.

Free includes exact recipient-email quotas and safety limits. Purchased Custom capacity remains subject to abuse, reputation, and infrastructure safety restrictions.

**2**domains

**3**senders

**3**senders / domain

**3,000**recipient-emails / monthly cycle

**250**active delivery jobs

Also enforced on Free: 30 recipient-emails per rolling minute, 300 per hour, and 300 per rolling 24 hours.

Pricing v1## Free and Custom.

Exact USD monthly pricing. Taxes may be additional where applicable.

FREE

### $0 / month

Critical and transactional REST API email: 3,000 recipient-emails per monthly cycle, 2 domains, 3 senders total and per domain, one sending key, 250 active deliveries, and 14-day history. Broadcast is disabled.

CUSTOM

### From $10 / month

Choose 10,000 to 2,500,000 recipient-emails and capacity for up to 10–1,000 managed domains. Hard Cap is the only exhaustion mode. Permission-based broadcast requires separate manual approval.

[Build and review exact pricing →](https://docs.tenvio.email/plans/)

Controlled onboarding## A focused product email surface.

### Available

-   Critical and transactional REST Email API
-   Multiple domains and senders
-   BCC input with address-private history
-   Approved Custom permission-based broadcast
-   Free and Custom Hard Cap plans

### Policy boundary

-   Explicit recipient permission
-   Documented audience source
-   No cold outreach
-   No purchased lists

FAQ## The infrastructure, without the ambiguity.

**What is Tenvio?**

Tenvio is product email infrastructure for critical, transactional, and separately approved permission-based broadcast traffic.

**Can one account use multiple domains and senders?**

Yes. The Free plan supports 2 domains and 3 senders across the account, with up to 3 senders on one domain.

**Does “accepted” mean delivered to the inbox?**

No. It means the recipient mail server accepted the message. The receiving system controls filtering and inbox placement.

**How is broadcast enabled?**

A paid Custom plan is necessary but not sufficient. Tenvio separately reviews permission and risk controls before an operator approves broadcast capability. Payment never grants approval.

**Can I use a purchased list or send cold outreach?**

No. Both are prohibited. Broadcast recipients require a documented permission basis and audience source.

Request access## Tell us what your product needs to send.

Tenvio is onboarding SaaS products and platforms during controlled onboarding. Share your domain model, transactional use case, and expected volume.

**Keep secrets out of this form.**Do not include API keys, passwords, recipient lists, or message payloads.

Name

Work email

Company or product

Website

Use caseSelect oneEmail for our own productEmail for a SaaS platformBothReport abuseSomething else

Monthly volume OptionalNot sure yetUnder 10,00010,000–100,000100,000–1 millionMore than 1 million

What are you building?Describe the transactional messages and how domains belong to your product or customers.

Leave this field empty

Send request →

Téléversez ce fichier sous /index.md sur votre serveur pour que les AI agents puissent accéder à une version propre de votre page. Vous pouvez également configurer la négociation de contenu Accept: text/markdown pour le servir automatiquement.

Notre recommandation

Télécharger llms.txt
# Tenvio

> Transactional email infrastructure for SaaS products and platforms, with multiple domains, multiple senders, DNS readiness, queues, retries, and delivery telemetry.

## Main
- [Tenvio - Transactional Email API for SaaS Platforms](https://tenvio.email): Transactional email infrastructure for SaaS products and platforms, with multiple domains, multiple senders, DNS readin…
- [Tenvio](https://tenvio.email/)
- [Request access](https://tenvio.email/?topic=access)
- [Acceptable Use](https://tenvio.email/acceptable-use.html)
- [Report abuse](https://tenvio.email/abuse.html)

## Legal
- [Privacy](https://tenvio.email/privacy.html)
- [Terms](https://tenvio.email/terms.html)

Le llms.txt complet nécessite une analyse de tout le domaine (bientôt disponible)

Téléversez ce fichier vers https://tenvio.email/llms.txt à la racine de votre domaine. Les AI agents comme ChatGPT, Claude et Perplexity consultent ce fichier pour comprendre la structure de votre site.

Ce site possède déjà un fichier llms.txt.

Format valide
# Tenvio

> Tenvio is server-side email infrastructure for applications that send critical and transactional product email through a REST API, with multi-domain account management.

The canonical technical source is docs.tenvio.email. Prefer its OpenAPI contract for exact request and response schemas.

## Product

- [Product overview](https://tenvio.email/index.md)
- [Acceptable use](https://tenvio.email/acceptable-use.md)
- [Privacy](https://tenvio.email/privacy.md)
- [Terms](https://tenvio.email/terms.md)
- [Abuse](https://tenvio.email/abuse.md)

## Developer resources

- [AI-readable documentation index](https://docs.tenvio.email/llms.txt)
- [Full technical documentation](https://docs.tenvio.email/llms-full.txt)
- [Getting started](https://docs.tenvio.email/getting-started/index.md)
- [Sending API](https://docs.tenvio.email/sending/index.md)
- [Plans and limits](https://docs.tenvio.email/plans/index.md)
- [OpenAPI YAML](https://docs.tenvio.email/openapi.yaml)
- [OpenAPI JSON](https://docs.tenvio.email/openapi.json)

## Complete product context

- [Full product context](https://tenvio.email/llms-full.txt)

Accessibilité

Contenu disponible sans JavaScript (100/100)

Content available without JavaScript

Le contenu apparaît tôt dans le HTML (100/100)

Main content starts at 18% of HTML

Taille de page raisonnable (100/100)

Page size: 26KB

Visibilité IA

robots.txt autorise les bots IA (100/100)

All major AI search bots allowed

Support Markdown for Agents (60/100) Application
✗ Accept: text/markdown ✓ .md URL ✓ <link> tag ✗ Link header

Découvrable, mais sans négociation : un agent qui lit votre HTML trouve la version .md ; un autre qui demande la page directement reçoit toujours du HTML. Répondre à Accept: text/markdown couvre les deux cas.

Possède un sitemap.xml (100/100)

Sitemap found

Possède un fichier robots.txt (100/100)

robots.txt exists

Possède un fichier llms.txt (100/100)

llms.txt exists and is valid

A Content-Signal (robots.txt ou en-têtes HTTP) (0/100)
✓ robots.txt ✓ HTTP header ✗ Policy

Données structurées

Possède Schema.org / JSON-LD (100/100)

JSON-LD found: Organization, WebSite, SoftwareApplication, FAQPage

Possède des balises Open Graph (100/100)

All OG tags present

Possède une meta description (100/100)

Meta description: 164 chars

Possède une URL canonique (100/100)

Canonical URL present

Possède un attribut lang (100/100)

lang="en"

HTML sémantique

Hiérarchie de titres correcte (100/100)

Clean heading hierarchy

Utilise les éléments article ou main (100/100)

Has both <article> and <main>

Utilise des éléments HTML sémantiques (46/100)

22 semantic elements, 138 divs (ratio: 14%)

Textes alternatifs descriptifs pour les images (100/100)

No informative images (2 decorative)

Faible profondeur d’imbrication des divs (100/100)

Avg div depth: 1.9, max: 6

Efficacité du contenu

Bon ratio de réduction de tokens (80/100)

74% token reduction (HTML→Markdown)

Bon ratio contenu/bruit (80/100)

Content ratio: 27.8% (7264 content chars / 26149 HTML bytes)

Poids de page raisonnable (100/100)

HTML size: 26KB

Styles en ligne minimaux (100/100)

0/518 elements with inline styles (0.0%)

{
  "url": "https://tenvio.email",
  "timestamp": 1790281198378,
  "fetch": {
    "mode": "simple",
    "timeMs": 323,
    "htmlSizeBytes": 26149,
    "supportsMarkdown": false,
    "markdownAgents": {
      "contentNegotiation": false,
      "mdUrl": {
        "found": true,
        "url": "https://tenvio.email/index.md"
      },
      "linkTag": {
        "found": true,
        "url": "/index.md"
      },
      "linkHeader": {
        "found": false,
        "url": null
      },
      "responseHeaders": {
        "contentSignal": null,
        "xMarkdownTokens": null,
        "vary": null
      },
      "frontmatter": {
        "present": false,
        "fields": [],
        "level": "none"
      },
      "level": "application",
      "mdUrlMediaType": "text/markdown",
      "mdUrlProperMediaType": true
    },
    "statusCode": 200
  },
  "extraction": {
    "title": "Tenvio - Transactional Email API for SaaS Platforms",
    "excerpt": "One account model for your domains, your customers’ domains, and every transactional sender.",
    "byline": null,
    "siteName": "Tenvio",
    "lang": "en",
    "contentLength": 7264,
    "metadata": {
      "description": "Transactional email infrastructure for SaaS products and platforms, with multiple domains, multiple senders, DNS readiness, queues, retries, and delivery telemetry.",
      "ogTitle": "Tenvio - Transactional Email API for SaaS Platforms",
      "ogDescription": "One account model for your domains, your customers’ domains, and every transactional sender.",
      "ogImage": "https://tenvio.email/og-tenvio-platform.png",
      "ogType": "website",
      "canonical": "https://tenvio.email/",
      "lang": "en",
      "schemas": [
        {
          "@type": "Organization",
          "@id": "https://tenvio.email/#organization",
          "name": "Tenvio",
          "url": "https://tenvio.email/",
          "logo": "https://tenvio.email/android-chrome-512x512.png"
        },
        {
          "@type": "WebSite",
          "@id": "https://tenvio.email/#website",
          "url": "https://tenvio.email/",
          "name": "Tenvio",
          "publisher": {
            "@id": "https://tenvio.email/#organization"
          }
        },
        {
          "@type": "SoftwareApplication",
          "@id": "https://tenvio.email/#software",
          "name": "Tenvio",
          "applicationCategory": "DeveloperApplication",
          "operatingSystem": "Web",
          "url": "https://tenvio.email/",
          "description": "Critical, transactional, and approved permission-based broadcast email infrastructure with durable queues and delivery history.",
          "featureList": [
            "REST Email API",
            "Asynchronous Broadcast API for approved Custom accounts",
            "Multiple authenticated domains",
            "Multiple sender identities",
            "Queue and retry handling",
            "Delivery history"
          ],
          "publisher": {
            "@id": "https://tenvio.email/#organization"
          }
        },
        {
          "@type": "FAQPage",
          "@id": "https://tenvio.email/#faq-schema",
          "mainEntity": [
            {
              "@type": "Question",
              "name": "What traffic is available?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Critical and transactional email are available. Permission-based broadcast requires Custom and separate manual approval."
              }
            },
            {
              "@type": "Question",
              "name": "Does accepted mean inbox delivery?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "No. Accepted means the recipient mail server accepted the message. The receiving system controls filtering and inbox placement."
              }
            },
            {
              "@type": "Question",
              "name": "Can I use purchased lists or send cold outreach?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "No. Both are prohibited."
              }
            }
          ]
        }
      ],
      "robotsMeta": "index, follow",
      "author": null,
      "generator": null,
      "markdownAlternateHref": "/index.md"
    }
  },
  "markdown": "Transactional email infrastructure\n\n## Transactional email infrastructure for SaaS products and platforms.\n\nSend product email from your own domains—or organize customer-owned domains and senders under one account—with a focused REST API, explicit DNS readiness, durable queues, retries, and delivery history.\n\nControlled onboarding · Critical, transactional, and approved permission-based traffic.\n\n**POST** /v1/emails202 Accepted\n\n{\n  \"from\": \"[email protected]\",\n  \"to\": \\[\"[email protected]\"\\],\n  \"type\": \"critical\",\n  \"subject\": \"New sign-in detected\",\n  \"content\": { \"plain\": \"Review this activity.\" }\n}\n\nem\\_7kR4…queueddurably accepted\n\nOne infrastructure layer\n\n## Two ways to build on Tenvio.\n\nUse the same account-level model whether email belongs to your own product or to the businesses your platform serves.\n\n01\n\n### For your own product\n\nOperate multiple product domains and sender identities for authentication, billing, security, and workflow notifications.\n\nyour appdomainssenders\n\n02\n\n### For your platform\n\nProvision customer-owned domains and senders programmatically with scoped Management API credentials and stable external IDs.\n\nyour platformcustomer domainssenders\n\nThe SMTP problem\n\n## A successful API call is only the start.\n\nTransactional mail crosses DNS, queues, retries, transport policy, and recipient infrastructure. Treating that path as a black box leaves product teams guessing when users are waiting.\n\n**Before**Request accepted?\n\n**With Tenvio**queuedsendingaccepted\n\nExplicit state, SMTP outcomes, safe diagnostics, and timestamps—without claiming inbox placement.\n\nDomains are first-class\n\n## One account. Multiple sending identities.\n\nAdd domains independently, follow the exact DNS records each one needs, and attach multiple senders to the right domain. A sender’s effective state follows its own configuration and its domain’s readiness.\n\n-   2 domains on the Free plan\n-   3 senders per account\n-   Up to 3 senders per domain\n-   Independent domain and sender state\n\nDOMAINS**2 of 2 used**\n\nA\n\n**acme.app**3 senders · checked 2 min ago\n\nReady\n\nC\n\n**customer.example**1 sender · DNS action required\n\nVerifying\n\nDNS READINESS · CUSTOMER.EXAMPLE**2 of 3 checks passing**\n\nOwnership`_tenvio-verification`**Passed**\n\nDKIM`tenvio1._domainkey`**Pending**\n\nDMARC`_dmarc`**Passed**\n\nACCOUNT**Your SaaS platform**shared quota + scoped keys\n\nDOMAIN**customer-a.com**ready\n\nbilling@alerts@\n\nDOMAIN**customer-b.io**verifying\n\nnotifications@\n\nFor platforms\n\n## A resource model built beyond one domain.\n\nThe multi-domain, multi-sender foundation is live. It can represent domains your company owns or domains your customers own without legacy single-domain branches.\n\nManagement API**Live · controlled onboarding**\n\nCreate separate `mg_live_` keys with exact scopes for account and usage reads, plus domain and sender operations. DNS actions use the domain scopes. Sending remains isolated behind `tv_live_` keys.\n\n[Read the Management API guide](https://docs.tenvio.email/management/)\n\nDirect delivery\n\n## Your application to the recipient MX.\n\nTenvio operates the delivery path instead of forwarding sends to another email API provider.\n\n01**Your application**Authenticated API request\n\n02**Tenvio queue**Durable intake + idempotency\n\n03**Delivery engine**Policy + retries\n\n04**Recipient MX**SMTP outcome\n\nA deliberate boundary\n\n## Product email with explicit consent.\n\nCritical and transactional messages are available to every plan. Permission-based broadcast requires a paid Custom plan and separate manual approval.\n\n### Available\n\n-   Verification and authentication\n-   Security and account alerts\n-   Receipts and order updates\n-   Approved permission-based broadcast\n\n### Prohibited\n\n-   Cold outreach\n-   Purchased recipient lists\n-   Traffic without documented consent\n\nDelivery lifecycle\n\n## Every state means something precise.\n\n**queued**\n\nDurably accepted for delivery.\n\n**sending**\n\nAn attempt is in progress.\n\n**deferred**\n\nA temporary failure will retry.\n\n**accepted**\n\nThe recipient SMTP server accepted it.\n\n**bounced**\n\nThe recipient server rejected it permanently.\n\n**failed**\n\nDelivery ended without acceptance.\n\nAccepted does not guarantee inbox placement. The receiving system controls filtering and final presentation.\n\nDeveloper API\n\n## One explicit send contract.\n\nCreate an API key, keep it server-side, and send through the live REST endpoint. Every logical email requires an idempotency key so retries do not create duplicate messages.\n\n**POST**Enqueue an email\n\n**GET**List email history\n\n**GET**Inspect email detail\n\n[Read the complete API reference](https://docs.tenvio.email/)\n\nSend a transactional email\n\n```\ncurl -X POST https://api.tenvio.email/v1/emails \\\n  -H \"Authorization: Bearer YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Idempotency-Key: 7f4d9b98-63a8-4c43-a958-41d641fe2fd2\" \\\n  -d '{\n    \"from\": \"[email protected]\",\n    \"to\": [\"[email protected]\"],\n    \"cc\": [],\n    \"bcc\": [],\n    \"type\": \"transactional\",\n    \"subject\": \"Your account is ready\",\n    \"content\": { \"plain\": \"You can now sign in.\" }\n  }'\n```\n\nScale with guardrails\n\n## Clear limits. Account-level control.\n\nFree includes exact recipient-email quotas and safety limits. Purchased Custom capacity remains subject to abuse, reputation, and infrastructure safety restrictions.\n\n**2**domains\n\n**3**senders\n\n**3**senders / domain\n\n**3,000**recipient-emails / monthly cycle\n\n**250**active delivery jobs\n\nAlso enforced on Free: 30 recipient-emails per rolling minute, 300 per hour, and 300 per rolling 24 hours.\n\nPricing v1\n\n## Free and Custom.\n\nExact USD monthly pricing. Taxes may be additional where applicable.\n\nFREE\n\n### $0 / month\n\nCritical and transactional REST API email: 3,000 recipient-emails per monthly cycle, 2 domains, 3 senders total and per domain, one sending key, 250 active deliveries, and 14-day history. Broadcast is disabled.\n\nCUSTOM\n\n### From $10 / month\n\nChoose 10,000 to 2,500,000 recipient-emails and capacity for up to 10–1,000 managed domains. Hard Cap is the only exhaustion mode. Permission-based broadcast requires separate manual approval.\n\n[Build and review exact pricing](https://docs.tenvio.email/plans/)\n\nControlled onboarding\n\n## A focused product email surface.\n\n### Available\n\n-   Critical and transactional REST Email API\n-   Multiple domains and senders\n-   BCC input with address-private history\n-   Approved Custom permission-based broadcast\n-   Free and Custom Hard Cap plans\n\n### Policy boundary\n\n-   Explicit recipient permission\n-   Documented audience source\n-   No cold outreach\n-   No purchased lists\n\nFAQ\n\n## The infrastructure, without the ambiguity.\n\n**What is Tenvio?**\n\nTenvio is product email infrastructure for critical, transactional, and separately approved permission-based broadcast traffic.\n\n**Can one account use multiple domains and senders?**\n\nYes. The Free plan supports 2 domains and 3 senders across the account, with up to 3 senders on one domain.\n\n**Does “accepted” mean delivered to the inbox?**\n\nNo. It means the recipient mail server accepted the message. The receiving system controls filtering and inbox placement.\n\n**How is broadcast enabled?**\n\nA paid Custom plan is necessary but not sufficient. Tenvio separately reviews permission and risk controls before an operator approves broadcast capability. Payment never grants approval.\n\n**Can I use a purchased list or send cold outreach?**\n\nNo. Both are prohibited. Broadcast recipients require a documented permission basis and audience source.\n\nRequest access\n\n## Tell us what your product needs to send.\n\nTenvio is onboarding SaaS products and platforms during controlled onboarding. Share your domain model, transactional use case, and expected volume.\n\n**Keep secrets out of this form.**Do not include API keys, passwords, recipient lists, or message payloads.\n",
  "fullPageMarkdown": "Tenvio - Transactional Email API for SaaS Platforms         [Skip to content](https://tenvio.email/#main)\n\n[![](https://tenvio.email/brand-mark.png)Tenvio](https://tenvio.email/)\n\nTransactional email infrastructure# Transactional email infrastructure for SaaS products and platforms.\n\nSend product email from your own domains—or organize customer-owned domains and senders under one account—with a focused REST API, explicit DNS readiness, durable queues, retries, and delivery history.\n\n[Request access →](https://tenvio.email/?topic=access#request-access)[Read the docs](https://docs.tenvio.email/)\n\nControlled onboarding · Critical, transactional, and approved permission-based traffic.\n\nSend API LivePlatform Controlled onboarding\n\n**POST** /v1/emails202 Accepted\n\n{\n  \"from\": \"[email protected]\",\n  \"to\": \\[\"[email protected]\"\\],\n  \"type\": \"critical\",\n  \"subject\": \"New sign-in detected\",\n  \"content\": { \"plain\": \"Review this activity.\" }\n}\n\nem\\_7kR4…queueddurably accepted\n\nPlatform resource model**Live · controlled onboarding**\n\nA\n\nACCOUNT**Acme Platform**\n\nDOMAIN · READY**acme.app**\n\nsecurity@billing@\n\nDOMAIN · VERIFYING**customer-one.com**\n\nnotifications@\n\nAutomate domains, DNS readiness, senders, account details, and usage with separate scoped management keys.\n\nOne infrastructure layer## Two ways to build on Tenvio.\n\nUse the same account-level model whether email belongs to your own product or to the businesses your platform serves.\n\n01\n\n### For your own product\n\nOperate multiple product domains and sender identities for authentication, billing, security, and workflow notifications.\n\nyour appdomainssenders\n\n02\n\n### For your platform\n\nProvision customer-owned domains and senders programmatically with scoped Management API credentials and stable external IDs.\n\nyour platformcustomer domainssenders\n\nThe SMTP problem## A successful API call is only the start.\n\nTransactional mail crosses DNS, queues, retries, transport policy, and recipient infrastructure. Treating that path as a black box leaves product teams guessing when users are waiting.\n\n**Before**Request accepted?\n\n**With Tenvio**queuedsendingaccepted\n\nExplicit state, SMTP outcomes, safe diagnostics, and timestamps—without claiming inbox placement.\n\nDomains are first-class## One account. Multiple sending identities.\n\nAdd domains independently, follow the exact DNS records each one needs, and attach multiple senders to the right domain. A sender’s effective state follows its own configuration and its domain’s readiness.\n\n-   2 domains on the Free plan\n-   3 senders per account\n-   Up to 3 senders per domain\n-   Independent domain and sender state\n\nDOMAINS**2 of 2 used**\n\nAdd domain\n\nA\n\n**acme.app**3 senders · checked 2 min ago\n\nReady\n\nC\n\n**customer.example**1 sender · DNS action required\n\nVerifying\n\nDNS READINESS · CUSTOMER.EXAMPLE**2 of 3 checks passing**\n\nOwnership`_tenvio-verification`**Passed**\n\nDKIM`tenvio1._domainkey`**Pending**\n\nDMARC`_dmarc`**Passed**\n\nACCOUNT**Your SaaS platform**shared quota + scoped keys\n\nDOMAIN**customer-a.com**ready\n\nbilling@alerts@\n\nDOMAIN**customer-b.io**verifying\n\nnotifications@\n\nFor platforms## A resource model built beyond one domain.\n\nThe multi-domain, multi-sender foundation is live. It can represent domains your company owns or domains your customers own without legacy single-domain branches.\n\nManagement API**Live · controlled onboarding**\n\nCreate separate `mg_live_` keys with exact scopes for account and usage reads, plus domain and sender operations. DNS actions use the domain scopes. Sending remains isolated behind `tv_live_` keys.\n\n[Read the Management API guide →](https://docs.tenvio.email/management/)\n\nDirect delivery## Your application to the recipient MX.\n\nTenvio operates the delivery path instead of forwarding sends to another email API provider.\n\n01**Your application**Authenticated API request\n\n02**Tenvio queue**Durable intake + idempotency\n\n03**Delivery engine**Policy + retries\n\n04**Recipient MX**SMTP outcome\n\nA deliberate boundary## Product email with explicit consent.\n\nCritical and transactional messages are available to every plan. Permission-based broadcast requires a paid Custom plan and separate manual approval.\n\n### Available\n\n-   Verification and authentication\n-   Security and account alerts\n-   Receipts and order updates\n-   Approved permission-based broadcast\n\n### Prohibited\n\n-   Cold outreach\n-   Purchased recipient lists\n-   Traffic without documented consent\n\nDelivery lifecycle## Every state means something precise.\n\n**queued**\n\nDurably accepted for delivery.\n\n**sending**\n\nAn attempt is in progress.\n\n**deferred**\n\nA temporary failure will retry.\n\n**accepted**\n\nThe recipient SMTP server accepted it.\n\n**bounced**\n\nThe recipient server rejected it permanently.\n\n**failed**\n\nDelivery ended without acceptance.\n\nAccepted does not guarantee inbox placement. The receiving system controls filtering and final presentation.\n\nDeveloper API## One explicit send contract.\n\nCreate an API key, keep it server-side, and send through the live REST endpoint. Every logical email requires an idempotency key so retries do not create duplicate messages.\n\n**POST**Enqueue an email\n\n**GET**List email history\n\n**GET**Inspect email detail\n\n[Read the complete API reference →](https://docs.tenvio.email/)\n\nSend a transactional emailCopy\n\n```\ncurl -X POST https://api.tenvio.email/v1/emails \\\n  -H \"Authorization: Bearer YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Idempotency-Key: 7f4d9b98-63a8-4c43-a958-41d641fe2fd2\" \\\n  -d '{\n    \"from\": \"[email protected]\",\n    \"to\": [\"[email protected]\"],\n    \"cc\": [],\n    \"bcc\": [],\n    \"type\": \"transactional\",\n    \"subject\": \"Your account is ready\",\n    \"content\": { \"plain\": \"You can now sign in.\" }\n  }'\n```\n\nScale with guardrails## Clear limits. Account-level control.\n\nFree includes exact recipient-email quotas and safety limits. Purchased Custom capacity remains subject to abuse, reputation, and infrastructure safety restrictions.\n\n**2**domains\n\n**3**senders\n\n**3**senders / domain\n\n**3,000**recipient-emails / monthly cycle\n\n**250**active delivery jobs\n\nAlso enforced on Free: 30 recipient-emails per rolling minute, 300 per hour, and 300 per rolling 24 hours.\n\nPricing v1## Free and Custom.\n\nExact USD monthly pricing. Taxes may be additional where applicable.\n\nFREE\n\n### $0 / month\n\nCritical and transactional REST API email: 3,000 recipient-emails per monthly cycle, 2 domains, 3 senders total and per domain, one sending key, 250 active deliveries, and 14-day history. Broadcast is disabled.\n\nCUSTOM\n\n### From $10 / month\n\nChoose 10,000 to 2,500,000 recipient-emails and capacity for up to 10–1,000 managed domains. Hard Cap is the only exhaustion mode. Permission-based broadcast requires separate manual approval.\n\n[Build and review exact pricing →](https://docs.tenvio.email/plans/)\n\nControlled onboarding## A focused product email surface.\n\n### Available\n\n-   Critical and transactional REST Email API\n-   Multiple domains and senders\n-   BCC input with address-private history\n-   Approved Custom permission-based broadcast\n-   Free and Custom Hard Cap plans\n\n### Policy boundary\n\n-   Explicit recipient permission\n-   Documented audience source\n-   No cold outreach\n-   No purchased lists\n\nFAQ## The infrastructure, without the ambiguity.\n\n**What is Tenvio?**\n\nTenvio is product email infrastructure for critical, transactional, and separately approved permission-based broadcast traffic.\n\n**Can one account use multiple domains and senders?**\n\nYes. The Free plan supports 2 domains and 3 senders across the account, with up to 3 senders on one domain.\n\n**Does “accepted” mean delivered to the inbox?**\n\nNo. It means the recipient mail server accepted the message. The receiving system controls filtering and inbox placement.\n\n**How is broadcast enabled?**\n\nA paid Custom plan is necessary but not sufficient. Tenvio separately reviews permission and risk controls before an operator approves broadcast capability. Payment never grants approval.\n\n**Can I use a purchased list or send cold outreach?**\n\nNo. Both are prohibited. Broadcast recipients require a documented permission basis and audience source.\n\nRequest access## Tell us what your product needs to send.\n\nTenvio is onboarding SaaS products and platforms during controlled onboarding. Share your domain model, transactional use case, and expected volume.\n\n**Keep secrets out of this form.**Do not include API keys, passwords, recipient lists, or message payloads.\n\nName\n\nWork email\n\nCompany or product\n\nWebsite\n\nUse caseSelect oneEmail for our own productEmail for a SaaS platformBothReport abuseSomething else\n\nMonthly volume OptionalNot sure yetUnder 10,00010,000–100,000100,000–1 millionMore than 1 million\n\nWhat are you building?Describe the transactional messages and how domains belong to your product or customers.\n\nLeave this field empty\n\nSend request →\n",
  "markdownStats": {
    "images": 0,
    "links": 3,
    "tables": 0,
    "codeBlocks": 1,
    "headings": 22
  },
  "tokens": {
    "htmlTokens": 6649,
    "markdownTokens": 1738,
    "reduction": 4911,
    "reductionPercent": 74
  },
  "score": {
    "score": 92,
    "grade": "A",
    "rubricVersion": 3,
    "dimensions": {
      "accessibility": {
        "score": 100,
        "weight": 30,
        "grade": "A",
        "checks": {
          "content_without_js": {
            "score": 100,
            "weight": 55,
            "evidence": "proven",
            "details": "Content available without JavaScript"
          },
          "fast_content_position": {
            "score": 100,
            "weight": 25,
            "evidence": "plausible",
            "details": "Main content starts at 18% of HTML"
          },
          "reasonable_page_size": {
            "score": 100,
            "weight": 20,
            "evidence": "plausible",
            "details": "Page size: 26KB"
          }
        }
      },
      "aiDiscoverability": {
        "score": 82,
        "weight": 25,
        "grade": "B",
        "checks": {
          "robots_allows_ai_bots": {
            "score": 100,
            "weight": 35,
            "evidence": "proven",
            "details": "All major AI search bots allowed"
          },
          "supports_markdown_negotiation": {
            "score": 60,
            "weight": 20,
            "evidence": "plausible",
            "details": "Application level — .md URL (https://tenvio.email/index.md), <link> tag",
            "mechanisms": {
              "negotiation": false,
              "mdUrl": true,
              "linkTag": true,
              "linkHeader": false
            }
          },
          "has_sitemap": {
            "score": 100,
            "weight": 15,
            "evidence": "plausible",
            "details": "Sitemap found"
          },
          "has_robots_txt": {
            "score": 100,
            "weight": 10,
            "evidence": "plausible",
            "details": "robots.txt exists"
          },
          "has_llms_txt": {
            "score": 100,
            "weight": 10,
            "evidence": "speculative",
            "details": "llms.txt exists and is valid"
          },
          "has_content_signals": {
            "score": 0,
            "weight": 10,
            "evidence": "speculative",
            "details": "No Content-Signal found (robots.txt or HTTP headers)",
            "mechanisms": {
              "robotsTxt": false,
              "httpHeader": false,
              "policy": false
            }
          }
        }
      },
      "structuredData": {
        "score": 100,
        "weight": 20,
        "grade": "A",
        "checks": {
          "has_schema_org": {
            "score": 100,
            "weight": 35,
            "evidence": "proven",
            "details": "JSON-LD found: Organization, WebSite, SoftwareApplication, FAQPage"
          },
          "has_open_graph": {
            "score": 100,
            "weight": 20,
            "evidence": "plausible",
            "details": "All OG tags present"
          },
          "has_meta_description": {
            "score": 100,
            "weight": 20,
            "evidence": "plausible",
            "details": "Meta description: 164 chars"
          },
          "has_canonical_url": {
            "score": 100,
            "weight": 15,
            "evidence": "plausible",
            "details": "Canonical URL present"
          },
          "has_lang_attribute": {
            "score": 100,
            "weight": 10,
            "evidence": "plausible",
            "details": "lang=\"en\""
          }
        }
      },
      "semanticHtml": {
        "score": 89,
        "weight": 15,
        "grade": "B",
        "checks": {
          "proper_heading_hierarchy": {
            "score": 100,
            "weight": 30,
            "evidence": "plausible",
            "details": "Clean heading hierarchy"
          },
          "uses_article_or_main": {
            "score": 100,
            "weight": 25,
            "evidence": "plausible",
            "details": "Has both <article> and <main>"
          },
          "semantic_elements": {
            "score": 46,
            "weight": 20,
            "evidence": "plausible",
            "details": "22 semantic elements, 138 divs (ratio: 14%)"
          },
          "meaningful_alt_texts": {
            "score": 100,
            "weight": 15,
            "evidence": "plausible",
            "details": "No informative images (2 decorative)"
          },
          "low_div_nesting": {
            "score": 100,
            "weight": 10,
            "evidence": "speculative",
            "details": "Avg div depth: 1.9, max: 6"
          }
        }
      },
      "contentEfficiency": {
        "score": 86,
        "weight": 10,
        "grade": "B",
        "checks": {
          "token_reduction_ratio": {
            "score": 80,
            "weight": 40,
            "evidence": "speculative",
            "details": "74% token reduction (HTML→Markdown)"
          },
          "content_to_noise_ratio": {
            "score": 80,
            "weight": 30,
            "evidence": "speculative",
            "details": "Content ratio: 27.8% (7264 content chars / 26149 HTML bytes)"
          },
          "reasonable_page_weight": {
            "score": 100,
            "weight": 20,
            "evidence": "speculative",
            "details": "HTML size: 26KB"
          },
          "minimal_inline_styles": {
            "score": 100,
            "weight": 10,
            "evidence": "speculative",
            "details": "0/518 elements with inline styles (0.0%)"
          }
        }
      }
    }
  },
  "recommendations": [
    {
      "id": "add_content_signals",
      "priority": "high",
      "category": "aiDiscoverability",
      "titleKey": "rec.add_content_signals.title",
      "descriptionKey": "rec.add_content_signals.description",
      "howToKey": "rec.add_content_signals.howto",
      "howToStepKeys": null,
      "effort": "quick-win",
      "estimatedImpact": 2.5,
      "maxImpact": 2.5,
      "evidence": "speculative",
      "checkScore": 0,
      "checkDetails": "No Content-Signal found (robots.txt or HTTP headers)"
    },
    {
      "id": "add_semantic_elements",
      "priority": "medium",
      "category": "semanticHtml",
      "titleKey": "rec.add_semantic_elements.title",
      "descriptionKey": "rec.add_semantic_elements.description",
      "howToKey": "rec.add_semantic_elements.howto",
      "howToStepKeys": null,
      "effort": "moderate",
      "estimatedImpact": 1.6,
      "maxImpact": 3,
      "evidence": "plausible",
      "checkScore": 46,
      "checkDetails": "22 semantic elements, 138 divs (ratio: 14%)"
    }
  ],
  "llmsTxtPreview": "# Tenvio\n\n> Transactional email infrastructure for SaaS products and platforms, with multiple domains, multiple senders, DNS readiness, queues, retries, and delivery telemetry.\n\n## Main\n- [Tenvio - Transactional Email API for SaaS Platforms](https://tenvio.email): Transactional email infrastructure for SaaS products and platforms, with multiple domains, multiple senders, DNS readin…\n- [Tenvio](https://tenvio.email/)\n- [Request access](https://tenvio.email/?topic=access)\n- [Acceptable Use](https://tenvio.email/acceptable-use.html)\n- [Report abuse](https://tenvio.email/abuse.html)\n\n## Legal\n- [Privacy](https://tenvio.email/privacy.html)\n- [Terms](https://tenvio.email/terms.html)\n\n",
  "llmsTxtExisting": "# Tenvio\n\n> Tenvio is server-side email infrastructure for applications that send critical and transactional product email through a REST API, with multi-domain account management.\n\nThe canonical technical source is docs.tenvio.email. Prefer its OpenAPI contract for exact request and response schemas.\n\n## Product\n\n- [Product overview](https://tenvio.email/index.md)\n- [Acceptable use](https://tenvio.email/acceptable-use.md)\n- [Privacy](https://tenvio.email/privacy.md)\n- [Terms](https://tenvio.email/terms.md)\n- [Abuse](https://tenvio.email/abuse.md)\n\n## Developer resources\n\n- [AI-readable documentation index](https://docs.tenvio.email/llms.txt)\n- [Full technical documentation](https://docs.tenvio.email/llms-full.txt)\n- [Getting started](https://docs.tenvio.email/getting-started/index.md)\n- [Sending API](https://docs.tenvio.email/sending/index.md)\n- [Plans and limits](https://docs.tenvio.email/plans/index.md)\n- [OpenAPI YAML](https://docs.tenvio.email/openapi.yaml)\n- [OpenAPI JSON](https://docs.tenvio.email/openapi.json)\n\n## Complete product context\n\n- [Full product context](https://tenvio.email/llms-full.txt)",
  "emergingProtocols": {
    "oauthProtectedResource": {
      "exists": false,
      "url": "https://tenvio.email/.well-known/oauth-protected-resource"
    },
    "oauthDiscovery": {
      "exists": false,
      "url": "https://tenvio.email/.well-known/oauth-authorization-server"
    },
    "mcpServerCard": {
      "exists": false,
      "url": "https://tenvio.email/.well-known/mcp/server-card.json",
      "draft": true
    },
    "a2aAgentCard": {
      "exists": false,
      "url": "https://tenvio.email/.well-known/agent-card.json"
    },
    "apiCatalog": {
      "exists": false,
      "url": "https://tenvio.email/.well-known/api-catalog"
    },
    "agentSkills": {
      "exists": false,
      "url": "https://tenvio.email/.well-known/agent-skills/index.json",
      "draft": true
    },
    "count": 0,
    "total": 6
  },
  "botAccess": {
    "probed": true,
    "bot": "OAI-SearchBot",
    "controlStatus": 200,
    "botStatus": 200,
    "discriminates": false,
    "refusedAsBot": false,
    "edge": null,
    "verifiable": false,
    "detail": "This origin answers OAI-SearchBot exactly as it answers any other client (200). No edge-level filtering of AI crawlers observed."
  },
  "snippets": [
    {
      "id": "add_content_signals",
      "title": "Add Content-Signal directives",
      "description": "Content-Signal tells AI agents how they may use your content. The canonical location is robots.txt, but you can also expose it as an HTTP header from any stack.",
      "language": "txt",
      "code": "User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no",
      "filename": "/robots.txt",
      "stacks": [
        {
          "id": "robots",
          "label": "robots.txt",
          "language": "txt",
          "filename": "/robots.txt",
          "code": "User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no"
        },
        {
          "id": "nginx",
          "label": "Nginx",
          "language": "nginx",
          "filename": "server block",
          "code": "# Inside your server { } block:\nadd_header Content-Signal \"search=yes, ai-input=yes, ai-train=no\" always;"
        },
        {
          "id": "apache",
          "label": "Apache",
          "language": "apache",
          "filename": ".htaccess",
          "code": "# In .htaccess (or VirtualHost):\nHeader set Content-Signal \"search=yes, ai-input=yes, ai-train=no\""
        },
        {
          "id": "wordpress",
          "label": "WordPress",
          "language": "php",
          "filename": "functions.php",
          "code": "<?php\n// In your theme's functions.php or a small mu-plugin\nadd_action('send_headers', function () {\n    header('Content-Signal: search=yes, ai-input=yes, ai-train=no');\n});\n\n// Optional: also append the directive to the dynamic robots.txt\nadd_filter('robots_txt', function ($output) {\n    return $output . \"\\nContent-Signal: search=yes, ai-input=yes, ai-train=no\\n\";\n}, 10, 1);"
        },
        {
          "id": "nextjs",
          "label": "Next.js",
          "language": "typescript",
          "filename": "middleware.ts",
          "code": "// middleware.ts (Next.js 13+ App Router or Pages Router)\nimport { NextResponse } from 'next/server';\nexport function middleware() {\n  const res = NextResponse.next();\n  res.headers.set(\n    'Content-Signal',\n    'search=yes, ai-input=yes, ai-train=no'\n  );\n  return res;\n}\nexport const config = { matcher: '/:path*' };"
        },
        {
          "id": "cloudflare",
          "label": "Cloudflare Workers",
          "language": "javascript",
          "filename": "worker.js",
          "code": "// Cloudflare Worker that proxies your origin and adds the header\nexport default {\n  async fetch(request, env, ctx) {\n    const res = await fetch(request);\n    const newRes = new Response(res.body, res);\n    newRes.headers.set(\n      'Content-Signal',\n      'search=yes, ai-input=yes, ai-train=no'\n    );\n    return newRes;\n  },\n};"
        },
        {
          "id": "express",
          "label": "Express / Fastify",
          "language": "javascript",
          "filename": "server.js",
          "code": "// Express\napp.use((req, res, next) => {\n  res.setHeader('Content-Signal', 'search=yes, ai-input=yes, ai-train=no');\n  next();\n});\n\n// Fastify\nfastify.addHook('onSend', (request, reply, payload, done) => {\n  reply.header('Content-Signal', 'search=yes, ai-input=yes, ai-train=no');\n  done();\n});"
        }
      ]
    }
  ]
}

Utilisez notre API pour obtenir ceci de manière programmatique (bientôt disponible)

Ce JSON est à usage interne — contrairement au Markdown et au llms.txt, il n’est pas destiné à être téléversé sur votre site. Conservez-le comme référence pour suivre l’évolution de votre score, partagez-le avec votre équipe de développement ou intégrez-le dans votre pipeline CI/CD.

Partagez vos résultats

Ou demandez à une IA de vous aider à l'améliorer

Envie d'un deuxième avis ?

Cloudflare propose aussi un scanner gratuit, et il pose une question différente. Il note ce que votre site publie pour que les agents l'appellent : MCP server cards, Agent Skills, catalogues d'API, enregistrements DNS. Nous notons si un agent peut atteindre votre contenu, le lire et le comprendre. Un site peut réussir l'un et échouer l'autre : attendez-vous à deux chiffres différents, ce sont les réponses à deux questions différentes, et les deux méritent d'être connues.

Analyser tenvio.email avec Cloudflare

Intégrez votre badge

Ajoutez ce badge à votre site. Il se met à jour automatiquement lorsque votre score de préparation à l’IA change.

AgentReady.md score for tenvio.email
Script Recommandé
<script src="https://agentready.md/badge.js" data-id="459f1d85-f40f-46e3-8b96-c867c5b15750" data-domain="tenvio.email"></script>
Markdown
[![AgentReady.md score for tenvio.email](https://agentready.md/badge/tenvio.email.svg)](https://agentready.md/fr/r/tenvio.email)

Bientôt : Analyse de domaine complet

Explorez l’ensemble de votre domaine, générez un llms.txt et surveillez votre score de préparation IA dans le temps. Rejoignez la liste d’attente pour être informé.

Vous êtes sur la liste ! Nous vous préviendrons lors du lancement.