UN APInews.un.org ↗
Access UN News articles, headlines, topics, regions, and RSS feeds via 7 endpoints. Supports 8 languages with pagination and keyword search.
What is the UN API?
The UN News API provides structured access to news.un.org across 7 endpoints, returning article content, headlines, topic feeds, regional filters, editorial sections, and RSS data. The get_story endpoint delivers full article body text, publication date, and associated topic and region arrays for any UN News URL. Coverage spans 8 languages including Arabic, Chinese, Swahili, and Portuguese, with 0-indexed pagination across topic and region result sets.
curl -X GET 'https://api.parse.bot/scraper/e8730028-f5ff-490e-8de8-95be80bd523c/get_homepage_headlines?lang=en' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace news-un-org-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""UN News API — browse headlines, search, drill into articles, filter by topic/region."""
from parse_apis.un_news_api import UNNews, Topic, Region, Section, Language, StoryNotFound
client = UNNews()
# Browse today's homepage headlines (single page, capped)
for story in client.stories.homepage(lang=Language.EN, limit=5):
print(story.title, story.url)
# Search for a keyword and take the first result
result = client.stories.search(query="humanitarian", limit=1).first()
if result:
print(result.title, result.date, result.summary)
# Drill into the full article for that story
try:
article = client.articles.get(url=result.url)
print(article.title, article.date)
print(article.body[:200])
print(article.topics, article.regions)
except StoryNotFound as exc:
print(f"Article gone: {exc}")
# Browse climate-change topic stories
climate = client.topicfeed(slug=Topic.CLIMATE_CHANGE)
for story in climate.stories(lang=Language.EN, limit=3):
print(story.title, story.date, story.summary)
# Browse Africa region news
africa = client.regionfeed(slug=Region.AFRICA)
for story in africa.stories(limit=3):
print(story.title, story.date)
# Get editorial features section
for story in client.stories.in_depth(section=Section.FEATURES, limit=3):
print(story.title, story.url)
# Get RSS feed items
for item in client.feeditems.feed(limit=3):
print(item.title, item.pub_date, item.link)
print("exercised: stories.homepage / stories.search / articles.get / topicfeed.stories / regionfeed.stories / stories.in_depth / feeditems.feed")
Fetch news headlines and featured stories from the UN News homepage for a specific language. Returns all visible stories including top stories, featured content, and editorial picks. No pagination; returns a single page of current homepage content.
| Param | Type | Description |
|---|---|---|
| lang | string | Language code for the homepage content. |
{
"type": "object",
"fields": {
"stories": "array of story objects with title, url, summary, date, topic, region"
},
"sample": {
"data": {
"stories": [
{
"url": "https://news.un.org/en/story/2026/06/1167682",
"date": "",
"title": "Palestinians face systematic abuse by Israeli settlers and Hamas alike: Independent investigators",
"topic": "",
"region": "",
"summary": ""
},
{
"url": "https://news.un.org/en/story/2026/06/1167637",
"date": "",
"title": "Five things you need to know about ocean plastics",
"topic": "Climate and Environment",
"region": "",
"summary": ""
}
]
},
"status": "success"
}
}About the UN API
What the API returns
The API covers the main content surfaces of news.un.org. get_homepage_headlines returns the current front-page story list for a given lang code, with each item exposing title, url, summary, date, topic, and region. get_story accepts a full or relative UN News URL and returns the complete body text alongside topics and regions arrays, making it suitable for NLP pipelines or content aggregation. search_news accepts a query string and optional lang and page parameters, returning matching articles in the same story object shape.
Filtering by topic and region
get_topic_news filters by topic slug — values like human-rights, peace-and-security, climate-change, and humanitarian-aid — while get_region_news filters by region slug: africa, middle-east, europe, americas, asia-pacific, or global. Both endpoints return 10 articles per page using 0-indexed page parameters. Story objects from both endpoints carry the same six fields: title, url, summary, date, topic, and region.
Editorial sections and RSS
get_in_depth_section exposes four editorial section slugs — in-focus, interviews, features, and photo-stories — returning curated story lists per section in the standard story object shape. get_rss_feed accepts a full RSS feed URL matching the pattern https://news.un.org/feed/subscribe/{lang}/news/all/rss.xml and returns structured items with title, link, description, pubDate, and category fields. This endpoint is useful for polling freshness or tracking publication cadence across language editions.
The UN API is a managed, monitored endpoint for news.un.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when news.un.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official news.un.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor breaking UN News headlines by language using
get_homepage_headlineswith thelangparameter. - Build a climate-focused news digest by querying
get_topic_newswith theclimate-changetopic slug. - Extract full article text via
get_storyto feed summarization or entity-extraction models. - Track UN reporting on a specific geographic area using
get_region_newsfiltered by region slug such asafricaorasia-pacific. - Aggregate multilingual UN News content by iterating
get_rss_feedacross all eight supported language RSS URLs. - Surface in-depth UN journalism by fetching the
interviewsorfeaturessections fromget_in_depth_section. - Keyword-monitor UN communications on a specific issue using
search_newswith a targetedquerystring and paginating results.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does UN News have an official developer API?+
What does `get_story` return beyond the headline?+
get_story returns the full body text of the article, the date of publication, the title, the canonical url, and two arrays: topics (e.g. 'Human Rights', 'Health') and regions (e.g. 'Africa', 'Europe'). It does not return author bylines or image URLs.How does pagination work across topic and region endpoints?+
get_topic_news and get_region_news use a 0-indexed page parameter and return 10 stories per page. Page 0 is the most recent set. The response echoes back the page value and the topic or region slug used in the request.Are author bylines or image URLs returned by any endpoint?+
title, url, summary, date, topic, and region; get_story adds body, topics, and regions. Author attribution and image assets are not included. You can fork this API on Parse and revise it to add those fields if the source exposes them.