Skip to content

Platform Statistics ​

Get detailed statistics for a specific platform.

Endpoint ​

http
GET /contests/stats/:platform

Authentication ​

Not required - Public endpoint

Parameters ​

Path Parameters ​

ParameterTypeRequiredDescription
platformstringYesPlatform name (codeforces, leetcode, codechef, atcoder)

Response ​

Success (200 OK) ​

json
{
  "platform": "codeforces",
  "totalContests": 450,
  "upcomingContests": 12,
  "runningContests": 1,
  "finishedContests": 437,
  "averageDuration": 120,
  "averageParticipants": 15000,
  "lastSyncTime": "2024-02-15T10:00:00.000Z"
}

Response Fields ​

FieldTypeDescription
platformstringPlatform name
totalContestsnumberTotal contests for this platform
upcomingContestsnumberUpcoming contests
runningContestsnumberCurrently running
finishedContestsnumberFinished contests
averageDurationnumberAverage duration in minutes
averageParticipantsnumberAverage participant count
lastSyncTimestringLast sync timestamp (ISO 8601)

Examples ​

cURL ​

bash
# Codeforces stats
curl http://localhost:3000/contests/stats/codeforces

# LeetCode stats
curl http://localhost:3000/contests/stats/leetcode

JavaScript ​

javascript
const getPlatformStats = async (platform) => {
  const response = await fetch(`/contests/stats/${platform}`);
  return await response.json();
};

// Usage
const cfStats = await getPlatformStats('codeforces');
console.log(`Codeforces: ${cfStats.totalContests} contests`);
console.log(`Average duration: ${cfStats.averageDuration} minutes`);

React Component ​

typescript
const PlatformStats = ({ platform }) => {
  const [stats, setStats] = useState(null);

  useEffect(() => {
    fetch(`/contests/stats/${platform}`)
      .then(res => res.json())
      .then(data => setStats(data));
  }, [platform]);

  if (!stats) return <div>Loading...</div>;

  return (
    <div>
      <h2>{stats.platform} Statistics</h2>
      <p>Total Contests: {stats.totalContests}</p>
      <p>Upcoming: {stats.upcomingContests}</p>
      <p>Average Duration: {stats.averageDuration} minutes</p>
      <p>Average Participants: {stats.averageParticipants.toLocaleString()}</p>
      <p>Last Synced: {new Date(stats.lastSyncTime).toLocaleString()}</p>
    </div>
  );
};

Use Cases ​

Platform Comparison ​

Compare metrics across different platforms.

Sync Status ​

Check when platform was last synchronized.

Platform Health ​

Monitor platform activity and participation.

Notes ​

  • Public endpoint
  • Only counts active contests
  • Averages calculated from all contests (including finished)
  • Last sync time shows most recent contest sync for that platform

Built with ❤️ for competitive programmers worldwide.