Perigon · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Perigon News & Stories API
9 actions
9 updates
phrasing
extends
openapi/perigon-news-stories-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 9
$.info
$.paths['/v1/articles/all'].get
$.paths['/v1/articles/refresh/jobs'].post
$.paths['/v1/articles/refresh/jobs/{id}'].get
$.paths['/v1/articles/refresh/peek'].post
$.paths['/v1/stories/all'].get
$.paths['/v1/stories/history'].get
$.paths['/v1/stories/stats'].get
$.paths['/v1/vector/news/all'].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 Perigon News & Stories API
version: 1.0.0
extends: openapi/perigon-news-stories-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/articles/all'].get
update:
x-apievangelist-phrasing:
intent: Search news articles
effect: read
questions:
- How do I search news articles by keyword, source and date range?
- Can I find articles that mention a specific company or person?
- Is it possible to filter news articles by sentiment or language?
instructions:
- text: Find news articles about {q} published since {from}.
slots:
q: query.q
from: query.from
- text: Search articles mentioning {companyName} from {source}.
slots:
companyName: query.companyName
source: query.source
- text: Get {language} articles in category {category} sorted by {sortBy}.
slots:
language: query.language
category: query.category
sortBy: query.sortBy
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/articles/refresh/jobs'].post
update:
x-apievangelist-phrasing:
intent: Queue articles for a background refresh
effect: write
questions:
- How do I ask for updated data on a batch of articles I already have?
- Can I schedule a refresh for articles that aren't in the fresh cache yet?
instructions:
- text: Submit a refresh job for articles {articleIds}.
slots:
articleIds: requestBody.articleIds
- text: Start a background refresh of article IDs {articleIds} and give me the job id.
slots:
articleIds: requestBody.articleIds
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/articles/refresh/jobs/{id}'].get
update:
x-apievangelist-phrasing:
intent: Check an article refresh job's status
effect: read
questions:
- Is my article refresh job finished yet?
- Can I see partial results from a refresh job while it is still running?
instructions:
- text: Check the status of refresh job {id}.
slots:
id: path.id
- text: Get the per-article results computed so far for refresh job {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/articles/refresh/peek'].post
update:
x-apievangelist-phrasing:
intent: Peek at cached refreshed article data
effect: read
questions:
- Can I see already-cached refreshed article data without starting a new job?
- What refreshed data is available right now for some articles, best effort?
instructions:
- text: Peek at cached refresh data for articles {articleIds} without queuing a job.
slots:
articleIds: requestBody.articleIds
- text: Return whatever refreshed data is already cached for {articleIds}.
slots:
articleIds: requestBody.articleIds
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/stories/all'].get
update:
x-apievangelist-phrasing:
intent: Search clustered news stories
effect: read
questions:
- How can I follow an evolving news story rather than individual articles?
- Which top stories right now involve a particular company?
- Can I limit stories to ones covered by a minimum number of unique sources?
instructions:
- text: Find news stories about {q} updated since {updatedFrom}.
slots:
q: query.q
updatedFrom: query.updatedFrom
- text: Show stories involving {companyName} covered by at least {minUniqueSources} sources.
slots:
companyName: query.companyName
minUniqueSources: query.minUniqueSources
- text: List top stories in {country} for topic {topic}.
slots:
country: query.country
topic: query.topic
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/stories/history'].get
update:
x-apievangelist-phrasing:
intent: Get a story's past versions and changelog
effect: read
questions:
- How has a news story's summary changed over time?
- Can I see the changelog for previous versions of a story cluster?
instructions:
- text: Show the version history of story {clusterId}.
slots:
clusterId: query.clusterId
- text: Get earlier versions of story {clusterId} between {from} and {to} that include a changelog.
slots:
clusterId: query.clusterId
from: query.from
to: query.to
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/stories/stats'].get
update:
x-apievangelist-phrasing:
intent: Count stories over time
effect: read
questions:
- How many news stories about a topic appeared each day this month?
- Can I chart story volume by week or by hour?
instructions:
- text: Count stories about {q} grouped by {splitBy}.
slots:
q: query.q
splitBy: query.splitBy
- text: Give me story counts per {splitBy} for {companyName} since {from}.
slots:
splitBy: query.splitBy
companyName: query.companyName
from: query.from
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/vector/news/all'].post
update:
x-apievangelist-phrasing:
intent: Semantic search over recent news
effect: read
questions:
- Can I search news with a natural-language question instead of keywords?
- How far back does the semantic news search go?
instructions:
- text: Run a semantic news search for {prompt}.
slots:
prompt: requestBody.prompt
- text: Find the news articles most relevant to {prompt} published after {pubDateFrom}.
slots:
prompt: requestBody.prompt
pubDateFrom: requestBody.pubDateFrom
method: generated
generated: '2026-10-01'