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.
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
# 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.
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.