Novu · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Novu Subscribers API
36 actions
36 updates
phrasing
extends
openapi/novu-subscribers-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 36 · first 16 shown; the file carries all of them
$.info
$.paths['/v1/subscribers/bulk'].post
$.paths['/v1/subscribers/{subscriberId}/credentials'].put
$.paths['/v1/subscribers/{subscriberId}/credentials'].patch
$.paths['/v1/subscribers/{subscriberId}/credentials/{providerId}'].delete
$.paths['/v1/subscribers/{subscriberId}/online-status'].patch
$.paths['/v1/subscribers/{subscriberId}/notifications/feed'].get
$.paths['/v1/subscribers/{subscriberId}/notifications/unseen'].get
$.paths['/v1/subscribers/{subscriberId}/messages/mark-as'].post
$.paths['/v1/subscribers/{subscriberId}/messages/mark-all'].post
$.paths['/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}'].post
$.paths['/v2/subscribers'].get
$.paths['/v2/subscribers'].post
$.paths['/v2/subscribers/{subscriberId}'].get
$.paths['/v2/subscribers/{subscriberId}'].delete
$.paths['/v2/subscribers/{subscriberId}'].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 Subscribers API
version: 1.0.0
extends: openapi/novu-subscribers-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: 35
- target: $.paths['/v1/subscribers/bulk'].post
update:
x-apievangelist-phrasing:
intent: Create many subscribers at once
effect: write
questions:
- How do I import a large batch of users as subscribers in one request?
- What's the maximum number of subscribers I can create in a single bulk call?
instructions:
- text: 'Bulk create these subscribers: {subscribers}.'
slots:
subscribers: requestBody.subscribers
- text: 'Import this list of up to 500 users as subscribers: {subscribers}.'
slots:
subscribers: requestBody.subscribers
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/subscribers/{subscriberId}/credentials'].put
update:
x-apievangelist-phrasing:
intent: Replace a subscriber's provider credentials
effect: write
questions:
- How do I overwrite a subscriber's push device tokens with a fresh set?
- Can I replace the Slack webhook credentials stored for a subscriber?
instructions:
- text: Replace subscriber {subscriberId}'s {providerId} credentials with {credentials}.
slots:
subscriberId: path.subscriberId
providerId: requestBody.providerId
credentials: requestBody.credentials
- text: Overwrite the device tokens for {subscriberId} on provider {providerId} with {credentials}.
slots:
subscriberId: path.subscriberId
providerId: requestBody.providerId
credentials: requestBody.credentials
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/subscribers/{subscriberId}/credentials'].patch
update:
x-apievangelist-phrasing:
intent: Add to a subscriber's provider credentials
effect: write
questions:
- Can I append a new FCM device token to a subscriber without dropping the old ones?
- Which call upserts provider credentials instead of replacing them?
instructions:
- text: Append device token credentials {credentials} for {providerId} to subscriber {subscriberId}.
slots:
credentials: requestBody.credentials
providerId: requestBody.providerId
subscriberId: path.subscriberId
- text: Upsert {providerId} credentials {credentials} on subscriber {subscriberId}, keeping existing tokens.
slots:
providerId: requestBody.providerId
credentials: requestBody.credentials
subscriberId: path.subscriberId
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/subscribers/{subscriberId}/credentials/{providerId}'].delete
update:
x-apievangelist-phrasing:
intent: Remove a subscriber's provider credentials
effect: destructive
questions:
- How do I delete the stored push or chat credentials for a subscriber?
- Can I remove one provider's credentials from a subscriber and keep the others?
instructions:
- text: Delete subscriber {subscriberId}'s credentials for provider {providerId}.
slots:
subscriberId: path.subscriberId
providerId: path.providerId
- text: Remove the {providerId} device tokens from subscriber {subscriberId}.
slots:
providerId: path.providerId
subscriberId: path.subscriberId
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/subscribers/{subscriberId}/online-status'].patch
update:
x-apievangelist-phrasing:
intent: Set a subscriber's online status
effect: write
questions:
- Can I mark a subscriber as online or offline?
- Where do I update whether a subscriber is currently online?
instructions:
- text: Set subscriber {subscriberId} online status to {isOnline}.
slots:
subscriberId: path.subscriberId
isOnline: requestBody.isOnline
- text: Mark {subscriberId} as offline by setting isOnline to {isOnline}.
slots:
subscriberId: path.subscriberId
isOnline: requestBody.isOnline
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/subscribers/{subscriberId}/notifications/feed'].get
update:
x-apievangelist-phrasing:
intent: Get a subscriber's inbox feed (v1)
effect: read
questions:
- What does the older page-based inbox feed endpoint return for a subscriber?
- Can I filter the legacy notifications feed by read or seen status and page number?
instructions:
- text: Get page {page} of subscriber {subscriberId}'s legacy inbox feed.
slots:
page: query.page
subscriberId: path.subscriberId
- text: Show the v1 notifications feed for {subscriberId} filtered to read={read}.
slots:
subscriberId: path.subscriberId
read: query.read
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/subscribers/{subscriberId}/notifications/unseen'].get
update:
x-apievangelist-phrasing:
intent: Count a subscriber's unseen notifications
effect: read
questions:
- How many unseen inbox notifications does a subscriber have for the bell badge?
- Is there a quick endpoint just for the unseen count?
instructions:
- text: Get the unseen notification count for subscriber {subscriberId}.
slots:
subscriberId: path.subscriberId
- text: Tell me how many unseen inbox items {subscriberId} has.
slots:
subscriberId: path.subscriberId
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/subscribers/{subscriberId}/messages/mark-as'].post
update:
x-apievangelist-phrasing:
intent: Mark specific inbox messages (v1)
effect: write
questions:
- With the older v1 endpoint, can I mark several message ids as seen, read, unseen or unread at once?
- Which legacy call flips the state of selected messages by message id?
instructions:
- text: Mark messages {messageId} for subscriber {subscriberId} as {markAs}.
slots:
messageId: requestBody.messageId
subscriberId: path.subscriberId
markAs: requestBody.markAs
- text: Using the v1 mark-as call, set message {messageId} of {subscriberId} to {markAs}.
slots:
messageId: requestBody.messageId
subscriberId: path.subscriberId
markAs: requestBody.markAs
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/subscribers/{subscriberId}/messages/mark-all'].post
update:
x-apievangelist-phrasing:
intent: Mark every inbox message in a feed (v1)
effect: write
questions:
- Can I mark all of a subscriber's messages in one feed as seen or unread with the v1 API?
- Which legacy endpoint changes the state of every message for a subscriber?
instructions:
- text: Mark all messages for subscriber {subscriberId} as {markAs}.
slots:
subscriberId: path.subscriberId
markAs: requestBody.markAs
- text: Set every message in feed {feedIdentifier} for {subscriberId} to {markAs}.
slots:
feedIdentifier: requestBody.feedIdentifier
subscriberId: path.subscriberId
markAs: requestBody.markAs
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}'].post
update:
x-apievangelist-phrasing:
intent: Set an inbox message's action status (v1)
effect: write
questions:
- How do I record that a subscriber clicked the primary button on a message using the v1 API?
- Can I set the action status of a message's secondary button to done?
instructions:
- text: Set the {type} action on message {messageId} for subscriber {subscriberId} to {status}.
slots:
type: path.type
messageId: path.messageId
subscriberId: path.subscriberId
status: requestBody.status
- text: Record status {status} for the {type} button of message {messageId}, subscriber {subscriberId}, via the v1 call.
slots:
status: requestBody.status
type: path.type
messageId: path.messageId
subscriberId: path.subscriberId
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers'].get
update:
x-apievangelist-phrasing:
intent: Search subscribers
effect: read
questions:
- How do I find a subscriber by their email address?
- Is subscriber search case sensitive?
- Can I look up subscribers by phone number or name?
instructions:
- text: Search subscribers with email {email}.
slots:
email: query.email
- text: Find subscribers named {name}.
slots:
name: query.name
- text: Look up subscribers by phone {phone}.
slots:
phone: query.phone
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers'].post
update:
x-apievangelist-phrasing:
intent: Create a subscriber
effect: write
questions:
- What do I need to add a new user as a Novu subscriber?
- If the subscriber already exists, will creating it update the record instead?
- Can I make subscriber creation fail when the id is already taken?
instructions:
- text: Create subscriber {subscriberId} with email {email}.
slots:
subscriberId: requestBody.subscriberId
email: requestBody.email
- text: Add a new subscriber {subscriberId} named {firstName} {lastName}.
slots:
subscriberId: requestBody.subscriberId
firstName: requestBody.firstName
lastName: requestBody.lastName
- text: Create subscriber {subscriberId} only if new, with failIfExists {failIfExists}.
slots:
subscriberId: requestBody.subscriberId
failIfExists: query.failIfExists
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers/{subscriberId}'].get
update:
x-apievangelist-phrasing:
intent: Get a subscriber
effect: read
questions:
- How can I pull up a subscriber's profile by their subscriberId?
- What contact details are stored on a particular subscriber?
instructions:
- text: Show me subscriber {subscriberId}.
slots:
subscriberId: path.subscriberId
- text: Fetch the profile of subscriber {subscriberId}.
slots:
subscriberId: path.subscriberId
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers/{subscriberId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a subscriber
effect: destructive
questions:
- What gets removed along with a subscriber when I delete them?
- Can I delete a user and their topic subscriptions in one call?
instructions:
- text: Delete subscriber {subscriberId}.
slots:
subscriberId: path.subscriberId
- text: Remove {subscriberId} along with their messages, preferences and topic subscriptions.
slots:
subscriberId: path.subscriberId
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers/{subscriberId}'].patch
update:
x-apievangelist-phrasing:
intent: Update a subscriber's profile
effect: write
questions:
- How do I change a subscriber's email or phone number?
- Can I update a subscriber's timezone or locale?
instructions:
- text: Update subscriber {subscriberId}'s email to {email}.
slots:
subscriberId: path.subscriberId
email: requestBody.email
- text: Set existing subscriber {subscriberId}'s timezone to {timezone}.
slots:
subscriberId: path.subscriberId
timezone: requestBody.timezone
- text: Change the phone number on {subscriberId} to {phone}.
slots:
subscriberId: path.subscriberId
phone: requestBody.phone
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers/{subscriberId}/preferences'].get
update:
x-apievangelist-phrasing:
intent: Get a subscriber's notification preferences
effect: read
questions:
- Which channels has a subscriber opted out of for each workflow?
- Can I see a subscriber's global and per-workflow preferences together?
instructions:
- text: Show notification preferences for subscriber {subscriberId}.
slots:
subscriberId: path.subscriberId
- text: Get {subscriberId}'s preferences for {criticality} workflows.
slots:
subscriberId: path.subscriberId
criticality: query.criticality
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers/{subscriberId}/preferences'].patch
update:
x-apievangelist-phrasing:
intent: Update a subscriber's preferences
effect: write
questions:
- How do I turn off email for a subscriber on one workflow?
- If I leave out the workflow, does the preference change apply globally?
- Can I set a delivery schedule for when a subscriber receives notifications?
instructions:
- text: Update {subscriberId}'s channel preferences for workflow {workflowId} to {channels}.
slots:
subscriberId: path.subscriberId
workflowId: requestBody.workflowId
channels: requestBody.channels
- text: Set global channel preferences for {subscriberId} to {channels}.
slots:
subscriberId: path.subscriberId
channels: requestBody.channels
- text: Give subscriber {subscriberId} the delivery schedule {schedule}.
slots:
subscriberId: path.subscriberId
schedule: requestBody.schedule
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers/{subscriberId}/preferences/bulk'].patch
update:
x-apievangelist-phrasing:
intent: Update many workflow preferences at once
effect: write
questions:
- Can I change a subscriber's preferences for several workflows in one request?
- How many workflow preferences can I bulk update at a time?
instructions:
- text: Bulk update subscriber {subscriberId}'s workflow preferences to {preferences}.
slots:
subscriberId: path.subscriberId
preferences: requestBody.preferences
- text: 'Apply these per-workflow settings to {subscriberId} in one go: {preferences}.'
slots:
subscriberId: path.subscriberId
preferences: requestBody.preferences
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers/{subscriberId}/subscriptions'].get
update:
x-apievangelist-phrasing:
intent: List a subscriber's topic subscriptions
effect: read
questions:
- Which topics is a given subscriber subscribed to?
- Can I check a subscriber's subscriptions filtered by topic key?
instructions:
- text: List the topics subscriber {subscriberId} belongs to.
slots:
subscriberId: path.subscriberId
- text: Show {subscriberId}'s subscriptions for topic key {key}.
slots:
subscriberId: path.subscriberId
key: query.key
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers/{subscriberId}/notifications'].get
update:
x-apievangelist-phrasing:
intent: List a subscriber's inbox notifications
effect: read
questions:
- What unread notifications does a subscriber have in their inbox?
- Can I filter a subscriber's inbox by archived, snoozed or severity?
- Is there a way to list inbox notifications created within a date range?
instructions:
- text: List inbox notifications for subscriber {subscriberId}.
slots:
subscriberId: path.subscriberId
- text: Show {subscriberId}'s archived inbox notifications where archived is {archived}.
slots:
subscriberId: path.subscriberId
archived: query.archived
- text: List inbox notifications for {subscriberId} created after {createdGte}.
slots:
subscriberId: path.subscriberId
createdGte: query.createdGte
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers/{subscriberId}/notifications/count'].get
update:
x-apievangelist-phrasing:
intent: Count a subscriber's inbox notifications by filter
effect: read
questions:
- Can I count a subscriber's inbox notifications under several different filters at once?
- How many filter criteria can I pass when counting inbox notifications?
instructions:
- text: Count subscriber {subscriberId}'s inbox notifications using filters {filters}.
slots:
subscriberId: path.subscriberId
filters: query.filters
- text: Give me per-filter notification counts for {subscriberId} with {filters}.
slots:
subscriberId: path.subscriberId
filters: query.filters
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers/{subscriberId}/notifications/{notificationId}/read'].patch
update:
x-apievangelist-phrasing:
intent: Mark one inbox notification as read
effect: write
questions:
- How do I mark a single inbox notification as read for a subscriber?
- Can I flag one notification read without touching the rest of the inbox?
instructions:
- text: Mark notification {notificationId} as read for subscriber {subscriberId}.
slots:
notificationId: path.notificationId
subscriberId: path.subscriberId
- text: Set just inbox item {notificationId} of {subscriberId} to read.
slots:
notificationId: path.notificationId
subscriberId: path.subscriberId
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers/{subscriberId}/notifications/{notificationId}/unread'].patch
update:
x-apievangelist-phrasing:
intent: Mark one inbox notification as unread
effect: write
questions:
- Can a subscriber flag a notification they already read as unread again?
- Which call reverts a single inbox notification back to unread?
instructions:
- text: Mark notification {notificationId} as unread for subscriber {subscriberId}.
slots:
notificationId: path.notificationId
subscriberId: path.subscriberId
- text: Flag inbox item {notificationId} of {subscriberId} as unread again.
slots:
notificationId: path.notificationId
subscriberId: path.subscriberId
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers/{subscriberId}/notifications/{notificationId}/archive'].patch
update:
x-apievangelist-phrasing:
intent: Archive one inbox notification
effect: write
questions:
- How do I move one notification into a subscriber's archive?
- Can I archive a single inbox notification by its id?
instructions:
- text: Archive notification {notificationId} for subscriber {subscriberId}.
slots:
notificationId: path.notificationId
subscriberId: path.subscriberId
- text: Move inbox item {notificationId} of {subscriberId} to the archive.
slots:
notificationId: path.notificationId
subscriberId: path.subscriberId
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers/{subscriberId}/notifications/{notificationId}/unarchive'].patch
update:
x-apievangelist-phrasing:
intent: Unarchive one inbox notification
effect: write
questions:
- Can I restore an archived notification back to a subscriber's inbox?
- Which call takes a single notification out of the archive?
instructions:
- text: Unarchive notification {notificationId} for subscriber {subscriberId}.
slots:
notificationId: path.notificationId
subscriberId: path.subscriberId
- text: Bring archived item {notificationId} back into {subscriberId}'s inbox.
slots:
notificationId: path.notificationId
subscriberId: path.subscriberId
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers/{subscriberId}/notifications/{notificationId}/snooze'].patch
update:
x-apievangelist-phrasing:
intent: Snooze an inbox notification
effect: write
questions:
- Can a subscriber snooze a notification until later?
- What time format do I give to snooze an inbox notification until a specific moment?
instructions:
- text: Snooze notification {notificationId} for {subscriberId} until {snoozeUntil}.
slots:
notificationId: path.notificationId
subscriberId: path.subscriberId
snoozeUntil: requestBody.snoozeUntil
- text: Hide inbox item {notificationId} of {subscriberId} until {snoozeUntil}.
slots:
notificationId: path.notificationId
subscriberId: path.subscriberId
snoozeUntil: requestBody.snoozeUntil
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers/{subscriberId}/notifications/{notificationId}/unsnooze'].patch
update:
x-apievangelist-phrasing:
intent: Unsnooze an inbox notification
effect: write
questions:
- How do I bring a snoozed notification back right away?
- Can I cancel the snooze on a single inbox notification?
instructions:
- text: Unsnooze notification {notificationId} for subscriber {subscriberId}.
slots:
notificationId: path.notificationId
subscriberId: path.subscriberId
- text: Cancel the snooze on {subscriberId}'s inbox item {notificationId}.
slots:
subscriberId: path.subscriberId
notificationId: path.notificationId
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers/{subscriberId}/notifications/{notificationId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete one inbox notification
effect: destructive
questions:
- Can I permanently delete a single notification from a subscriber's inbox?
- Is deleting one inbox notification permanent?
instructions:
- text: Delete notification {notificationId} from subscriber {subscriberId}'s inbox.
slots:
notificationId: path.notificationId
subscriberId: path.subscriberId
- text: Permanently remove inbox item {notificationId} for {subscriberId}.
slots:
notificationId: path.notificationId
subscriberId: path.subscriberId
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers/{subscriberId}/notifications/{notificationId}/actions/{actionType}/complete'].patch
update:
x-apievangelist-phrasing:
intent: Complete a notification's action button
effect: write
questions:
- How do I mark a notification's primary action as completed?
- Can I record that a subscriber finished the secondary action on an inbox item?
instructions:
- text: Complete the {actionType} action on notification {notificationId} for {subscriberId}.
slots:
actionType: path.actionType
notificationId: path.notificationId
subscriberId: path.subscriberId
- text: Mark {subscriberId}'s {actionType} button on {notificationId} as done.
slots:
subscriberId: path.subscriberId
actionType: path.actionType
notificationId: path.notificationId
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers/{subscriberId}/notifications/{notificationId}/actions/{actionType}/revert'].patch
update:
x-apievangelist-phrasing:
intent: Revert a notification's action to pending
effect: write
questions:
- Can I undo a completed action on an inbox notification?
- Which call puts a primary or secondary action back to pending?
instructions:
- text: Revert the {actionType} action on notification {notificationId} for {subscriberId}.
slots:
actionType: path.actionType
notificationId: path.notificationId
subscriberId: path.subscriberId
- text: Reset {subscriberId}'s {actionType} button on {notificationId} to pending.
slots:
subscriberId: path.subscriberId
actionType: path.actionType
notificationId: path.notificationId
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers/{subscriberId}/notifications/seen'].post
update:
x-apievangelist-phrasing:
intent: Mark inbox notifications as seen
effect: write
questions:
- Can I mark several inbox notifications as seen when the subscriber opens the inbox?
- Is it possible to mark notifications seen by tag instead of by id?
instructions:
- text: Mark notifications {notificationIds} as seen for subscriber {subscriberId}.
slots:
notificationIds: requestBody.notificationIds
subscriberId: path.subscriberId
- text: Mark all {tags} tagged notifications seen for {subscriberId}.
slots:
tags: requestBody.tags
subscriberId: path.subscriberId
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers/{subscriberId}/notifications/read'].post
update:
x-apievangelist-phrasing:
intent: Mark all inbox notifications as read
effect: write
questions:
- How do I clear a subscriber's unread inbox by marking everything read?
- Can I mark all read only for notifications with certain tags?
instructions:
- text: Mark all inbox notifications as read for subscriber {subscriberId}.
slots:
subscriberId: path.subscriberId
- text: Mark every {tags} notification read for {subscriberId}.
slots:
tags: requestBody.tags
subscriberId: path.subscriberId
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers/{subscriberId}/notifications/archive'].post
update:
x-apievangelist-phrasing:
intent: Archive all inbox notifications
effect: write
questions:
- Can I archive a subscriber's entire inbox in one call?
- Is there a way to archive all notifications matching a tag filter?
instructions:
- text: Archive all inbox notifications for subscriber {subscriberId}.
slots:
subscriberId: path.subscriberId
- text: Archive every notification tagged {tags} for {subscriberId}.
slots:
tags: requestBody.tags
subscriberId: path.subscriberId
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers/{subscriberId}/notifications/read-archive'].post
update:
x-apievangelist-phrasing:
intent: Archive all read inbox notifications
effect: write
questions:
- Can I archive only the notifications a subscriber has already read?
- How do I tidy an inbox by archiving read items but leaving unread ones?
instructions:
- text: Archive all read notifications for subscriber {subscriberId}.
slots:
subscriberId: path.subscriberId
- text: Move {subscriberId}'s already-read {tags} notifications to the archive.
slots:
subscriberId: path.subscriberId
tags: requestBody.tags
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/subscribers/{subscriberId}/notifications/delete'].post
update:
x-apievangelist-phrasing:
intent: Delete all inbox notifications
effect: destructive
questions:
- Can I permanently wipe every notification in a subscriber's inbox?
- Is it possible to delete all inbox notifications that match certain tags?
instructions:
- text: Delete all inbox notifications for subscriber {subscriberId}.
slots:
subscriberId: path.subscriberId
- text: Permanently delete every {tags} notification in {subscriberId}'s inbox.
slots:
tags: requestBody.tags
subscriberId: path.subscriberId
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-subscribers-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.