Perigon · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Perigon Monitors API
11 actions
11 updates
phrasing
extends
openapi/perigon-monitors-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Perigon's API. It is a proposal applied on top of the contract, not a document Perigon publishes.
What the actions change
x-apievangelist-phrasing
Targets 11
$.info
$.paths['/v1/api/monitors'].get
$.paths['/v1/api/monitors'].post
$.paths['/v1/api/monitors/{uuid}'].get
$.paths['/v1/api/monitors/{uuid}'].delete
$.paths['/v1/api/monitors/{uuid}'].patch
$.paths['/v1/api/monitors/{uuid}/activate'].post
$.paths['/v1/api/monitors/{uuid}/events'].get
$.paths['/v1/api/monitors/{uuid}/newsletters'].get
$.paths['/v1/api/monitors/{uuid}/pause'].post
$.paths['/v1/api/monitors/{uuid}/summary'].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 Perigon Monitors API
version: 1.0.0
extends: openapi/perigon-monitors-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: 10
- target: $.paths['/v1/api/monitors'].get
update:
x-apievangelist-phrasing:
intent: List AI news monitors
effect: read
questions:
- Which AI monitors does my organization have running?
- Can I include archived monitors when listing them?
- How do I find monitors that are still in draft?
instructions:
- text: List my monitors sorted by {sortBy} {sortOrder}.
slots:
sortBy: query.sortBy
sortOrder: query.sortOrder
- text: Show monitors with status {status}, newest first by {sortBy} in {sortOrder} order.
slots:
status: query.status
sortBy: query.sortBy
sortOrder: query.sortOrder
- text: Find monitors named {name}, sorted by {sortBy} {sortOrder}.
slots:
name: query.name
sortBy: query.sortBy
sortOrder: query.sortOrder
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/api/monitors'].post
update:
x-apievangelist-phrasing:
intent: Create an AI news monitor
effect: write
questions:
- How do I set up an AI monitor that watches the news for a specific signal?
- Can a new monitor start as a draft rather than going live immediately?
- What do I need to define, like an objective and data schema, to create a monitor?
instructions:
- text: Create a monitor called {name} with objective {monitoringObjective}, classification {classificationType}, query {query} and schema {dataSchema}.
slots:
name: requestBody.name
monitoringObjective: requestBody.monitoringObjective
classificationType: requestBody.classificationType
query: requestBody.query
dataSchema: requestBody.dataSchema
- text: Set up a draft monitor {name} tracking {monitoringObjective} using watchlist {watchlistId}, schema {dataSchema}, query {query}, type {classificationType}.
slots:
name: requestBody.name
monitoringObjective: requestBody.monitoringObjective
watchlistId: requestBody.watchlistId
dataSchema: requestBody.dataSchema
query: requestBody.query
classificationType: requestBody.classificationType
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/api/monitors/{uuid}'].get
update:
x-apievangelist-phrasing:
intent: Get a monitor's configuration
effect: read
questions:
- What objective and query is a given monitor configured with?
- Can I check whether one specific monitor is active or paused?
instructions:
- text: Show me the configuration of monitor {uuid}.
slots:
uuid: path.uuid
- text: Fetch monitor {uuid} and report its current status.
slots:
uuid: path.uuid
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/api/monitors/{uuid}'].delete
update:
x-apievangelist-phrasing:
intent: Archive a monitor
effect: destructive
questions:
- How do I retire a monitor so it stops showing up in my list?
- Does archiving a monitor hide it from list results?
instructions:
- text: Archive monitor {uuid}.
slots:
uuid: path.uuid
- text: Retire the monitor {uuid} by archiving it.
slots:
uuid: path.uuid
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/api/monitors/{uuid}'].patch
update:
x-apievangelist-phrasing:
intent: Edit a monitor's settings
effect: write
questions:
- Can I change the query or objective of a monitor I already created?
- How do I switch which contact points an existing monitor notifies?
instructions:
- text: Change monitor {uuid} to track {monitoringObjective} with query {query}.
slots:
uuid: path.uuid
monitoringObjective: requestBody.monitoringObjective
query: requestBody.query
- text: Edit monitor {uuid} so it notifies contact points {contactPointIds}.
slots:
uuid: path.uuid
contactPointIds: requestBody.contactPointIds
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/api/monitors/{uuid}/activate'].post
update:
x-apievangelist-phrasing:
intent: Activate a monitor
effect: write
questions:
- How do I turn on a draft or paused monitor so it starts processing news?
- Can I restart a monitor I paused earlier?
instructions:
- text: Activate monitor {uuid}.
slots:
uuid: path.uuid
- text: Start processing for monitor {uuid} again.
slots:
uuid: path.uuid
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/api/monitors/{uuid}/events'].get
update:
x-apievangelist-phrasing:
intent: List events a monitor detected
effect: read
questions:
- What matching articles or events has my monitor detected?
- Can I filter a monitor's detected events by event type or date range?
instructions:
- text: List events from monitor {uuid} sorted by {sortBy} {sortOrder}.
slots:
uuid: path.uuid
sortBy: query.sortBy
sortOrder: query.sortOrder
- text: Show {eventType} events detected by monitor {uuid} since {from}, sorted by {sortBy} {sortOrder}.
slots:
eventType: query.eventType
uuid: path.uuid
from: query.from
sortBy: query.sortBy
sortOrder: query.sortOrder
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/api/monitors/{uuid}/newsletters'].get
update:
x-apievangelist-phrasing:
intent: List a monitor's newsletter digests
effect: read
questions:
- Where can I read the newsletter digests my monitor has produced?
- Can I search a monitor's newsletters by title?
instructions:
- text: List newsletters generated by monitor {uuid}, sorted by {sortBy} {sortOrder}.
slots:
uuid: path.uuid
sortBy: query.sortBy
sortOrder: query.sortOrder
- text: Find newsletters titled {title} for monitor {uuid}, ordered by {sortBy} {sortOrder}.
slots:
title: query.title
uuid: path.uuid
sortBy: query.sortBy
sortOrder: query.sortOrder
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/api/monitors/{uuid}/pause'].post
update:
x-apievangelist-phrasing:
intent: Pause a monitor
effect: write
questions:
- How do I temporarily stop a monitor without archiving it?
- Is there a way to halt a monitor's processing pipeline for now?
instructions:
- text: Pause monitor {uuid}.
slots:
uuid: path.uuid
- text: Stop monitor {uuid} from processing for the time being.
slots:
uuid: path.uuid
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/api/monitors/{uuid}/summary'].get
update:
x-apievangelist-phrasing:
intent: List a monitor's AI summaries
effect: read
questions:
- What AI-generated summaries has my monitor written about the content it matched?
- Can I get only the monitor summaries produced in a certain date window?
instructions:
- text: List AI summaries for monitor {uuid} sorted by {sortBy} {sortOrder}.
slots:
uuid: path.uuid
sortBy: query.sortBy
sortOrder: query.sortOrder
- text: Show summaries from monitor {uuid} between {from} and {to}, sorted by {sortBy} {sortOrder}.
slots:
uuid: path.uuid
from: query.from
to: query.to
sortBy: query.sortBy
sortOrder: query.sortOrder
method: generated
generated: '2026-10-01'