Rijnmond APIrijnmond.nl ↗
Access Rotterdam and Rijnmond regional news via 3 endpoints. Search articles, fetch full story details, and browse by tag from Rijnmond.nl.
What is the Rijnmond API?
The Rijnmond.nl API provides 3 endpoints to access regional news coverage from the Rotterdam and Rijnmond area in the Netherlands. Use search_articles to query articles by keyword with paginated results of up to 25 per page, get_article to retrieve full article body text, authors, and images by UUID, or get_articles_by_tag to browse all articles associated with a specific topic or location tag such as OVERSCHIE or FEYENOORD.
curl -X GET 'https://api.parse.bot/scraper/ee0d05fe-ba94-41a2-b624-0f5b02e7ed82/search_articles?page=1&query=rotterdam' \ -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 rijnmond-nl-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.
from parse_apis.rijnmond_news_api import Rijnmond, ArticleSummary, Article, Tag, ResourceNotFound
rijnmond = Rijnmond()
# Search for articles about Rotterdam
for article in rijnmond.articlesummaries.search(query="rotterdam", limit=5):
print(article.title, article.published_at)
# Browse articles by tag using a constructible Tag
tag = rijnmond.tag("OVERSCHIE")
for article in tag.articles():
print(article.title, article.lead, article.url)
# Get full article details from a summary
first_result = next(iter(rijnmond.articlesummaries.search(query="feyenoord", limit=1)))
full_article = first_result.details()
print(full_article.headline, full_article.reading_time)
for author in full_article.authors:
print(author.name, author.role)
Full-text search over Rijnmond.nl articles. Returns paginated results with up to 25 articles per page ordered by relevance. Each result includes title, lead text, publication date, tag, and links. Pagination via page number; total approximate count available on page 1 only.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. Each page returns up to 25 results. |
| queryrequired | string | Search query string (e.g. 'overschie', 'rotterdam', 'feyenoord'). |
{
"type": "object",
"fields": {
"page": "current page number",
"count": "number of articles on this page",
"query": "search query echoed back",
"articles": "array of article summaries",
"has_more": "whether more pages are available",
"total_text": "approximate total count string (page 1 only)"
},
"sample": {
"data": {
"page": 1,
"count": 25,
"query": "rotterdam",
"articles": [
{
"id": "4a7964fb-5476-47d5-9b99-a94e1728fcbf",
"tag": null,
"url": "https://www.rijnmond.nl/marathon",
"lead": null,
"slug": "marathon",
"audio": false,
"title": "Marathon Rotterdam",
"video": false,
"category": null,
"featured": false,
"image_alt": "Marathon Rotterdam",
"image_url": "https://i.regiogroei.cloud/4a7964fb-5476-47d5-9b99-a94e1728fcbf.jpg?width=800&height=600&aspect_ratio=4:3",
"origin_id": "4a7964fb-5476-47d5-9b99-a94e1728fcbf",
"published_at": null,
"article_api_id": "/page/marathon"
}
],
"has_more": true,
"total_text": "Ongeveer 5000 resultaten"
},
"status": "success"
}
}About the Rijnmond API
Endpoints and Data Coverage
The search_articles endpoint accepts a required query string (e.g. 'overschie', 'rotterdam', 'feyenoord') and an optional page integer for pagination. Each page returns up to 25 article summaries including id, title, lead, published_at, tag, url, image_url, and a has_more boolean. The first page also returns total_text, a string with an approximate total result count.
Full Article Details
Passing a UUID from search_articles.articles[*].article_api_id or get_articles_by_tag.articles[*].art into get_article returns the complete story: title, headline, summary, body_texts (an array of paragraph strings that may contain HTML), authors (name, role, slug), images (src, alt, description), published_at as ISO 8601, and reading_time. This is the only endpoint that exposes author metadata and full body content.
Tag-Based Browsing
get_articles_by_tag accepts a single tag parameter — typically an uppercase string like ROTTERDAM or OVERSCHIE — and returns all articles listed on that tag page, along with a count, title (the page title), and an array of article summaries. Tags correspond directly to topic or location sections on the Rijnmond.nl website. Note that unlike search_articles, this endpoint does not paginate; it returns all articles from the tag page in a single response.
The Rijnmond API is a managed, monitored endpoint for rijnmond.nl — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when rijnmond.nl 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 rijnmond.nl 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 all Rijnmond.nl coverage for a specific Rotterdam neighborhood using get_articles_by_tag with the location tag
- Build a news alert system that polls search_articles for a keyword like 'feyenoord' and flags new published_at dates
- Aggregate full article body_texts from get_article to train a regional Dutch NLP model
- Track author activity by collecting the authors array across multiple get_article calls
- Display a curated local news feed filtered by tag for a Rotterdam community app
- Measure approximate article volume for a given topic using total_text from the first page of search_articles 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.