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