# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Svix Message API version: 1.0.0 extends: openapi/svix-message-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['/api/v1/app/{app_id}/msg'].get update: x-apievangelist-phrasing: intent: List an application's messages effect: read questions: - How do I list the webhook messages sent for one application? - Can I list only messages created within a date window? - Which messages went out with a given tag or event type? instructions: - text: List messages for application {app_id}. slots: app_id: path.app_id - text: List app {app_id} messages created after {after} and before {before}. slots: app_id: path.app_id after: query.after before: query.before - text: List app {app_id} messages of event types {event_types}, including their payloads. slots: app_id: path.app_id event_types: query.event_types method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/msg'].post update: x-apievangelist-phrasing: intent: Send a webhook message to an application effect: write questions: - How do I send a webhook event to all of a customer's endpoints with Svix? - Can I schedule a message to be delivered at a later time? - What happens if I send a message with an eventId that already exists? instructions: - text: Send a {eventType} message to application {app_id} with payload {payload}. slots: eventType: requestBody.eventType app_id: path.app_id payload: requestBody.payload - text: Send event {eventType} to app {app_id} with payload {payload}, delivered at {deliverAt}. slots: eventType: requestBody.eventType app_id: path.app_id payload: requestBody.payload deliverAt: requestBody.deliverAt - text: Dispatch {eventType} with payload {payload} to app {app_id} on channels {channels}. slots: eventType: requestBody.eventType payload: requestBody.payload app_id: path.app_id channels: requestBody.channels method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/msg/precheck/active'].post update: x-apievangelist-phrasing: intent: Check if any endpoint listens for an event effect: read questions: - Is any active endpoint actually listening for this event type before I send it? - Can I check whether a message would reach anyone on a given channel? instructions: - text: Check whether app {app_id} has active endpoints for event type {eventType}. slots: app_id: path.app_id eventType: requestBody.eventType - text: Precheck if a {eventType} message to app {app_id} on channels {channels} would be delivered. slots: eventType: requestBody.eventType app_id: path.app_id channels: requestBody.channels method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/events'].get update: x-apievangelist-phrasing: intent: Read the stream of created messages for an app effect: read questions: - How do I consume the feed of messages created for an application in order? - Can I read an app's message event stream from a certain point in time? instructions: - text: Read the message event stream for application {app_id}. slots: app_id: path.app_id - text: Read app {app_id}'s created-message feed from iterator {iterator}. slots: app_id: path.app_id iterator: query.iterator method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/msg/{msg_id}'].get update: x-apievangelist-phrasing: intent: Get a message by ID or event ID effect: read questions: - How do I look up a single message I sent? - Can I fetch a message using my own eventId instead of the Svix message id? instructions: - text: Get message {msg_id} in application {app_id}. slots: msg_id: path.msg_id app_id: path.app_id - text: Fetch message {msg_id} from app {app_id} with its content. slots: msg_id: path.msg_id app_id: path.app_id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/msg/{msg_id}/content'].delete update: x-apievangelist-phrasing: intent: Delete one message's payload effect: destructive questions: - I sent a message with sensitive data by mistake — how do I wipe its payload? - Can a message still be replayed after its payload is deleted? instructions: - text: Delete the payload of message {msg_id} in application {app_id}. slots: msg_id: path.msg_id app_id: path.app_id - text: Wipe the sensitive content from app {app_id} message {msg_id}. slots: app_id: path.app_id msg_id: path.msg_id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/msg/search'].post update: x-apievangelist-phrasing: intent: Search an application's messages effect: read questions: - How do I search an app's messages by tag, channel and date range in one request? - Can I search messages with criteria in a request body rather than query params? instructions: - text: Search app {app_id} messages tagged {tag}. slots: app_id: path.app_id tag: requestBody.tag - text: Search application {app_id} for messages on channel {channel} of event types {event_types}. slots: app_id: path.app_id channel: requestBody.channel event_types: requestBody.event_types method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/msg/expunge-all-contents'].post update: x-apievangelist-phrasing: intent: Delete every message payload in an app effect: destructive questions: - How do I purge all message payloads stored for an application? - Which plan do I need to expunge all message contents at once? instructions: - text: Expunge all message contents for application {app_id}. slots: app_id: path.app_id - text: Start a background task to wipe every message payload in app {app_id}. slots: app_id: path.app_id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/msg/{msg_id}/raw'].get update: x-apievangelist-phrasing: intent: Get a message's raw payload effect: read questions: - How do I get the exact raw body that was sent for a message? - Can I pull just the unparsed payload of a message by its eventId? instructions: - text: Get the raw payload of message {msg_id} in application {app_id}. slots: msg_id: path.msg_id app_id: path.app_id - text: Show the unparsed body for app {app_id} message {msg_id}. slots: app_id: path.app_id msg_id: path.msg_id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/endpoint/{endpoint_id}/msg/test-attempt'].post update: x-apievangelist-phrasing: intent: Send a message to one endpoint and see the result effect: write questions: - How do I send a test message to a single endpoint and get its response back? - Can I deliver a message to just one endpoint instead of all of an app's endpoints? instructions: - text: Send a {eventType} test message with payload {payload} to endpoint {endpoint_id} in app {app_id}. slots: eventType: requestBody.eventType payload: requestBody.payload endpoint_id: path.endpoint_id app_id: path.app_id - text: Try delivering {payload} as {eventType} to only endpoint {endpoint_id} of app {app_id} and show the response. slots: payload: requestBody.payload eventType: requestBody.eventType endpoint_id: path.endpoint_id app_id: path.app_id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/poller/{sink_id}'].get update: x-apievangelist-phrasing: intent: Poll messages from a polling endpoint effect: read questions: - How do I pull messages from a polling endpoint instead of receiving pushes? - Can I poll only one event type from a polling endpoint? instructions: - text: Poll messages from polling endpoint {sink_id} in app {app_id}. slots: sink_id: path.sink_id app_id: path.app_id - text: Poll app {app_id} polling endpoint {sink_id} for {event_type} messages from iterator {iterator}. slots: app_id: path.app_id sink_id: path.sink_id event_type: query.event_type iterator: query.iterator method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/poller/{sink_id}/consumer/{consumer_id}/seek'].post update: x-apievangelist-phrasing: intent: Set where a polling consumer starts reading effect: write questions: - How do I rewind a polling consumer to read messages from an earlier time? - Can I set the starting offset for a named consumer on a polling endpoint? instructions: - text: Seek consumer {consumer_id} on polling endpoint {sink_id} in app {app_id} to after {after}. slots: consumer_id: path.consumer_id sink_id: path.sink_id app_id: path.app_id after: requestBody.after - text: Reset app {app_id} poller {sink_id} consumer {consumer_id} to start from {after}. slots: app_id: path.app_id sink_id: path.sink_id consumer_id: path.consumer_id after: requestBody.after method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/poller/{sink_id}/consumer/{consumer_id}'].get update: x-apievangelist-phrasing: intent: Poll messages with a server-tracked consumer effect: read questions: - How do I poll a polling endpoint and let the server remember my position? - Can several named consumers each track their own place on one polling endpoint? instructions: - text: Poll as consumer {consumer_id} from polling endpoint {sink_id} in app {app_id}. slots: consumer_id: path.consumer_id sink_id: path.sink_id app_id: path.app_id - text: Fetch the next {limit} messages for consumer {consumer_id} on app {app_id} poller {sink_id}. slots: limit: query.limit consumer_id: path.consumer_id app_id: path.app_id sink_id: path.sink_id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/polling-endpoint/{sink_id}/consumer/{consumer_id}'].get update: x-apievangelist-phrasing: intent: Poll a sink with the v2 leased consumer effect: read questions: - How do I poll messages with a lease so they're redelivered if I don't commit? - Can the v2 polling endpoint start from the earliest or latest position? instructions: - text: Poll v2 polling endpoint {sink_id} in app {app_id} as consumer {consumer_id}. slots: sink_id: path.sink_id app_id: path.app_id consumer_id: path.consumer_id - text: Lease messages for {lease_duration_ms} ms as consumer {consumer_id} on app {app_id} polling endpoint {sink_id}. slots: lease_duration_ms: query.lease_duration_ms consumer_id: path.consumer_id app_id: path.app_id sink_id: path.sink_id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/polling-endpoint/{sink_id}/consumer/{consumer_id}/commit'].post update: x-apievangelist-phrasing: intent: Acknowledge an offset for a v2 polling consumer effect: write questions: - How do I ack the messages I've processed from a v2 polling endpoint? - Can I commit an offset so my consumer doesn't get those messages again? instructions: - text: Commit offset {offset} for consumer {consumer_id} on polling endpoint {sink_id} in app {app_id}. slots: offset: requestBody.offset consumer_id: path.consumer_id sink_id: path.sink_id app_id: path.app_id - text: Ack up to offset {offset} for app {app_id} v2 poller {sink_id} consumer {consumer_id}. slots: offset: requestBody.offset app_id: path.app_id sink_id: path.sink_id consumer_id: path.consumer_id method: generated generated: '2026-09-26'