Pokékipe Public API
포켓몬 경쟁 분석을 무료로. Smogon이 매월 공개하는 사용 통계를 바탕으로 매월 갱신됩니다. 가벼운 사용에는 계정이 필요 없으며, 계정 설정에서 개인 키를 발급하면 대량 호출 시 속도 제한 상한이 올라갑니다.
엔드포인트
100+
포함 포맷
30+
갱신
매월
인증
선택
라이선스
CC BY 4.0
왜 존재하는가
이 API의 정체와 정체가 아닌 것
/api/v1/에 코드 한 줄을 쓰기 전에 알아두면 좋은 네 가지.
이 API가 하는 일
전 세계 포켓몬 경쟁 데이터에 대한 읽기 전용 JSON 인터페이스입니다. "이번 달 Gen 9 OU의 1500+ ELO 메타는?" 또는 "이 토너먼트 Top Cut에서 이 포켓몬을 잡은 사람은 누구?"를 물어보면, 안정적으로 문서화된 형태로 한 번의 호출로 답이 돌아옵니다.
데이터 출처
Smogon의 월간 배틀 로그(공개 chaos JSON), 공식 토너먼트 피드(Pokémon Company, VGC, Smogon Tour), 그리고 커뮤니티 운영 대회는 Limitless TCG 같은 커뮤니티 출처. Pokékipe는 그 위에서 자체 인제스트, 정규화, 보강 파이프라인을 거쳐 정리된 결과를 다시 노출합니다.
이 API가 아닌 것
Pokémon Showdown 라이브 브리지가 아니고, 배틀 시뮬레이터도 아니며, 데미지 계산기 엔드포인트도, 팀 빌딩 엔진도 아닙니다. 그런 도구는 사이트 본체에 있고, API는 그 밑의 데이터 레이어입니다.
출처 표기
공은 출처에 돌아갑니다. Smogon, chaos 포맷 JSON을 매달 공개하는 익스포터, 그리고 직접 게임을 돌리는 플레이어 커뮤니티가 있기에 이 데이터셋이 존재합니다. Pokékipe는 이를 질의 가능한 형태로 만들어 줄 뿐, 원본 데이터를 소유하지는 않습니다.
시작하기
30초 만에 첫 호출
포맷 카탈로그를 가져오는 복붙용 예제 세 개. API 키도, 설정도, 가입도 필요 없습니다. 언어 탭을 고르고 붙여넣고 실행하면 끝.
curl -s https://pokekipe.com/api/v1/formats \
| jq '.[0:3]'경로는 아래 레퍼런스에 나와 있는 어떤 엔드포인트로든 바꿀 수 있습니다. 첫 호출은 캐시가 따뜻하면 1초 안에 돌아옵니다.
인증
인증과 속도 제한
익명 호출은 가벼운 사용에 충분합니다. 계정 설정에서 발급할 수 있는 개인 키(무료)는 데이터를 대량으로 가져오는 분석가와 도구 개발자를 위해 속도 제한 상한을 끌어올립니다. 키로 새 엔드포인트가 열리지는 않으며, 상한만 올라갑니다.
익명, 키 없음
기본헤더 없이 호출하면 됩니다. 버킷은 IP 기준이라 세션당 몇 개 정도만 요청을 보내는 작은 스크립트나 LLM 에이전트는 한도에 걸리지 않습니다.
- 계정도, 가입도, 설정할 헤더도 없음.
- IP 단위 버킷. 단발성 스크립트와 LLM 에이전트의 tool-use에 알맞음.
- 대량 호출이 길어지면 429가 떨어집니다. 그때는 개인 키로 전환하세요.
/분
60
/일
5,000
모든 응답에 포함되는 헤더
성공 응답에는 모두 아래의 속도 제한 헤더가 함께 옵니다. 클라이언트는 이것만 읽으면 재시도 없이 스스로 페이스를 조절할 수 있습니다. 응답마다 한 번씩 확인하고, Remaining이 0이 아니라 몇 건 남은 시점에 미리 속도를 낮추세요.
| 헤더 | 의미 |
|---|---|
| X-RateLimit-Tier | 현재 적용되는 등급. 익명(키 없음) 또는 인증(JWT 또는 API 키 확인됨). |
| X-RateLimit-Limit-Min | 등급별 분당 상한 (익명 60, 인증 600). |
| X-RateLimit-Limit-Day | 등급별 일일 상한 (익명 5 000, 인증 100 000). |
| X-RateLimit-Remaining-Min | 현재 1분 윈도우에서 남은 호출 수. 0에 가까워지면 속도를 낮추세요. |
| X-RateLimit-Remaining-Day | 현재 1일 윈도우에서 남은 호출 수. 매일 같은 벽시계 시각에 리셋됩니다. |
| Retry-After | 429일 때만 전송됩니다. 재시도 전에 이 초만큼 기다리세요. 1분 윈도우라면 보통 60초 미만입니다. |
오류
마주칠 수 있는 오류
표준 HTTP 상태 코드입니다. 본문은 항상 JSON이며, 원인을 설명하는 "detail" 필드를 포함합니다. 4xx는 요청 측 계약 문제, 5xx는 서버 측 문제(백오프 후 재시도)로 다루세요.
OK
OK. 본문은 레퍼런스에 명시된 JSON 페이로드입니다. 빈 배열은 "행 없음"을 의미하며 "누락"이 아닙니다. 실패가 아닌 데이터로 처리하세요.
Not Modified
Not Modified. 캐시 헤더가 검증되었습니다. 캐시된 본문을 그대로 쓰면 되며, 다시 파싱할 필요가 없습니다. If-None-Match 또는 If-Modified-Since를 보낼 때 자동으로 반환됩니다.
Bad Request
Bad Request. 쿼리 파라미터 또는 본문 형태가 잘못됐습니다. detail 메시지에 정확한 필드 이름이 있습니다. 입력을 고치지 않고 재시도하지 마세요.
Unauthorized
Unauthorized. API 키나 세션이 필요한데 둘 다 없거나, 자격 증명이 무효/폐기 상태입니다. 같은 요청을 반복하지 말고 자격 증명을 다시 발급하세요.
Not Found
Not Found. 경로 또는 리소스가 존재하지 않습니다. Pokémon별 라우트라면 보통 해당 Pokémon의 사용 데이터가 그 포맷에 아직 없다는 뜻이지, 경로 오타는 아닙니다.
Too Many Requests
Too Many Requests. 속도 제한 상한에 도달했습니다. Retry-After를 읽고 기다리세요. 지수 백오프는 매너상 좋지만, 윈도우가 짧아 거의 필요 없습니다.
Server Error
Internal Server Error. 서버 쪽에서 무언가 터졌습니다. 몇 초 뒤 한 번만 재시도해 보고, 계속 발생하면 요청 URL과 함께 Discord로 알려주세요.
Service Unavailable
Service Unavailable. 배포 중이거나 일시적으로 과부하입니다. 백오프하면서 재시도하세요. 상태 업데이트는 커뮤니티 Discord에서 확인할 수 있습니다.
기본 규칙
이용 약관
기본 규칙 네 가지. 한 번 읽어두면 미래의 내가 Discord에 핑 한 번 덜 날립니다.
출처 표기
재배포·재게시 시 출처 표기가 필요합니다. Pokékipe(https://pokekipe.com 링크 포함)와, 매월 원본 chaos JSON을 공개하는 Smogon을 함께 표기해 주세요.
베스트 에포트, SLA 없음
베스트 에포트, SLA 없음. 데이터는 가동 시간 보장 없이 "있는 그대로" 제공됩니다. 캐시는 적극적으로 하고, 엔드포인트가 느리거나 429를 반환할 때는 부드럽게 폴백하도록 만드세요.
버전 관리
/api/v1/ 하위 스키마는 v1 라이프사이클 동안 하위 호환을 유지합니다. 호환을 깨는 변경은 /api/v2/로 옮기며, Discord에서 사전 공지하고 폐기 예정 경로에는 sunset 헤더를 붙입니다.
상업적 사용
상업적 사용은 CC BY 4.0 하에 허용됩니다. 이 API 위에 무언가를 만들었다면, 커뮤니티 Discord에서 꼭 들려주세요.
모든 엔드포인트, 한곳에서
엔드포인트마다 설명, 파라미터 표, 요청·응답 스키마, 그리고 curl·JavaScript·Python 코드 샘플까지 한자리에서 살펴보세요. 박스 하나로 API 전체를 검색하고, 어떤 오퍼레이션으로든 딥링크하고, URL 하나로 공유할 수 있습니다.
- 100+ 엔드포인트
- ·
- 3-pane 내비, 콘텐츠, 샘플
- ·
- 전체 텍스트 검색
- ·
- 라이브 요청 샘플