{"openapi":"3.1.0","info":{"title":"LeetCode API","version":"1.0.0","description":"Live data from LeetCode, the largest coding-interview and competitive-programming community: a member's coding profile (global ranking, reputation, country, problems solved split by easy/medium/hard, total submissions and badges), their competitive standing (contest rating, global ranking, contests attended, top percentage), their activity (current solving streak, total active days, submissions over the past year) and LeetCode's daily coding challenge (today's problem, difficulty, acceptance rate and topic tags).","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/leetcode-api","description":"oanor gateway"}],"tags":[{"name":"Challenge"},{"name":"Profile"},{"name":"Contest"},{"name":"Meta"}],"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/daily":{"get":{"operationId":"get_v1_daily","tags":["Challenge"],"summary":"Today's LeetCode daily coding challenge","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"date":"2026-06-10","link":"https://leetcode.com/problems/maximum-total-subarray-value-ii/","slug":"maximum-total-subarray-value-ii","title":"Maximum Total Subarray Value II","source":"LeetCode","paid_only":false,"difficulty":"Hard","topic_tags":["Array","Greedy","Segment Tree","Heap (Priority Queue)"],"question_id":"3691","acceptance_rate":34.66},"meta":{"timestamp":"2026-06-10T14:01:39.483Z","request_id":"0aff63e5-7586-436f-9f80-7d411b0b723e"},"status":"ok","message":"Daily challenge 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/calendar":{"get":{"operationId":"get_v1_calendar","tags":["Profile"],"summary":"A member solving streak and activity","description":"","parameters":[{"name":"username","in":"query","required":true,"description":"LeetCode username","schema":{"type":"string"},"example":"votrubac"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"source":"LeetCode","username":"votrubac","current_streak":4,"total_active_days":84,"active_days_past_year":84,"submissions_past_year":1235},"meta":{"timestamp":"2026-06-10T14:01:39.798Z","request_id":"f9e8351a-22d0-4cf0-9f91-dd84aa1a3945"},"status":"ok","message":"Calendar 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/user":{"get":{"operationId":"get_v1_user","tags":["Profile"],"summary":"A member coding profile and solved counts","description":"","parameters":[{"name":"username","in":"query","required":true,"description":"LeetCode username","schema":{"type":"string"},"example":"votrubac"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"avatar":"https://assets.leetcode.com/users/votrubac/avatar_1610271695.png","badges":["Knight","500 Days Badge","365 Days Badge","1000 Days Badge","100 Days Badge 2025","50 Days Badge 2025","200 Days Badge 2024","100 Days Badge 2024","50 Days Badge 2024","50 Days Badge 2023","100 Days Badge 2023","100 Days Badge 2022","Oct LeetCoding Challenge","Jul LeetCoding Challenge","Aug LeetCoding Challenge","Sep LeetCoding Challenge"],"school":"Kharkiv Air Force University","solved":{"all":3822,"easy":931,"hard":888,"medium":2003},"source":"LeetCode","company":"Google","country":"United States","ranking":51,"username":"votrubac","real_name":"Vlad","github_url":"https://github.com/votrubac","reputation":99866,"badge_count":16,"solution_count":1878,"post_view_count":10786515,"total_submissions":{"all":3826,"easy":931,"hard":890,"medium":2005}},"meta":{"timestamp":"2026-06-10T14:01:40.503Z","request_id":"90b9d793-c1f8-44f6-b9c3-e4401ec46d6f"},"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/contest":{"get":{"operationId":"get_v1_contest","tags":["Contest"],"summary":"A member contest rating and ranking","description":"","parameters":[{"name":"username","in":"query","required":true,"description":"LeetCode username","schema":{"type":"string"},"example":"votrubac"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"rating":2092.47,"source":"LeetCode","username":"votrubac","global_ranking":13247,"top_percentage":1.59,"attended_contests":487,"total_participants":874213},"meta":{"timestamp":"2026-06-10T14:01:41.122Z","request_id":"405e7280-1478-4c4c-923c-35115203e678"},"status":"ok","message":"Contest ranking 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 and endpoint catalog","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"source":"LeetCode GraphQL API (leetcode.com/graphql, live)","service":"leetcode-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/user":"A member's coding profile and solved counts (username=votrubac).","GET /v1/daily":"Today's LeetCode daily coding challenge.","GET /v1/contest":"A member's contest rating and ranking (username=votrubac).","GET /v1/calendar":"A member's solving streak and activity (username=votrubac)."},"description":"Live data from LeetCode, the largest coding-interview and competitive-programming community, via its public GraphQL API. The user endpoint returns a member's coding profile (global ranking, reputation, country, problems solved split by difficulty, total submissions and badges); the contest endpoint returns a member's competitive standing (contest rating, global ranking, contests attended, top percentage); the calendar endpoint returns a member's current solving streak, total active days and submissions over the past year; the daily endpoint returns LeetCode's daily coding challenge (today's problem, difficulty, acceptance rate and topic tags). Live, no key, nothing stored. Distinct from the GitHub, Codeforces, Codewars and Stack Exchange developer APIs — this is LeetCode's own member profiles, contest ratings and daily challenge.","upstream_status":"ok","daily_challenge_date":"2026-06-10"},"meta":{"timestamp":"2026-06-10T14:01:41.582Z","request_id":"35c53903-5e8e-4f6b-81dc-df1aefed18b7"},"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"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":8000,"rps_limit":3,"hard_limit":true},{"slug":"basic","name":"Basic","price_cents_month":500,"monthly_call_quota":120000,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1600,"monthly_call_quota":750000,"rps_limit":15,"hard_limit":true},{"slug":"scale","name":"Scale","price_cents_month":3900,"monthly_call_quota":3900000,"rps_limit":30,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/leetcode-api"}