# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Svix Webhook Sink API version: 1.0.0 extends: openapi/svix-webhook-sink-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: 16 - target: $.paths['/api/v1/app/{app_id}/stream/sink'].get update: x-apievangelist-phrasing: intent: List an application's stream sinks effect: read questions: - Which stream sinks are batching events out of one of my applications? - Can I page through an app's stream sinks with a limit and order? instructions: - text: List all stream sinks for application {app_id}. slots: app_id: path.app_id - text: Show the first {limit} stream sinks of app {app_id}. slots: limit: query.limit app_id: path.app_id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/stream/sink'].post update: x-apievangelist-phrasing: intent: Create a stream sink for an application effect: write questions: - How do I set up a stream sink that delivers events in batches? - Can a stream sink wait a few seconds to fill a batch before sending? - Is it possible to restrict a new stream sink to certain event types? instructions: - text: Create a stream sink on application {app_id}. slots: app_id: path.app_id - text: Create a stream sink for app {app_id} that sends batches of {batchSize} events, waiting at most {maxWaitSecs} seconds. slots: app_id: path.app_id batchSize: requestBody.batchSize maxWaitSecs: requestBody.maxWaitSecs - text: Add a stream sink to app {app_id} that only receives {eventTypes}. slots: app_id: path.app_id eventTypes: requestBody.eventTypes method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}'].get update: x-apievangelist-phrasing: intent: Get a stream sink effect: read questions: - What batch size and status does a particular stream sink have? - Can I look up a stream sink by its uid instead of its ID? instructions: - text: Show stream sink {sink_id} of application {app_id}. slots: sink_id: path.sink_id app_id: path.app_id - text: Fetch the configuration of app {app_id}'s stream sink {sink_id}. slots: sink_id: path.sink_id app_id: path.app_id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}'].put update: x-apievangelist-phrasing: intent: Create or replace a stream sink effect: write questions: - Can I upsert a stream sink so it's created if that ID doesn't exist? - How do I replace a stream sink's entire configuration? instructions: - text: Upsert stream sink {sink_id} on app {app_id}. slots: sink_id: path.sink_id app_id: path.app_id - text: Create or fully replace stream sink {sink_id} of app {app_id} with status {status} and batch size {batchSize}. slots: sink_id: path.sink_id app_id: path.app_id status: requestBody.status batchSize: requestBody.batchSize method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}'].delete update: x-apievangelist-phrasing: intent: Delete a stream sink effect: destructive questions: - How do I remove a stream sink I no longer need? - Can I permanently delete a stream sink from an application? instructions: - text: Delete stream sink {sink_id} from application {app_id}. slots: sink_id: path.sink_id app_id: path.app_id - text: Remove app {app_id}'s stream sink {sink_id} for good. slots: sink_id: path.sink_id app_id: path.app_id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}'].patch update: x-apievangelist-phrasing: intent: Change some settings of a stream sink effect: write questions: - Can I pause a stream sink by changing only its status? - How do I adjust a stream sink's batch wait time without resending everything? instructions: - text: Set the status of stream sink {sink_id} on app {app_id} to {status}. slots: sink_id: path.sink_id app_id: path.app_id status: requestBody.status - text: Partially update stream sink {sink_id} of app {app_id} to wait up to {maxWaitSecs} seconds per batch. slots: sink_id: path.sink_id app_id: path.app_id maxWaitSecs: requestBody.maxWaitSecs method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}/transformation'].get update: x-apievangelist-phrasing: intent: Get a stream sink's transformation code effect: read questions: - What transformation code runs on events before a stream sink sends them? - Does a given stream sink have a transformation attached? instructions: - text: Show the transformation code for stream sink {sink_id} in app {app_id}. slots: sink_id: path.sink_id app_id: path.app_id - text: Fetch the transformation attached to app {app_id}'s stream sink {sink_id}. slots: sink_id: path.sink_id app_id: path.app_id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}/transformation'].patch update: x-apievangelist-phrasing: intent: Set or remove a stream sink's transformation effect: write questions: - How do I attach transformation code to a stream sink? - Can I clear the transformation from a stream sink? instructions: - text: Set the transformation code of stream sink {sink_id} on app {app_id} to {code}. slots: sink_id: path.sink_id app_id: path.app_id code: requestBody.code - text: Unset the transformation on app {app_id}'s stream sink {sink_id}. slots: sink_id: path.sink_id app_id: path.app_id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}/secret'].get update: x-apievangelist-phrasing: intent: Get an HTTP stream sink's signing secret effect: read questions: - Where do I find the secret to verify deliveries from an HTTP stream sink? - Do non-HTTP stream sinks have a signing secret I can read? instructions: - text: Get the signing secret of HTTP stream sink {sink_id} in app {app_id}. slots: sink_id: path.sink_id app_id: path.app_id - text: Show the verification secret for app {app_id}'s stream sink {sink_id}. slots: sink_id: path.sink_id app_id: path.app_id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}/secret/rotate'].post update: x-apievangelist-phrasing: intent: Rotate an HTTP stream sink's signing secret effect: write questions: - How do I rotate the signing secret on an HTTP stream sink? - Can the old stream sink secret keep working for a grace period after rotation? instructions: - text: Rotate the signing secret of stream sink {sink_id} in app {app_id}. slots: sink_id: path.sink_id app_id: path.app_id - text: Rotate stream sink {sink_id}'s secret on app {app_id} with a {gracePeriodSeconds}-second grace period. slots: sink_id: path.sink_id app_id: path.app_id gracePeriodSeconds: requestBody.gracePeriodSeconds method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}/headers'].get update: x-apievangelist-phrasing: intent: Get an HTTP stream sink's headers effect: read questions: - Which HTTP headers does a stream sink send with each batch? - Can I see the custom headers on an HTTP stream sink? instructions: - text: Show the HTTP headers configured on stream sink {sink_id} in app {app_id}. slots: sink_id: path.sink_id app_id: path.app_id - text: List the headers app {app_id}'s stream sink {sink_id} sends. slots: sink_id: path.sink_id app_id: path.app_id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}/headers'].patch update: x-apievangelist-phrasing: intent: Update an HTTP stream sink's headers effect: write questions: - How do I add an auth header to an HTTP stream sink's deliveries? - Can I change a stream sink's headers without recreating the sink? instructions: - text: Patch the headers of stream sink {sink_id} in app {app_id} with {headers}. slots: sink_id: path.sink_id app_id: path.app_id headers: requestBody.headers - text: Add headers {headers} to the HTTP deliveries of app {app_id}'s stream sink {sink_id}. slots: headers: requestBody.headers app_id: path.app_id sink_id: path.sink_id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}/force-retry'].post update: x-apievangelist-phrasing: intent: Force a paused stream sink to retry now effect: write questions: - My stream sink paused after errors — how do I make it retry immediately? - Can I skip the backoff wait on a stream sink whose dispatch is paused? instructions: - text: Force stream sink {sink_id} in app {app_id} to retry right away. slots: sink_id: path.sink_id app_id: path.app_id - text: Resume dispatch now on app {app_id}'s paused stream sink {sink_id}. slots: sink_id: path.sink_id app_id: path.app_id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}/last-acked-event'].get update: x-apievangelist-phrasing: intent: Get the last event a stream sink acknowledged effect: read questions: - What was the most recent event a stream sink successfully acknowledged? - How far has a stream sink gotten through the event stream? instructions: - text: Show the latest acked event for stream sink {sink_id} in app {app_id}. slots: sink_id: path.sink_id app_id: path.app_id - text: Tell me the last event app {app_id}'s stream sink {sink_id} acknowledged. slots: sink_id: path.sink_id app_id: path.app_id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}/next-event'].get update: x-apievangelist-phrasing: intent: Get the next unacknowledged event for a sink effect: read questions: - Which event is a stream sink stuck on? - What is the oldest event a stream sink hasn't acknowledged yet? instructions: - text: Show the oldest unacked event waiting for stream sink {sink_id} in app {app_id}. slots: sink_id: path.sink_id app_id: path.app_id - text: Get the next event app {app_id}'s stream sink {sink_id} still has to deliver. slots: sink_id: path.sink_id app_id: path.app_id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}/skip'].post update: x-apievangelist-phrasing: intent: Skip events a stream sink is stuck on effect: destructive questions: - How do I move a stream sink past events it keeps failing on? - Can I advance a stream sink's position to a given iterator? instructions: - text: Skip the pending events on stream sink {sink_id} in app {app_id}. slots: sink_id: path.sink_id app_id: path.app_id - text: Advance app {app_id}'s stream sink {sink_id} past events up to iterator {iterator}. slots: sink_id: path.sink_id app_id: path.app_id iterator: requestBody.iterator method: generated generated: '2026-09-26'