구단 순위 조회 (Club Rank Info)
GET
/api/clubRank.do
대회별 구단 순위(승점, 승패무, 득실차 등)를 제공하며, 실시간 순위 반영 및 PO 기록 제외 여부 옵션을 지원합니다.
요청 파라미터 (Request Parameters)
| 파라미터명 | 타입(Size) | 필수여부 | 설명 |
|---|---|---|---|
| authKey | varchar |
Y | API 인증키 (Header 전송 권장) |
| meet_year | varchar(4) |
Y | 대회년도 (예: 2026) |
| meet_seq | varchar(2) |
Y | 대회순번 (예: 1) |
| game_type | varchar(2) |
N | 경기 구분 (기본값: '0') |
| live_yn | varchar(1) |
N | 실시간 순위 반영 여부 ('Y': 실시간 적용, 'N': 기본값) |
| excludingPO | varchar(1) |
N | K리그2에서 PO 기록 제외 여부 ('Y': 제외, 'N': 포함 - 기본값) |
응답 필드 상세 명세 (Response Fields)
| 필드명 | 데이터 타입 | 설명 및 비고 |
|---|---|---|
| [Common] 공통 응답 필드 (JSON Header) | ||
| meet_year | varchar(4) | 요청한 대회년도 |
| meet_seq | varchar(2) | 요청한 대회순번 |
| apiName | varchar(30) | 호출된 API 명칭 (clubRank) |
| resultCode | varchar(3) |
결과 코드 (00: 성공, 그 외 에러는 API 개요 참조) |
| resultMsg | varchar(100) | 결과 메시지 ("success") |
| [Section 1] 구단 기본 정보, 순위 및 승점 | ||
| TEAM_ID / TEAM_NAME | varchar(3) / varchar(15) | 구단 코드 / 구단명 (약칭) |
| RANK / GAIN_POINT | int / int | 순위 / 총 획득 승점 |
| WORK_QTY | int | 총 치른 경기 수 |
| [Section 2] 승·무·패 및 득실점 기록 | ||
| WIN_CNT / TIE_CNT / LOSS_CNT | int | 승리 수 / 무승부 수 / 패배 수 |
| GAP_CNT / GAIN_GOAL / LOSS_GOAL | int | 득실차 / 총 득점 수 / 총 실점 수 |
| [Section 3] 경기당 비율 지표 및 연속 기록 | ||
| GAINGOAL_PER_WORKQTY | numeric(10, 5) | 경기당 평균 득점 수 (GAIN_GOAL / WORK_QTY) |
| LOSSGOAL_PER_WORKQTY | numeric(10, 5) | 경기당 평균 실점 수 (LOSS_GOAL / WORK_QTY) |
| CONTINUE_WINTYPE | varchar(10) | 최근 연속 승패무 기록 (예: '2승', '1무', '1패' 등) |
| GAME_TYPE / GAME_TYPE2 | varchar(10) / varchar(10) | 경기 구분 상태명 (예: '경기마감') / 요청된 경기 구분 코드 |
JSON 응답 샘플 (Club Rank Data)
{
"response": {
"meet_year": "2026",
"apiName": "clubRank",
"resultCode": "00",
"meet_seq": "1",
"list": [
{
"TEAM_ID": "K09",
"TEAM_NAME": "서울",
"RANK": 1,
"GAIN_POINT": 19,
"WIN_CNT": 6,
"TIE_CNT": 1,
"LOSS_CNT": 0,
"GAP_CNT": 12,
"GAIN_GOAL": 16,
"LOSS_GOAL": 4,
"GAINGOAL_PER_WORKQTY": 2.28571,
"LOSSGOAL_PER_WORKQTY": 0.57143,
"CONTINUE_WINTYPE": "2승",
"WORK_QTY": 7,
"GAME_TYPE": "경기마감",
"GAME_TYPE2": "0"
},
{
"TEAM_ID": "K01",
"TEAM_NAME": "울산",
"RANK": 2,
"GAIN_POINT": 13,
"WIN_CNT": 4,
"TIE_CNT": 1,
"LOSS_CNT": 2,
"GAP_CNT": 1,
"GAIN_GOAL": 10,
"LOSS_GOAL": 9,
"GAINGOAL_PER_WORKQTY": 1.42857,
"LOSSGOAL_PER_WORKQTY": 1.28571,
"CONTINUE_WINTYPE": "1패",
"WORK_QTY": 7,
"GAME_TYPE": "경기마감",
"GAME_TYPE2": "0"
},
{
"TEAM_ID": "K05",
"TEAM_NAME": "전북",
"RANK": 3,
"GAIN_POINT": 11,
"WIN_CNT": 3,
"TIE_CNT": 2,
"LOSS_CNT": 2,
"GAP_CNT": 2,
"GAIN_GOAL": 8,
"LOSS_GOAL": 6,
"GAINGOAL_PER_WORKQTY": 1.14286,
"LOSSGOAL_PER_WORKQTY": 0.85714,
"CONTINUE_WINTYPE": "1패",
"WORK_QTY": 7,
"GAME_TYPE": "경기마감",
"GAME_TYPE2": "0"
}
],
"resultMsg": "success"
}
}
호출 샘플 소스 (Sample Code)
Auth: Header or QueryString
인증 로드맵: 현재
authKey 기반 인증을 지원하며, 2027년부터 표준 Bearer Token 인증 체계로 통합 확장될 예정입니다.
OkHttpClient client = new OkHttpClient();
// [방법 1] Query String 방식
String url1 = "https://api.kleague.com/api/clubRank.do?authKey=YOUR_API_KEY&meet_year=2026&meet_seq=1&game_type=0&live_yn=N&excludingPO=N";
Request request1 = new Request.Builder().url(url1).get().build();
// [방법 2] Header 방식 (현재 권장)
String url2 = "https://api.kleague.com/api/clubRank.do?meet_year=2026&meet_seq=1&game_type=0&live_yn=N&excludingPO=N";
Request request2 = new Request.Builder()
.url(url2)
.addHeader("authKey", "YOUR_API_KEY")
.build();
// [방법 3] Bearer Token 방식 (2027년 지원 예정)
Request request3 = new Request.Builder()
.url(url2)
.addHeader("Authorization", "Bearer YOUR_ACCESS_TOKEN")
.build();
import requests
url = "https://api.kleague.com/api/clubRank.do"
params = {
"meet_year": "2026",
"meet_seq": "1",
"game_type": "0",
"live_yn": "N",
"excludingPO": "N"
}
# [방법 1] Query String 방식
response1 = requests.get(url, params={**params, "authKey": "YOUR_API_KEY"})
# [방법 2] Header 인증 방식 (현재 추천)
headers2 = { "authKey": "YOUR_API_KEY" }
response2 = requests.get(url, headers=headers2, params=params)
# [방법 3] Bearer Token 방식 (2027년 도입 예정)
# headers3 = { "Authorization": "Bearer YOUR_ACCESS_TOKEN" }
# response3 = requests.get(url, headers=headers3, params=params)
const url = 'https://api.kleague.com/api/clubRank.do';
const params = { meet_year: '2026', meet_seq: '1', game_type: '0', live_yn: 'N', excludingPO: 'N' };
// [방법 1] Query String 방식
axios.get(url, { params: { ...params, authKey: 'YOUR_API_KEY' } });
// [방법 2] Header 방식 (현재 권장)
axios.get(url, {
params: params,
headers: { 'authKey': 'YOUR_API_KEY' }
});
// [방법 3] Bearer 방식 (2027년 로드맵 대비)
// axios.get(url, { params: params, headers: { 'Authorization': 'Bearer YOUR_TOKEN' } });