Knock · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Knock App Audiences API
9 actions
9 updates
phrasing
extends
openapi/knock-app-audiences-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Knock's API. It is a proposal applied on top of the contract, not a document Knock publishes.
What the actions change
x-apievangelist-phrasing
Targets 9
$.info
$.paths['/v1/audiences/{key}/members'].get
$.paths['/v1/audiences/{key}/members'].post
$.paths['/v1/audiences/{key}/members'].delete
$.paths['/v1/audiences/{audience_key}'].get
$.paths['/v1/audiences/{audience_key}'].put
$.paths['/v1/audiences/{audience_key}'].delete
$.paths['/v1/audiences/{audience_key}/validate'].put
$.paths['/v1/audiences'].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 Knock App Audiences API
version: 1.0.0
extends: openapi/knock-app-audiences-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-10-01'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 8
- target: $.paths['/v1/audiences/{key}/members'].get
update:
x-apievangelist-phrasing:
intent: List the members of an audience
effect: read
questions:
- Who is currently in a given audience?
- Can I page through everyone belonging to one audience?
instructions:
- text: List the members of audience {key}.
slots:
key: path.key
- text: Show who belongs to the {key} audience.
slots:
key: path.key
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/audiences/{key}/members'].post
update:
x-apievangelist-phrasing:
intent: Add members to an audience
effect: write
questions:
- How do I add users to an existing audience?
- Can adding members also create the audience if it doesn't exist yet?
instructions:
- text: Add {members} to audience {key}.
slots:
members: requestBody.members
key: path.key
- text: Add {members} to audience {key}, creating the audience if needed ({create_audience}).
slots:
members: requestBody.members
key: path.key
create_audience: query.create_audience
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/audiences/{key}/members'].delete
update:
x-apievangelist-phrasing:
intent: Remove members from an audience
effect: destructive
questions:
- How do I take specific users out of an audience?
- Can I remove several members from one audience in one call?
instructions:
- text: Remove {members} from audience {key}.
slots:
members: requestBody.members
key: path.key
- text: 'Drop these people from the {key} audience: {members}.'
slots:
members: requestBody.members
key: path.key
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/audiences/{audience_key}'].get
update:
x-apievangelist-phrasing:
intent: Get an audience definition by key
effect: read
questions:
- How do I look up a single audience's definition by its key?
- Can I see an audience without its uncommitted changes?
instructions:
- text: Get audience {audience_key} in {environment}.
slots:
audience_key: path.audience_key
environment: query.environment
- text: Show the {audience_key} audience definition on branch {branch} in {environment}.
slots:
audience_key: path.audience_key
branch: query.branch
environment: query.environment
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/audiences/{audience_key}'].put
update:
x-apievangelist-phrasing:
intent: Create or update an audience
effect: write
questions:
- How do I create a new audience or update one that already exists?
- Can I commit an audience change with a message when I save it?
instructions:
- text: Upsert audience {audience_key} in {environment} with {audience}.
slots:
audience_key: path.audience_key
environment: query.environment
audience: requestBody.audience
- text: Save audience {audience_key} and commit it with message {commit_message} in {environment}.
slots:
audience_key: path.audience_key
commit_message: query.commit_message
environment: query.environment
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/audiences/{audience_key}'].delete
update:
x-apievangelist-phrasing:
intent: Archive an audience everywhere
effect: destructive
questions:
- What happens to an audience when I archive it across all environments?
- How do I retire an audience I no longer use?
instructions:
- text: Archive audience {audience_key} using {environment}.
slots:
audience_key: path.audience_key
environment: query.environment
- text: Retire the {audience_key} audience across all environments, scoped from {environment}.
slots:
audience_key: path.audience_key
environment: query.environment
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/audiences/{audience_key}/validate'].put
update:
x-apievangelist-phrasing:
intent: Validate an audience payload without saving
effect: read
questions:
- Can I check an audience definition for errors before saving it?
- Is there a dry run for audience payloads that doesn't persist anything?
instructions:
- text: 'Validate this audience payload for {audience_key} in {environment}: {audience}.'
slots:
audience_key: path.audience_key
environment: query.environment
audience: requestBody.audience
- text: Dry-run audience {audience} without saving it, under key {audience_key} in {environment}.
slots:
audience: requestBody.audience
audience_key: path.audience_key
environment: query.environment
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/audiences'].get
update:
x-apievangelist-phrasing:
intent: List audiences in an environment
effect: read
questions:
- Which audiences exist in my development environment?
- How many audiences can I fetch per page?
instructions:
- text: List all audiences in {environment}.
slots:
environment: query.environment
- text: List the first {limit} audiences on branch {branch} in {environment}.
slots:
limit: query.limit
branch: query.branch
environment: query.environment
method: generated
generated: '2026-10-01'