Svix · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Svix Webhook Sink API
17 actions
17 updates
phrasing
extends
openapi/svix-webhook-sink-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Svix's API. It is a proposal applied on top of the contract, not a document Svix publishes.
What the actions change
x-apievangelist-phrasing
Targets 17 · first 16 shown; the file carries all of them
$.info
$.paths['/api/v1/app/{app_id}/stream/sink'].get
$.paths['/api/v1/app/{app_id}/stream/sink'].post
$.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}'].get
$.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}'].put
$.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}'].delete
$.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}'].patch
$.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}/transformation'].get
$.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}/transformation'].patch
$.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}/secret'].get
$.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}/secret/rotate'].post
$.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}/headers'].get
$.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}/headers'].patch
$.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}/force-retry'].post
$.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}/last-acked-event'].get
$.paths['/api/v1/app/{app_id}/stream/sink/{sink_id}/next-event'].get
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 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'