API
Public, read-only JSON. No key, CORS open. All numbers are aggregates, individual votes are never exposed.
Base URL
https://www.currentstateofcallofduty.com
Endpoints
The sentiment score right now.
Returns score (0 to 100, null without votes), total, counts per level (1 Awful to 5 Great), windowDays.
Cache 60 seconds
GET /api/v1/sentiment/history?from=YYYY-MM-DD
One entry per day with score and number of votes. The from parameter is optional and filters the start.
Returns history: list of day, score, total. events: list of day, label for patches and releases in the same range.
Cache 5 minutes
GET /api/v1/stats
Visitor and vote counts, the same numbers as on the stats page.
Returns visitors (online, today, last7Days, last30Days), votes (today, last7Days, allTime, since), updatedAt. visitors is null when the counter is unavailable.
Cache 60 seconds
GET /api/v1/polls
All extra questions with their options.
Returns polls: list of slug, category, question, options (value, label), results link. windowDays.
Cache 1 hour
GET /api/v1/polls/{slug}/results
Result of one extra question over the last 7 days.
Returns slug, question, total, windowDays, options with value, label, count, percent.
Cache 60 seconds
How the score works
Each vote is one of five levels: 1 Awful, 2 Meh, 3 Okay, 4 Good, 5 Great. One vote per verified account per day (UTC). A new vote on the same day replaces the old one.
The score is the average of all votes from the last 7 days, mapped to 0 to 100: score = (average - 1) / 4 * 100. The history endpoint shows single days instead of the rolling window.
For AI agents and scripts
- /llms.txt holds the current numbers as Markdown, updated every 5 minutes.
- A request to / with the header Accept: application/json returns the current sentiment. With Accept: text/markdown it returns /llms.txt.
- robots.txt allows all crawlers, AI crawlers included.
Usage
The aggregates are free to use, also in articles, videos, and apps. Please credit the source: “Source: currentstateofcallofduty.com”, with a link where possible.
Data updates within a minute of each vote. Please cache for at least 60 seconds and keep polling to what you need.
v1 is stable. Fields are only added, never removed or renamed. A breaking change gets a new version prefix.