Stedi · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Stedi Event Destinations API
8 actions
8 updates
phrasing
extends
openapi/stedi-destinations-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Stedi's API. It is a proposal applied on top of the contract, not a document Stedi publishes.
What the actions change
x-apievangelist-phrasing
Targets 8
$.info
$.paths['/destinations'].get
$.paths['/destinations'].post
$.paths['/destinations/{destinationId}'].get
$.paths['/destinations/{destinationId}'].post
$.paths['/destinations/{destinationId}'].delete
$.paths['/destinations/{destinationId}/secret'].get
$.paths['/destinations/{destinationId}/secret/rotate'].post
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 Stedi Event Destinations API
version: 1.0.0
extends: openapi/stedi-destinations-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: 7
- target: $.paths['/destinations'].get
update:
x-apievangelist-phrasing:
intent: List event destinations
effect: read
questions:
- Which webhook destinations are set up on my account?
- Can I see only the destinations that are subscribed to a particular event type?
instructions:
- text: List my event destinations.
- text: Show destinations with status {status}.
slots:
status: query.status
- text: List destinations subscribed to {eventType} events.
slots:
eventType: query.eventType
method: generated
generated: '2026-09-26'
- target: $.paths['/destinations'].post
update:
x-apievangelist-phrasing:
intent: Create an event destination
effect: write
questions:
- How do I get Stedi to send event notifications to my own webhook URL?
- Can I limit how many events are delivered to my endpoint at the same time?
instructions:
- text: Create a destination named {name} that posts {eventTypes} to {destinationUrl}.
slots:
name: requestBody.name
eventTypes: requestBody.eventTypes
destinationUrl: requestBody.destinationUrl
- text: Set up a new webhook {name} at {destinationUrl} for {eventTypes} with concurrency limit {concurrencyLimit}.
slots:
name: requestBody.name
destinationUrl: requestBody.destinationUrl
eventTypes: requestBody.eventTypes
concurrencyLimit: requestBody.concurrencyLimit
method: generated
generated: '2026-09-26'
- target: $.paths['/destinations/{destinationId}'].get
update:
x-apievangelist-phrasing:
intent: Get an event destination
effect: read
questions:
- What URL and event types is a specific destination configured with?
- Can I look up the details of a single webhook destination?
instructions:
- text: Show the configuration of destination {destinationId}.
slots:
destinationId: path.destinationId
- text: Get details for event destination {destinationId}.
slots:
destinationId: path.destinationId
method: generated
generated: '2026-09-26'
- target: $.paths['/destinations/{destinationId}'].post
update:
x-apievangelist-phrasing:
intent: Update an event destination
effect: write
questions:
- Can I change the URL an existing destination sends events to?
- How do I pause an existing webhook destination without deleting it?
instructions:
- text: Point destination {destinationId} at {destinationUrl}.
slots:
destinationId: path.destinationId
destinationUrl: requestBody.destinationUrl
- text: Set destination {destinationId} status to {status}.
slots:
destinationId: path.destinationId
status: requestBody.status
- text: Change the event types for destination {destinationId} to {eventTypes}.
slots:
destinationId: path.destinationId
eventTypes: requestBody.eventTypes
method: generated
generated: '2026-09-26'
- target: $.paths['/destinations/{destinationId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete an event destination
effect: destructive
questions:
- How do I permanently remove a webhook destination?
- Is deleting an event destination reversible?
instructions:
- text: Delete event destination {destinationId}.
slots:
destinationId: path.destinationId
- text: Remove the webhook destination {destinationId} for good.
slots:
destinationId: path.destinationId
method: generated
generated: '2026-09-26'
- target: $.paths['/destinations/{destinationId}/secret'].get
update:
x-apievangelist-phrasing:
intent: Get a destination's signing secret
effect: read
questions:
- Where do I find the secret to verify that event payloads really came from Stedi?
- What is the current signing secret for my webhook destination?
instructions:
- text: Show the signing secret for destination {destinationId}.
slots:
destinationId: path.destinationId
- text: Get the current payload verification secret of destination {destinationId}.
slots:
destinationId: path.destinationId
method: generated
generated: '2026-09-26'
- target: $.paths['/destinations/{destinationId}/secret/rotate'].post
update:
x-apievangelist-phrasing:
intent: Rotate a destination's signing secret
effect: write
questions:
- How do I rotate the signing secret on a webhook destination?
- Can the old signing secret keep working for a few hours after I rotate it?
instructions:
- text: Rotate the signing secret for destination {destinationId}.
slots:
destinationId: path.destinationId
- text: Rotate the secret on destination {destinationId} and keep the old one valid for {previousSecretExpiryHours} hours.
slots:
destinationId: path.destinationId
previousSecretExpiryHours: requestBody.previousSecretExpiryHours
method: generated
generated: '2026-09-26'