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.
View Overlay File View on GitHub Overlay Specification

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

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