피드로 돌아가기
How to Search Secretary of State Business Filings Programmatically (Multi-State)
Dev.toDev.to
Backend

How to Search Secretary of State Business Filings Programmatically (Multi-State)

저자가 50개 주(State) SOS 포털을 개별 웹스크래퍼로 자동화하여 KYC/컴플라이언스 워크플로우에서 수동 검색 제거

Ava Torres2026년 3월 26일8intermediate

Context

각 미국 주(State)의 Secretary of State 웹사이트는 독립적으로 운영되며, 2000년대 ASP.NET 기반의 레거시 시스템과 최신 React 기반 포털이 혼재해 있다. 엔티티 번호(Entity Number, Filing Number, DOS ID, Document Number 등) 필드명이 주마다 다르고, Cloudflare/Akamai 봇 방지 기술이 증가하며, 명시된 Rate Limit이 없어 의도치 않은 소프트 블로킹(빈 결과 또는 503 에러)이 발생한다.

Technical Solution

  • 각 주별 개별 Actor 개발: California(bizfileonline.sos.ca.gov), Texas(SOSDirect), New York(appext20.dos.ny.gov/corp_public), Florida(search.sunbiz.org) 등 포털별 웹 기술과 검색 파라미터 차이를 격리
  • 정규화된 JSON 출력 스키마 적용: entityName, entityNumber, entityType, status, formationDate, jurisdiction, registeredAgent, principalAddress 필드로 모든 주의 응답을 통일
  • 비공식 API 활용 우선: California의 비공식 JSON API를 직접 호출하고, Texas/New York은 HTTP 요청으로 HTML 파싱, Florida는 SFTP 벌크 데이터 다운로드 방식 채택
  • 각 주별 Anti-bot 대응: ASP.NET ViewState 처리(Texas), HTML 테이블 파싱(New York), Cloudflare/Akamai 우회 기법 적용(Florida 등)
  • 모호한 검색 결과 필터링: 이름 형식 정규화(LLC vs L.L.C. vs Limited Liability Company)로 정확도 향상

Key Takeaway

50개 주의 개별 엔지니어링 문제를 주별 독립 Actor로 분산 처리하면, 마이크로서비스 패턴을 통해 레거시 포털의 파편화를 추상화할 수 있다. 엔터프라이즈 서비스(OpenCorporates, LexisNexis 등 월 $500-5000) 대비 per-search 기반 저비용 구현이 가능하다.


KYC/컴플라이언스/영업실사 팀에서 다중 주(State) 엔티티 검증이 필요한 경우, 웹스크래퍼 기반 자동화를 주별 모듈로 설계하면 각 포털의 검색 파라미터·결과 형식·봇 방지 기술 차이를 독립적으로 관리할 수 있고, 정규화된 JSON 스키마로 CRM/데이터베이스 연동을 단순화할 수 있다.

원문 읽기