← 콩시스트 도구함 미국공시 수집기

미국공시 수집기 문제 해결

SEC EDGAR 자료를 받으려는데 403 이 날 때

작성

SEC EDGAR 의 자료 주소(data.sec.gov, www.sec.gov)에 프로그램으로 요청을 보내면 자료 대신 403 Forbidden 이 돌아오는 경우가 있습니다. 주소가 틀린 것도, 자료가 없는 것도 아닙니다. SEC 가 「누가 보내는 자동 요청인지 밝히지 않았다」 고 보고 막은 것입니다.

실제로 보내 본 결과

2026년 9월 17일, 애플의 제출 목록 주소(data.sec.gov/submissions/CIK0000320193.json)에 User-Agent 헤더만 바꿔 가며 같은 요청을 보냈습니다.

보낸 User-Agent결과
(비워 보냄)403
curl/8.9.1 — curl 기본값403
Python-urllib/3.12 — 파이썬 표준 라이브러리 기본값403
python-requests/2.32.3 — requests 기본값403
Hong Gildong [email protected] — 이름과 이메일200 (정상)

막힌 것은 전부 도구가 알아서 붙이는 기본값이었습니다. 코드에서 헤더를 따로 정하지 않았다면 바로 이 경우입니다. 막혔을 때 돌아오는 화면은 이렇습니다.

SEC 403 응답 화면. 제목 Your Request Originates from an Undeclared Automated Tool 과 user agent 를 고치라는 문장에 붉은 원 표시가 있다.
제목은 「선언되지 않은 자동화 도구에서 온 요청」, 본문은 User-Agent 에 회사 정보를 넣어 요청을 밝히라는 안내입니다.

고치는 법 — 이름과 이메일을 적어 보낸다

SEC 는 인증키를 발급하지 않습니다. 대신 요청마다 User-Agent이름(또는 회사명)과 연락처 이메일을 적어 보내라고 안내합니다.

Hong Gildong [email protected]

같은 날 data.sec.gov 에서는 Mozilla/5.0 처럼 브라우저 흉내만 낸 값도 통과했습니다. 그런데 원문 파일이 있는 www.sec.gov 는 curl 로 같은 흉내 값을 보내자 403 으로 막았습니다. 주소마다 거르는 기준이 다르고 언제든 바뀔 수 있으므로, 흉내 값에 기대지 말고 이름과 이메일을 적어 보내는 편이 안전합니다.

연락처를 넣었는데도 막힐 때

요청이 너무 빠를 때

SEC 의 요청 상한은 초당 10건이고, 쓰는 컴퓨터 수와 상관없이 합쳐서 셉니다. 반복문을 쉬지 않고 돌리거나 여러 창에서 동시에 돌리면 한동안 막힙니다. 미국공시 수집기가 초당 8건으로 스스로 제한하는 것도 이 때문입니다.

이름을 한글로 적었을 때

HTTP 헤더에는 한글을 그대로 싣기 어려워, 도구에 따라 오류가 나거나 한글 부분이 빠진 채 나갑니다. 이름은 로마자로 적으세요. 미국공시 수집기는 한글을 자동으로 걸러 냅니다.

알아 둘 것

넣은 이메일은 요청 헤더에 실려 SEC 서버 기록에 남습니다. 개인 주소가 꺼려지면 회사 대표 주소를 써도 됩니다.