cd /api · home api
wpnews API version v1 last-modified 2026-05-18 base-url api.wpnews.pro

REST API Reference

Programmatic access to wpnews.pro's curated AI/tech news index. JSON + CORS · OpenAI tool definitions out of the box · MCP server included. Free tier 10k req/day, no card required.

endpoints 141 format JSON auth X-API-Key rate-limit 10k/day free latency ~24ms p50 updated 2d ago

Overview overview

The wpnews API exposes the same index that powers the website: AI/tech articles, topics, entities, comparisons, and trends. Everything is JSON over HTTPS with CORS open to the world — you can call it from a browser, a curl script, an LLM tool, or an MCP server without proxy.

The base URL is https://api.wpnews.pro. Most endpoints live under the /api/v1 prefix (a few utility routes sit at the root). The full machine-readable contract is at https://api.wpnews.pro/openapi.json, with an interactive explorer at https://api.wpnews.pro/docs.

Design principles

  • Offset-paginated. List endpoints take ?limit= and ?offset= (limit caps at 100).
  • ETag-aware. Honour If-None-Match on cacheable GETs — you'll get 304s for free.
  • Tool-ready. Pre-built tool definitions at /api/v1/openai-tools.json and /api/v1/anthropic-tools.json, plus a Streamable-HTTP MCP server at https://wpnews.pro/mcp.
  • CORS-open. Call it from a browser, a curl script, or an agent runtime — no proxy required.
Quickstart: grab a free key from /pricing, then curl -H "X-API-Key: $KEY" https://api.wpnews.pro/api/v1/articles.

Authentication auth

Authenticate every request with an API key in the X-API-Key header. Keys are scoped per-environment and rotate on demand.

api-keys

GET/api/v1/me200·application/json
Verify your key and read its info + usage history. (Example response below — shape is illustrative.)
$curl https://api.wpnews.pro/api/v1/me \
    -H "X-API-Key: $WPNEWS_KEY"

response

{
  "data": {
    "key_id": "wpk_2f7a91",
    "tier": "pro",
    "quota": { "limit": 1000000, "used": 12483, "resets": "2026-05-21T00:00:00Z" },
    "scopes": ["read:news", "read:topics", "write:webhooks"]
  },
  "meta": { "request_id": "req_8c0d23" }
}

rate-limits

Each tier has a per-day quota and a burst limit. Headers X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset ship on every response.

tierdaily quotaburstconcurrent
free10,00020 / sec4
pro1,000,000120 / sec32
enterpriseunlimitedcustomcustom

Endpoints endpoints

Live reference pulled from https://api.wpnews.pro/openapi.json. Every endpoint returns JSON over HTTPS with CORS open to the world.

articles

GET/api/v1/articlesapplication/json
List Articles

parameters

nameintypereqdescription
langquerystringno (default en)
topicquerystringno
limitqueryintegerno (default 20)
offsetqueryintegerno (default 0)
date_fromquerystringnoFilter articles published on or after YYYY-MM-DD or ISO8601 datetime
date_toquerystringnoFilter articles published on or before YYYY-MM-DD or ISO8601 datetime
sincequerystringnoISO8601 datetime — return only articles newer than this (for agent polling). Overrides date_from.
sentimentquerystringnoFilter by sentiment: positive, negative, or neutral
POST/api/v1/articlesapplication/json
Create Or Update Article
GET/api/v1/articles/archiveapplication/json
Articles Archive Index — List of months that have published articles, sorted newest-first.

parameters

nameintypereqdescription
langquerystringno (default en)
GET/api/v1/articles/archive/{year}/{month}application/json
Articles Archive Month — All articles published in a given year/month, paginated.

parameters

nameintypereqdescription
yearpathintegeryes
monthpathintegeryes
langquerystringno (default en)
limitqueryintegerno (default 50)
offsetqueryintegerno (default 0)
GET/api/v1/articles/batchapplication/json
Articles Batch — Fetch multiple articles in one call by comma-separated slugs (tool #71).

parameters

nameintypereqdescription
slugsquerystringyesComma-separated article slugs (max 20)
langquerystringno (default en)
POST/api/v1/articles/batchapplication/json
Batch Fetch Articles — Fetch multiple articles by slug in a single request (max 50).
GET/api/v1/articles/exportapplication/json
Articles Export — Bulk article export — JSONL or CSV.

parameters

nameintypereqdescription
langquerystringno (default en)
topicquerystringno
sentimentquerystringno
date_fromquerystringnoStart date YYYY-MM-DD
date_toquerystringnoEnd date YYYY-MM-DD
limitqueryintegernoMax articles — Pro allows up to 5000 (default 500)
formatquerystringnoOutput format: jsonl or csv (default jsonl)
include_bodyquerybooleannoInclude full article body (body_md). Pro only. (default False)
GET/api/v1/articles/featuredapplication/json
Articles Featured — Return top-quality articles ranked by entity+topic density (tool #64).

parameters

nameintypereqdescription
langquerystringno (default en)
hoursqueryintegernoLook-back window in hours (default 24)
limitqueryintegernoMax articles to return (default 5)
GET/api/v1/articles/highlightsapplication/json
Articles Highlights — Top articles ranked by entity density (entity count × topic count).

parameters

nameintypereqdescription
langquerystringno (default en)
daysqueryintegernoLook-back window (1-30 days) (default 7)
limitqueryintegernoNumber of highlights (1-20) (default 5)
sentimentquerystringnoFilter: positive, negative, neutral
GET/api/v1/articles/hotapplication/json
Articles Hot — Breaking news radar — freshness × quality ranked articles (tool #68).

parameters

nameintypereqdescription
langquerystringno (default en)
hoursqueryintegernoLook-back window in hours (default 6)
limitqueryintegernoMax articles to return (default 10)
GET/api/v1/articles/hourly-activityapplication/json
Hourly Activity — Hourly article publication counts for sparklines and anomaly detection (tool #70).

parameters

nameintypereqdescription
langquerystringno (default en)
hoursqueryintegernoLook-back window in hours (1-168, default 24) (default 24)
GET/api/v1/articles/recentapplication/json
Articles Recent — Return articles published in the last N hours — optimised for agent polling.

parameters

nameintypereqdescription
langquerystringno (default en)
hoursqueryintegernoLook-back window in hours (1–168) (default 6)
limitqueryintegernoMax articles to return (1–50) (default 10)
topicquerystringno
GET/api/v1/articles/sinceapplication/json
Articles Since — Return articles published AFTER a given timestamp checkpoint — perfect for agent polling loops.

parameters

nameintypereqdescription
tsquerystringyesISO 8601 timestamp checkpoint, e.g. 2026-05-19T14:00:00Z
langquerystringno (default en)
limitqueryintegernoMax articles to return (default 20)
topicquerystringno
GET/api/v1/articles/streamapplication/json
Articles Stream — Stream articles as NDJSON (newline-delimited JSON).

parameters

nameintypereqdescription
langquerystringno (default en)
topicquerystringno
limitqueryintegerno (default 50)
sentimentquerystringno
GET/api/v1/articles/{slug}application/json
Get Article Detail — Return full article data as clean JSON (not JSON-LD).

parameters

nameintypereqdescription
slugpathstringyes
langquerystringno (default en)
GET/api/v1/articles/{slug}/clusterapplication/json
Get Article Cluster — Articles covering the same story as `slug` within ±`hours`.

parameters

nameintypereqdescription
slugpathstringyes
langquerystringno (default en)
hoursqueryintegerno (default 48)
limitqueryintegerno (default 5)
GET/api/v1/articles/{slug}/contextapplication/json
Article Context — Enriched article context for RAG and LLM injection.

parameters

nameintypereqdescription
slugpathstringyes
langquerystringno (default en)
include_relatedquerybooleannoInclude related articles section (default True)
include_entity_briefsquerybooleannoInclude brief for top 2 entities (Pro: adds ~200 tokens) (default False)
formatquerystringnojson or markdown (default json)
GET/api/v1/articles/{slug}/neighborsapplication/json
Article Neighbors — Previous and next article for sequential reading by agents.

parameters

nameintypereqdescription
slugpathstringyes
langquerystringno (default en)
GET/api/v1/articles/{slug}/reactionsapplication/json
Get Reactions — Get emoji reaction counts for an article.

parameters

nameintypereqdescription
slugpathstringyes
POST/api/v1/articles/{slug}/reactionsapplication/json
Add Reaction — Add an emoji reaction to an article (rate-limited).

parameters

nameintypereqdescription
slugpathstringyes
GET/api/v1/articles/{slug}/relatedapplication/json
Get Related Articles — Return articles related to the given slug (topic+entity overlap, ranked).

parameters

nameintypereqdescription
slugpathstringyes
langquerystringno (default en)
limitqueryintegerno (default 4)
GET/api/v1/articles/{slug}/similarapplication/json
Get Similar Articles — Return articles most similar to the given article (Pro).

parameters

nameintypereqdescription
slugpathstringyes
langquerystringno (default en)
limitqueryintegerno (default 5)
POST/api/v1/articles/{slug}/viewapplication/json
Record View — Record a page view for analytics (beacon-safe, no body returned).

parameters

nameintypereqdescription
slugpathstringyes
langquerystringno (default en)
GET/api/v1/searchapplication/json
Search Articles — Full-text search across title, summary, and body.

parameters

nameintypereqdescription
qquerystringyes
langquerystringno (default en)
limitqueryintegerno (default 20)
offsetqueryintegerno (default 0)
topicquerystringnoFilter by topic slug (default )
date_fromquerystringnoYYYY-MM-DD — earliest published date (default )
date_toquerystringnoYYYY-MM-DD — latest published date (default )
highlightquerybooleannoInclude title_hl and summary_snippet fields (default False)
GET/api/v1/search/suggestapplication/json
Search Suggest — Lightweight autocomplete — returns title+slug only, no rate-limit key required.

parameters

nameintypereqdescription
qquerystringno (default )
langquerystringno (default en)
limitqueryintegerno (default 6)

topics

GET/api/v1/topicsapplication/json
List Topics

parameters

nameintypereqdescription
langquerystringno (default en)
GET/api/v1/topics/compareapplication/json
Topics Compare — Side-by-side topic coverage comparison.

parameters

nameintypereqdescription
slugsquerystringyesComma-separated topic slugs, 2–4 (e.g. artificial-intelligence,cybersecurity)
langquerystringno (default en)
daysqueryintegernoLook-back window in days (default 30)
GET/api/v1/topics/compare-timelineapplication/json
Topics Compare Timeline — Side-by-side daily article count for 2–4 topics over the past N days.

parameters

nameintypereqdescription
slugsquerystringyesComma-separated topic slugs (2-4), e.g. artificial-intelligence,cybersecurity
langquerystringno (default en)
daysqueryintegerno (default 30)
GET/api/v1/topics/emergingapplication/json
Topics Emerging — Detect newly emerging topics — those with negligible prior coverage that are gaining traction.

parameters

nameintypereqdescription
langquerystringno (default en)
windowqueryintegernoRecent window in days to evaluate (default 7)
baselinequeryintegernoBaseline window in days for comparison (default 30)
min_recentqueryintegernoMin articles in recent window to qualify (default 2)
GET/api/v1/topics/heatmapapplication/json
Topics Heatmap — Topic coverage heatmap — intensity matrix for all topics over N days.

parameters

nameintypereqdescription
langquerystringno (default en)
daysqueryintegernoNumber of days (7-90) (default 30)
GET/api/v1/topics/momentumapplication/json
Topics Momentum — Topic momentum: compare article volume this week vs last week.

parameters

nameintypereqdescription
langquerystringno (default en)
daysqueryintegerno (default 14)
GET/api/v1/topics/suggestapplication/json
Topics Suggest — Fuzzy-match topic slugs from a free-text query.

parameters

nameintypereqdescription
qquerystringyesFree-text query to match topic slugs
langquerystringno (default en)
limitqueryintegerno (default 5)
GET/api/v1/topics/{slug}application/json
Topic Detail — Metadata for a single topic: article count, recent articles, top entities.

parameters

nameintypereqdescription
slugpathstringyes
langquerystringno (default en)
GET/api/v1/topics/{slug}/articlesapplication/json
Topic Articles — Articles for a specific topic slug, newest first.

parameters

nameintypereqdescription
slugpathstringyes
langquerystringno (default en)
limitqueryintegerno (default 20)
offsetqueryintegerno (default 0)
GET/api/v1/topics/{slug}/digestapplication/json
Topic Digest — Single-call topic digest: top articles + entities + sentiment + momentum.

parameters

nameintypereqdescription
slugpathstringyes
langquerystringno (default en)
hoursqueryintegerno (default 48)
limitqueryintegerno (default 5)
GET/api/v1/topics/{slug}/entitiesapplication/json
Topic Entities — Top entities mentioned in a topic's articles over the last N days.

parameters

nameintypereqdescription
slugpathstringyes
langquerystringno (default en)
limitqueryintegerno (default 15)
daysqueryintegerno (default 30)
GET/api/v1/topics/{slug}/keywordsapplication/json
Topic Keywords — Top keywords and bigrams extracted from article titles in this topic.

parameters

nameintypereqdescription
slugpathstringyes
langquerystringno (default en)
daysqueryintegerno (default 14)
limitqueryintegerno (default 30)
GET/api/v1/topics/{slug}/narrativeapplication/json
Topic Narrative — Story arc for a topic: how the narrative has evolved over time.

parameters

nameintypereqdescription
slugpathstringyes
langquerystringno (default en)
daysqueryintegerno (default 30)
GET/api/v1/topics/{slug}/pulseapplication/json
Topic Pulse — Ultra-compact topic snapshot — one sentence, ready for agent system prompts.

parameters

nameintypereqdescription
slugpathstringyes
langquerystringno (default en)
hoursqueryintegernoLook-back window in hours (1-72) (default 24)
GET/api/v1/topics/{slug}/relatedapplication/json
Topic Related — Topics that most frequently co-occur with the given topic.

parameters

nameintypereqdescription
slugpathstringyes
langquerystringno (default en)
daysqueryintegerno (default 30)
limitqueryintegerno (default 10)
GET/api/v1/topics/{slug}/reportapplication/json
Topic Report — Analytics report for a topic: 30-day overview with WoW comparison.

parameters

nameintypereqdescription
slugpathstringyes
langquerystringno (default en)
daysqueryintegerno (default 30)
GET/api/v1/topics/{slug}/timelineapplication/json
Topic Timeline — Daily article count timeline for a topic — useful for trend charts.

parameters

nameintypereqdescription
slugpathstringyes
langquerystringno (default en)
daysqueryintegernoNumber of days to show (1-90) (default 14)
GET/api/v1/topics/{slug}/top-entitiesapplication/json
Topic Top Entities — Top named entities (persons, orgs, products) mentioned in a topic's articles.

parameters

nameintypereqdescription
slugpathstringyes
langquerystringno (default en)
daysqueryintegerno (default 14)
limitqueryintegerno (default 20)

entities

GET/api/v1/entitiesapplication/json
List Entities — All named entities (companies, people, orgs) mentioned across articles.

parameters

nameintypereqdescription
langquerystringno (default en)
min_countqueryintegerno (default 2)
limitqueryintegerno (default 100)
GET/api/v1/entities/compareapplication/json
Entities Compare — Side-by-side coverage comparison for multiple entities.

parameters

nameintypereqdescription
namesquerystringyesComma-separated entity names, e.g. OpenAI,Anthropic,Google
langquerystringno (default en)
daysqueryintegerno (default 30)
GET/api/v1/entities/graphapplication/json
Entities Graph — Entity co-occurrence graph — edges represent entities mentioned in the same articles.

parameters

nameintypereqdescription
langquerystringno (default en)
daysqueryintegerno (default 30)
min_cooccurrencesqueryintegernoMinimum shared articles (default 3)
limitqueryintegernoMax edges to return (default 50)
GET/api/v1/entities/searchapplication/json
Entities Search — Search entity names by partial match (case-insensitive).

parameters

nameintypereqdescription
qquerystringyesPartial name to search for
langquerystringno (default en)
min_countqueryintegernoMinimum mention count (default 1)
limitqueryintegerno (default 10)
GET/api/v1/entities/trendingapplication/json
Trending Entities — Entities trending by mention velocity over the past N days.

parameters

nameintypereqdescription
langquerystringno (default en)
daysqueryintegerno (default 7)
limitqueryintegerno (default 20)
GET/api/v1/entities/{name}/articlesapplication/json
Entity Articles — Articles mentioning a specific entity, newest first.

parameters

nameintypereqdescription
namepathstringyes
langquerystringno (default en)
limitqueryintegerno (default 20)
offsetqueryintegerno (default 0)
GET/api/v1/entities/{name}/briefapplication/json
Entity Brief — Single-call entity brief: recent articles + sentiment + co-occurrences + coverage trend.

parameters

nameintypereqdescription
namepathstringyes
langquerystringno (default en)
hoursqueryintegerno (default 72)
limitqueryintegerno (default 5)
GET/api/v1/entities/{name}/cooccurrencesapplication/json
Entity Cooccurrences — Entities frequently co-mentioned with `name` in the same articles.

parameters

nameintypereqdescription
namepathstringyes
langquerystringno (default en)
limitqueryintegerno (default 8)
GET/api/v1/entities/{name}/news-flashapplication/json
Entity News Flash — Breaking news for a specific entity — articles published in the last 1-12 hours.

parameters

nameintypereqdescription
namepathstringyes
langquerystringno (default en)
hoursqueryintegernoLook-back window in hours (1-12) (default 2)
limitqueryintegerno (default 10)
GET/api/v1/entities/{name}/pulseapplication/json
Entity Pulse — Ultra-compact entity snapshot — one sentence, ~20 tokens, ready for system prompts.

parameters

nameintypereqdescription
namepathstringyes
langquerystringno (default en)
hoursqueryintegernoLook-back window in hours (1-72) (default 24)
GET/api/v1/entities/{name}/reportapplication/json
Entity Report — 30-day analytics report for a named entity (company, person, product).

parameters

nameintypereqdescription
namepathstringyes
langquerystringno (default en)
daysqueryintegerno (default 30)
GET/api/v1/entities/{name}/sentimentapplication/json
Entity Sentiment — Sentiment breakdown of articles mentioning a specific entity.

parameters

nameintypereqdescription
namepathstringyes
langquerystringno (default en)
daysqueryintegerno (default 30)
GET/api/v1/entities/{name}/timelineapplication/json
Entity Timeline — Daily article count mentioning `name` for the past N days.

parameters

nameintypereqdescription
namepathstringyes
langquerystringno (default en)
daysqueryintegerno (default 30)

intelligence

GET/api/v1/intelligence/eventsapplication/json
List Intelligence Events — List structured AI intelligence events (model releases, funding rounds, OSS releases, etc.).

parameters

nameintypereqdescription
event_typequerystringnoFilter by event type, e.g. model_release
entityquerystringnoFilter by entity slug
daysqueryintegernoLimit to events seen in the last N days
sincequerystringnoISO datetime lower bound on last_seen_at
min_confidencequerynumbernoMinimum confidence score (0–1)
limitqueryintegerno (default 20)
offsetqueryintegerno (default 0)
GET/api/v1/intelligence/events/{event_id}application/json
Get Intelligence Event — Get a single intelligence event by ID, including source articles and topics.

parameters

nameintypereqdescription
event_idpathintegeryes

stats

GET/api/v1/statsapplication/json
Stats — Public site statistics — cached 5 minutes.
GET/api/v1/stats/risingapplication/json
Stats Rising — Articles with the highest view velocity: views gained today vs yesterday.

parameters

nameintypereqdescription
langquerystringno (default en)
limitqueryintegerno (default 10)
GET/api/v1/stats/sentimentapplication/json
Stats Sentiment — Daily sentiment breakdown for the past N days (max 90).

parameters

nameintypereqdescription
langquerystringno (default en)
daysqueryintegerno (default 14)
GET/api/v1/stats/topicsapplication/json
Stats Topics — Article count per topic, sorted by count descending. Cached 5 minutes.

parameters

nameintypereqdescription
langquerystringno (default en)
GET/api/v1/stats/topics/trendsapplication/json
Stats Topics Trends — Daily article counts for the top `limit` topics over the past `days` days.

parameters

nameintypereqdescription
langquerystringno (default en)
daysqueryintegerno (default 7)
limitqueryintegerno (default 12)
GET/api/v1/stats/viewsapplication/json
Stats Views — Top articles by view count for the past N days.

parameters

nameintypereqdescription
langquerystringno (default en)
daysqueryintegerno (default 7)
limitqueryintegerno (default 20)
GET/stats/usageapplication/json
Stats Usage — Admin-only durable usage metering (the x402 billing-accounting layer).

digest

GET/api/v1/digest/agentapplication/json
Agent Digest — Compact news digest optimised for LLM context windows.

parameters

nameintypereqdescription
langquerystringno (default en)
hoursqueryintegernoLook-back window in hours (1-168, default 24) (default 24)
max_articlesqueryintegernoMax articles to include (default 30)
GET/api/v1/digest/customapplication/json
Custom Digest — Personalised digest filtered by specific topics and/or entity names.

parameters

nameintypereqdescription
langquerystringno (default en)
topicsquerystringnoComma-separated topic slugs to include
entitiesquerystringnoComma-separated entity names to include
hoursqueryintegerno (default 24)
limitqueryintegerno (default 10)
GET/api/v1/digest/dailyapplication/json
Daily Digest — Structured daily digest — top article per topic for a given date.

parameters

nameintypereqdescription
langquerystringno (default en)
datequerystringnoISO date YYYY-MM-DD (default: today UTC)
GET/api/v1/digest/discordapplication/json
Discord Digest — Discord webhook embeds formatted news digest — ready to POST to a Discord webhook.

parameters

nameintypereqdescription
langquerystringno (default en)
hoursqueryintegernoLook-back window in hours (default 24)
limitqueryintegernoMax articles to include (1-15) (default 5)
topicquerystringnoFilter by topic slug
GET/api/v1/digest/emailapplication/json
Email Digest — HTML email digest — inline-CSS, ready for SendGrid, Mailchimp, Resend, or AWS SES.

parameters

nameintypereqdescription
langquerystringno (default en)
hoursqueryintegerno (default 24)
limitqueryintegerno (default 6)
titlequerystringno (default AI & Tech News Digest)
accentquerystringnoHex accent color without # (default 2563eb)
GET/api/v1/digest/slackapplication/json
Slack Digest — Slack Block Kit formatted news digest — ready to POST to a Slack webhook.

parameters

nameintypereqdescription
langquerystringno (default en)
hoursqueryintegernoLook-back window in hours (default 24)
limitqueryintegernoMax articles to include (1-20) (default 5)
topicquerystringnoFilter by topic slug
GET/api/v1/digest/teamsapplication/json
Teams Digest — Microsoft Teams Adaptive Card digest — ready to POST to a Teams incoming webhook.

parameters

nameintypereqdescription
langquerystringno (default en)
hoursqueryintegernoLook-back window in hours (default 24)
limitqueryintegernoMax articles to include (1-15) (default 5)
topicquerystringnoFilter by topic slug
GET/api/v1/digest/voiceapplication/json
Voice Digest — TTS-ready AI news briefing — clean plain-text sentences with no markdown.

parameters

nameintypereqdescription
langquerystringno (default en)
hoursqueryintegernoLook-back window in hours (default 24)
limitqueryintegernoMax stories to include (1-10) (default 5)
topicquerystringnoFilter by topic slug
GET/api/v1/digest/weeklyapplication/json
Weekly Digest — Structured weekly digest — top 3 articles per topic for a given ISO week.

parameters

nameintypereqdescription
langquerystringno (default en)
weekquerystringnoISO week YYYY-Www (default: current week)
GET/api/v1/trendingapplication/json
Get Trending — Top articles by view count over the past N days.

parameters

nameintypereqdescription
langquerystringno (default en)
daysqueryintegerno (default 7)
limitqueryintegerno (default 10)

sources

GET/api/v1/sourcesapplication/json
List Sources — All RSS feed sources ingested by the pipeline.
GET/api/v1/sources/qualityapplication/json
Sources Quality — Source quality metrics — article volume, topic diversity, entity density per source.

parameters

nameintypereqdescription
langquerystringno (default en)
limitqueryintegerno (default 50)

feed

GET/feed/atomapplication/json
Feed Atom — Atom 1.0 feed — supports ?topic= and ?entity= filters.

parameters

nameintypereqdescription
langquerystringno (default en)
topicquerystringno
entityquerystringno
limitqueryintegerno (default 20)
GET/feed/customapplication/json
Custom Rss Feed — Custom RSS 2.0 feed combining multiple topic slugs.

parameters

nameintypereqdescription
topicsquerystringyesComma-separated topic slugs, up to 5
langquerystringno (default en)
limitqueryintegerno (default 20)
GET/feed/entities/{name}application/json
Entity Rss Feed — Canonical per-entity RSS 2.0 feed.

parameters

nameintypereqdescription
namepathstringyes
langquerystringno (default en)
limitqueryintegerno (default 20)
GET/feed/jsonapplication/json
Feed Json Feed — JSON Feed 1.1 — supports ?topic= and ?entity= filters.

parameters

nameintypereqdescription
langquerystringno (default en)
topicquerystringno
entityquerystringno
limitqueryintegerno (default 20)
GET/feed/rssapplication/json
Feed Rss — RSS 2.0 feed — supports ?topic= and ?entity= filters.

parameters

nameintypereqdescription
langquerystringno (default en)
topicquerystringno
entityquerystringno
limitqueryintegerno (default 20)
GET/feed/topics/{slug}application/json
Topic Rss Feed — Canonical per-topic RSS 2.0 feed.

parameters

nameintypereqdescription
slugpathstringyes
langquerystringno (default en)
limitqueryintegerno (default 20)

webhooks

GET/api/v1/webhooksapplication/json
List Webhooks — List registered webhooks for current API key.
POST/api/v1/webhooksapplication/json
Register Webhook — Register a webhook URL (Pro tier required).
DELETE/api/v1/webhooks/{webhook_id}application/json
Delete Webhook — Delete a webhook (owner only).

parameters

nameintypereqdescription
webhook_idpathintegeryes
POST/api/v1/webhooks/{webhook_id}/testapplication/json
Test Webhook — Fire a test payload to the webhook URL and return the HTTP response status.

parameters

nameintypereqdescription
webhook_idpathintegeryes

watchlist

GET/api/v1/watchlist/digestapplication/json
Watchlist Digest — Personalized digest of new articles for all your watched entities and topics.

parameters

nameintypereqdescription
langquerystringno (default en)
hoursqueryintegerno (default 24)
limit_per_itemqueryintegerno (default 5)
GET/api/v1/watchlist/itemsapplication/json
Watchlist List Items — List all watchlist items for the authenticated API key.
POST/api/v1/watchlist/itemsapplication/json
Watchlist Add Item — Add an entity or topic to your watchlist (requires API key).
DELETE/api/v1/watchlist/items/{item_id}application/json
Watchlist Delete Item — Remove an item from your watchlist.

parameters

nameintypereqdescription
item_idpathintegeryes

me

GET/api/v1/meapplication/json
Api Key Info — Return info about the current API key and usage history.

parameters

nameintypereqdescription
daysqueryintegerno (default 30)
GET/api/v1/me/quickstartapplication/json
Api Key Quickstart — Personalised quickstart guide for the current API key — 5 recommended first calls.

parameters

nameintypereqdescription
langquerystringno (default en)

activity-index

GET/api/v1/activity-indexapplication/json
Activity Index — AI news activity index — a single 0-100 score showing today's coverage intensity vs baseline.

parameters

nameintypereqdescription
langquerystringno (default en)
baseline_daysqueryintegernoBaseline window for mean/std calculation (default 30)

adaptive-context

GET/api/v1/adaptive-contextapplication/json
Adaptive Context — Adaptive context loader — auto-selects token budget based on news activity (tool #66).

parameters

nameintypereqdescription
langquerystringno (default en)
force_modequerystringnoOverride auto mode: 'quiet'|'normal'|'surge' (default )

agent-quickstart

GET/api/v1/agent-quickstartapplication/json
Agent Quickstart — Agent-readable quickstart guide — recommended workflow, available tools, and examples.

parameters

nameintypereqdescription
langquerystringno (default en)

alerts

POST/api/v1/alertsapplication/json
Create Alert — Subscribe to keyword alerts via API (no API key required, double opt-in via email).
DELETE/api/v1/alerts/{token}application/json
Delete Alert — Unsubscribe from a keyword alert using the token from the confirmation email.

parameters

nameintypereqdescription
tokenpathstringyes

anomalies

GET/api/v1/anomaliesapplication/json
Coverage Anomalies — Detect statistical anomalies in AI news coverage.

parameters

nameintypereqdescription
langquerystringno (default en)
daysqueryintegernoBaseline window in days (7-30) (default 14)
thresholdquerynumbernoZ-score threshold for spike detection (default 2.0)

anthropic-tools.json

GET/api/v1/anthropic-tools.jsonapplication/json
Anthropic Tools Schema — Anthropic tool_use format — ready to paste into the Anthropic Python SDK tools= parameter.

article

GET/article/{slug}.jsonapplication/json
Article Json

parameters

nameintypereqdescription
slugpathstringyes
langquerystringno (default en)
GET/article/{slug}.mdapplication/json
Article Md

parameters

nameintypereqdescription
slugpathstringyes
langquerystringno (default en)
GET/article/{slug}.txtapplication/json
Article Txt

parameters

nameintypereqdescription
slugpathstringyes
langquerystringno (default en)

bookmarks

GET/api/v1/bookmarksapplication/json
List Bookmarks — List bookmarks for current API key with article metadata.

parameters

nameintypereqdescription
langquerystringno
limitqueryintegerno (default 50)
offsetqueryintegerno (default 0)
POST/api/v1/bookmarksapplication/json
Add Bookmark — Save a bookmark (requires API key; all tiers).
DELETE/api/v1/bookmarks/{slug}application/json
Remove Bookmark — Remove a bookmark by article slug.

parameters

nameintypereqdescription
slugpathstringyes
langquerystringno (default en)

brief

GET/api/v1/briefapplication/json
Smart Brief — Unified smart briefing — top topics + trending entities + recent articles in one call.

parameters

nameintypereqdescription
langquerystringno (default en)
hoursqueryintegerno (default 24)
topicsqueryintegerno (default 5)
articlesqueryintegerno (default 5)

bulletin

GET/api/v1/bulletinapplication/json
Daily Bulletin — Ultra-compact AI news bulletin — ideal for agent briefings and voice interfaces.

parameters

nameintypereqdescription
langquerystringno (default en)
hoursqueryintegernoLook-back window in hours (1-72) (default 24)
itemsqueryintegernoNumber of bullet points (default 5)
formatquerystringnoOutput format: text | markdown | json (default text)

changelog.json

GET/api/v1/changelog.jsonapplication/json
Api Changelog — Machine-readable API changelog.

context

GET/api/v1/contextapplication/json
Context Injection — Ready-to-inject context block for LLM system prompts.

parameters

nameintypereqdescription
langquerystringno (default en)
hoursqueryintegernoLook-back window in hours (default 24)
limitqueryintegernoMax articles to include (default 15)
topicquerystringnoFilter by topic slug
formatquerystringnoOutput format: text | markdown | json (default text)

coverage

GET/api/v1/coverage/gapsapplication/json
Coverage Gaps — Topics with no recent coverage despite established activity.

parameters

nameintypereqdescription
langquerystringno (default en)
hoursqueryintegernoSilence window — topics with no articles in this many hours (default 24)
min_weeklyqueryintegernoMinimum weekly articles to be considered 'established' (default 3)
limitqueryintegerno (default 10)

daily-brief

GET/api/v1/daily-briefapplication/json
Daily Brief — Structured daily AI news brief — one call for newsletter generators and morning briefing agents.

parameters

nameintypereqdescription
langquerystringno (default en)
datequerystringnoYYYY-MM-DD (default: today UTC) (default )
limitqueryintegerno (default 5)

demo

GET/api/v1/demoapplication/json
Demo Endpoint — Keyless demo endpoint — see real wpnews AI output without an API key.

parameters

nameintypereqdescription
langquerystringno (default en)

events

GET/api/v1/eventsapplication/json
Article Events — Server-Sent Events stream of new articles.

parameters

nameintypereqdescription
langquerystringno (default en)
topicquerystringno
since_idqueryintegernoLast seen article ID — poll for articles newer than this (default 0)
limitqueryintegerno (default 20)
POST/api/v1/events/sponsor-clickapplication/json
Sponsor Click — Track sponsor click events in the KPI table.

parameters

nameintypereqdescription
partnerquerystringno (default unknown)

headlines

GET/api/v1/headlinesapplication/json
Get Headlines — Ultra-compact AI news headlines — title + slug only, ~8 tokens per item.

parameters

nameintypereqdescription
langquerystringno (default en)
hoursqueryintegernoLook-back window in hours (default 24)
limitqueryintegernoNumber of headlines (default 20)
topicquerystringnoFilter by topic slug
sentimentquerystringnoFilter by sentiment: positive/negative/neutral

health

GET/healthapplication/json
Health — Deep health check — verifies DB connectivity and returns article counts.

insights

GET/api/v1/insights/weeklyapplication/json
Insights Weekly — Weekly intelligence brief — structured summary of the past 7 days in AI news.

parameters

nameintypereqdescription
langquerystringno (default en)

keywords

GET/api/v1/keywords/trendingapplication/json
Trending Keywords — Trending keywords and phrases extracted from recent article titles.

parameters

nameintypereqdescription
langquerystringno (default en)
daysqueryintegernoLook-back window in days (default 7)
limitqueryintegernoMax keywords to return (default 30)
bigramsquerybooleannoInclude two-word phrases (default True)

market-pulse

GET/api/v1/market-pulseapplication/json
Market Pulse — AI news market pulse — financial-style snapshot of the AI ecosystem.

parameters

nameintypereqdescription
langquerystringno (default en)

mcp

POST/mcp/messagesapplication/json
Mcp Messages — MCP message endpoint — receives JSON-RPC 2.0 requests for a session.

parameters

nameintypereqdescription
sessionIdquerystringyes
GET/mcp/sseapplication/json
Mcp Sse — MCP SSE transport endpoint — clients connect here to start a session.
GET/mcp/toolsapplication/json
Mcp Tools List — Convenience endpoint — list available MCP tools as plain JSON (no SSE required).

morning-briefing

GET/api/v1/morning-briefingapplication/json
Morning Briefing — Agent morning briefing — single call for full situational awareness (tool #69).

parameters

nameintypereqdescription
langquerystringno (default en)
hoursqueryintegernoHot articles look-back window (default 6)

news-flash

GET/api/v1/news-flashapplication/json
News Flash — Ultra-fresh articles published in the last 1–12 hours.

parameters

nameintypereqdescription
langquerystringno (default en)
hoursqueryintegernoLook-back window in hours (1–12) (default 2)
limitqueryintegernoMax articles to return (default 10)

news-velocity

GET/api/v1/news-velocityapplication/json
News Velocity — Real-time news velocity — publication rate vs historical baseline (tool #67).

parameters

nameintypereqdescription
langquerystringno (default en)

newsletter

GET/api/v1/newsletter/statsapplication/json
Newsletter Stats — Public newsletter statistics — subscriber count and last digest info.
POST/api/v1/newsletter/subscribeapplication/json
Api Newsletter Subscribe — Subscribe an email address to the newsletter.

openai-tools

GET/api/v1/openai-tools/{function_name}/urlapplication/json
Openai Tool Url — Resolve an OpenAI tool call to a wpnews API URL.

parameters

nameintypereqdescription
function_namepathstringyes

openai-tools.json

GET/api/v1/openai-tools.jsonapplication/json
Openai Tools Schema — OpenAI-compatible function calling tools array.

premium

GET/premiumapplication/json
Premium Challenge — x402 price-discovery challenge — the `challenge_endpoint` advertised in

pricing.json

GET/pricing.jsonapplication/json
Pricing Json — Machine-readable access pricing for agents.

pulse

GET/api/v1/pulseapplication/json
Ecosystem Pulse — AI ecosystem pulse — ultra-compact state snapshot (tool #65).

parameters

nameintypereqdescription
langquerystringno (default en)

radar

GET/api/v1/radarapplication/json
News Radar — Single-call situational awareness for AI agents.

parameters

nameintypereqdescription
langquerystringno (default en)
hoursqueryintegerno (default 24)

rag

GET/rag/queryapplication/json
Rag Query Get — Agent-first RAG retrieval: query -> ranked passages + citations (GET).

parameters

nameintypereqdescription
qquerystringno (default )
kqueryintegerno (default 5)
topicquerystringno (default )
date_fromquerystringno (default )
date_toquerystringno (default )
POST/rag/queryapplication/json
Rag Query Post — Agent-first RAG retrieval — JSON body variant for long/structured queries.

recommendations

POST/api/v1/recommendationsapplication/json
Get Recommendations — Return personalized article recommendations based on reading history.

report

GET/api/v1/report/weekly.mdapplication/json
Weekly Report Md — Full Markdown weekly AI news report — ready for newsletters, Slack, and Notion.

parameters

nameintypereqdescription
langquerystringno (default en)

source-reliability

GET/api/v1/source-reliabilityapplication/json
Source Reliability — Rank AI news sources by activity, recency, and topic diversity.

parameters

nameintypereqdescription
langquerystringno (default en)
daysqueryintegernoLookback window in days (default 30)
min_articlesqueryintegernoMinimum articles to be included (default 2)
limitqueryintegerno (default 20)

status

GET/api/v1/statusapplication/json
Api Status — Structured API status — for SLA monitoring and uptime dashboards.

stories

GET/api/v1/storiesapplication/json
Get Stories — Cluster related articles into ongoing 'stories' (narrative threads).

parameters

nameintypereqdescription
langquerystringno (default en)
hoursqueryintegernoLook-back window in hours (6-168) (default 48)
topicquerystringnoFilter clusters to a specific topic slug
min_sourcesqueryintegernoMin distinct sources to include a story (default 1)
limitqueryintegernoMax stories to return (default 10)

Webhooks webhooks

We deliver every new article matching your filter to your registered URL with an HMAC-SHA256 signature in X-WPN-Signature. Retries: 5 attempts with exponential backoff over 24h. Inspect deliveries and replay from the dashboard.

Signature verification: compute hmac_sha256(secret, body) and compare hex-string with the header. Mismatch = drop the request.

Errors errors

Errors use standard HTTP status codes. The response body always includes error.code (machine-readable) and error.message (human).

statuscodemeaning
200okRequest succeeded.
304not_modifiedETag matched; body intentionally empty.
400bad_requestMalformed parameters. See error.message.
401unauthorizedMissing or invalid X-API-Key.
403forbiddenKey is valid but scope insufficient.
404not_foundResource not in the index.
429rate_limitedQuota exhausted. Inspect X-RateLimit-Reset.
500internalOn us. Retry with backoff.
503degradedIndexing pipeline lag > 5 min. Read OK, fresh content delayed.
// quick-call copy-paste-ready
GET /api/v1/articles?limit=3 200·24ms· application/json
$curl -s https://api.wpnews.pro/api/v1/articles?limit=3 | jq '.data[] | .title'
v1 stable
[api/v1]
141 endpoints · 9 error codes
updated 2d ago
· session-2 · :help for keys