Pokékipe Public API
Analytics Pokémon competitive miễn phí, dẫn xuất từ usage stats hàng tháng của Smogon và refresh mỗi tháng. Không cần tài khoản cho usage thường ngày; mint một key cá nhân từ Account Settings để nâng trần rate-limit cho bulk pull.
Endpoint
100+
Format
30+
Refresh
Hàng tháng
Auth
Tùy chọn
License
CC BY 4.0
Tại sao thứ này tồn tại
API này là gì, và không phải là gì
Bốn điều cần biết trước khi viết một dòng code chống lại /api/v1/.
API này là gì
Một surface JSON read-only trên data Pokémon competitive của thế giới. Hỏi "meta Gen 9 OU tại 1500+ ELO tháng này thế nào?" hoặc "ai counter Pokémon này trong top cut tournament này?" và lấy câu trả lời single-call với shape ổn định, có docs.
Data đến từ đâu
Battle log hàng tháng của Smogon (chaos JSON public), feed tournament chính thức (Pokémon Company, VGC, Smogon Tour), và nguồn community như Limitless TCG cho event do community vận hành. Pokékipe chạy pipeline ingestion, normalization, và enrichment riêng trên đó, rồi re-expose kết quả đã làm sạch.
API này KHÔNG phải gì
Không phải bridge Pokémon Showdown live, không phải simulator trận đấu, không phải endpoint damage calculator, không phải engine teambuilding. Mấy tool đó sống trên website. API là tầng data chúng ngồi trên.
Credit upstream
Credit đúng người đúng việc. Smogon, các exporter chaos-format JSON, và cộng đồng player chơi mỗi tháng là lý do dataset này tồn tại. Pokékipe làm nó có thể truy vấn được; không sở hữu data gốc.
Bắt đầu
Call đầu tiên của bạn, trong 30 giây
Ba ví dụ copy-paste fetch catalog format. Không API key, không setup, không signup. Chọn tab ngôn ngữ, paste, chạy.
curl -s https://pokekipe.com/api/v1/formats \
| jq '.[0:3]'Thay path bằng bất kỳ endpoint nào trong reference dưới đây. Call đầu tiên nên trả về dưới một giây trên cache nóng.
Xác thực
Xác thực và rate limit
Các lệnh gọi ẩn danh hoạt động cho usage thường ngày. Một key cá nhân (miễn phí, tạo từ cài đặt tài khoản) nâng trần rate-limit cho analyst và builder kéo data hàng loạt. Key không bao giờ mở khóa endpoint mới; chúng chỉ nâng trần.
Ẩn danh, không key
Mặc địnhGọi mà không cần header. Bucket khóa trên IP của bạn, nên một script nhỏ hoặc agent LLM bắn một nắm request per session sẽ không bao giờ trip limit.
- Không account, không signup, không header phải set.
- Bucket per-IP, phù hợp cho script ad-hoc và tool-use agent LLM.
- Dính 429 nếu bạn duy trì bulk pull; switch sang key cá nhân.
mỗi phút
60
mỗi ngày
5,000
Đã xác thực, với key cá nhân
Khuyên dùng cho bulkPass key của bạn dưới dạng X-API-Key (hoặc Authorization: Bearer pk_live_…). Call ẩn danh vẫn chạy song song; key chỉ nâng trần, không mở khóa endpoint mới.
- Bucket per-user: IP đổi không reset count.
- Trần cao hơn trên mọi limit per-route.
- Tối đa 5 key active per account, revoke bất cứ lúc nào.
mỗi phút
600
mỗi ngày
100,000
Header trên mỗi response
Mỗi response thành công đều mang theo rate-limit header dưới đây để client của bạn tự pace mà không cần retry. Đọc một lần per response và back off ngay khi Remaining còn vài request, không phải zero.
| Header | Ý nghĩa |
|---|---|
| X-RateLimit-Tier | Bạn thuộc tier nào: ẩn danh (no key) hoặc đã xác thực (JWT hoặc API key đã resolve). |
| X-RateLimit-Limit-Min | Trần per-minute cho tier của bạn (60 ẩn danh, 600 đã xác thực). |
| X-RateLimit-Limit-Day | Trần per-day cho tier của bạn (5 000 ẩn danh, 100 000 đã xác thực). |
| X-RateLimit-Remaining-Min | Số call còn lại trong window phút hiện tại. Chậm lại khi gần zero. |
| X-RateLimit-Remaining-Day | Số call còn lại trong window ngày hiện tại. Reset cùng wall-clock minute mỗi ngày. |
| Retry-After | Chỉ gửi trên 429. Chờ chừng đó giây trước khi retry, thường dưới 60 cho window per-minute. |
Lỗi
Các lỗi có thể gặp
Status code HTTP chuẩn. Body luôn là JSON với field "detail" mô tả lỗi. Coi 4xx là vấn đề contract (request của bạn) và 5xx là vấn đề của chúng tôi (retry với backoff).
OK
OK. Body là payload JSON như docs trong reference. Mảng rỗng nghĩa là "không có row", không phải "thiếu", xử lý như data chứ không phải fail.
Not Modified
Not Modified. Cache header đã được validate. Dùng body đã cache, không cần parse lại. Trả về tự động khi bạn gửi If-None-Match hoặc If-Modified-Since.
Bad Request
Bad Request. Một query param hoặc body shape sai. Detail message chỉ rõ field cụ thể. Đừng retry mà chưa fix input.
Unauthorized
Unauthorized. Request cần API key hoặc session mà không có cái nào, hoặc credential bị invalid/revoke. Đừng bắn liên tục, cấp lại credential.
Not Found
Not Found. Path hoặc resource không tồn tại. Với route per-Pokémon, thường nghĩa là format đó chưa có usage data cho Pokémon đó, không phải bạn typo.
Too Many Requests
Too Many Requests. Bạn chạm trần rate-limit. Đọc Retry-After và chờ, exponential backoff là phép lịch sự nhưng hiếm khi cần vì window ngắn.
Server Error
Internal Server Error. Có cái gì đó nổ phía chúng tôi. Retry một lần sau vài giây; nếu vẫn lỗi, ping chúng tôi trên Discord kèm URL request.
Service Unavailable
Service Unavailable. Chúng tôi đang deploy hoặc tạm thời quá tải. Retry với backoff. Status update post trên Discord community.
Luật chơi
Điều khoản sử dụng
Bốn luật chơi. Đọc một lần, tự cứu bản thân tương lai một cú ping Discord.
Credit upstream
Bắt buộc attribution khi redistribute hoặc republish. Credit Pokékipe (link đến https://pokekipe.com), và credit Smogon cho chaos JSON gốc họ publish mỗi tháng.
Best-effort, no SLA
Best-effort, no SLA. Data được serve "as is" không có guarantee uptime. Cache aggressive và degrade gracefully khi endpoint chậm hoặc trả 429.
Versioning
Schema dưới /api/v1/ giữ backwards-compatible trong vòng đời v1. Breaking change đi vào /api/v2/ với thông báo trước trên Discord và sunset header trên path deprecated.
Use thương mại
Use thương mại được phép dưới CC BY 4.0. Nếu bạn build cái gì trên API này, chúng tôi rất muốn nghe về nó trên Discord community.
Duyệt mọi endpoint, tất cả tại một chỗ
Duyệt mọi endpoint với mô tả, bảng parameter, schema request và response, và code sample trong curl, JavaScript, và Python. Search toàn bộ API trong một ô, deep-link đến mọi operation, share URL.
- 100+ endpoint
- ·
- 3-pane navigation, content, sample
- ·
- full-text search
- ·
- sample request live