Convoy · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Convoy API Reference Filters API

9 actions 9 updates phrasing extends openapi/convoy-filters-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Convoy's API. It is a proposal applied on top of the contract, not a document Convoy publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 9

$.info
$.paths['/v1/projects/{projectID}/subscriptions/{subscriptionID}/filters'].get
$.paths['/v1/projects/{projectID}/subscriptions/{subscriptionID}/filters'].post
$.paths['/v1/projects/{projectID}/subscriptions/{subscriptionID}/filters/bulk'].post
$.paths['/v1/projects/{projectID}/subscriptions/{subscriptionID}/filters/bulk_update'].put
$.paths['/v1/projects/{projectID}/subscriptions/{subscriptionID}/filters/test/{eventType}'].post
$.paths['/v1/projects/{projectID}/subscriptions/{subscriptionID}/filters/{filterID}'].get
$.paths['/v1/projects/{projectID}/subscriptions/{subscriptionID}/filters/{filterID}'].put
$.paths['/v1/projects/{projectID}/subscriptions/{subscriptionID}/filters/{filterID}'].delete

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 Convoy API Reference Filters API
  version: 1.0.0
extends: openapi/convoy-filters-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/projects/{projectID}/subscriptions/{subscriptionID}/filters'].get
  update:
    x-apievangelist-phrasing:
      intent: List a subscription's filters
      effect: read
      questions:
      - Which filters are attached to a subscription?
      - Can I see every event-type filter a subscription is using?
      instructions:
      - text: List the filters on subscription {subscriptionID} in project {projectID}.
        slots:
          subscriptionID: path.subscriptionID
          projectID: path.projectID
      - text: Show all filters for subscription {subscriptionID}.
        slots:
          subscriptionID: path.subscriptionID
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/projects/{projectID}/subscriptions/{subscriptionID}/filters'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a filter to a subscription
      effect: write
      questions:
      - How do I make a subscription only receive events whose body matches certain values?
      - Can I filter a subscription by headers for one event type?
      instructions:
      - text: Add a filter for event type {event_type} to subscription {subscriptionID} in project {projectID}.
        slots:
          event_type: requestBody.event_type
          subscriptionID: path.subscriptionID
          projectID: path.projectID
      - text: Create a {event_type} filter on subscription {subscriptionID} that matches body {body}.
        slots:
          event_type: requestBody.event_type
          subscriptionID: path.subscriptionID
          body: requestBody.body
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/projects/{projectID}/subscriptions/{subscriptionID}/filters/bulk'].post
  update:
    x-apievangelist-phrasing:
      intent: Create several subscription filters at once
      effect: write
      questions:
      - Can I add filters for many event types to a subscription in one request?
      - Is there a bulk way to create subscription filters?
      instructions:
      - text: Bulk create filters on subscription {subscriptionID} in project {projectID}.
        slots:
          subscriptionID: path.subscriptionID
          projectID: path.projectID
      - text: Create multiple filters at once for subscription {subscriptionID}.
        slots:
          subscriptionID: path.subscriptionID
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/projects/{projectID}/subscriptions/{subscriptionID}/filters/bulk_update'].put
  update:
    x-apievangelist-phrasing:
      intent: Update several subscription filters at once
      effect: write
      questions:
      - Can I change many of a subscription's filters in a single call?
      - Is there a bulk update for subscription filters?
      instructions:
      - text: Bulk update the filters on subscription {subscriptionID} in project {projectID}.
        slots:
          subscriptionID: path.subscriptionID
          projectID: path.projectID
      - text: Update multiple existing filters at once for subscription {subscriptionID}.
        slots:
          subscriptionID: path.subscriptionID
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/projects/{projectID}/subscriptions/{subscriptionID}/filters/test/{eventType}'].post
  update:
    x-apievangelist-phrasing:
      intent: Test a subscription filter against a payload
      effect: read
      questions:
      - Would a sample payload pass the filter on my subscription for a given event type?
      - Can I dry-run a subscription's saved filter before real events arrive?
      instructions:
      - text: Test subscription {subscriptionID}'s {eventType} filter in project {projectID} against payload {payload}.
        slots:
          subscriptionID: path.subscriptionID
          eventType: path.eventType
          projectID: path.projectID
          payload: requestBody.payload
      - text: Check whether {payload} matches the {eventType} filter on subscription {subscriptionID}.
        slots:
          payload: requestBody.payload
          eventType: path.eventType
          subscriptionID: path.subscriptionID
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/projects/{projectID}/subscriptions/{subscriptionID}/filters/{filterID}'].get
  update:
    x-apievangelist-phrasing:
      intent: Retrieve a single subscription filter
      effect: read
      questions:
      - What matching criteria does one specific filter use?
      - Can I look up a filter by its ID to see its body and header rules?
      instructions:
      - text: Get filter {filterID} on subscription {subscriptionID} in project {projectID}.
        slots:
          filterID: path.filterID
          subscriptionID: path.subscriptionID
          projectID: path.projectID
      - text: Show me the rules of filter {filterID}.
        slots:
          filterID: path.filterID
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/projects/{projectID}/subscriptions/{subscriptionID}/filters/{filterID}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a single subscription filter
      effect: write
      questions:
      - How do I change the body matching rules on an existing filter?
      - Can I switch an existing filter to use flattened JSON paths?
      instructions:
      - text: Update filter {filterID} on subscription {subscriptionID} in project {projectID} to match body {body}.
        slots:
          filterID: path.filterID
          subscriptionID: path.subscriptionID
          projectID: path.projectID
          body: requestBody.body
      - text: Change existing filter {filterID} to match headers {headers}.
        slots:
          filterID: path.filterID
          headers: requestBody.headers
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/projects/{projectID}/subscriptions/{subscriptionID}/filters/{filterID}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a subscription filter
      effect: destructive
      questions:
      - How do I remove a filter so the subscription stops screening events by it?
      - Can I delete one filter without touching the subscription's others?
      instructions:
      - text: Delete filter {filterID} from subscription {subscriptionID} in project {projectID}.
        slots:
          filterID: path.filterID
          subscriptionID: path.subscriptionID
          projectID: path.projectID
      - text: Remove filter {filterID}.
        slots:
          filterID: path.filterID
      method: generated
      generated: '2026-10-01'