{"openapi":"3.1.0","info":{"title":"AtCoder Rating & Contest API","version":"1.0.0","description":"Live competitive-programming rating data from AtCoder, the largest Japanese competitive-programming platform, over its public rating-history feed — no key, nothing stored. This is the contest-rating social view for a coder: their AtCoder rating, colour tier, contest record and performance over time, distinct from the other competitive-programming and developer platforms in the catalogue — AtCoder runs its own AGC/ABC contests, its own rating system and its own community. The user endpoint returns a profile snapshot: current rating, peak rating, the AtCoder colour tier (gray, brown, green, cyan, blue, yellow, orange, red), the number of rated contests, the best placing, the best performance and the latest contest. The history endpoint returns the full per-contest rating timeline — each contest with its date, old and new rating, the rating delta, placing, performance and whether it counted as rated. The stats endpoint aggregates a coder's record: rated versus unrated contests, average and best performance, contest wins, podium finishes, the rating range and per-year activity. Build coder leaderboards, rating cards, contest-tracking bots and recruiting signals on top of real AtCoder data. Lookup is by handle; the legendary handle \"tourist\" is always available.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/atcoder-api","description":"oanor gateway"}],"tags":[{"name":"User"},{"name":"History"},{"name":"Stats"},{"name":"Meta"},{"name":"Rating"},{"name":"Problems"},{"name":"Contests"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/user":{"get":{"operationId":"get_v1_user","tags":["User"],"summary":"Profile snapshot — rating, tier, best placing","description":"","parameters":[{"name":"handle","in":"query","required":true,"description":"AtCoder username","schema":{"type":"string"},"example":"tourist"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"handle":"tourist","source":"AtCoder","platform":"AtCoder","best_place":1,"color_tier":"red (legend)","peak_rating":4229,"last_contest":{"date":"2026-03-30T00:00:00+09:00","name":"AtCoder Grand Contest 077","place":2,"new_rating":3797,"performance":3928},"first_contest":"2016-09-04T22:50:00+09:00","current_rating":3797,"rated_contests":71,"total_contests":140,"best_performance":4495},"meta":{"timestamp":"2026-06-12T01:42:37.004Z","request_id":"b17a9140-1322-4fb3-b176-3421c1f8510c"},"status":"ok","message":"User retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/history":{"get":{"operationId":"get_v1_history","tags":["History"],"summary":"Full per-contest rating timeline","description":"","parameters":[{"name":"handle","in":"query","required":true,"description":"AtCoder username","schema":{"type":"string"},"example":"tourist"},{"name":"limit","in":"query","required":false,"description":"Max contests (1-500)","schema":{"type":"string"},"example":"100"},{"name":"rated_only","in":"query","required":false,"description":"true to keep only rated contests","schema":{"type":"string"},"example":"true"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":71,"handle":"tourist","source":"AtCoder","history":[{"date":"2016-09-04T22:50:00+09:00","delta":2720,"place":2,"contest":"AtCoder Grand Contest 004","is_rated":true,"new_rating":2720,"old_rating":0,"performance":3920},{"date":"2016-09-11T22:40:00+09:00","delta":131,"place":3,"contest":"AtCoder Regular Contest 061","is_rated":true,"new_rating":2851,"old_rating":2720,"performance":3200},{"date":"2016-09-24T23:00:00+09:00","delta":517,"place":1,"contest":"CODE FESTIVAL 2016 qual A","is_rated":true,"new_rating":3368,"old_rating":2851,"performance":4310},{"date":"2016-10-01T22:50:00+09:00","delta":279,"place":1,"contest":"AtCoder Grand Contest 005","is_rated":true,"new_rating":3647,"old_rating":3368,"performance":4391},{"date":"2016-11-26T15:30:00+09:00","delta":155,"place":1,"contest":"CODE FESTIVAL 2016 Final","is_rated":true,"new_rating":3802,"old_rating":3647,"performance":4356},{"date":"2016-11-28T15:00:00+09:00","delta":32,"place":2,"contest":"CODE FESTIVAL 2016 Grand Final","is_rated":true,"new_rating":3834,"old_rating":3802,"performance":4017},{"date":"2017-01-22T23:00:00+09:00","delta":-28,"place":5,"contest":"AtCoder Grand Contest 009","is_rated":true,"new_rating":3806,"old_rating":3834,"performance":3687},{"date":"2017-02-04T22:50:00+09:00","delta":54,"place":2,"contest":"AtCoder Grand Contest 010","is_rated":true,"new_rating":3860,"old_rating":3806,"performance":4152},{"date":"2017-02-25T23:00:00+09:00","delta":89,"place":1,"contest":"Mujin Programming Challenge 2017","is_rated":true,"new_rating":3949,"old_rating":3860,"performance":4395},{"date":"2017-06-18T22:50:00+09:00","delta":72,"place":1,"contest":"AtCoder Grand Contest 016","is_rated":true,"new_rating":4021,"old_rating":3949,"performance":4415},{"date":"2017-07-09T23:00:00+09:00","delta":60,"place":1,"contest":"AtCoder Grand Contest 017","is_rated":true,"new_rating":4081,"old_rating":4021,"performance":4427},{"date":"2017-07-23T23:10:00+09:00","delta":50,"place":1,"contest":"AtCoder Grand Contest 018","is_rated":true,"new_rating":4131,"old_rating":4081,"performance":4440},{"date":"2017-09-23T23:00:00+09:00","delta":4,"place":2,"contest":"CODE FESTIVAL 2017 qual A","is_rated":true,"new_rating":4135,"old_rating":4131,"performance":4174},{"date":"2017-10-08T23:00:00+09:00","delta":40,"place":1,"contest":"CODE FESTIVAL 2017 qual B","is_rated":true,"new_rating":4175,"old_rating":4135,"performance":4439},{"date":"2017-10-22T23:00:00+09:00","delta":-12,"place":2,"contest":"CODE FESTIVAL 2017 qual C","is_rated":true,"new_rating":4163,"old_rating":4175,"performance":4078},{"date":"2017-11-25T15:30:00+09:00","delta":35,"place":1,"contest":"CODE FESTIVAL 2017 Final","is_rated":true,"new_rating":4198,"old_rating":4163,"performance":4437},{"date":"2018-02-04T04:00:00+09:00","delta":-27,"place":3,"contest":"AtCoder Petrozavodsk Contest 001","is_rated":true,"new_rating":4171,"old_rating":4198,"performance":3940},{"date":"2018-02-24T22:50:00+09:00","delta":37,"place":1,"contest":"AtCoder Grand Contest 021","is_rated":true,"new_rating":4208,"old_rating":4171,"performance":4470},{"date":"2018-04-01T02:30:00+09:00","delta":-66,"place":17,"contest":"AtCoder Grand Contest 022","is_rated":true,"new_rating":4142,"old_rating":4208,"performance":3402},{"date":"2018-04-28T23:20:00+09:00","delta":-24,"place":3,"contest":"AtCoder Grand Contest 023","is_rated":true,"new_rating":4118,"old_rating":4142,"performance":3902},{"date":"2018-05-20T23:10:00+09:00","delta":43,"place":1,"contest":"AtCoder Grand Contest 024","is_rated":true,"new_rating":4161,"old_rating":4118,"performance":4465},{"date":"2018-06-03T23:10:00+09:00","delta":-59,"place":16,"contest":"AtCoder Grand Contest 025","is_rated":true,"new_rating":4102,"old_rating":4161,"performance":3442},{"date":"2018-07-14T23:30:00+09:00","delta":-33,"place":6,"contest":"AtCoder Grand Contest 026","is_rated":true,"new_rating":4069,"old_rating":4102,"performance":3755},{"date":"2018-09-15T23:20:00+09:00","delta":45,"place":1,"contest":"AtCoder Grand Contest 027","is_rated":true,"new_rating":4114,"old_rating":4069,"performance":4434},{"date":"2018-10-13T23:30:00+09:00","delta":35,"place":1,"contest":"AtCoder Grand Contest 028","is_rated":true,"new_rating":4149,"old_rating":4114,"performance":4414},{"date":"2018-12-29T22:50:00+09:00","delta":4,"place":2,"contest":"AtCoder Grand Contest 030","is_rated":true,"new_rating":4153,"old_rating":4149,"performance":4183},{"date":"2019-02-21T15:00:00+09:00","delta":-63,"place":7,"contest":"World Tour Finals 2019","is_rated":true,"new_rating":4090,"old_rating":4153,"performance":3337},{"date":"2019-03-16T23:40:00+09:00","delta":-56,"place":18,"contest":"AtCoder Grand Contest 031","is_rated":true,"new_rating":4034,"old_rating":4090,"performance":3388},{"date":"2019-03-23T23:50:00+09:00","delta":-16,"place":5,"contest":"AtCoder Grand Contest 032","is_rated":true,"new_rating":4018,"old_rating":4034,"performance":3872},{"date":"2019-05-04T23:30:00+09:00","delta":48,"place":1,"contest":"AtCoder Grand Contest 033","is_rated":true,"new_rating":4066,"old_rating":4018,"performance":4414},{"date":"2019-06-02T23:00:00+09:00","delta":-22,"place":6,"contest":"AtCoder Grand Contest 034","is_rated":true,"new_rating":4044,"old_rating":4066,"performance":3830},{"date":"2019-07-14T23:40:00+09:00","delta":45,"place":1,"contest":"AtCoder Grand Contest 035","is_rated":true,"new_rating":4089,"old_rating":4044,"performance":4426},{"date":"2019-07-21T23:40:00+09:00","delta":-40,"place":9,"contest":"AtCoder Grand Contest 036","is_rated":true,"new_rating":4049,"old_rating":4089,"performance":3614},{"date":"2019-08-17T23:30:00+09:00","delta":-26,"place":7,"contest":"AtCoder Grand Contest 037","is_rated":true,"new_rating":4023,"old_rating":4049,"performance":3767},{"date":"2019-09-21T22:50:00+09:00","delta":50,"place":1,"contest":"AtCoder Grand Contest 038","is_rated":true,"new_rating":4073,"old_rating":4023,"performance":4438},{"date":"2019-10-05T23:30:00+09:00","delta":-1,"place":3,"contest":"AtCoder Grand Contest 039","is_rated":true,"new_rating":4072,"old_rating":4073,"performance":4064},{"date":"2019-11-04T02:30:00+09:00","delta":39,"place":1,"contest":"AtCoder Grand Contest 040","is_rated":true,"new_rating":4111,"old_rating":4072,"performance":4413},{"date":"2020-03-21T23:30:00+09:00","delta":40,"place":1,"contest":"AtCoder Grand Contest 043","is_rated":true,"new_rating":4151,"old_rating":4111,"performance":4455},{"date":"2020-05-23T23:30:00+09:00","delta":39,"place":1,"contest":"AtCoder Grand Contest 044","is_rated":true,"new_rating":4190,"old_rating":4151,"performance":4487},{"date":"2020-06-07T23:30:00+09:00","delta":-31,"place":6,"contest":"AtCoder Grand Contest 045","is_rated":true,"new_rating":4159,"old_rating":4190,"performance":3842},{"date":"2020-06-20T23:30:00+09:00","delta":39,"place":1,"contest":"AtCoder Grand Contest 046","is_rated":true,"new_rating":4198,"old_rating":4159,"performance":4495},{"date":"2020-08-09T23:20:00+09:00","delta":31,"place":1,"contest":"AtCoder Grand Contest 047","is_rated":true,"new_rating":4229,"old_rating":4198,"performance":4473},{"date":"2020-10-18T23:30:00+09:00","delta":-5,"place":2,"contest":"AtCoder Grand Contest 048","is_rated":true,"new_rating":4224,"old_rating":4229,"performance":4179},{"date":"2020-12-27T00:30:00+09:00","delta":-82,"place":62,"contest":"AtCoder Grand Contest 050 (Good Bye rng_58 Day 1)","is_rated":true,"new_rating":4142,"old_rating":4224,"performance":2904},{"date":"2020-12-28T01:30:00+09:00","delta":-44,"place":11,"contest":"AtCoder Grand Contest 051 (Good Bye rng_58 Day 2)","is_rated":true,"new_rating":4098,"old_rating":4142,"performance":3603},{"date":"2021-03-07T23:40:00+09:00","delta":-10,"place":3,"contest":"AtCoder Grand Contest 052","is_rated":true,"new_rating":4088,"old_rating":4098,"performance":4002},{"date":"2021-04-11T00:00:00+09:00","delta":-32,"place":7,"contest":"AtCoder Grand Contest 053","is_rated":true,"new_rating":4056,"old_rating":4088,"performance":3722},{"date":"2021-06-27T23:30:00+09:00","delta":-33,"place":8,"contest":"AtCoder Grand Contest 054","is_rated":true,"new_rating":4023,"old_rating":4056,"performance":3667},{"date":"2021-11-01T00:00:00+09:00","delta":10,"place":2,"contest":"AtCoder Grand Contest 055","is_rated":true,"new_rating":4033,"old_rating":4023,"performance":4118},{"date":"2021-12-05T00:00:00+09:00","delta":-64,"place":33,"contest":"AtCoder Grand Contest 056","is_rated":true,"new_rating":3969,"old_rating":4033,"performance":3149},{"date":"2022-05-08T00:00:00+09:00","delta":49,"place":1,"contest":"AtCoder Grand Contest 057","is_rated":true,"new_rating":4018,"old_rating":3969,"performance":4386},{"date":"2022-08-15T00:10:00+09:00","delta":-42,"place":14,"contest":"AtCoder Grand Contest 058","is_rated":true,"new_rating":3976,"old_rating":4018,"performance":3501},{"date":"2022-12-05T00:00:00+09:00","delta":-15,"place":5,"contest":"AtCoder Grand Contest 059","is_rated":true,"new_rating":3961,"old_rating":3976,"performance":3818},{"date":"2022-12-26T00:00:00+09:00","delta":-17,"place":5,"contest":"AtCoder Grand Contest 060","is_rated":true,"new_rating":3944,"old_rating":3961,"performance":3778},{"date":"2023-02-13T00:00:00+09:00","delta":-47,"place":20,"contest":"AtCoder Grand Contest 061","is_rated":true,"new_rating":3897,"old_rating":3944,"performance":3361},{"date":"2023-05-22T00:00:00+09:00","delta":-8,"place":5,"contest":"AtCoder Grand Contest 062","is_rated":true,"new_rating":3889,"old_rating":3897,"performance":3820},{"date":"2023-07-31T00:00:00+09:00","delta":-50,"place":27,"contest":"AtCoder Grand Contest 063","is_rated":true,"new_rating":3839,"old_rating":3889,"performance":3246},{"date":"2023-08-14T00:00:00+09:00","delta":19,"place":2,"contest":"AtCoder Grand Contest 064","is_rated":true,"new_rating":3858,"old_rating":3839,"performance":4018},{"date":"2023-12-18T00:00:00+09:00","delta":5,"place":5,"contest":"AtCoder Grand Contest 065","is_rated":true,"new_rating":3863,"old_rating":3858,"performance":3906},{"date":"2024-04-01T00:00:00+09:00","delta":-65,"place":56,"contest":"AtCoder Grand Contest 066","is_rated":true,"new_rating":3798,"old_rating":3863,"performance":2953},{"date":"2024-08-19T00:00:00+09:00","delta":-24,"place":12,"contest":"AtCoder Grand Contest 067","is_rated":true,"new_rating":3774,"old_rating":3798,"performance":3531},{"date":"2024-09-30T00:00:00+09:00","delta":16,"place":3,"contest":"AtCoder Grand Contest 068","is_rated":true,"new_rating":3790,"old_rating":3774,"performance":3921},{"date":"2024-11-25T00:00:00+09:00","delta":-4,"place":6,"contest":"AtCoder Grand Contest 069","is_rated":true,"new_rating":3786,"old_rating":3790,"performance":3752},{"date":"2024-12-30T00:00:00+09:00","delta":24,"place":2,"contest":"AtCoder Grand Contest 070","is_rated":true,"new_rating":3810,"old_rating":3786,"performance":4006},{"date":"2025-03-31T00:00:00+09:00","delta":23,"place":2,"contest":"AtCoder Grand Contest 071","is_rated":true,"new_rating":3833,"old_rating":3810,"performance":4023},{"date":"2025-04-21T00:00:00+09:00","delta":-13,"place":8,"contest":"AtCoder Grand Contest 072","is_rated":true,"new_rating":3820,"old_rating":3833,"performance":3690},{"date":"2025-09-29T00:00:00+09:00","delta":-35,"place":14,"contest":"AtCoder Grand Contest 073","is_rated":true,"new_rating":3785,"old_rating":3820,"performance":3417},{"date":"2025-10-27T00:00:00+09:00","delta":-9,"place":5,"contest":"AtCoder Grand Contest 074","is_rated":true,"new_rating":3776,"old_rating":3785,"performance":3696},{"date":"2025-12-22T00:00:00+09:00","delta":54,"place":1,"contest":"AtCoder Grand Contest 075","is_rated":true,"new_rating":3830,"old_rating":3776,"performance":4224},{"date":"2025-12-29T00:00:00+09:00","delta":-48,"place":24,"contest":"AtCoder Grand Contest 076","is_rated":true,"new_rating":3782,"old_rating":3830,"performance":3228},{"date":"2026-03-30T00:00:00+09:00","delta":15,"place":2,"contest":"AtCoder Grand Contest 077","is_rated":true,"new_rating":3797,"old_rating":3782,"performance":3928}],"platform":"AtCoder"},"meta":{"timestamp":"2026-06-12T01:42:37.334Z","request_id":"202dbd44-f267-4061-baee-acc95634275d"},"status":"ok","message":"History retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/stats":{"get":{"operationId":"get_v1_stats","tags":["Stats"],"summary":"Aggregated record — averages, wins, podiums","description":"","parameters":[{"name":"handle","in":"query","required":true,"description":"AtCoder username","schema":{"type":"string"},"example":"tourist"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"wins":23,"handle":"tourist","source":"AtCoder","podiums":41,"platform":"AtCoder","best_delta":2720,"color_tier":"red (legend)","peak_rating":4229,"worst_delta":-82,"lowest_rating":2720,"current_rating":3797,"rated_contests":71,"total_contests":140,"avg_performance":3945.2,"best_performance":4495,"contests_by_year":{"2016":6,"2017":10,"2018":10,"2019":11,"2020":8,"2021":5,"2022":4,"2023":5,"2024":5,"2025":6,"2026":1}},"meta":{"timestamp":"2026-06-12T01:42:38.147Z","request_id":"f3b7ab96-e959-4245-8a69-9e6d69571f3b"},"status":"ok","message":"Stats retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Service metadata","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"handle is an AtCoder username (try handle=tourist, the legendary top-rated coder). Unknown handles return 404. Colour tiers: gray (<400), brown, green, cyan, blue, yellow, orange (<2800), red (2800+).","source":"AtCoder public rating history (atcoder.jp/users/{handle}/history/json, live)","service":"atcoder-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/user":"Profile snapshot — current/peak rating, tier, best placing (handle=tourist).","GET /v1/stats":"Aggregated record — averages, wins, podiums, per-year activity (handle=tourist).","GET /v1/history":"Full per-contest rating timeline (handle=tourist, limit=100, rated_only=true optional)."},"description":"Live competitive-programming rating data from AtCoder, the largest Japanese competitive-programming platform. The contest-rating social view for a coder — rating, colour tier, contest record and performance over time. user = profile snapshot (current and peak rating, AtCoder colour tier gray→red, rated-contest count, best placing, best performance, latest contest); history = the full per-contest rating timeline (date, old/new rating, delta, placing, performance, rated flag); stats = aggregated record (rated vs unrated contests, average and best performance, wins, podiums, rating range, per-year activity). Live, no key, nothing stored. Lookup is by handle.","upstream_status":"ok"},"meta":{"timestamp":"2026-06-12T01:42:38.943Z","request_id":"b3cfa0ed-af7f-4c7f-9d2f-6e5817e63978"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/solved":{"get":{"operationId":"get_v1_solved","tags":["Problems"],"summary":"Problem-solving record — problems accepted and difficulty cleared","description":"","parameters":[{"name":"handle","in":"query","required":true,"description":"AtCoder username","schema":{"type":"string"},"example":"tourist"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"A coder's AtCoder problem-solving record (from the AtCoder Problems dataset): solved_count is how many distinct problems they have accepted, with solved_rank their global rank by that; rated_point_sum is the total point value of the rated problems they have solved (difficulty cleared, not just quantity), with its rank. Distinct from the contest-rating view (/v1/user). A handle with no AtCoder activity returns zeros. Pass handle (required).","handle":"tourist","source":"AtCoder Problems API (kenkoooo.com/atcoder), keyless","platform":"AtCoder","solved_rank":4265,"solved_count":1055,"rated_point_sum":688543,"rated_point_sum_rank":624},"meta":{"timestamp":"2026-06-13T13:55:10.060Z","request_id":"74021c5a-a1ce-4178-99b4-2cb6a3a80309"},"status":"ok","message":"Solved record retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/contests":{"get":{"operationId":"get_v1_contests","tags":["Contests"],"summary":"Catalogue of AtCoder contests, newest first","description":"","parameters":[{"name":"limit","in":"query","required":false,"description":"Max contests (1-100)","schema":{"type":"string"},"example":"30"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":30,"source":"AtCoder Problems API (kenkoooo.com/atcoder)","contests":[{"id":"abc461","start":"2026-06-06T12:00:00.000Z","title":"AtCoder Beginner Contest 461","rate_range":"~ 1999","contest_url":"https://atcoder.jp/contests/abc461","duration_minutes":100},{"id":"arc221","start":"2026-05-31T12:00:00.000Z","title":"AtCoder Regular Contest++ 221","rate_range":"1600 ~ 2999","contest_url":"https://atcoder.jp/contests/arc221","duration_minutes":150},{"id":"abc460","start":"2026-05-30T12:00:00.000Z","title":"AtCoder Beginner Contest 460","rate_range":"~ 1999","contest_url":"https://atcoder.jp/contests/abc460","duration_minutes":100},{"id":"ahc066","start":"2026-05-29T11:00:00.000Z","title":"AtCoder Heuristic Contest 066","rate_range":"All","contest_url":"https://atcoder.jp/contests/ahc066","duration_minutes":14340},{"id":"abc459","start":"2026-05-23T12:00:00.000Z","title":"東京海上日動プログラミングコンテスト2026（AtCoder Beginner Contest 459）","rate_range":"~ 1999","contest_url":"https://atcoder.jp/contests/abc459","duration_minutes":100},{"id":"c-league2026-1","start":"2026-05-22T11:00:00.000Z","title":"AtCoder 企業対抗リーグ 2026 第1戦","contest_url":"https://atcoder.jp/contests/c-league2026-1","duration_minutes":120},{"id":"c-league2026-1-open","start":"2026-05-22T11:00:00.000Z","title":"AtCoder 企業対抗リーグ 2026 第1戦(オープンコンテスト)","contest_url":"https://atcoder.jp/contests/c-league2026-1-open","duration_minutes":120},{"id":"arc220","start":"2026-05-17T12:00:00.000Z","title":"AtCoder Regular Contest++ 220","rate_range":"1600 ~ 2999","contest_url":"https://atcoder.jp/contests/arc220","duration_minutes":150},{"id":"abc458","start":"2026-05-16T12:00:00.000Z","title":"SMBCプログラミングコンテスト #1（AtCoder Beginner Contest 458）","rate_range":"~ 1999","contest_url":"https://atcoder.jp/contests/abc458","duration_minutes":100},{"id":"ahc065","start":"2026-05-16T06:00:00.000Z","title":"AtCoder Heuristic Contest 065","rate_range":"All","contest_url":"https://atcoder.jp/contests/ahc065","duration_minutes":240},{"id":"scpc2026-div3","start":"2026-05-16T04:30:00.000Z","title":"SCPC 2026 Div.3","contest_url":"https://atcoder.jp/contests/scpc2026-div3","duration_minutes":180},{"id":"scpc2026-div1","start":"2026-05-16T04:00:00.000Z","title":"SCPC 2026 Div.1","contest_url":"https://atcoder.jp/contests/scpc2026-div1","duration_minutes":270},{"id":"scpc2026-div2","start":"2026-05-16T04:00:00.000Z","title":"SCPC 2026 Div.2","contest_url":"https://atcoder.jp/contests/scpc2026-div2","duration_minutes":240},{"id":"arc219","start":"2026-05-10T12:00:00.000Z","title":"AtCoder Regular Contest-- 219","rate_range":"800 ~ 2399","contest_url":"https://atcoder.jp/contests/arc219","duration_minutes":120},{"id":"abc457","start":"2026-05-09T12:00:00.000Z","title":"Polaris.AI プログラミングコンテスト 2026（AtCoder Beginner Contest 457）","rate_range":"~ 1999","contest_url":"https://atcoder.jp/contests/abc457","duration_minutes":100},{"id":"ndpc","start":"2026-05-05T04:00:00.000Z","title":"Next DP Contest","contest_url":"https://atcoder.jp/contests/ndpc","duration_minutes":300},{"id":"arc218","start":"2026-05-03T12:00:00.000Z","title":"AtCoder Regular Contest 218","rate_range":"1200 ~ 2799","contest_url":"https://atcoder.jp/contests/arc218","duration_minutes":120},{"id":"abc456","start":"2026-05-02T12:00:00.000Z","title":"AtCoder Beginner Contest 456（Promotion of AtCoder Career Design DAY）","rate_range":"~ 1999","contest_url":"https://atcoder.jp/contests/abc456","duration_minutes":100},{"id":"ahc064","start":"2026-04-26T06:00:00.000Z","title":"JR西日本・ALGO ARTIS プログラミングコンテスト（AtCoder Heuristic Contest 064）","rate_range":"All","contest_url":"https://atcoder.jp/contests/ahc064","duration_minutes":240},{"id":"abc455","start":"2026-04-25T12:00:00.000Z","title":"Ｓｋｙ株式会社プログラミングコンテスト2026（AtCoder Beginner Contest 455）","rate_range":"~ 1999","contest_url":"https://atcoder.jp/contests/abc455","duration_minutes":100},{"id":"abc454","start":"2026-04-18T12:00:00.000Z","title":"キーサイト・テクノロジープログラミングコンテスト（AtCoder Beginner Contest 454）","rate_range":"~ 1999","contest_url":"https://atcoder.jp/contests/abc454","duration_minutes":100},{"id":"masters2026-final","start":"2026-04-18T02:40:00.000Z","title":"第三回マスターズ選手権 -決勝-","contest_url":"https://atcoder.jp/contests/masters2026-final","duration_minutes":360},{"id":"masters2026-final-open","start":"2026-04-18T02:40:00.000Z","title":"第三回マスターズ選手権-決勝-(オープンコンテスト)","contest_url":"https://atcoder.jp/contests/masters2026-final-open","duration_minutes":360},{"id":"abc453","start":"2026-04-11T12:00:00.000Z","title":"AtCoder Beginner Contest 453","rate_range":"~ 1999","contest_url":"https://atcoder.jp/contests/abc453","duration_minutes":100},{"id":"arc217","start":"2026-04-05T12:00:00.000Z","title":"AtCoder Regular Contest 217","rate_range":"1200 ~ 2799","contest_url":"https://atcoder.jp/contests/arc217","duration_minutes":120},{"id":"abc452","start":"2026-04-04T12:00:00.000Z","title":"AtCoder Beginner Contest 452","rate_range":"~ 1999","contest_url":"https://atcoder.jp/contests/abc452","duration_minutes":100},{"id":"ahc063","start":"2026-04-03T10:00:00.000Z","title":"AtCoder Heuristic Contest 063","rate_range":"All","contest_url":"https://atcoder.jp/contests/ahc063","duration_minutes":14400},{"id":"agc077","start":"2026-03-29T12:00:00.000Z","title":"AtCoder Grand Contest 077","rate_range":"2000 ~","contest_url":"https://atcoder.jp/contests/agc077","duration_minutes":180},{"id":"abc451","start":"2026-03-28T12:00:00.000Z","title":"AtCoder Beginner Contest 451","rate_range":"~ 1999","contest_url":"https://atcoder.jp/contests/abc451","duration_minutes":100},{"id":"pakencamp-2025-day3","start":"2026-03-28T05:00:00.000Z","title":"パ研合宿2025　第3日「Teamwork」","contest_url":"https://atcoder.jp/contests/pakencamp-2025-day3","duration_minutes":300}],"total_contests":1551},"meta":{"timestamp":"2026-06-13T13:55:11.424Z","request_id":"c36b1623-5441-46ad-aa6f-eb2da100a5f7"},"status":"ok","message":"Contests retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":16000,"rps_limit":3,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":590,"monthly_call_quota":240000,"rps_limit":10,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1740,"monthly_call_quota":1150000,"rps_limit":25,"hard_limit":true},{"slug":"scale","name":"Scale","price_cents_month":3950,"monthly_call_quota":4100000,"rps_limit":55,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/atcoder-api"}