CivicStream API
Live government video, elections, schedule, news — one API.
Build with the same dataset that powers civicstream.tv — live federal, state, and local government meetings, structured election data, daily congressional schedule, politician profiles, and breaking civic news. One key, one base URL, prices that come in under what comparable services charge.
Pricing
Civic (Free)
- All read endpoints
- 10,000 requests / month
- 30 requests / minute
- Attribution required
- Non-commercial use only
Starter
- Everything in Civic
- 250,000 requests / month
- 120 requests / minute
- Commercial use OK
- Webhooks: live streams, breaking news
Pro
- Everything in Starter
- 2,000,000 requests / month
- 600 requests / minute
- Historical elections back to 2018
- Bills full-text
- 99.5% uptime SLA
Business
- Everything in Pro
- 10,000,000 requests / month
- 2,000 requests / minute
- Nightly bulk JSON dumps
- Priority request queue
- 99.9% uptime SLA
Enterprise
- Everything in Business
- Custom or unmetered quota
- Custom endpoints
- White-label, no-attribution
- Signed video URLs
- Named customer success manager
Overages on paid tiers are billed at $0.50 per 10,000 requests — no hard cutoffs unless you hit your per-minute limit. Discounts available: 20% annual, 50% for verified 501(c)(3), 100% for accredited journalism orgs (manual approval).
Rules of the road
- One API key per environment. Send it as
X-CivicStream-Keyon every request. - Quotas are per-key, calendar month, with a per-minute burst cap. 429 with
Retry-Afterwhen exceeded. - Caching is mandatory. Honour
ETag/If-None-Match— 304 responses don't count against quota. - Attribution required on display: “Data via CivicStream” with a link, on any screen that renders the data. Waivable at Enterprise.
- No bulk re-syndication. Don't mirror more than 25% of a dataset, and don't build a competing data API on top of ours.
- Video is embed-only.
/streams/{id}returns an iframeembed_url— not the underlying HLS/MP4. Hotlinking the raw upstream is a bannable offence and a copyright issue. - No PII or engagement endpoints. Comments, chat, donor data, and user info are not exposed.
- Free tier is non-commercial — civic tech, journalists, students, hobbyists. Anything ad-supported, paywalled, or sold to clients needs Starter+.
- If you exhaust your quota, don't scrape the public site to make up the difference. The WAF will block you.
- Deprecations get 90 days' notice. Breaking changes ship under a new version path.
- Keys can be revoked without refund for ToS violations. Voter-suppression or harassment use cases are explicitly disallowed.
- Uptime: best-effort on Free/Starter, 99.5% on Pro, 99.9% on Business (with credits).
Endpoints
Base URL: https://civicstream.tv/wp-json/cstv/public/v1
| Method | Path | Returns |
|---|---|---|
| GET | /streams/live | Currently live streams (federal + state + local). |
| GET | /news/recent?limit=10 | Recent news headlines (1–25). |
| GET | /schedule/today | Today's federal schedule (House, Senate, committees, WH). |
| GET | /elections/upcoming?limit=8 | Upcoming races, dated, with incumbent + nominee. |
| GET | /elections/calendar?days=10 | Date-bucketed election calendar (next N days). |
| GET | /whoami | Confirm your key, see plan + current usage. |
More endpoints (politicians, bills, committees, by-state filters) are rolling out under the same namespace — subscribe and we'll email you as they ship.
Example
curl https://civicstream.tv/wp-json/cstv/public/v1/streams/live \
-H "X-CivicStream-Key: csk_live_..."