Novu · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Novu Topics API
12 actions
12 updates
phrasing
extends
openapi/novu-topics-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 12
$.info
$.paths['/v1/topics/{topicKey}/subscribers/{externalSubscriberId}'].get
$.paths['/v2/topics'].get
$.paths['/v2/topics'].post
$.paths['/v2/topics/{topicKey}'].get
$.paths['/v2/topics/{topicKey}'].delete
$.paths['/v2/topics/{topicKey}'].patch
$.paths['/v2/topics/{topicKey}/subscriptions'].get
$.paths['/v2/topics/{topicKey}/subscriptions'].post
$.paths['/v2/topics/{topicKey}/subscriptions'].delete
$.paths['/v2/topics/{topicKey}/subscriptions/{identifier}'].get
$.paths['/v2/topics/{topicKey}/subscriptions/{identifier}'].patch
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 Topics API
version: 1.0.0
extends: openapi/novu-topics-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: 11
- target: $.paths['/v1/topics/{topicKey}/subscribers/{externalSubscriberId}'].get
update:
x-apievangelist-phrasing:
intent: Check if a subscriber is in a topic
effect: read
questions:
- Is a particular subscriber part of a given topic?
- How can I confirm someone is already subscribed to a topic before adding them?
instructions:
- text: Check whether subscriber {externalSubscriberId} belongs to topic {topicKey}.
slots:
externalSubscriberId: path.externalSubscriberId
topicKey: path.topicKey
- text: Confirm {externalSubscriberId} is a member of the {topicKey} topic.
slots:
externalSubscriberId: path.externalSubscriberId
topicKey: path.topicKey
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/topics'].get
update:
x-apievangelist-phrasing:
intent: List topics
effect: read
questions:
- What topics have I set up for group notifications?
- Can I filter my topics by key or by name?
instructions:
- text: List all topics.
- text: Find topics named {name}.
slots:
name: query.name
- text: List topics with key {key}.
slots:
key: query.key
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/topics'].post
update:
x-apievangelist-phrasing:
intent: Create or update a topic
effect: write
questions:
- How do I create a topic to notify a group of subscribers together?
- What happens if I create a topic whose key already exists?
instructions:
- text: Create a topic with key {key} and name {name}.
slots:
key: requestBody.key
name: requestBody.name
- text: 'Create topic {key} but fail if it already exists: {failIfExists}.'
slots:
key: requestBody.key
failIfExists: query.failIfExists
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/topics/{topicKey}'].get
update:
x-apievangelist-phrasing:
intent: Get a topic
effect: read
questions:
- How do I look up a topic by its key?
- What name is set on a specific topic?
instructions:
- text: Show me topic {topicKey}.
slots:
topicKey: path.topicKey
- text: Retrieve the details of the {topicKey} topic.
slots:
topicKey: path.topicKey
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/topics/{topicKey}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a topic
effect: destructive
questions:
- What happens to a topic's subscriptions when I delete it?
- Can I permanently remove a topic by its key?
instructions:
- text: Delete topic {topicKey} and all its subscriptions.
slots:
topicKey: path.topicKey
- text: Permanently remove the {topicKey} topic.
slots:
topicKey: path.topicKey
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/topics/{topicKey}'].patch
update:
x-apievangelist-phrasing:
intent: Rename a topic
effect: write
questions:
- How do I change the display name of an existing topic?
- Can I rename a topic without changing its key?
instructions:
- text: Rename topic {topicKey} to {name}.
slots:
topicKey: path.topicKey
name: requestBody.name
- text: Change the name of existing topic {topicKey} to {name}.
slots:
topicKey: path.topicKey
name: requestBody.name
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/topics/{topicKey}/subscriptions'].get
update:
x-apievangelist-phrasing:
intent: List a topic's subscribers
effect: read
questions:
- Who is subscribed to a given topic?
- Can I page through every subscription in a large topic?
instructions:
- text: List the subscriptions for topic {topicKey}.
slots:
topicKey: path.topicKey
- text: Show the subscription for {subscriberId} within topic {topicKey}'s subscriber list.
slots:
subscriberId: query.subscriberId
topicKey: path.topicKey
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/topics/{topicKey}/subscriptions'].post
update:
x-apievangelist-phrasing:
intent: Subscribe subscribers to a topic
effect: write
questions:
- How do I add several subscribers to a topic at once?
- Does subscribing people to a topic that doesn't exist yet create it?
- Can I set preferences for subscribers when adding them to a topic?
instructions:
- text: Subscribe {subscriberIds} to topic {topicKey}.
slots:
subscriberIds: requestBody.subscriberIds
topicKey: path.topicKey
- text: Add {subscriberIds} to topic {topicKey} with preferences {preferences}.
slots:
subscriberIds: requestBody.subscriberIds
topicKey: path.topicKey
preferences: requestBody.preferences
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/topics/{topicKey}/subscriptions'].delete
update:
x-apievangelist-phrasing:
intent: Unsubscribe subscribers from a topic
effect: destructive
questions:
- How do I remove a few subscribers from a topic while keeping the topic?
- Can I unsubscribe multiple people from a topic in one call?
instructions:
- text: Unsubscribe {subscriberIds} from topic {topicKey}.
slots:
subscriberIds: requestBody.subscriberIds
topicKey: path.topicKey
- text: Remove subscriptions {subscriptions} from topic {topicKey}.
slots:
subscriptions: requestBody.subscriptions
topicKey: path.topicKey
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/topics/{topicKey}/subscriptions/{identifier}'].get
update:
x-apievangelist-phrasing:
intent: Get a topic subscription
effect: read
questions:
- How do I look up one subscription in a topic by its identifier?
- What preferences are stored on a specific topic subscription?
instructions:
- text: Show subscription {identifier} in topic {topicKey}.
slots:
identifier: path.identifier
topicKey: path.topicKey
- text: Fetch the preferences on topic {topicKey} subscription {identifier}.
slots:
topicKey: path.topicKey
identifier: path.identifier
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/topics/{topicKey}/subscriptions/{identifier}'].patch
update:
x-apievangelist-phrasing:
intent: Update a topic subscription
effect: write
questions:
- How do I change the preferences on someone's topic subscription?
- Can I rename a single subscription within a topic?
instructions:
- text: Update preferences on subscription {identifier} in topic {topicKey} to {preferences}.
slots:
identifier: path.identifier
topicKey: path.topicKey
preferences: requestBody.preferences
- text: Rename subscription {identifier} of topic {topicKey} to {name}.
slots:
identifier: path.identifier
topicKey: path.topicKey
name: requestBody.name
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-topics-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.