FREE API

ProtestPulse API

Access real-time global protest data. No API key required for read endpoints. Build dashboards, research tools, or integrate into your applications.

Base URL

https://protestracker.portofcams.com

All endpoints return JSON. No authentication required for GET requests.

GET/api/protests

List and search protests with pagination and filtering

Parameters

typeFilter by type (LABOR, CLIMATE, POLITICAL, etc.)
statusFilter by status (ACTIVE, PLANNED, ENDED)
countryFilter by country name
searchFull-text search across title, description, city, country
limitResults per page (default: 20, max: 100)
offsetPagination offset
/api/protests?type=CLIMATE&status=ACTIVE&limit=10
GET/api/protests/[id]

Get full details for a single protest including sources, updates, and images

/api/protests/cm1234567890
GET/api/protests/globe

Get all protests formatted for globe/map visualization (lat, lng, size, color)

/api/protests/globe
GET/api/protests/stats

Global statistics: totals, by type, by status, countries affected, participants

/api/protests/stats
GET/api/protests/trending

Top 6 most active protests sorted by intensity and crowd size

/api/protests/trending
GET/api/countries/[code]

Get stats and protests for a specific country

/api/countries/US
POST/api/submit

Submit a new protest report for community review

Parameters

titleProtest title (required)
descriptionDescription (required)
typeProtest type enum (required)
countryCountry (required)
cityCity (required)
sourceUrlSource URL (required)
submitterEmailYour email (optional)
POST /api/submit with JSON body

Embeddable Widgets

Add live protest data to your website with a simple iframe.

Live Ticker

<iframe src="https://protestracker.portofcams.com/embed/ticker" width="100%" height="60" frameborder="0"></iframe>

Stats Card

<iframe src="https://protestracker.portofcams.com/embed/card" width="400" height="320" frameborder="0"></iframe>

Want More Data?

We aggregate from GDELT, ACLED, RSS feeds, Reddit, and community submissions. Need bulk access or custom feeds? Get in touch.