codeforces-api-ts
v3.0.1
Published
Codeforces API Client Library for Node.js with Typescript support
Downloads
233
Maintainers
Readme
Codeforces-API-TS
Codeforces-API-TS is a NodeJS Client Library for Codeforces API with Typescript support 💙
Note
Source code in this repo is heavily inspired by ahmed-dinar/codeforces-api-node.
Install
npm install codeforces-api-ts
Usage
import { CodeforcesAPI } from "codeforces-api-ts";
(async () => {
CodeforcesAPI.setCredentials({
API_KEY: "your-api-key",
API_SECRET: "your-api-secret",
});
// all methods return a promise
await CodeforcesAPI.call("blogEntry.comments", { blogEntryId: 79 });
await CodeforcesAPI.call("blogEntry.view", { blogEntryId: 79 });
await CodeforcesAPI.call("contest.hacks", { contestId: 566 });
await CodeforcesAPI.call("contest.list", {});
await CodeforcesAPI.call("contest.ratingChanges", { contestId: 566 });
await CodeforcesAPI.call("contest.standings", { contestId: 566 });
await CodeforcesAPI.call("contest.status", { contestId: 566 });
await CodeforcesAPI.call("problemset.problems", {});
await CodeforcesAPI.call("problemset.recentStatus", { count: 10 });
await CodeforcesAPI.call("recentActions", { maxCount: 10 });
await CodeforcesAPI.call("user.blogEntries", { handle: "kerolloz" });
await CodeforcesAPI.call("user.friends", {}); // requires authorization
await CodeforcesAPI.call("user.info", { handles: "kerolloz" });
await CodeforcesAPI.call("user.ratedList", {});
await CodeforcesAPI.call("user.rating", { handle: "kerolloz" });
await CodeforcesAPI.call("user.status", { handle: "kerolloz" });
})();
API
The source code is well documented. I tried to make it as simple as possible and followed the same conventions as the official API. You can simply hover over the method name to see the description of the method and its parameters.
You can find function defentions and types in src/types.ts
Methods & Parameters
Full description of the API can be found on http://codeforces.com/apiHelp.
| Method | Parameters |
| ---------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
| blogEntry.comments | *blogEntryId |
| blogEntry.view | *blogEntryId |
| contest.hacks | *contestId |
| contest.list | gym |
| contest.ratingChanges | *contestId |
| contest.standings | *contestId, from, count, handles, room, showUnofficial |
| contest.status | *contestId, handle, from, count |
| problemset.problems | tags, problemsetName |
| problemset.recentStatus | *count, problemsetName |
| recentActions | *maxCount |
| user.blogEntries | *handle |
| user.friends | onlyOnline |
| user.info | *handles |
| user.ratedList | activeOnly, includeRetired, contestId |
| user.rating | *handle |
| user.status | *handle, from, count |
*required parameters
Authorization
The only method that requires authorization is user.friends
. To authorize your requests you need to set your API_KEY and API_SECRET using the setCredentials
method.
You can get your API key from http://codeforces.com/settings/api.
Return Data
Data is returned in JSON format. For full description of data format visit http://codeforces.com/apiHelp/objects.