Perigon API Best Practices
Comprehensive guide for building with the Perigon News Intelligence API. Covers all endpoints, query patterns, and integration best practices.
When to Apply
Reference these guidelines when:
- Searching or filtering news articles by keyword, topic, category, date, source, sentiment, or location
- Tracking evolving news stories and clustered article groups
- Generating AI-powered summaries of news coverage
- Performing semantic/vector search over news articles or Wikipedia content
- Querying the Wikipedia knowledge base for structured page data
- Looking up people, companies, journalists, or media sources
- Browsing available topics and categories
- Building dashboards, alerts, or monitoring tools powered by news data
- Integrating Perigon into any application or AI agent workflow
API Overview
Base URL: https://api.perigon.io
| Endpoint | Method | Purpose |
|---|---|---|
/v1/articles/all | GET | Search and filter news articles with rich parameters |
/v1/stories/all | GET | Clustered news stories with summaries and metadata |
/v1/summarize | POST | AI-powered summarization over matched articles |
/v1/vector/news/all | POST | Semantic/vector search over news articles |
/v1/wikipedia/all | GET | Search and filter Wikipedia pages |
/v1/vector/wikipedia/all | POST | Semantic/vector search over Wikipedia content |
/v1/people/all | GET | People mentioned in the news (650k+ database) |
/v1/companies/all | GET | Company data with financial metadata |
/v1/journalists/all | GET | Journalist profiles (230k+ database) |
/v1/journalists/{id} | GET | Single journalist by ID |
/v1/sources/all | GET | Media sources database (200k+ sources) |
/v1/topics/all | GET | Topics taxonomy browser |
Authentication
The API key can be passed in two ways:
- Query parameter:
?apiKey=YOUR_API_KEY - Header:
x-api-key: YOUR_API_KEY
Best practices:
- Store the API key in an environment variable (e.g.,
PERIGON_API_KEY). Never hardcode it. - Prefer the header method (
x-api-key) to keep keys out of URLs and logs. - Get your API key at perigon.io.
Endpoint Selection Guide
Choose the right endpoint based on the task:
Need individual articles? → /v1/articles/all
Need grouped stories with summaries? → /v1/stories/all
Need an AI-generated summary of coverage? → /v1/summarize
Need semantic similarity search for news? → /v1/vector/news/all
Need Wikipedia knowledge? → /v1/wikipedia/all
Need semantic search over Wikipedia? → /v1/vector/wikipedia/all
Need person/company/journalist/source info? → /v1/people|companies|journalists|sources/all
Need to browse available topics? → /v1/topics/all
Core Query Patterns
Text Search (q parameter)
The q parameter searches across title, description, and content. It supports:
- Boolean operators:
AND,OR,NOT - Exact phrases:
"climate change" - Wildcards:
*(multiple chars),?(single char) - Combining:
"electric vehicles" AND (Tesla OR Rivian) NOT recalls
Date Filtering
from/to— Filter by publication date (ISO 8601 oryyyy-mm-dd)addDateFrom/addDateTo— Filter by ingestion daterefreshDateFrom/refreshDateTo— Filter by last-updated date
Pagination
page— Page number (starts at 0)size— Results per page- Set
showNumResults=trueto get total counts (slightly slower)
Sentiment Filtering
Filter by sentiment scores (0.0 to 1.0):
positiveSentimentFrom/positiveSentimentTonegativeSentimentFrom/negativeSentimentToneutralSentimentFrom/neutralSentimentTo
Array Filters (OR logic)
Many filters accept arrays and combine with OR logic:
category, topic, source, language, country, label, personName, companyDomain, companySymbol, journalistId, medium, sourceGroup
Exclude Filters (AND-exclude logic)
Prefix any array filter with exclude to remove matches:
excludeCategory, excludeTopic, excludeSource, excludeLanguage, etc.
Vector Search (Semantic)
For natural language queries that don't map well to keyword search, use the vector endpoints:
News: POST /v1/vector/news/all — searches articles from the last 6 months by semantic similarity.
Wikipedia: POST /v1/vector/wikipedia/all — searches Wikipedia page sections by semantic similarity.
Both accept a prompt (natural language query), page, size, and a filter object for structured filtering with nested AND/OR/NOT logic.
How to Use References
Read individual reference files for detailed endpoint documentation:
references/authentication.md — API key setup and security
references/articles-search.md — /v1/articles/all deep dive
references/stories-clustering.md — /v1/stories/all deep dive
references/smart-summaries.md — /v1/summarize deep dive
references/vector-search.md — /v1/vector/news/all and /v1/vector/wikipedia/all
references/wikipedia-knowledge.md — /v1/wikipedia/all deep dive
references/people-companies.md — /v1/people/all and /v1/companies/all
references/journalists-sources.md — /v1/journalists/all and /v1/sources/all
references/topics-categories.md — /v1/topics/all and category taxonomy
references/pagination-filtering.md — Common query patterns and pagination
references/error-handling.md — HTTP status codes and retry logic
references/rate-limits.md — Rate limit management
Each reference file contains:
- Endpoint URL and HTTP method
- All query/body parameters with types and descriptions
- Example requests (curl) and response JSON
- Common patterns and best practices
- When to use this endpoint vs. alternatives
Best Practices Summary
- Start narrow, then broaden — Use specific filters first, then relax constraints if results are too few.
- Prefer
from/tooveraddDateFrom/addDateTofor publication-date filtering unless you specifically need ingestion-date filtering. - Use
showReprints=falseto deduplicate wire-service content (AP, Reuters) that appears on multiple sites. - Use
sourceGroup(e.g.,top100,top25tech) for quality-filtered results. - Combine endpoints — Use
/v1/stories/allto find story clusters, then/v1/articles/allwithclusterIdfor all articles in a story. - Use vector search for intent-based queries — When the user's query is conversational or conceptual rather than keyword-based.
- Use Wikipedia endpoints for factual background — Combine with news search to enrich coverage with encyclopedic context.
- Handle pagination properly — Always check
numResultsand iterate pages when building comprehensive datasets. - Cache strategically — News data changes frequently, but entity data (people, companies, sources) changes slowly.
- Respect rate limits — Implement exponential backoff on 429 responses.