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.