Knock · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Knock App Messages API

28 actions 28 updates phrasing extends openapi/knock-app-messages-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.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 28 · first 16 shown; the file carries all of them

$.info
$.paths['/v1/channels/{channel_id}/messages/bulk/{action}'].post
$.paths['/v1/messages/{message_id}/delivery_logs'].get
$.paths['/v1/messages'].get
$.paths['/v1/messages/{message_id}/unseen'].delete
$.paths['/v1/messages/batch/unarchived'].post
$.paths['/v1/messages/{message_id}/unread'].delete
$.paths['/v1/messages/{message_id}/seen'].put
$.paths['/v1/messages/{message_id}/seen'].delete
$.paths['/v1/messages/{message_id}/events'].get
$.paths['/v1/messages/batch/seen'].post
$.paths['/v1/messages/batch/unseen'].post
$.paths['/v1/messages/{message_id}/read'].put
$.paths['/v1/messages/{message_id}/read'].delete
$.paths['/v1/messages/batch/content'].get
$.paths['/v1/messages/{message_id}/content'].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 Knock App Messages API
  version: 1.0.0
extends: openapi/knock-app-messages-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: 27
- target: $.paths['/v1/channels/{channel_id}/messages/bulk/{action}'].post
  update:
    x-apievangelist-phrasing:
      intent: Bulk change message statuses on a channel
      effect: write
      questions:
      - How do I mark every message on one channel as read at once?
      - Can I bulk archive a channel's messages older than a certain date?
      instructions:
      - text: Apply {action} to all messages on channel {channel_id}.
        slots:
          action: path.action
          channel_id: path.channel_id
      - text: Apply {action} to channel {channel_id} messages older than {older_than}.
        slots:
          action: path.action
          channel_id: path.channel_id
          older_than: requestBody.older_than
      - text: Run bulk {action} on channel {channel_id} for recipients {recipient_ids}.
        slots:
          action: path.action
          channel_id: path.channel_id
          recipient_ids: requestBody.recipient_ids
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages/{message_id}/delivery_logs'].get
  update:
    x-apievangelist-phrasing:
      intent: List a message's delivery logs
      effect: read
      questions:
      - How do I see the raw provider requests and responses for a sent message?
      - Why did a message fail to deliver, according to its delivery logs?
      instructions:
      - text: List delivery logs for message {message_id}.
        slots:
          message_id: path.message_id
      - text: Show the provider delivery attempts for message {message_id}.
        slots:
          message_id: path.message_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages'].get
  update:
    x-apievangelist-phrasing:
      intent: List messages across the environment
      effect: read
      questions:
      - Which notifications were sent across the whole environment recently?
      - Can I filter all messages by delivery status or channel?
      - What messages did a single workflow run produce?
      instructions:
      - text: List all messages in this environment.
      - text: List environment messages with status {status} on channel {channel_id}.
        slots:
          status: query.status[]
          channel_id: query.channel_id
      - text: Show messages produced by workflow run {workflow_run_id}.
        slots:
          workflow_run_id: query.workflow_run_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages/{message_id}/unseen'].delete
  update:
    x-apievangelist-phrasing:
      intent: Mark a message unseen (unseen endpoint)
      effect: destructive
      questions:
      - Is there a dedicated unseen endpoint for flipping one message back to unseen?
      - Can I call an /unseen route on a single message instead of removing its seen status?
      instructions:
      - text: Call the unseen endpoint for message {message_id}.
        slots:
          message_id: path.message_id
      - text: Flip message {message_id} to unseen using the /unseen route.
        slots:
          message_id: path.message_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages/batch/unarchived'].post
  update:
    x-apievangelist-phrasing:
      intent: Unarchive several messages
      effect: write
      questions:
      - How do I restore a batch of archived notifications to the feed?
      - Can I unarchive many messages in one request?
      instructions:
      - text: Unarchive messages {message_ids}.
        slots:
          message_ids: requestBody.message_ids
      - text: 'Bring these archived messages back into the feed: {message_ids}.'
        slots:
          message_ids: requestBody.message_ids
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages/{message_id}/unread'].delete
  update:
    x-apievangelist-phrasing:
      intent: Mark a message unread (unread endpoint)
      effect: destructive
      questions:
      - Is there a dedicated unread endpoint for a single message?
      - Can I call an /unread route on one message instead of removing its read status?
      instructions:
      - text: Call the unread endpoint for message {message_id}.
        slots:
          message_id: path.message_id
      - text: Flip message {message_id} to unread using the /unread route.
        slots:
          message_id: path.message_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages/{message_id}/seen'].put
  update:
    x-apievangelist-phrasing:
      intent: Mark a message seen
      effect: write
      questions:
      - How do I record that a user viewed one notification in their feed?
      - What's the difference between seen and read for a single message?
      instructions:
      - text: Mark message {message_id} as seen.
        slots:
          message_id: path.message_id
      - text: Record that message {message_id} was viewed in the feed.
        slots:
          message_id: path.message_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages/{message_id}/seen'].delete
  update:
    x-apievangelist-phrasing:
      intent: Mark a message unseen
      effect: destructive
      questions:
      - How do I reverse the seen state on a single message?
      - Can I make one notification count as new again in the badge?
      instructions:
      - text: Mark message {message_id} as unseen.
        slots:
          message_id: path.message_id
      - text: Remove the seen status from message {message_id}.
        slots:
          message_id: path.message_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages/{message_id}/events'].get
  update:
    x-apievangelist-phrasing:
      intent: List a message's events
      effect: read
      questions:
      - What status events has a message gone through?
      - Can I see when a message was sent, delivered and read?
      instructions:
      - text: List events for message {message_id}.
        slots:
          message_id: path.message_id
      - text: Show the event history of message {message_id}.
        slots:
          message_id: path.message_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages/batch/seen'].post
  update:
    x-apievangelist-phrasing:
      intent: Mark several messages seen
      effect: write
      questions:
      - How do I mark a whole batch of notifications as seen?
      - Can I clear the unseen badge for many messages at once?
      instructions:
      - text: Mark messages {message_ids} as seen.
        slots:
          message_ids: requestBody.message_ids
      - text: 'Record these messages as viewed: {message_ids}.'
        slots:
          message_ids: requestBody.message_ids
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages/batch/unseen'].post
  update:
    x-apievangelist-phrasing:
      intent: Mark several messages unseen
      effect: write
      questions:
      - How do I reset many messages back to unseen in one call?
      - Can I undo seen on a batch of notifications?
      instructions:
      - text: Mark messages {message_ids} as unseen.
        slots:
          message_ids: requestBody.message_ids
      - text: 'Reset these messages to unseen: {message_ids}.'
        slots:
          message_ids: requestBody.message_ids
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages/{message_id}/read'].put
  update:
    x-apievangelist-phrasing:
      intent: Mark a message read
      effect: write
      questions:
      - How do I record that a user actually read a notification's content?
      - Can I mark a single message read when it's opened?
      instructions:
      - text: Mark message {message_id} as read.
        slots:
          message_id: path.message_id
      - text: Record that message {message_id} has been read.
        slots:
          message_id: path.message_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages/{message_id}/read'].delete
  update:
    x-apievangelist-phrasing:
      intent: Mark a message unread
      effect: destructive
      questions:
      - How do I reverse the read state on a single message?
      - Can a user mark one notification as unread again?
      instructions:
      - text: Mark message {message_id} as unread.
        slots:
          message_id: path.message_id
      - text: Remove the read status from message {message_id}.
        slots:
          message_id: path.message_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages/batch/content'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the content of several messages
      effect: read
      questions:
      - How do I fetch the rendered content for many messages at once?
      - Can I load several messages' bodies in one request?
      instructions:
      - text: Get the contents of messages {message_ids}.
        slots:
          message_ids: query.message_ids[]
      - text: 'Fetch rendered bodies for these messages in one call: {message_ids}.'
        slots:
          message_ids: query.message_ids[]
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages/{message_id}/content'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a message's rendered content
      effect: read
      questions:
      - What exactly did a sent message say, as rendered for its channel?
      - Can I see the final email or SMS body of one message?
      instructions:
      - text: Get the rendered content of message {message_id}.
        slots:
          message_id: path.message_id
      - text: Show me what message {message_id} looked like when sent.
        slots:
          message_id: path.message_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages/{message_id}/activities'].get
  update:
    x-apievangelist-phrasing:
      intent: List a message's activities
      effect: read
      questions:
      - Which batched activities make up a message?
      - Can I filter a message's activities by trigger data?
      instructions:
      - text: List activities for message {message_id}.
        slots:
          message_id: path.message_id
      - text: Show message {message_id} activities matching trigger data {trigger_data}.
        slots:
          message_id: path.message_id
          trigger_data: query.trigger_data
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages/batch/unread'].post
  update:
    x-apievangelist-phrasing:
      intent: Mark several messages unread
      effect: write
      questions:
      - How do I set many notifications back to unread at once?
      - Can I undo read on a batch of messages?
      instructions:
      - text: Mark messages {message_ids} as unread.
        slots:
          message_ids: requestBody.message_ids
      - text: 'Reset these messages to unread: {message_ids}.'
        slots:
          message_ids: requestBody.message_ids
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages/{message_id}/archived'].put
  update:
    x-apievangelist-phrasing:
      intent: Archive a message
      effect: write
      questions:
      - How do I hide one notification from a user's default feed?
      - Can an archived message be restored later?
      instructions:
      - text: Archive message {message_id}.
        slots:
          message_id: path.message_id
      - text: Hide message {message_id} from the default feed.
        slots:
          message_id: path.message_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages/{message_id}/archived'].delete
  update:
    x-apievangelist-phrasing:
      intent: Unarchive a message (archived route)
      effect: destructive
      questions:
      - Can I unarchive a single message by removing its archived status?
      - Is there a delete-the-archived-flag way to restore one message?
      instructions:
      - text: Remove the archived status from message {message_id}.
        slots:
          message_id: path.message_id
      - text: Delete the archived flag on message {message_id}.
        slots:
          message_id: path.message_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages/batch/archived'].post
  update:
    x-apievangelist-phrasing:
      intent: Archive several messages
      effect: write
      questions:
      - How do I archive a batch of notifications in one request?
      - Can I clear many messages out of the feed at once?
      instructions:
      - text: Archive messages {message_ids}.
        slots:
          message_ids: requestBody.message_ids
      - text: 'Hide these messages from the feed: {message_ids}.'
        slots:
          message_ids: requestBody.message_ids
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages/{message_id}/interacted'].put
  update:
    x-apievangelist-phrasing:
      intent: Record an interaction on a message
      effect: write
      questions:
      - How do I record that a user clicked a button in a notification?
      - How many metadata fields can I attach to a message interaction?
      instructions:
      - text: Mark message {message_id} as interacted.
        slots:
          message_id: path.message_id
      - text: Record an interaction on message {message_id} with metadata {metadata}.
        slots:
          message_id: path.message_id
          metadata: requestBody.metadata
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages/{message_id}/unarchived'].delete
  update:
    x-apievangelist-phrasing:
      intent: Unarchive a message (unarchived route)
      effect: destructive
      questions:
      - Is there a dedicated unarchived endpoint to restore one message to the feed?
      - Can I call an /unarchived route on a single message?
      instructions:
      - text: Call the unarchived endpoint for message {message_id}.
        slots:
          message_id: path.message_id
      - text: Restore message {message_id} using the /unarchived route.
        slots:
          message_id: path.message_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages/batch/read'].post
  update:
    x-apievangelist-phrasing:
      intent: Mark several messages read
      effect: write
      questions:
      - How do I implement a mark-all-as-read for a set of messages?
      - Can I mark many notifications read in one call?
      instructions:
      - text: Mark messages {message_ids} as read.
        slots:
          message_ids: requestBody.message_ids
      - text: 'Record these messages as read: {message_ids}.'
        slots:
          message_ids: requestBody.message_ids
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages/{message_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a message by ID
      effect: read
      questions:
      - How do I look up a single message's status and recipient?
      - Can I retrieve one notification by its message ID?
      instructions:
      - text: Get message {message_id}.
        slots:
          message_id: path.message_id
      - text: Show the status and details of message {message_id}.
        slots:
          message_id: path.message_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/messages/batch/interacted'].post
  update:
    x-apievangelist-phrasing:
      intent: Record interactions on several messages
      effect: write
      questions:
      - How do I log interactions on a batch of messages at once?
      - Can I attach the same metadata to many message interactions?
      instructions:
      - text: Mark messages {message_ids} as interacted.
        slots:
          message_ids: requestBody.message_ids
      - text: Record interactions on {message_ids} with metadata {metadata}.
        slots:
          message_ids: requestBody.message_ids
          metadata: requestBody.metadata
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/objects/{collection}/{id}/messages'].get
  update:
    x-apievangelist-phrasing:
      intent: List messages sent to an object
      effect: read
      questions:
      - Which notifications were sent to an object like a project or team?
      - Can I filter an object's messages by engagement status?
      instructions:
      - text: List messages for object {id} in {collection}.
        slots:
          id: path.id
          collection: path.collection
      - text: Show {collection}/{id} messages with engagement status {engagement_status}.
        slots:
          collection: path.collection
          id: path.id
          engagement_status: query.engagement_status[]
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/users/{user_id}/messages'].get
  update:
    x-apievangelist-phrasing:
      intent: List messages sent to a user
      effect: read
      questions:
      - What notifications has a particular user received?
      - Why are a user's older messages missing from the list?
      instructions:
      - text: List messages for user {user_id}.
        slots:
          user_id: path.user_id
      - text: Show user {user_id}'s messages on channel {channel_id}.
        slots:
          user_id: path.user_id
          channel_id: query.channel_id
      method: generated
      generated: '2026-10-01'