Discover/Onrender API
live

Onrender APInewsroomradar.onrender.com ↗

Access Newsroom Radar's video intelligence desk: live coverage, catch-up briefings, per-video transcripts, and monitored channel data for news organizations.

Endpoint health
verified 2h ago
get_live_coverage
get_video
list_videos
get_catch_up
list_sources
5/5 passing latest checkself-healing
Endpoints
5
Updated
3h ago

What is the Onrender API?

The Newsroom Radar API exposes 5 endpoints covering video intelligence from monitored YouTube news channels — including C-SPAN, Congress, White House, wire services, and competitor outlets. The list_videos endpoint returns paginated video records filterable by desk purpose and category label, while get_live_coverage surfaces currently live, upcoming, and recently ended streams in real time. Together these endpoints give structured access to a curated news-video monitoring desk.

This call costs1 credit / call— charged only on success
Try it
Ordering of the result stream.
Rows per page, 1-250; values above 250 are clamped.
Free-text search over video titles and channel names. Omitted = no text filter.
Zero-based row offset into the sorted result stream.
Which desk to read: editorial (monitored government, C-SPAN and wire channels) or competition (rival outlets).
Category label exactly as listed in the response's `categories` array (e.g. C-SPAN). All = no category filter.
→ api.parse.bot/scraper/49c1e2ba-47c1-4c76-bb2c-a478269daf1c/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/49c1e2ba-47c1-4c76-bb2c-a478269daf1c/list_videos?sort=newest&purpose=editorial&category=C-SPAN' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 newsroomradar-onrender-com-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.

"""Walkthrough: Newsroom Radar SDK — browse monitored videos, drill into detail."""
from parse_apis.newsroomradar_onrender_com_api import (
    NewsroomRadar, VideoSort, Purpose, CatchUpWindow, VideoNotFound,
)

client = NewsroomRadar()

# List the newest editorial videos, capped at 5 total items.
for video in client.videos.list(sort=VideoSort.NEWEST, purpose=Purpose.EDITORIAL, limit=5):
    print(video.title, video.source_name, video.published_at)

# Drill down: take one competition video and fetch its full detail.
hit = client.videos.list(purpose=Purpose.COMPETITION, limit=1).first()
if hit is not None:
    try:
        detail = client.videos.get(video_id=hit.id)
        print(detail.title, detail.transcript, detail.analysis)
    except VideoNotFound:
        print("Video was removed from tracking")

# Catch-up briefing for the last 3 hours.
briefing = client.catch_ups.get(window=CatchUpWindow.H3)
print(briefing.label, briefing.start, briefing.end)
print("new:", briefing.counts.new_videos, "competition:", briefing.counts.competition_uploads)
for v in briefing.videos[:3]:
    print(" ", v.title)

# Live coverage desk.
live = client.live_coverage.get()
print("live:", live.live_count, "upcoming:", live.upcoming_count, "ended:", live.ended_count)

# Monitored sources.
for source in client.sources.list(limit=5):
    print(source.name, source.category, source.purpose, source.video_count)

print("exercised: videos.list / videos.get / catch_ups.get / live_coverage.get / sources.list")
All endpoints · 5 totalmissing one? ·

Lists videos ingested from monitored channels, newest first by default, one row per video. Filter by purpose (editorial desk vs competition tracking), by category label (one of the labels returned in `categories`, e.g. C-SPAN; an unknown label returns an empty list), and by free-text title/channel search. Paginates with `limit` (1-250, larger values are clamped to 250) and `offset`; `total` is the site's count of matching videos and `has_more` tells whether a further offset page exists. Engagement metrics (view_count, views_per_hour, acceleration) are null whenever the site has not captured public metrics for a video, so the views/velocity/rising sorts only reorder rows that carry metrics.

Input
ParamTypeDescription
sortstringOrdering of the result stream.
limitintegerRows per page, 1-250; values above 250 are clamped.
querystringFree-text search over video titles and channel names. Omitted = no text filter.
offsetintegerZero-based row offset into the sorted result stream.
purposestringWhich desk to read: editorial (monitored government, C-SPAN and wire channels) or competition (rival outlets).
categorystringCategory label exactly as listed in the response's `categories` array (e.g. C-SPAN). All = no category filter.
Response
{
  "type": "object",
  "fields": {
    "limit": "integer effective page size after clamping",
    "total": "integer count of videos matching the filters on the site",
    "offset": "integer offset echoed for this page",
    "videos": "array of video records: id (YouTube video id, usable with get_video), title, url, thumbnail_url, published_at (ISO 8601 UTC), source_id/source_name/category/channel_url of the monitored channel, purpose, live_status, scheduled_start_at/actual_start_at/actual_end_at (ISO 8601 or null), was_live, view_count/like_count/comment_count/metrics_updated_at/views_gained/views_per_hour/acceleration (null when the site holds no metrics)",
    "has_more": "boolean, true when offset + rows returned < total",
    "categories": "array of category labels the site currently uses (valid values for the category filter)"
  },
  "sample": {
    "data": {
      "limit": 5,
      "total": 16,
      "offset": 0,
      "videos": [
        {
          "id": "M2Ym4IigB6o",
          "url": "https://www.youtube.com/watch?v=M2Ym4IigB6o",
          "title": "Vance casts doubt on livestreamed execution",
          "purpose": "editorial",
          "category": "C-SPAN",
          "was_live": false,
          "source_id": 1,
          "like_count": null,
          "view_count": null,
          "channel_url": "https://www.youtube.com/channel/UCb--64Gl51jIEVE-GLDAVTg",
          "live_status": "none",
          "source_name": "C-SPAN",
          "acceleration": null,
          "published_at": "2026-10-09T19:34:25+00:00",
          "views_gained": null,
          "actual_end_at": null,
          "comment_count": null,
          "thumbnail_url": "https://i2.ytimg.com/vi/M2Ym4IigB6o/hqdefault.jpg",
          "views_per_hour": null,
          "actual_start_at": null,
          "metrics_updated_at": null,
          "scheduled_start_at": null
        }
      ],
      "has_more": true,
      "categories": [
        "Congress",
        "Republicans",
        "Democrats",
        "White House",
        "Administration",
        "C-SPAN",
        "Wires",
        "International"
      ]
    },
    "status": "success"
  }
}

About the Onrender API

Video Listings and Filtering

The list_videos endpoint returns video records newest-first with fields including id (YouTube video id), title, url, thumbnail_url, published_at, and source_id. Results can be filtered by purpose (either editorial for government and wire channels or competition for rival outlets), by category (using labels returned in the categories array of the same response — an unrecognized label returns an empty list), and by free-text query over titles and channel names. Pagination is controlled by limit (clamped to 250) and offset; the response includes has_more and total for cursor management.

Per-Video Detail and Live Desk

The get_video endpoint takes a single video_id (as emitted by list_videos) and returns the full record plus two site-generated fields: transcript (text or null) and analysis (object or null), both null in the common case where the site has not produced them. Additional fields include was_live, live_status, view_count, and category. Requesting a video id not tracked by the site returns a stale_input / input_not_found error. The get_live_coverage endpoint requires no parameters and returns four arrays — live, upcoming, ended, and official_upcoming — each containing video records with timing fields such as scheduled_start_at, actual_start_at, and actual_end_at.

Catch-Up Briefings and Source Registry

get_catch_up accepts an optional window parameter (trailing time window ending at call time) and returns a structured briefing: window bounds (from, to), a label, and a counts object with keys new_videos, priority_uploads, live_upcoming, competition_uploads, and fast_moving_competition. The videos array contains all records published in that window across both desks. list_sources requires no inputs and returns all monitored channels in a single response with fields per source: id, name, channel_id, channel_url, category, purpose, enabled, and video count. Source id values correspond to source_id in video records.

Reliability & maintenanceVerified

The Onrender API is a managed, monitored endpoint for newsroomradar.onrender.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when newsroomradar.onrender.com 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 newsroomradar.onrender.com 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.

Last verified
2h ago
Latest check
5/5 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Monitor live and upcoming Congressional or White House streams using get_live_coverage without manually checking YouTube
  • Build a newsroom catch-up dashboard that surfaces new government video uploads in a trailing time window via get_catch_up
  • Track competitor outlet publishing velocity by filtering list_videos with purpose=competition
  • Index transcripts and analyses for archived news videos retrieved via get_video
  • Audit which YouTube channels are being monitored, their desk assignment, and ingestion health via list_sources
  • Feed a search interface over news video titles and channel names using the query parameter in list_videos
  • Alert on fast-moving competition activity by polling the fast_moving_competition count in get_catch_up responses
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Newsroom Radar have an official developer API?+
Newsroom Radar (newsroomradar.onrender.com) does not publish an official developer API or documented public endpoints for third-party use.
What does `get_video` return for transcripts and analysis?+
Both transcript and analysis fields are null in the common case — the site only populates them for a subset of videos it has processed. The endpoint always returns the core record fields (title, url, category, was_live, live_status, view_count, source_id) regardless of whether transcript or analysis data is available.
How do I know which category labels are valid for filtering `list_videos`?+
Every list_videos response includes a categories array listing the labels currently in use by the site. Pass one of those exact strings as the category parameter. An unrecognized label returns an empty video list rather than an error, so always read categories from a live response rather than hardcoding values.
Does the API expose video engagement metrics like likes, comments, or subscriber counts?+
Not currently. The only metrics field is view_count on individual video records via get_video, and even that is null when the site holds no metrics. Channel-level metrics and engagement data (likes, comments, subscribers) are not covered. You can fork this API on Parse and revise it to add an endpoint pulling those fields.
Is there a way to retrieve the full history of videos beyond what the current monitored window covers?+
The API reflects what the site has ingested. list_videos supports offset-based pagination up to the total count the site holds, but historical depth depends on the site's own ingestion retention. There is no dedicated endpoint for historical archives beyond paginating the existing list_videos result set. You can fork this API on Parse and revise it to add a date-range filter endpoint if deeper historical querying is needed.
Page content last updated . Spec covers 5 endpoints from newsroomradar.onrender.com.
Related APIs in News MediaSee all →
youtube.com API
Retrieve public YouTube channel information, discover featured channels and recommendations, and access liked videos playlists to understand what content creators are promoting and enjoying. Perfect for researching creator profiles, finding related channels, and exploring curated video collections without needing direct channel access.
vidrock.to API
Access data from vidrock.to.
thestation.ru API
Search and discover videos from The Station, a Russian-language platform dedicated to tabletop wargaming content including Warhammer 40000, Age of Sigmar, Malifaux, Infinity, and other miniature games. Browse their video library by title or retrieve detailed information about specific gaming videos to stay updated on the latest wargaming community content.
runway.com API
Access data from runway.com.
m.youtube.com API
Get video titles and metadata from the Mindplicit YouTube channel to track content updates and organize channel information. Access a complete list of videos to monitor new uploads and retrieve detailed information about each video's performance and details.
prnewswire.com API
Access the latest press releases, earnings announcements, and news from PR Newswire across specific categories and organizations, with options to search by keywords or dates. Filter releases by industry, company newsrooms, and subscribe to RSS feeds for real-time updates on corporate news and financial disclosures.
nrk.no API
Access the latest news from Norway's leading broadcaster NRK.no, including front-page stories, category-specific articles, regional news, and breaking news updates through a unified search and browsing interface. Stay informed with full article content, RSS feeds, and real-time news ticker notifications across all major topics.
new61.5tv.lol API
Access data from new61.5tv.lol.