#Python#GraphQL#API#LeetCode

LeetCode'un API'si Yok, Ama GraphQL Endpoint'i Var

ET
Erkan Turgut
Author
February 10, 2026
Published
1 min read
Reading Time

GitHub profilime LeetCode istatistiklerimi eklemek istediğimde ilk işim dokümantasyon aramak oldu. Sonuç: resmi API yok.

Ama tarayıcıyı açıp F12'ye bastım, Network sekmesine baktım ve ilginç bir şey gördüm.

GraphQL Endpoint'i

LeetCode'un frontend'i https://leetcode.com/graphql adresine istek atıyor. Bu endpoint'e doğrudan query gönderebiliyorsunuz. Resmi değil, duyurulmamış, ama çalışıyor.

query userPublicProfile($username: String!) {
matchedUser(username: $username) {
submitStats {acSubmissionNum {
difficulty count }
} profile {
ranking }
}
}

Python tarafında bunu çekmek için requests yeterli:

def get_leetcode_stats(username):\n    url = "https://leetcode.com/graphql"\n    resp = requests.post(url, json={"query": query, "variables": {"username": username}})\n    return resp.json()["data"]["matchedUser"]

Schema Nasıl Keşfettim

Resmi schema yok. Tarayıcıda network trafiğini izleyerek hangi field'ların kullanıldığını anladım. Bir de introspection query çalıştırdım — tüm type'ları ve field'ları döküyor.

Rate Limiting

Agresif istekler atarsanız 429 alıyorsunuz. SQLite ile basit bir cache yazdım, saatte bir güncelleme yeterli.



Sonuçta Ne Yaptım

GitHub Actions ile her sabah çalışan bir workflow yazdım — stats çekiyor, SVG badge oluşturuyor, README'yi commit ediyor. Resmi API olmadan da oluyordu.

Bu endpoint'ler resmi olmadığından LeetCode istediği zaman değiştirebilir. Production'a kritik bağımlılık olarak koymazdım, ama kişisel projeler için gayet iyi çalışıyor.

Share this post

Share it with your friends if you enjoyed it

ET

Erkan Turgut

As a Full Stack Developer, I build user-friendly and performant applications with modern web technologies.