Pressroom API
A deterministic, fully-cited news-intelligence API. Query events, entities, quotes, certified facts, and analysis across a corpus of 200,000+ articles — every answer traceable to its source.
Quick start
Every request is authenticated with your API key in the X-API-Key header. Base URL:
https://api.pressroom.news
Set your key once and make your first call:
export PRESSROOM_KEY="YOUR_API_KEY" curl -H "X-API-Key: $PRESSROOM_KEY" \ "https://api.pressroom.news/v1/search?q=election&page_size=3"
Authentication
Pass your key on every call, either header form:
X-API-Key: YOUR_API_KEY # — or — Authorization: Bearer YOUR_API_KEY
Unauthenticated requests to data endpoints return 401. Keep your key secret; it is tied to your quota and tier. Two endpoints are open (no key): /v1/health and /v1/version.
Tiers & rate limits
Each key belongs to a tier with a monthly call quota and a per-minute burst limit. Exceeding either returns 429 with a Retry-After hint.
| Tier | Monthly quota | Burst |
|---|---|---|
free | 1,000 | 30/min |
academic | 50,000 | 60/min |
starter | 100,000 | 120/min |
growth | 1,000,000 | 300/min |
pro | 5,000,000 | 600/min |
enterprise | unlimited | 1200/min |
Response format
Every response is JSON. List endpoints wrap results in data with a meta block for pagination; single-object endpoints return data directly.
{
"data": [ /* … results … */ ],
"meta": { "total": 9690, "page": 1, "page_size": 3 }
}
Paginate with page and page_size query parameters.
Search & discovery
Full-text article search GET /v1/search
Search 200K+ articles with filters for source, language, date range, and entity.
curl -H "X-API-Key: $PRESSROOM_KEY" \ "https://api.pressroom.news/v1/search?q=election&page_size=3"
{
"data": [
{
"article_id": 194929,
"headline": "Union Minister Amit Shah addresses Vijay Sankalp Abhiyan of booth workers in Indore & starts BJP's election campaign from Malwa region",
"dek": null,
"language": "en",
"provenance": {
"source_id": "news-on-air",
"source_name": "News On AIR",
"source_url": "https://newsonair.gov.in/union-minister-amit-shah-addresses-vijay-sankalp-abhiyan-of-booth-workers-in-indore-starts-bjps-election-campaign-from-malwa-region",
"extraction_method": "trafilatura",
"extracted_at": "2026-07-22T11:04:10Z",
"date_published_utc": null,
"word_count": 145
}
},
{
"article_id": 192850,
"headline": "Karnataka High Court issues notice to CM Siddaramaiah on election petition",
"dek": null,
"language": "en",
"provenance": {
"source_id": "news-on-air",
"source_name": "News On AIR",
"source_url": "https://newsonair.gov.in/karnataka-high-court-issues-notice-to-cm-siddaramaiah-on-election-petition",
"extraction_method": "trafilatura",
"extracted_at": "2026-07-21T09:06:47Z",
"date_published_utc": null,
"word_count": 167
}
},
{
"article_id": 186957,
"headline": "BNP forms Central Election Steering Committee for 13th parliamentary polls",
"dek": null,
"language": "en",
"provenance": {
… (16 more lines)Canonical event registry GET /v1/events
Paginated registry of de-duplicated real-world events, each with domain, type, and coverage counts.
curl -H "X-API-Key: $PRESSROOM_KEY" \ "https://api.pressroom.news/v1/events?page_size=3"
{
"data": [
{
"id": 47133,
"label": "World Cup",
"wikidata_id": null,
"event_year": null,
"event_domain": "sport",
"event_type": "sports",
"article_count": 14783,
"has_timeline": false,
"beat_count": 0
},
{
"id": 47132,
"label": "FIFA World Cup 2026",
"wikidata_id": "Q5020214",
"event_year": "2026",
"event_domain": "sport",
"event_type": "sports",
"article_count": 2488,
"has_timeline": false,
"beat_count": 0
},
{
"id": 47187,
"label": "World Cups",
"wikidata_id": null,
"event_year": null,
"event_domain": "sport",
"event_type": "sports",
"article_count": 1110,
"has_timeline": false,
"beat_count": 0
}
],
"meta": {
"total": 9690,
… (4 more lines)Event profile GET /v1/events/47133
A single canonical event with its metadata and linkage.
curl -H "X-API-Key: $PRESSROOM_KEY" \ "https://api.pressroom.news/v1/events/47133"
{
"data": {
"id": 47133,
"kind": "event",
"name": "World Cup",
"event_domain": "sport",
"event_type": "sports",
"event_year": null,
"event_date": {
"start": null,
"end": null,
"precision": null
},
"identity": {
"resolved": false,
"wikidata_id": null
},
"description": null,
"hierarchy": {
"role": "franchise",
"parent": null,
"children": [
{
"id": 52491,
"name": "World Cup 2035",
"event_year": "2035",
"event_domain": "sport"
},
{
"id": 49379,
"name": "2034 World Cup",
"event_year": "2034",
"event_domain": "sport"
},
{
"id": 47211,
"name": "2030 World Cup",
"event_year": "2030",
… (307 more lines)Quote search GET /v1/quotes/search
Find quotes by text; each carries full provenance and a resolved speaker where known.
curl -H "X-API-Key: $PRESSROOM_KEY" \ "https://api.pressroom.news/v1/quotes/search?q=economy&page_size=3"
{
"data": [
{
"quote_id": 359746,
"text": "It is the country's confidence that when you bring another no-confidence motion in 2028, India will be the third largest economy in the world,",
"verb": null,
"type": "direct",
"confidence": 0.0,
"speaker": {
"person_id": null,
"name": null,
"speaker_text": null,
"resolved": false
},
"provenance": {
"article_id": 184949,
"headline": "Review of Parliament Proceedings",
"source_id": "news-on-air",
"source_url": "https://newsonair.gov.in/review-of-parliament-proceedings-3",
"extraction_method": "trafilatura",
"extracted_at": "2026-07-18T05:00:48Z",
"date_published_utc": null
}
},
{
"quote_id": 326004,
"text": "When a nation embarks upon a process of shifting from an ‘inward-leaning economy’ to an ‘outward-leaning economy’, the arena of national security concerns begins to move to the oceans. This is a phenomenon in history that occurs so frequently that it has almost become a rule rather than an exception.",
"verb": null,
"type": "direct",
"confidence": 0.0,
"speaker": {
"person_id": null,
"name": null,
"speaker_text": null,
"resolved": false
},
"provenance": {
"article_id": 156806,
… (37 more lines)Curated topics GET /v1/topics
The curated topic catalog.
curl -H "X-API-Key: $PRESSROOM_KEY" \ "https://api.pressroom.news/v1/topics"
{
"data": [
{
"slug": "artificial-intelligence",
"label": "Artificial Intelligence",
"source": "curated",
"article_count": 668,
"keywords": [
"artificial intelligence",
"openai",
"chatgpt",
"machine learning",
"large language model",
"generative ai",
"neural network"
],
"aliases": [
"ai",
"genai",
"generative ai",
"machine learning"
],
"sections": [],
"updated_at": "2026-07-26T09:42:49Z"
},
{
"slug": "climate-change",
"label": "Climate & Environment",
"source": "curated",
"article_count": 2239,
"keywords": [
"climate",
"emission",
"global warming",
"renewable",
"carbon",
"net zero",
"monsoon",
… (249 more lines)Topic profile GET /v1/topics/artificial-intelligence
A single topic with its profile.
curl -H "X-API-Key: $PRESSROOM_KEY" \ "https://api.pressroom.news/v1/topics/artificial-intelligence"
{
"data": {
"slug": "artificial-intelligence",
"label": "Artificial Intelligence",
"source": "curated",
"keywords": [
"artificial intelligence",
"openai",
"chatgpt",
"machine learning",
"large language model",
"generative ai",
"neural network"
],
"aliases": [
"ai",
"genai",
"generative ai",
"machine learning"
],
"sections": [],
"stats": {
"article_count": 668,
"first_seen": "2025-07-06T12:11:14Z",
"last_seen": "2026-07-26T03:53:15Z"
},
"top_sources": [
{
"source": "Mint",
"articles": 324
},
{
"source": "Reuters",
"articles": 83
},
{
"source": "Hindustan Times",
"articles": 46
… (32 more lines)Entities — people, organisations, locations
Entity profile GET /v1/people/174
Canonical profile for a person, organisation, or location (the {kind} is people / organisations / locations).
curl -H "X-API-Key: $PRESSROOM_KEY" \ "https://api.pressroom.news/v1/people/174"
{
"data": {
"id": 174,
"kind": "people",
"name": "Narendra Modi",
"identity": {
"resolved": true,
"wikidata_id": "Q1058",
"lei_code": null,
"status": "resolved"
},
"attributes": {
"current_title": null,
"current_employer": null,
"nationality": null,
"date_of_birth": null,
"wikipedia_url": "https://en.wikipedia.org/wiki/Narendra_Modi",
"twitter_handle": "narendramodi",
"twitter_url": "https://twitter.com/narendramodi",
"linkedin_url": "narendramodi",
"official_bio_url": "https://www.narendramodi.in",
"image_url": "https://upload.wikimedia.org/wikipedia/commons/thumb/5/5f/The_official_portrait_of_Shri_Narendra_Modi%2C_the_Prime_Minister_of_the_Republic_of_India.jpg/330px-The_official_portrait_of_Shri_Narendra_Modi%2C_the_Prime_Minister_of_the_Republic_of_India.jpg",
"bio_text": "Narendra Damodardas Modi is an Indian politician who has served as the prime minister of India since 26 May 2014. Modi was the chief minister of Gujarat from 2001 to 2014 and is the Member of Parliament (MP) for Varanasi. He is a member of the Bharatiya Janata Party (BJP) and of the Rashtriya Swayamsevak Sangh (RSS), a right-wing Hindutva paramilitary volunteer organisation. He is India's third-longest-serving prime minister, and the longest-serving prime minister outside the Indian National Congress.",
"bio_source": "wikipedia"
},
"aliases": [
"Modi",
"Modi ji",
"Narender Modi",
"Narendra Damodardas Modi",
"Narendra Modi",
"Narendra) Modi",
"Narendra] Modi",
"Shri Modi",
"Shri Narendra Modi",
"Shri Narendra Modi ji"
],
"stats": {
… (9 more lines)Entity relationships GET /v1/people/174/relationships
Top co-mentioned people, organisations, and locations for an entity.
curl -H "X-API-Key: $PRESSROOM_KEY" \ "https://api.pressroom.news/v1/people/174/relationships"
{
"data": {
"entity_id": 174,
"kind": "people",
"source_article_count": 5501,
"people": [
{
"id": 11084,
"name": "Modi",
"wikidata_id": null,
"co_count": 702,
"first_seen": "2025-11-24T18:30:00Z",
"last_seen": "2026-07-26T10:40:47Z",
"salience": 0.1276
},
{
"id": 1,
"name": "Donald Trump",
"wikidata_id": "Q22686",
"co_count": 553,
"first_seen": "2025-09-10T18:15:00Z",
"last_seen": "2026-07-25T12:00:00Z",
"salience": 0.1005
},
{
"id": 622,
"name": "Amit Shah",
"wikidata_id": "Q4746875",
"co_count": 449,
"first_seen": "2023-06-02T18:30:00Z",
"last_seen": "2026-07-26T10:40:47Z",
"salience": 0.0816
},
{
"id": 1268,
"name": "Rahul Gandhi",
"wikidata_id": "Q10218",
"co_count": 416,
… (520 more lines)Quotes by a person GET /v1/people/174/quotes
Quotes attributed to a person, with provenance.
curl -H "X-API-Key: $PRESSROOM_KEY" \ "https://api.pressroom.news/v1/people/174/quotes?page_size=2"
{
"data": [
{
"quote_id": 377063,
"text": "Smt. Sonia Gandhi’s mother, Mrs. Paola Maino passed away at her home in Italy on Saturday the 27th August 2022. The funeral took place yesterday,",
"verb": "tweeted",
"type": "direct",
"confidence": 0.85,
"provenance": {
"article_id": 174102,
"headline": "Congress chief Sonia Gandhi's mother passes away",
"source_id": "the-hindu",
"source_url": "https://thehindu.com/news/national/congress-chief-sonia-gandhis-mother-passes-away/article65833715.ece",
"extraction_method": "trafilatura",
"extracted_at": "2026-07-15T20:02:30Z",
"date_published_utc": null
}
},
{
"quote_id": 377062,
"text": "May her soul rest in peace. In this hour of grief, my thoughts are with the entire family.",
"verb": "tweeted",
"type": "direct",
"confidence": 0.85,
"provenance": {
"article_id": 174102,
"headline": "Congress chief Sonia Gandhi's mother passes away",
"source_id": "the-hindu",
"source_url": "https://thehindu.com/news/national/congress-chief-sonia-gandhis-mother-passes-away/article65833715.ece",
"extraction_method": "trafilatura",
"extracted_at": "2026-07-15T20:02:30Z",
"date_published_utc": null
}
}
],
"meta": {
"total": 1758,
"page": 1,
… (3 more lines)Certified depth cards
Depth cards GET /v1/depth-cards
Certified, provenance-cited story-state facts (e.g. casualty / arrest counts) — every card is gated and traceable to its source span.
curl -H "X-API-Key: $PRESSROOM_KEY" \ "https://api.pressroom.news/v1/depth-cards?page_size=3"
{
"data": [
{
"card_id": "cc_arrest_count_ca89a2c654546c73",
"contract_version": "depth_card_v1",
"disposition": "PUBLISHED",
"object_class": "ARREST_COUNT",
"base_class": "ARREST_COUNT",
"claim": "people arrested = 11",
"claimed_value": 11.0,
"unit": "people",
"story_unit_id": null,
"minted_at": "2026-07-25T14:38:07.732862Z",
"provenance": {
"article_ids": [
26091
],
"primary_article_id": 26091,
"source_name": "myrepublica",
"publication_date": null,
"license_path": "P2_PERSON_HEAD",
"span": "“Chinese security personnel recently arrested 11 Nepali traders.",
"offsets": {
"start": 949,
"end": 951
},
"method": "typed_count_factory -> publish_safety_gate -> held_queue(rubric_v3, qwen3:14b local) -> reader_canary",
"gate": {
"status": "AUTO_PUBLISH",
"families": [],
"reason": null
},
"frozen_gate_sha256": "ede56aeb1bc2709caf77596e6489cd41a73fe6140e521ba5afddb7bbf2acbf24",
"adjudicator": "none",
"adjudicator_rationale": "publish_safety_gate AUTO_PUBLISH (deterministic; no model call)",
"verdict_cache_key": null,
"cert_ref": null,
"content_hash": "ad2527eb0a086145acda10df8add427dc7a5358c3091fd6bede08e968fc6a923"
… (85 more lines)Single depth card GET /v1/depth-cards/cc_arrest_count_ca89a2c654546c73
One certified card by id, with full provenance.
curl -H "X-API-Key: $PRESSROOM_KEY" \ "https://api.pressroom.news/v1/depth-cards/cc_arrest_count_ca89a2c654546c73"
{
"data": {
"card_id": "cc_arrest_count_ca89a2c654546c73",
"contract_version": "depth_card_v1",
"disposition": "PUBLISHED",
"object_class": "ARREST_COUNT",
"base_class": "ARREST_COUNT",
"claim": "people arrested = 11",
"claimed_value": 11.0,
"unit": "people",
"story_unit_id": null,
"minted_at": "2026-07-25T14:38:07.732862Z",
"provenance": {
"article_ids": [
26091
],
"primary_article_id": 26091,
"source_name": "myrepublica",
"publication_date": null,
"license_path": "P2_PERSON_HEAD",
"span": "“Chinese security personnel recently arrested 11 Nepali traders.",
"offsets": {
"start": 949,
"end": 951
},
"method": "typed_count_factory -> publish_safety_gate -> held_queue(rubric_v3, qwen3:14b local) -> reader_canary",
"gate": {
"status": "AUTO_PUBLISH",
"families": [],
"reason": null
},
"frozen_gate_sha256": "ede56aeb1bc2709caf77596e6489cd41a73fe6140e521ba5afddb7bbf2acbf24",
"adjudicator": "none",
"adjudicator_rationale": "publish_safety_gate AUTO_PUBLISH (deterministic; no model call)",
"verdict_cache_key": null,
"cert_ref": null,
"content_hash": "ad2527eb0a086145acda10df8add427dc7a5358c3091fd6bede08e968fc6a923"
}
… (2 more lines)Analysis & briefs (POST)
Narrative momentum POST /v1/analyse/narrative-momentum
Coverage momentum for a query — volume, diversity, geographic and sentiment trend.
curl -X POST -H "X-API-Key: $PRESSROOM_KEY" \
-H "Content-Type: application/json" \
-d '{"q": "election"}' \
"https://api.pressroom.news/v1/analyse/narrative-momentum"{
"data": {
"subject": "q:election",
"window": {
"from": "2026-04-27",
"to": "2026-07-26",
"midpoint": "2026-06-11"
},
"total_articles": 1093,
"recent_half": {
"volume": 472,
"sources": 75,
"countries": 5,
"sentiment": -0.0067
},
"prior_half": {
"volume": 621,
"sources": 24,
"countries": 5,
"sentiment": 0.0707
},
"components": {
"volume_rate_change": -0.2399,
"source_diversity_delta": 0.2881,
"geographic_spread_delta": 0.0,
"sentiment_delta": -0.0774
},
"momentum_score": -0.0701,
"method": "deterministic; weights v=0.5 div=0.2 geo=0.2 sent=0.1"
}
}Cited retrieval QA POST /v1/chat
Deterministic question-answering over the corpus with citations — no LLM, fully reproducible.
curl -X POST -H "X-API-Key: $PRESSROOM_KEY" \
-H "Content-Type: application/json" \
-d '{"question": "What has been reported about elections?"}' \
"https://api.pressroom.news/v1/chat"{
"data": {
"question": "What has been reported about elections?",
"answer": "8 relevant article(s) from 5 source(s) address this. Leading coverage: \"As heat wave sweeps across several states in the US, White House has reportedly deleted thousands of web pages about...\" (the-times-of-india, 2026-07-05). See cited passages below.",
"matched_terms": [
"has",
"reported",
"elections"
],
"passages": [
{
"headline": "As heat wave sweeps across several states in the US, White House has reportedly deleted thousands of web pages about...",
"dek": null,
"provenance": {
"article_id": 186888,
"source_id": "the-times-of-india",
"source_url": "https://timesofindia.indiatimes.com/technology/tech-news/as-heat-wave-sweeps-across-several-states-in-the-us-white-house-has-reportedly-deleted-thousands-of-web-pages-about-/articleshow/132196710.cms",
"date_published_utc": "2026-07-05T13:43:00Z"
}
},
{
"headline": "Paul Hogan has reportedly called Pauline Hanson a ‘pelican’. Please explain?",
"dek": null,
"provenance": {
"article_id": 132390,
"source_id": "the-guardian",
"source_url": "https://theguardian.com/australia-news/2026/jun/28/paul-hogan-pauline-hanson-pelican-insult-australian-slang-please-explain",
"date_published_utc": "2026-06-28T07:41:24Z"
}
},
{
"headline": "Republicans reportedly weigh stopgap funding plan to avert Government shutdown before midterm elections",
"dek": "Senator Rick Scott's proposal comes ahead of a planned meeting between President Donald Trump and Senate Republicans, where lawmakers are expected to discuss priorities for the remainder of the year.",
"provenance": {
"article_id": 108287,
"source_id": "mint",
"source_url": "https://livemint.com/news/us-news/republicans-reportedly-weigh-stopgap-funding-plan-to-avert-government-shutdown-before-midterm-elections-11782317710245.html",
"date_published_utc": "2026-06-24T16:35:08Z"
… (91 more lines)Analyst brief POST /v1/briefs/generate
A deterministic, cited analyst brief for a query or entity.
curl -X POST -H "X-API-Key: $PRESSROOM_KEY" \
-H "Content-Type: application/json" \
-d '{"q": "election"}' \
"https://api.pressroom.news/v1/briefs/generate"{
"data": {
"subject": "q:election",
"window": {
"from": "2026-04-27",
"to": "2026-07-26"
},
"total_articles": 1093,
"summary": "1093 articles from 8 sources cover q:election (2026-04-27–2026-07-26). Most-associated people: Donald Trump, Andy Burnham, Keir Starmer; organisations: BJP, Reuters, Labour; locations: United States, India, UK. 5 attributed quote(s) surfaced. Every claim is cited below.",
"top_entities": {
"people": [
{
"name": "Donald Trump",
"co_count": 183
},
{
"name": "Andy Burnham",
"co_count": 76
},
{
"name": "Keir Starmer",
"co_count": 62
},
{
"name": "Nigel Farage",
"co_count": 53
},
{
"name": "Joe Biden",
"co_count": 42
}
],
"organisations": [
{
"name": "BJP",
"co_count": 211
},
{
… (301 more lines)Account & meta
Account usage GET /v1/account/usage
Your key's metering and quota state.
curl -H "X-API-Key: $PRESSROOM_KEY" \ "https://api.pressroom.news/v1/account/usage"
{
"data": {
"tier": "enterprise",
"monthly_quota": -1,
"monthly_used": 6,
"usage_period": "2026-07",
"lifetime_calls": 7,
"lifetime_cost_units": 7,
"recent": [
{
"ts": "2026-07-26 13:51:42.693016+00",
"method": "GET",
"endpoint": "/v1/account/usage",
"status": null,
"latency_ms": null
},
{
"ts": "2026-07-26 13:45:34.45839+00",
"method": "GET",
"endpoint": "/v1/depth-cards",
"status": 200,
"latency_ms": 100
},
{
"ts": "2026-07-26 13:45:33.81118+00",
"method": "GET",
"endpoint": "/v1/events",
"status": 200,
"latency_ms": 153
},
{
"ts": "2026-07-26 13:29:26.953925+00",
"method": "GET",
"endpoint": "/v1/depth-cards",
"status": 200,
"latency_ms": 112
},
{
… (23 more lines)Version & tiers GET /v1/version
API version and the tier catalog.
curl -H "X-API-Key: $PRESSROOM_KEY" \ "https://api.pressroom.news/v1/version"
{
"name": "Pressroom Analytics API",
"version": "1.0.0-dev",
"tiers": {
"free": {
"monthly_quota": 1000,
"rate_per_minute": 30
},
"academic": {
"monthly_quota": 50000,
"rate_per_minute": 60
},
"starter": {
"monthly_quota": 100000,
"rate_per_minute": 120
},
"growth": {
"monthly_quota": 1000000,
"rate_per_minute": 300
},
"pro": {
"monthly_quota": 5000000,
"rate_per_minute": 600
},
"enterprise": {
"monthly_quota": -1,
"rate_per_minute": 1200
}
}
}Corpus health GET /v1/health
Outcome-based corpus health (unauthenticated).
curl -H "X-API-Key: $PRESSROOM_KEY" \ "https://api.pressroom.news/v1/health"
{
"state": "DEGRADED",
"reasons": [
"stale_leases",
"backlog_with_zero_recent_commits"
],
"process_reachable": true,
"durable_work_healthy": false,
"corpus_reachable": true,
"articles": 204333,
"corpus_db": "/opt/pressroom/data/pressroom.db",
"metering_reconciliation_required": 0,
"oldest_metering_reservation": null
}Source registry GET /v1/sources
Every publication with its audience taxonomy.
curl -H "X-API-Key: $PRESSROOM_KEY" \ "https://api.pressroom.news/v1/sources"
{
"data": [
{
"source_id": "aajkaal",
"name": "Aajkaal",
"country_of_origin": "India",
"country_of_audience": null,
"language": "bn",
"nav_group": null,
"category": "[\"regional\"]",
"article_count": 265
},
{
"source_id": "aapti-institute",
"name": "Aapti Institute",
"country_of_origin": "India",
"country_of_audience": "India",
"language": "en",
"nav_group": null,
"category": "[\"data-governance\", \"technology\", \"policy\"]",
"article_count": 138
},
{
"source_id": "ajit",
"name": "Ajit",
"country_of_origin": "India",
"country_of_audience": null,
"language": "pa",
"nav_group": null,
"category": "[\"regional\"]",
"article_count": 49
},
{
"source_id": "algerie-eco",
"name": "Algerie-eco",
"country_of_origin": "Algeria",
"country_of_audience": null,
"language": null,
… (1739 more lines)Full endpoint reference
All 70 operations. Every path takes the same X-API-Key auth.
Search & discovery
| Method | Path | Description |
|---|---|---|
| GET | /v1/events | Paginated canonical event registry |
| GET | /v1/events/search | Search canonical events |
| GET | /v1/events/{eid} | Canonical event profile |
| GET | /v1/events/{eid}/articles | Articles mentioning an event |
| GET | /v1/events/{eid}/coverage | Event coverage timeseries + by-source |
| GET | /v1/events/{eid}/threads | Emergence threads covering this event (read-only cross-reference) |
| GET | /v1/events/{eid}/timeline | Deterministic per-event narrative timeline (beats + provenance) |
| GET | /v1/locations/nearby | Geo-tagged locations within a radius |
| GET | /v1/map/heatmap | Mentions aggregated into lat/lon cells |
| GET | /v1/quotes/search | Search quotes by text |
| GET | /v1/search | Full-text article search with filters |
| GET | /v1/sources | Source registry with audience taxonomy |
| GET | /v1/sources/facets | Source-cluster facets (origin / audience / language) |
| GET | /v1/topics | List curated topics |
| GET | /v1/topics/search | Hybrid topic search (curated + keyword fallback) |
| GET | /v1/topics/{slug} | Curated topic profile |
| GET | /v1/topics/{slug}/articles | Articles under a topic |
| GET | /v1/topics/{slug}/coverage | Topic coverage timeseries + breakdowns |
| GET | /v1/topics/{slug}/entities | Top co-occurring people / orgs / locations |
Entities (people · organisations · locations)
| Method | Path | Description |
|---|---|---|
| GET | /v1/organisations/{eid}/people | People affiliated with an organisation (employer link) |
| GET | /v1/people/{eid}/quotes | Quotes attributed to a person |
| GET | /v1/{kind}/disambiguate | Resolve an ambiguous surface to candidates |
| GET | /v1/{kind}/search | Search entities by name / alias |
| GET | /v1/{kind}/{eid} | Canonical entity profile |
| GET | /v1/{kind}/{eid}/articles | Articles mentioning the entity |
| GET | /v1/{kind}/{eid}/coverage | Mention timeseries + breakdowns |
| GET | /v1/{kind}/{eid}/history | Identity-change history (from the change journals) |
| GET | /v1/{kind}/{eid}/relationships | Top co-mentioned people / organisations / locations |
| GET | /v1/{kind}/{eid}/sentiment-trend | Deterministic sentiment over time |
| GET | /v1/{kind}/{eid}/stance | Entity stance dossier v2 (voices + act-family sections + resolved-target positions with consistency; country = world-wide government-voice roll-up) |
| GET | /v1/{kind}/{eid}/timeline | Date-anchored coverage timeline |
Certified depth cards
| Method | Path | Description |
|---|---|---|
| GET | /v1/depth-cards | Paginated certified depth cards (story-state, PUBLISHED only) |
| GET | /v1/depth-cards/story/{story_unit_id} | Certified depth cards for one story unit |
| GET | /v1/depth-cards/{card_id} | Single certified depth card by id (provenance-cited) |
Quotes & stance
| Method | Path | Description |
|---|---|---|
| GET | /v1/quotes/{quote_id} | A quote with full provenance + speaker |
| GET | /v1/stance/dossier | Deterministic stance dossier (person alias, D8) |
Analysis & briefs
| Method | Path | Description |
|---|---|---|
| POST | /v1/analyse/blind-spot | Entities once co-covered with X that are now absent |
| POST | /v1/analyse/crisis-trajectory | Project peak / duration from the volume curve |
| POST | /v1/analyse/entity-relationship-delta | How two entities' relationship moved over a window |
| POST | /v1/analyse/epistemic-confidence | Corroboration vs contradiction across independent sources |
| POST | /v1/analyse/narrative-conflict | Competing narratives across source clusters |
| POST | /v1/analyse/narrative-momentum | Coverage momentum (volume/diversity/geo/sentiment derivative) |
| POST | /v1/analyse/quote-provenance | Every occurrence of a quote, chronologically |
| POST | /v1/analyse/sentiment-geography | Sentiment per mentioned place |
| POST | /v1/analyse/signal-vs-noise | % of a result set that is net-new vs repetition |
| POST | /v1/analyse/story-attribution | Who broke each story + how it propagated |
| POST | /v1/analyse/story-lifecycle | Emerging → Building → Peak → Declining → Dead |
| POST | /v1/briefs/generate | Deterministic cited analyst brief |
| POST | /v1/chat | Deterministic retrieval QA with citations (no LLM) |
Stories & reader
| Method | Path | Description |
|---|---|---|
| GET | /v1/reader/follows | List follows for this key |
| POST | /v1/reader/follows | Follow a story unit or an entity |
| DELETE | /v1/reader/follows | Unfollow |
| GET | /v1/reader/home | Followed stories with unseen deltas (deterministic order) |
| POST | /v1/reader/seen | Mark articles seen (delta feeds exclude them) |
| GET | /v1/story/active | Active story units (deterministic order, no ranking model) |
| GET | /v1/story/by-article/{article_id} | Second click: article → its grounded story page |
| GET | /v1/story/units/{unit_id} | Grounded story page by unit id |
| GET | /v1/stream | Real-time mention stream (SSE, since a cursor) |
Your workspace
| Method | Path | Description |
|---|---|---|
| POST | /v1/export | Create a bulk export job (runs synchronously, capped) |
| GET | /v1/export/{job_id} | Fetch an export job result |
| POST | /v1/ingest | Bring-your-own document (SANDBOXED; never joins the corpus) |
| GET | /v1/ingest | List your sandboxed documents |
| POST | /v1/tag | Attach a custom tag to an article (per-key, non-corpus) |
| GET | /v1/tags | List your tagged articles |
| POST | /v1/watchlists | Create a saved search |
| GET | /v1/watchlists | List your saved searches |
| DELETE | /v1/watchlists/{wid} | Delete a saved search |
Account & meta
| Method | Path | Description |
|---|---|---|
| GET | /v1/account/usage | Your key's metering + quota state |
| GET | /v1/health | Outcome-based corpus health |
| GET | /v1/version | API version + tier catalog |
Request access
Pressroom is in private beta. To request an API key, email shobhit.dixit@gmail.com with your use case. Keys are provisioned manually and mapped to a tier.