Novu · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Novu Domains API

16 actions 16 updates phrasing extends openapi/novu-domains-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Novu's API. It is a proposal applied on top of the contract, not a document Novu publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 16

$.info
$.paths['/v1/domains'].get
$.paths['/v1/domains'].post
$.paths['/v1/domains/{domain}'].get
$.paths['/v1/domains/{domain}'].delete
$.paths['/v1/domains/{domain}'].patch
$.paths['/v1/domains/{domain}/verify'].post
$.paths['/v1/domains/{domain}/diagnose'].post
$.paths['/v1/domains/{domain}/routes'].get
$.paths['/v1/domains/{domain}/routes'].post
$.paths['/v1/domains/{domain}/routes/{address}'].get
$.paths['/v1/domains/{domain}/routes/{address}'].delete
$.paths['/v1/domains/{domain}/routes/{address}'].patch
$.paths['/v1/domains/{domain}/routes/{address}/test'].post
$.paths['/v1/domains/{domain}/auto-configure'].get
$.paths['/v1/domains/{domain}/auto-configure/start'].post

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Novu Domains API
  version: 1.0.0
extends: openapi/novu-domains-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-09-26'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 15
- target: $.paths['/v1/domains'].get
  update:
    x-apievangelist-phrasing:
      intent: List inbound-email domains
      effect: read
      questions:
      - Which inbound email domains are registered in my current environment?
      - Can I filter my inbound domains by part of the domain name?
      - How do I page through a long list of receiving domains in Novu?
      instructions:
      - text: List all inbound-email domains in this environment.
      - text: Find my inbound domains whose name contains {name}.
        slots:
          name: query.name
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/domains'].post
  update:
    x-apievangelist-phrasing:
      intent: Register an inbound-email domain
      effect: write
      questions:
      - How do I set up a new domain so it can receive inbound email?
      - What DNS records do I get back when I register a receiving domain?
      instructions:
      - text: Register {name} as a new inbound-email domain.
        slots:
          name: requestBody.name
      - text: Add receiving domain {name} with metadata {data} and give me the DNS records to add.
        slots:
          name: requestBody.name
          data: requestBody.data
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/domains/{domain}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a domain's configuration and DNS records
      effect: read
      questions:
      - How can I see the configuration and required DNS records for one of my domains?
      - Does looking up a domain re-check its DNS, or just show the stored status?
      instructions:
      - text: Show me the configuration for domain {domain}.
        slots:
          domain: path.domain
      - text: List the DNS records {domain} needs to have in place.
        slots:
          domain: path.domain
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/domains/{domain}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an inbound-email domain
      effect: destructive
      questions:
      - What happens to a domain's routes when I delete the domain?
      - How do I stop a domain from receiving inbound mail altogether?
      instructions:
      - text: Delete domain {domain} and all of its routes.
        slots:
          domain: path.domain
      - text: Remove {domain} so its inbound mail stops being processed.
        slots:
          domain: path.domain
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/domains/{domain}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update a domain's metadata
      effect: write
      questions:
      - How do I change the metadata attached to an inbound domain?
      - If I send new data for a domain, does it merge or replace the old metadata?
      instructions:
      - text: Replace the metadata on domain {domain} with {data}.
        slots:
          domain: path.domain
          data: requestBody.data
      - text: Update the optional fields on domain {domain}.
        slots:
          domain: path.domain
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/domains/{domain}/verify'].post
  update:
    x-apievangelist-phrasing:
      intent: Verify a domain's MX records
      effect: write
      questions:
      - I've added the MX records; how do I get Novu to re-check and verify my domain?
      - Can I refresh a domain's verification status from live DNS?
      instructions:
      - text: Verify domain {domain} against live DNS now.
        slots:
          domain: path.domain
      - text: Re-check the MX record status for {domain} and update its verification.
        slots:
          domain: path.domain
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/domains/{domain}/diagnose'].post
  update:
    x-apievangelist-phrasing:
      intent: Diagnose inbound DNS problems
      effect: read
      questions:
      - Why isn't my domain receiving inbound email?
      - Can I check whether my domain's mail host is on a DNS blocklist or has an apex CNAME collision?
      instructions:
      - text: Run inbound DNS diagnostics for {domain} and tell me how to fix any issues.
        slots:
          domain: path.domain
      - text: Troubleshoot the MX setup on {domain}.
        slots:
          domain: path.domain
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/domains/{domain}/routes'].get
  update:
    x-apievangelist-phrasing:
      intent: List a domain's routes
      effect: read
      questions:
      - Which addresses on my domain have inbound routes set up?
      - Can I find every route on a domain that points to a particular agent?
      instructions:
      - text: List all routes on domain {domain}.
        slots:
          domain: path.domain
      - text: Show the routes on {domain} that deliver to agent {agentId}.
        slots:
          domain: path.domain
          agentId: query.agentId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/domains/{domain}/routes'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an inbound mail route
      effect: write
      questions:
      - How do I forward mail sent to an address on my domain to a webhook?
      - Can I route inbound email for one address to an agent instead of a webhook?
      - Is it possible to have two routes for the same address on a domain?
      instructions:
      - text: Create a {type} route for {address}@{domain}.
        slots:
          type: requestBody.type
          address: requestBody.address
          domain: path.domain
      - text: Route mail sent to {address} on {domain} to agent {agentId}.
        slots:
          address: requestBody.address
          domain: path.domain
          agentId: requestBody.agentId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/domains/{domain}/routes/{address}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the route for an address
      effect: read
      questions:
      - Where does mail sent to a specific address on my domain get delivered?
      - How do I look up the wildcard catch-all route for a domain?
      instructions:
      - text: Show the route bound to {address}@{domain}.
        slots:
          address: path.address
          domain: path.domain
      - text: Fetch the catch-all route on {domain} using address {address}.
        slots:
          domain: path.domain
          address: path.address
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/domains/{domain}/routes/{address}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an inbound mail route
      effect: destructive
      questions:
      - How do I stop processing inbound mail for one address without deleting the domain?
      - Can I remove a single route from my receiving domain?
      instructions:
      - text: Delete the route for {address}@{domain}.
        slots:
          address: path.address
          domain: path.domain
      - text: Stop handling inbound mail to {address} on {domain}.
        slots:
          address: path.address
          domain: path.domain
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/domains/{domain}/routes/{address}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Change where a route delivers
      effect: write
      questions:
      - How do I switch an existing address route from a webhook to an agent?
      - Can I rename the address on a route, or do I have to recreate it?
      instructions:
      - text: Point the existing route for {address}@{domain} at agent {agentId}.
        slots:
          address: path.address
          domain: path.domain
          agentId: requestBody.agentId
      - text: Change the route type for {address} on {domain} to {type}.
        slots:
          address: path.address
          domain: path.domain
          type: requestBody.type
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/domains/{domain}/routes/{address}/test'].post
  update:
    x-apievangelist-phrasing:
      intent: Send a test email through a route
      effect: write
      questions:
      - How can I test an inbound route with a fake email before going live?
      - Can I preview the payload a route would deliver without actually sending it?
      instructions:
      - text: Send a test email from {from} with subject {subject} through the route for {address}@{domain}.
        slots:
          from: requestBody.from
          subject: requestBody.subject
          address: path.address
          domain: path.domain
      - text: Dry-run the route for {address} on {domain} with subject {subject} from {from}, setting dryRun to {dryRun}.
        slots:
          address: path.address
          domain: path.domain
          subject: requestBody.subject
          from: requestBody.from
          dryRun: requestBody.dryRun
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/domains/{domain}/auto-configure'].get
  update:
    x-apievangelist-phrasing:
      intent: Check if DNS auto-configuration is available
      effect: read
      questions:
      - Can Novu set up my domain's DNS records automatically through Domain Connect?
      - If automatic DNS setup isn't supported, which records do I have to add by hand?
      instructions:
      - text: Check whether DNS auto-configuration is available for {domain}.
        slots:
          domain: path.domain
      - text: Tell me which DNS records I must add manually for {domain} if Domain Connect is unavailable.
        slots:
          domain: path.domain
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/domains/{domain}/auto-configure/start'].post
  update:
    x-apievangelist-phrasing:
      intent: Start DNS auto-configuration
      effect: write
      questions:
      - How do I get a link that applies Novu's DNS records at my DNS provider for me?
      - Can I choose where my DNS provider sends me back after auto-configuration?
      instructions:
      - text: Start DNS auto-configuration for {domain}.
        slots:
          domain: path.domain
      - text: Generate the Domain Connect redirect for {domain} and return me to {redirectUri} afterwards.
        slots:
          domain: path.domain
          redirectUri: requestBody.redirectUri
      method: generated
      generated: '2026-09-26'

Work with this as data

Every overlay here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/novu-domains-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.