시간대별 세부 지표 접두어 규칙 (Prefix Guide)

본 명세서의 슈팅, 파울, 점유율 등 시간대별 수치 항목에 사용되는 접두어(Prefix)는 다음과 같습니다.

기본 (경기 전체) B_ (전반전) A_ (후반전) EB_ (연장전반) EA_ (연장후반)
GET

/api/matchRecord.do

경기에 참여한 양 팀의 상세 팀 스탯(슈팅, 골킥, 파울, 점유율 등)을 전/후반 및 연장별로 종합 제공합니다.

요청 파라미터 (Request Parameters)

파라미터명 타입(Size) 필수여부 설명
authKey varchar Y API 인증키 (Header 전송 권장)
meet_year varchar(4) Y 대회년도 (예: 2026)
meet_seq varchar(2) Y 대회순번 (예: 1)
game_id varchar(3) Y 경기번호 (예: 1)

응답 필드 상세 (Response Fields)

필드명 데이터 타입 설명 및 비고
[Common] 공통 응답 필드 (JSON Header)
meet_yearvarchar(4)요청한 대회년도
meet_seqvarchar(2)요청한 대회순번
apiNamevarchar(30)호출된 API 명칭 (matchRecord)
resultCode varchar(3) 결과 코드 (00: 성공, 그 외 에러는 API 개요 참조)
resultMsgvarchar(100)결과 메시지 ("success")
[Section 1] 경기 및 팀 마스터 정보
MEET_YEAR / MEET_SEQ / GAME_IDvarchar(4) / numeric(2,0) / numeric(3,0)대회년도 / 대회순번 / 경기번호
TEAM_ID / HOME_TYPEvarchar(3) / numeric(4,0)구단 코드 / Home 구분 (1:홈, 2:어웨이 / 공통코드:58)
WIN_TYPEnumeric(4,0)승패 구분 (1:승, 2:패, 3:무 / 공통코드:59)
GAME_DATEvarchar(10)경기일자 (YYYY/MM/DD)
MANAGER_ID / MANAGER_NAMEvarchar(8) / varchar(20)감독 선수코드 / 감독명
FORMATIONvarchar(40)포메이션 (예: 4-4-2, 4-3-3 등 / 공통코드:147)
[Section 2] 득점, 실점 및 승점 기록
GAIN_GOAL / LOSS_GOAL / GAP_GOALint총 득점 / 총 실점 / 득실차
HALF_B_GOAL / HALF_A_GOALint전반전 득점 / 후반전 득점
EXTEND_B_GOAL / EXTEND_A_GOAL / EXTEND_GOALint연장전반 득점 / 연장후반 득점 / 연장전 총 득점
TK_POINT / SELF_GOALint승부차기 득점 / 자책골 수
GAIN_POINT / GAIN_POINT_MINUSfloat획득 승점 / 징계 차감 조정 승점
[Section 3] 경기 세부 스탯 (전체 / 전반 B_ / 후반 A_ / 연장전반 EB_ / 연장후반 EA_)
GK_QTY / B_GK_QTY / A_GK_QTY / EB_GK_QTY / EA_GK_QTYint골킥 시도 수 (전체 / 전반 / 후반 / 연장전반 / 연장후반)
ST_QTY / B_ST_QTY / A_ST_QTY / EB_ST_QTY / EA_ST_QTYint슈팅 수 (전체 / 전반 / 후반 / 연장전반 / 연장후반)
VALID_ST_QTY / B_VALID_ST_QTY / A_VALID_ST_QTY / EB_VALID_ST_QTY / EA_VALID_ST_QTYint유효슈팅 수 (전체 / 전반 / 후반 / 연장전반 / 연장후반)
CK_QTY / B_CK_QTY / A_CK_QTY / EB_CK_QTY / EA_CK_QTYint코너킥 수 (전체 / 전반 / 후반 / 연장전반 / 연장후반)
FO_QTY / B_FO_QTY / A_FO_QTY / EB_FO_QTY / EA_FO_QTYint파울 수 (전체 / 전반 / 후반 / 연장전반 / 연장후반)
FS_QTY / B_FS_QTY / A_FS_QTY / EB_FS_QTY / EA_FS_QTYint피파울 수 (전체 / 전반 / 후반 / 연장전반 / 연장후반)
OS_QTY / B_OS_QTY / A_OS_QTY / EB_OS_QTY / EA_OS_QTYint오프사이드 수 (전체 / 전반 / 후반 / 연장전반 / 연장후반)
AS_QTY / B_AS_QTY / A_AS_QTY / EB_AS_QTY / EA_AS_QTYint도움 수 (전체 / 전반 / 후반 / 연장전반 / 연장후반)
PK_QTY / B_PK_QTY / A_PK_QTY / EB_PK_QTY / EA_PK_QTYintPK 시도 수 (전체 / 전반 / 후반 / 연장전반 / 연장후반)
PK_Y_QTY / PK_N_QTYintPK 득점 성공 수 / PK 실축 수
[Section 4] 경고 및 퇴장 기록
WARN_QTY / B_WARN_QTY / A_WARN_QTY / EB_WARN_QTY / EA_WARN_QTYint경고 수 (전체 / 전반 / 후반 / 연장전반 / 연장후반)
EXIT_QTY / B_EXIT_QTY / A_EXIT_QTY / EB_EXIT_QTY / EA_EXIT_QTYint퇴장 수 (전체 / 전반 / 후반 / 연장전반 / 연장후반)
[Section 5] 점유시간 및 점유율 지표
TEAM_TIME / B_TEAM_TIME / A_TEAM_TIME / EB_TEAM_TIME / EA_TEAM_TIMEvarchar(5)점유시간 표기 (전체 / 전반 / 후반 / 연장전반 / 연장후반 - MM:SS)
TEAM_SHARE / B_TEAM_SHARE / A_TEAM_SHARE / EB_TEAM_SHARE / EA_TEAM_SHAREnumeric(5,2)점유율 (전체 / 전반 / 후반 / 연장전반 / 연장후반 - %)
B_TEAM_TIME_TOINT / A_TEAM_TIME_TOINT / EB_TEAM_TIME_TOINT / EA_TEAM_TIME_TOINTint점유시간 초 단위 환산 값 (전반 / 후반 / 연장전반 / 연장후반)
[Section 6] 공격 방향 및 데이터 비율 분석
ATTACKDIRECTION / ATTACKDIRECTION_OVERvarchar(5)공격 방향 ('RIGHT' / 'LEFT')
GAINGOAL_PER_STQTYnumeric(14,3)슈팅 대비 득점율 (GAIN_GOAL / ST_QTY)
STVALIDQTY_PER_STQTYnumeric(14,3)슈팅 대비 유효슈팅율 (VALID_ST_QTY / ST_QTY)
CHANGE_QTYint교체 선수 수
FIRST_KICK_YN / FIRST_KICK_YN_OVERvarchar(1)선축 여부 (Y/N)
LEAGUE_ID / GUBUN_CODE / REC_SAVE / YR_SAVEnumeric(4,0) / char(1)유니폼/기록 유지 관련 내부 코드

JSON 응답 샘플 (Full Data)

{
    "response": {
        "meet_year": "2026",
        "apiName": "matchRecord",
        "resultCode": "00",
        "meet_seq": "1",
        "list": [
            {
                "MEET_YEAR": "2026",
                "MEET_SEQ": 1,
                "GAME_ID": 1,
                "TEAM_ID": "K18",
                "HOME_TYPE": 1,
                "WIN_TYPE": 2,
                "GAME_DATE": "2026/02/28",
                "GAIN_GOAL": 1,
                "LOSS_GOAL": 2,
                "HALF_B_GOAL": 0,
                "HALF_A_GOAL": 1,
                "EXTEND_B_GOAL": 0,
                "EXTEND_A_GOAL": 0,
                "EXTEND_GOAL": 0,
                "TK_POINT": 0,
                "SELF_GOAL": 0,
                "GAIN_POINT": 0.0,
                "GAIN_POINT_MINUS": 0.0,
                "FIRST_KICK_YN": "",
                "MATCH_TYPE": 1,
                "LEAGUE_ID": 0,
                "GUBUN_CODE": 0,
                "REC_SAVE": "0",
                "YR_SAVE": "0",
                "FIRST_KICK_YN_OVER": "",
                "MANAGER_ID": "19970118",
                "MANAGER_NAME": "윤정환",
                "GK_QTY": 0,
                "CK_QTY": 6,
                "FO_QTY": 14,
                "OS_QTY": 1,
                "ST_QTY": 7,
                "VALID_ST_QTY": 2,
                "B_GK_QTY": 0,
                "B_CK_QTY": 2,
                "B_FO_QTY": 9,
                "B_OS_QTY": 0,
                "B_ST_QTY": 3,
                "B_VALID_ST_QTY": 1,
                "A_GK_QTY": 0,
                "A_CK_QTY": 4,
                "A_FO_QTY": 5,
                "A_OS_QTY": 1,
                "A_ST_QTY": 4,
                "A_VALID_ST_QTY": 1,
                "EB_GK_QTY": 0,
                "EB_CK_QTY": 0,
                "EB_FO_QTY": 0,
                "EB_OS_QTY": 0,
                "EB_ST_QTY": 0,
                "EB_VALID_ST_QTY": 0,
                "EA_GK_QTY": 0,
                "EA_CK_QTY": 0,
                "EA_FO_QTY": 0,
                "EA_OS_QTY": 0,
                "EA_ST_QTY": 0,
                "EA_VALID_ST_QTY": 0,
                "WARN_QTY": 0,
                "EXIT_QTY": 0,
                "B_WARN_QTY": 0,
                "B_EXIT_QTY": 0,
                "A_WARN_QTY": 0,
                "A_EXIT_QTY": 0,
                "EB_WARN_QTY": 0,
                "EB_EXIT_QTY": 0,
                "EA_WARN_QTY": 0,
                "EA_EXIT_QTY": 0,
                "AS_QTY": 0,
                "PK_QTY": 1,
                "B_AS_QTY": 0,
                "B_PK_QTY": 0,
                "A_AS_QTY": 0,
                "A_PK_QTY": 1,
                "EB_AS_QTY": 0,
                "EB_PK_QTY": 0,
                "EA_AS_QTY": 0,
                "EA_PK_QTY": 0,
                "TEAM_TIME": "28:54",
                "B_TEAM_TIME": "11:31",
                "A_TEAM_TIME": "17:22",
                "EB_TEAM_TIME": "",
                "EA_TEAM_TIME": "",
                "TEAM_SHARE": 57.15,
                "B_TEAM_SHARE": 48.72,
                "A_TEAM_SHARE": 64.56,
                "EB_TEAM_SHARE": 0.00,
                "EA_TEAM_SHARE": 0.00,
                "ATTACKDIRECTION": "RIGHT",
                "ATTACKDIRECTION_OVER": "",
                "FORMATION": "4-4-2",
                "PK_Y_QTY": 1,
                "PK_N_QTY": 0,
                "FS_QTY": 18,
                "B_FS_QTY": 10,
                "A_FS_QTY": 8,
                "EB_FS_QTY": 0,
                "EA_FS_QTY": 0,
                "B_TEAM_TIME_TOINT": 691,
                "A_TEAM_TIME_TOINT": 1042,
                "EB_TEAM_TIME_TOINT": 0,
                "EA_TEAM_TIME_TOINT": 0,
                "GAINGOAL_PER_STQTY": 0.143,
                "STVALIDQTY_PER_STQTY": 0.286,
                "CHANGE_QTY": 5,
                "GAP_GOAL": -1
            },
            {
                "MEET_YEAR": "2026",
                "MEET_SEQ": 1,
                "GAME_ID": 1,
                "TEAM_ID": "K09",
                "HOME_TYPE": 2,
                "WIN_TYPE": 1,
                "GAME_DATE": "2026/02/28",
                "GAIN_GOAL": 2,
                "LOSS_GOAL": 1,
                "HALF_B_GOAL": 0,
                "HALF_A_GOAL": 2,
                "EXTEND_B_GOAL": 0,
                "EXTEND_A_GOAL": 0,
                "EXTEND_GOAL": 0,
                "TK_POINT": 0,
                "SELF_GOAL": 0,
                "GAIN_POINT": 3.0,
                "GAIN_POINT_MINUS": 0.0,
                "FIRST_KICK_YN": "Y",
                "MATCH_TYPE": 1,
                "LEAGUE_ID": 0,
                "GUBUN_CODE": 0,
                "REC_SAVE": "0",
                "YR_SAVE": "0",
                "FIRST_KICK_YN_OVER": "",
                "MANAGER_ID": "19970114",
                "MANAGER_NAME": "김기동",
                "GK_QTY": 0,
                "CK_QTY": 3,
                "FO_QTY": 18,
                "OS_QTY": 0,
                "ST_QTY": 10,
                "VALID_ST_QTY": 8,
                "B_GK_QTY": 0,
                "B_CK_QTY": 3,
                "B_FO_QTY": 10,
                "B_OS_QTY": 0,
                "B_ST_QTY": 5,
                "B_VALID_ST_QTY": 4,
                "A_GK_QTY": 0,
                "A_CK_QTY": 0,
                "A_FO_QTY": 8,
                "A_OS_QTY": 0,
                "A_ST_QTY": 5,
                "A_VALID_ST_QTY": 4,
                "EB_GK_QTY": 0,
                "EB_CK_QTY": 0,
                "EB_FO_QTY": 0,
                "EB_OS_QTY": 0,
                "EB_ST_QTY": 0,
                "EB_VALID_ST_QTY": 0,
                "EA_GK_QTY": 0,
                "EA_CK_QTY": 0,
                "EA_FO_QTY": 0,
                "EA_OS_QTY": 0,
                "EA_ST_QTY": 0,
                "EA_VALID_ST_QTY": 0,
                "WARN_QTY": 5,
                "EXIT_QTY": 0,
                "B_WARN_QTY": 2,
                "B_EXIT_QTY": 0,
                "A_WARN_QTY": 3,
                "A_EXIT_QTY": 0,
                "EB_WARN_QTY": 0,
                "EB_EXIT_QTY": 0,
                "EA_WARN_QTY": 0,
                "EA_EXIT_QTY": 0,
                "AS_QTY": 1,
                "PK_QTY": 0,
                "B_AS_QTY": 0,
                "B_PK_QTY": 0,
                "A_AS_QTY": 1,
                "A_PK_QTY": 0,
                "EB_AS_QTY": 0,
                "EB_PK_QTY": 0,
                "EA_AS_QTY": 0,
                "EA_PK_QTY": 0,
                "TEAM_TIME": "21:40",
                "B_TEAM_TIME": "12:08",
                "A_TEAM_TIME": "09:32",
                "EB_TEAM_TIME": "",
                "EA_TEAM_TIME": "",
                "TEAM_SHARE": 42.85,
                "B_TEAM_SHARE": 51.28,
                "A_TEAM_SHARE": 35.44,
                "EB_TEAM_SHARE": 0.00,
                "EA_TEAM_SHARE": 0.00,
                "ATTACKDIRECTION": "LEFT",
                "ATTACKDIRECTION_OVER": "",
                "FORMATION": "4-4-2",
                "PK_Y_QTY": 0,
                "PK_N_QTY": 0,
                "FS_QTY": 14,
                "B_FS_QTY": 9,
                "A_FS_QTY": 5,
                "EB_FS_QTY": 0,
                "EA_FS_QTY": 0,
                "B_TEAM_TIME_TOINT": 728,
                "A_TEAM_TIME_TOINT": 572,
                "EB_TEAM_TIME_TOINT": 0,
                "EA_TEAM_TIME_TOINT": 0,
                "GAINGOAL_PER_STQTY": 0.200,
                "STVALIDQTY_PER_STQTY": 0.800,
                "CHANGE_QTY": 5,
                "GAP_GOAL": 1
            }
        ],
        "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/matchRecord.do?authKey=YOUR_API_KEY&meet_year=2026&meet_seq=1&game_id=1";
Request request1 = new Request.Builder().url(url1).get().build();

// [방법 2] Header 방식 (현재 권장)
String url2 = "https://api.kleague.com/api/matchRecord.do?meet_year=2026&meet_seq=1&game_id=1";
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/matchRecord.do"
params = { 
    "meet_year": "2026", 
    "meet_seq": "1", 
    "game_id": "1" 
}

# [방법 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/matchRecord.do';
const params = { meet_year: '2026', meet_seq: '1', game_id: '1' };

// [방법 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' } });