산업인력공단 API
산업인력공단 API는 제가 처음 사이드 프로젝트로 취업 정보 서비스를 기획할 때 겪었던 막막함을 꽤 시원하게 풀어준 도구였어요.
신뢰성 높은 최신 국가자격증 정보를 일일이 찾아다니며 긁어모으는 방식은 비효율적이고, 무엇보다 정확도가 흔들리기 쉽거든요.
> “신뢰성 높은 최신 국가자격증 정보를 일일이 찾아다니는 것은 비효율적이며 부정확합니다.”
복잡한 과정 없이도 방대한 자격증 데이터를 제 서비스에 바로 연동할 수 있었던 순간은 지금도 기억이 선명합니다.
이 글에서는 제가 직접 부딪히고 해결하며 쌓은 경험을 바탕으로
여러분이 산업인력공단 API를 이해하고, 실제 활용까지 이어갈 수 있게 차근차근 안내해 드릴게요.
산업인력공단 API 개요 및 주요 기능

산업인력공단 API, 정확히 무엇인가요?
산업인력공단 API란
한국산업인력공단이 보유한 국가자격증 관련 데이터를
외부 개발자나 기관이 자기 프로그램에서 가져다 쓸 수 있도록 열어둔 공식 창구를 말합니다.
API는 Application Programming Interface의 약자입니다.
요청과 응답에 대해 서로 약속을 정해두고
그 약속대로 데이터를 주고받는 방식을 말해요.
여기서 API가 어렵게 느껴지면, 식당의 메뉴판으로 생각해 보셔도 좋아요.
주방에 직접 들어가지 않아도 메뉴판을 보고 주문하면 음식이 나오죠.
개발자도 마찬가지로, 정해진 규칙만 알면 내부 사정을 몰라도 필요한 데이터를 요청하고 받을 수 있습니다.
> 정부는 공공데이터를 적극적으로 개방하는 정책의 일환으로, ‘공공데이터포털(data.go.kr)’을 통해 다양한 공공데이터를 제공하고 있습니다.
기술적으로는 웹에서 많이 쓰는 REST API 방식으로 제공됩니다.
원리는 단순합니다.
주소(URL)로 요청을 보내면, 응답이 돌아오는 구조예요.
산업인력공단 API는 응답이 XML 형식으로 오는 경우가 많습니다.
처음 보면 낯설 수 있는데, “구조를 가진 데이터 묶음”이라고만 잡아두셔도 충분해요.
필요하면 나중에 파싱해서 화면이나 DB에 넣으면 됩니다.

산업인력공단 API는 어떤 정보를 제공하나요?
산업인력공단 API는 원하는 정보를 뽑아 쓸 수 있게 기능이 꽤 잘게 나뉘어 있습니다.
이 기능들을 보통 서비스, 오퍼레이션이라고 부르기도 해요.
핵심적으로는 아래 4가지가 많이 쓰입니다.
| 서비스 명칭 | 설명 |
|---|---|
| 국가자격 기본정보 조회(getList) | 자격증의 시행 기관, 응시 자격, 관련 부처 등 기본 정보 제공 |
| 종목코드 목록 조회(getJmCdList) | 각 자격증을 구분하는 고유번호인 ‘종목코드’ 전체 목록 제공 |
| 자격취득 시험정보 조회(getQualExamInfo) | 시험 과목, 합격 기준, 응시 수수료 등 수험생 핵심 정보 제공 |
| 시험일자 조회(getExamDate) | 필기, 실기 시험의 원서 접수, 시험일, 합격자 발표일 등 연간 시험 일정 제공 |
시험일자 조회(getExamDate)는 특히 체감이 큽니다.
원서 접수 기간, 시험일, 합격자 발표일 같은 일정이 정리돼서 나오니까요.
수험생 서비스나 교육 서비스 만들 때 이게 정말 결정적이에요.
이 기능들을 통해 산업인력공단 API는 약 500여 개 국가자격증 정보를
무료로, 일일 최대 1,000회까지 호출해 사용할 수 있어요.

산업인력공단 API 자격증 정보
단순히 자격증 이름만 얻는 수준이 아닙니다.
예를 들어 정보처리기사라면
시행기관, 응시자격, 시험과목, 합격기준까지 한 번에 확인할 수 있어요.
그래서 산업인력공단 API로 얻는 자격증 데이터의 강점은
신뢰성과 상세함에 있다고 보시면 됩니다.
각 자격증은 종목코드(jmCd)로 구분됩니다.
이게 일종의 고유 식별자 역할을 해요.
이름이 비슷한 자격증을 헷갈리지 않고 정확히 다룰 수 있다는 뜻입니다.
제공 범위도 넓습니다.
국가기술자격(기술사, 기사, 기능사 등)뿐 아니라
변리사, 공인노무사 같은 전문자격 정보까지 포함돼요.
무엇보다 중요한 건 최신성입니다.
시험 과목이나 응시 자격이 바뀌면 공단 쪽에서 데이터를 갱신하니까
서비스 운영자가 매번 수작업으로 따라잡지 않아도 됩니다.
산업인력공단 API 활용 가이드

산업인력공단 API 인증키 발급
인증키(Service Key)는 API 서버가 “허가된 사용자 요청이구나” 하고 인식하게 해주는 비밀 열쇠 같은 겁니다.
이 키가 없으면 API 서버는 요청을 신뢰할 수 없어서 데이터를 주지 않습니다.
산업인력공단 API를 쓰려면, 이 인증키 발급이 첫걸음이에요.
인증키는 공공데이터포털(data.go.kr)에서 회원가입 후 무료로 발급받을 수 있습니다.
여기서 한 가지는 꼭 짚고 갈게요.
발급받은 인증키를 요청 주소에 넣을 때 URL 인코딩을 확인하는 습관이 필요합니다.
저는 2023년 7월쯤 사이드 프로젝트로 ‘커리어 내비게이터’ 앱을 만들 때
인증 오류 때문에 몇 시간을 헤맨 적이 있어요.
복사해서 붙여넣었는데도 계속 실패하더라고요.
원인은 인증키 안의 ‘+’ 문자였습니다.
브라우저가 그걸 공백으로 해석해버리는 바람에 키가 깨진 거죠.
그래서 인증키를 요청 주소에 포함할 때는
특수문자가 잘못 해석되지 않도록 URL 인코딩을 꼭 거쳐야 합니다.
이건 진짜 자주 나오는 함정이라 기억해두시면 좋아요.

산업인력공단 API 신청 및 활용
활용 목적은 구체적으로 쓰는 게 승인에 도움이 됩니다.
예를 들어 “자격증 정보 조회용”보다는
“대학생 진로 설계 지원 모바일 앱에서 시험 일정과 응시 자격 정보를 제공하기 위함”처럼요.
활용신청은 단순히 키만 받는 절차가 아닙니다.
제공 기관이 데이터 사용 현황을 파악하고 안정적으로 운영하기 위한 과정이기도 해요.
이 부분은 가볍게 넘기지 않는 게 좋습니다.
개인 프로젝트나 소규모 서비스라면
일일 1,000회 호출 한도는 보통 충분합니다.
처음에는 기본값(1,000회 미만)으로 잡아도 크게 문제 없을 때가 많아요.
신청서를 제출하면 주말 제외 1~2일 내 승인 알림을 받는 경우가 많습니다.
승인 후에는 마이페이지에서 인증키를 확인하고 바로 호출해 볼 수 있어요.
사용자가 많은 서비스를 기획 중이라면
공공데이터포털을 통해 트래픽 증설을 요청할 수도 있습니다.
필요할 때 찾아보시면 됩니다.

산업인력공단 API 사용법
인증키까지 준비됐다면 이제 호출만 남았습니다.
산업인력공단 API는 기본 주소(엔드포인트)에
필수 정보(파라미터)를 붙여서 요청 주소를 완성하는 방식입니다.
HTTP GET 방식이고, 브라우저 주소창에 URL 넣는 것과 원리가 같습니다.
예를 들어 국가자격 기본정보 조회(getList)를 호출하려면
아래처럼 요청 주소를 만들면 됩니다.
http://openapi.q-net.or.kr/api/service/rest/InquiryQualInfo/getList?serviceKey=여러분의인코딩된인증키&numOfRows=10&pageNo=1
기본 주소 뒤에 ?를 붙이고
serviceKey 같은 파라미터를 붙인 다음
&로 이어주면 돼요.
| 파라미터 명 | 설명 | 필수 여부 | 예시 값 |
|---|---|---|---|
serviceKey |
발급받은 인증키 (URL 인코딩 필요) | 필수 | EncodedServiceKey |
numOfRows |
한 페이지당 결과 수 | 선택 | 10 |
pageNo |
조회할 페이지 번호 | 선택 | 1 |
이 주소를 브라우저 주소창에 붙여넣고 실행하면
처음엔 알아보기 힘든 글자들이 보일 거예요.
그게 산업인력공단 API 서버가 응답한 XML 데이터입니다.

산업인력공단 API 연동 방법
연동의 핵심은 두 가지입니다.
코드에서 API 요청을 보내는 것
그리고 응답으로 받은 XML을 파싱(Parsing)해서 프로그램이 쓰기 좋은 형태로 정리하는 것입니다.
브라우저에서 응답이 오는 걸 확인했다면
이제는 실제 코드로 가져와서 서비스에 붙이는 단계로 넘어가면 돼요.
언어별로 편한 도구가 많습니다.
Python은 requests로 요청을 보내고
xml.etree.ElementTree로 XML을 다루면 됩니다.
JavaScript(웹 프론트엔드)는 fetch()로 호출하고
DOMParser로 XML을 분석할 수 있어요.
저는 초보자분들께는 Python 조합을 자주 권합니다.
코드가 직관적이고, 디버깅도 비교적 편하거든요.
그리고 이건 꼭 습관처럼 챙겨주세요.
API 응답에는 보통 resultCode(결과코드)와 resultMsg(결과메시지)가 들어 있습니다.
연동할 때는 이 값을 먼저 확인해야 합니다.
네트워크가 흔들리거나 인증키가 틀리거나, 호출 한도에 걸리는 등
API 호출은 언제든 실패할 수 있어요.
그래서 예외 처리를 해두는 게 정말 중요합니다.
지금 안내한 흐름대로만 한 번 따라가 보셔도 좋아요.
산업인력공단 API는 교육, 취업, 경력 관리 서비스에서
정확하고 신뢰도 높은 국가자격 정보를 제공하는 데 꽤 든든한 기반이 되어줍니다.

FAQ
Q1: 산업인력공단 API를 사용하는 데 비용이 드나요?
A: 아니요, 비용은 들지 않습니다.
공공데이터포털을 통해 제공되는 공공데이터라서 개인, 학생, 기업 모두 무료로 신청해 활용할 수 있어요.
Q2: 하루 호출 횟수 제한인 1,000회를 초과해서 사용해야 하면 어떻게 하나요?
A: 1,000회로 부족한 경우도 있습니다.
그럴 때는 공공데이터포털의 해당 API 페이지에서 ‘활용문의’를 통해 제공 기관에 트래픽 증설을 요청할 수 있어요.
서비스 목적과 예상 사용량을 근거로 협의하면 한도 상향이 가능한 경우가 있습니다.
Q3: API 응답 데이터가 XML 형식인데, JSON 형식으로는 받을 수 없나요?
A: 아쉽지만 산업인력공단 API의 공식 응답 형식은 XML로 고정돼 있습니다.
대신 XML 파서로 읽어서 JSON과 비슷한 객체 형태로 변환해 쓰는 방식을 권합니다.
Q4: API 활용신청 후 인증키 승인까지 보통 얼마나 걸리나요?
A: 업무일 기준으로 보통 1~2일 정도 걸립니다.
신청 내용에 문제가 없으면 하루 안에 승인되는 경우도 많아요.
Q5: API를 통해 구체적으로 어떤 종류의 자격증 정보를 얻을 수 있나요?
A: 정보처리기사 같은 국가기술자격은 물론이고
변리사, 공인노무사 같은 국가전문자격까지 포함해 약 500여 종 정보를 얻을 수 있습니다.
자격증명, 시행기관, 응시자격, 시험과목, 합격기준, 시험일정까지 꽤 상세하게 제공돼요.

안녕하세요, 20년째 글로벌 API의 표준을 연구하는 조민희입니다. 😉
다양한 API와 실무 연동 사례에 대해 소개해드려요.
복잡한 기술도 원리만 알면 쉽습니다. 저와 함께 가장 빠르고 정확한 연동 방법을 찾아봐요! 🚀