[전자공시] DART OPEN API

2021. 5. 3. 10:01기타

얼마전 DART API 가 업데이트 되면서 기존의 API 사용이 중지되어서 새로운 버전에 맞게 작성 하였습니다.

 

우선 opendart.fss.or.kr 주소로 접속하여 회원 가입 및 인증키를 발급 받아야 합니다. 

 

이때 IP 입력란에는 자신이 사용하고있는 PC의 IP나 호스팅이 진행되어지고 있는 서버의 IP를 적으시면 됩니다.

 

 

그후 개발가이드를 읽어보면 상세하게 적혀있습니다.

 

우리는 해당 회사의 정보를 가져와야 하기때문에 2가지의 API를 섞어서 사용해야합니다.

 

 

우선 회사의 고유번호를 알아야 하기때문에 4번 고유번호 API 와 그 고유번호를 알아서 공시검색 API를 활용하여 우리가 얻고싶은 정보를 얻을수 있습니다.

 

xml 파일에서 고유번호를 확인 하였다면 curl 을 사용하여 아래와 같이 공시검색을 진행 하면 됩니다. 

xml 형태와 json 형태가 있는데 저는 json 형태로 진행 하였습니다.

 

<?php

	$header = [
		'Cache-Control: no-cache',
		'User-Agent: ' . $_SERVER['HTTP_USER_AGENT']
	];

	$crtfc_key = "API KEY 들어갈 자리";
	$corp_code = "XML 파일에서 얻은 회사 고유 코드값";
	$bgn_de = "19990101";

	$url = "https://opendart.fss.or.kr/api/list.json?crtfc_key=".$crtfc_key."&corp_code=".$corp_code."&bgn_de=19990101";

	$ch = curl_init();

	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER , true);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER , false);

	$result = curl_exec($ch);

	curl_close($ch);

	$json = json_decode($result);


	echo "<pre>";
	print_r($json);
	echo "</pre>";
?>

 

위와 같이 작업하면 

와 같이 json 형태로 결과 값이 나오게 됩니다.

 

저는 예시로 삼성전자 데이터를 불러와 보았습니다.

 

이후 json 데이터 가공은 따로 코드에 넣지 않겠습니다. 

 

감사합니다.