API를 통해 캐나다 정부 입찰 정보를 가져오는 방법 (2026 가이드)
요약
캐나다 정부의 분산된 입찰 정보를 API와 오픈 데이터를 통해 프로그래밍 방식으로 수집하는 방법을 안내합니다. CanadaBuys의 CSV 데이터와 Québec의 SEAO JSON 데이터를 활용한 자동화 구축 가이드를 제공합니다.
핵심 포인트
- 캐나다 연방(CanadaBuys)은 2시간마다 업데이트되는 CSV 형식을 제공함
- Québec(SEAO)은 OCDS 표준을 따르는 JSON 형식을 매주 공개함
- 데이터 수집 시 이중 언어 컬럼명과 스키마 드리프트에 주의해야 함
- CKAN 카탈로그 API를 사용하여 최신 데이터 리소스 URL을 동적으로 파악 가능
캐나다 정부는 매년 2,000억 달러 이상의 재화와 서비스를 구매합니다. 모든 입찰은 공개되어 있지만, 데이터는 수십 개의 포털에 흩어져 있습니다. 2026년에 이를 프로그래밍 방식으로 가져오는 방법, 즉 모든 공식 출처, 해당 API 및 형식, 그리고 자동 모니터링을 위한 작동 설정 방법을 소개합니다.
문제점: 한 국가, 수십 개의 포털
캐나다 공공 부문에 제품을 판매하거나, 판매 기업을 위한 도구를 구축한다면 캐나다 입찰 정보를 위한 단일 API가 없다는 사실을 곧 깨닫게 됩니다:
- **연방 입찰 (Federal tenders)**은 캐나다 정부의 공식 기록 시스템인 CanadaBuys에서 관리됩니다.
- **퀘벡 (Québec)**은 부처, 지방 자치 단체, 학교 및 병원을 아우르는 자체 시스템인 SEAO를 운영합니다.
- **노바스코샤 (Nova Scotia)**는 자체 오픈 데이터 (open-data) 포털을 통해 조달 데이터를 게시합니다.
- 온타리오, BC, 앨버타, 서스캐처원 주는 공개 데이터 피드(public data feeds)가 없는 별도의 포털 (Jaggaer, Ivalua 및 맞춤형 시스템)을 운영합니다.
- MERX와 같은 상업적 애그리게이터 (Commercial aggregators)는 통합된 뷰를 제공하는 대가로 구독료를 부과합니다.
좋은 소식은 가장 큰 세 가지 오픈 소스가 오픈 라이선스 (open licences) 하에 기계 판독 가능한 (machine-readable) 데이터를 게시한다는 점입니다. 하나씩 살펴보겠습니다.
소스 1: CanadaBuys (연방) — 오픈 CSV, 2시간마다 업데이트
CanadaBuys는 오픈 정부 라이선스 (Open Government Licence)에 따라 공식 오픈 데이터 파일을 게시합니다:
- 새 입찰 공고 (New tender notices) — 업무 시간 동안 2시간마다 갱신
- 오픈 입찰 공고 (Open tender notices) — 현재 입찰을 받고 있는 모든 입찰 건, 매일 갱신
- 낙찰 공고 및 계약 이력 (Award notices and contract history) — 누가 무엇을 낙찰받았는지
파일은 문서화된 데이터 사전 (data dictionary)이 포함된 이중 언어 CSV 파일입니다. Python을 사용한 간단한 확인 방법은 다음과 같습니다:
import pandas as pd
url = "https://canadabuys.canada.ca/opendata/pub/openTenderNotice-ouvertAvisAppelOffres.csv"
...
다음 세 가지 사항을 주의하세요: 이중 언어 컬럼 이름 (title-titre-eng, tenderClosingDate-appelOffresdateCloture), 간헐적인 스키마 드리프트 (schema drift), 그리고 다중 카테고리 행 (procurementCategory가 CNST,SRV와 같을 수 있음).
소스 2: SEAO (Québec) — Données Québec의 OCDS JSON
Québec은 Open Contracting Data Standard (CC-BY)에 따라 SEAO 데이터를 매주 JSON 파일 형태로 공개합니다. 각 주간 파일에는 구매자, UNSPSC 분류, CAD 단위의 낙찰 금액을 포함한 OCDS "릴리스 (releases)" 형식의 입찰 공고 및 낙찰 계약 정보가 포함되어 있습니다.
주의사항: 파일 URL이 매주 변경되므로, 먼저 CKAN 카탈로그 API를 쿼리하여 최신 리소스를 찾은 다음 각 파일을 다운로드하고 파싱(parse)해야 합니다. 제목은 프랑스어로만 제공됩니다.
소스 3: Nova Scotia — Socrata의 낙찰된 입찰 정보
Nova Scotia는 정부, 지방 자치 단체, 대학교, 교육 위원회 및 보건 당국을 포함한 낙찰된 공공 입찰 (awarded public tenders) 정보를 낙찰 업체 및 낙찰 금액과 함께 공개합니다:
https://data.novascotia.ca/resource/m6ps-8j6u.json?$limit=100&$order=awarded_date DESC
이는 실시간 기회라기보다는 시장 정보 (market intelligence)에 가깝습니다. 즉, 귀하의 카테고리에서 누가 계약을 따내는지, 그리고 어떤 가격에 낙찰되는지를 보여줍니다.
Ontario, BC, Alberta는 어떤가요?
2026년 중반 기준으로, 이들 중 현재 입찰에 대한 오픈 데이터 피드 (open data feeds)를 제공하는 곳은 없습니다. 이들의 포털은 브라우저 수준의 스크래핑 (scraping)이 필요한 JavaScript 애플리케이션입니다. 만약 연방 정부 + Québec + Nova Scotia 정보만 필요하다면, 이러한 복잡성을 완전히 건너뛸 수 있습니다.
DIY 방식의 현실 점검
이를 직접 구축한다는 것은 다음을 의미합니다: 세 가지 다른 형식 (CSV, OCDS JSON, Socrata), 이중 언어 정규화 (bilingual normalization), 매주 변경되는 URL, 드리프트 (schema drift), 소스 간 중복 제거 (deduplication), 그리고 장애 알림 기능이 있는 스케줄러 구축. 이는 재미있는 주말 프로젝트가 될 수 있지만, 그 이후에는 영원히 무보수로 유지보수를 해야 하는 작업이 됩니다. 정부 포털은 예고 없이 변경 사항을 적용하기 때문입니다.
5분 만에 해결하는 대안: 기성 API
저는 위의 모든 과정을 수행하고 하나의 정규화된 피드를 반환하는 Apify Actor를 관리하고 있습니다:
Canada Tenders Scraper — Federal, Quebec, Nova Scotia
세 가지 소스 모두에 적용되는 단일 스키마(Schema): 제목 (EN/FR), 구매자 (buyer), 카테고리 (category), UNSPSC, 마감일 (closing date), 연락처 (contact), 공고 URL (notice URL), 해당되는 경우 낙찰 금액 (award value). 입력 예시:
{
"sources": ["canadabuys", "seao"],
"keywords": ["software", "cloud", "informatique"],
...
onlyNewSinceLastRun 플래그는 모니터링을 위한 핵심 기능입니다. Actor를 매일 실행하도록 예약하면, 각 실행 시 이전에 확인하지 않은 입찰 정보만 반환됩니다. 이를 Apify 통합 기능을 통해 이메일이나 Slack에 연결하면, 월 몇 달러 수준으로 입찰 알림 시스템을 구축할 수 있습니다. 구독료 없이 레코드당 비용을 지불하면 됩니다 ($1,000건당 $4).
자체 코드에서 호출하는 방법:
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
...
모든 데이터는 공식 오픈 데이터 (Open Data)를 기반으로 실행됩니다. 프록시 (proxy), 스크래핑 회색 지대 (scraping grey zones), 로그인 과정이 필요 없습니다.
FAQ
캐나다 정부 입찰 정보를 스크래핑하는 것이 합법인가요? 위 소스들은 재사용을 위해 공개된 공식 오픈 데이터 프로그램입니다 (Open Government Licence – Canada, CC-BY Québec). 네, 합법입니다.
데이터는 얼마나 최신인가요? 연방 (Federal): 새로운 입찰 건에 대해 2시간마다 업데이트됩니다. 퀘벡 (Québec): 주간 파일 단위로 업데이트됩니다. 노바스코샤 (Nova Scotia): 월간 낙찰 업데이트가 제공됩니다.
특정 주(province)의 입찰 정보만 가져올 수 있나요? 네, 연방 데이터에서 지역(예: "Ontario")으로 필터링하거나, 퀘벡/노바스코샤 소스를 직접 선택할 수 있습니다.
가장 저렴하게 테스트해 볼 수 있는 방법은 무엇인가요? Apify의 무료 티어(Free tier)에는 $5의 크레딧이 포함되어 있어, 데이터가 귀하의 사용 사례에 맞는지 확인하기 위한 약 1,000건의 입찰 레코드를 처리하기에 충분합니다.
질문이 있거나 다루었으면 하는 소스(Ontario? BC? 지방 자치 단체 포털?)가 있다면, Actor 페이지에 이슈(issue)를 남겨주세요. 확인 후 검토하겠습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기