Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】How to Track SEC EDGAR Filings as JSON (Without Maintaining a Scraper)

2026年10月22日に「Dev.to」が公開したITニュース「How to Track SEC EDGAR Filings as JSON (Without Maintaining a Scraper)」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

SEC EDGARの企業提出書類データをJSON形式で取得する方法を解説。公式APIは複雑な処理が必要だが、Apifyの既存ツールを使えば、レート制限やページング処理を気にせず手軽にデータを収集できる。SE初心者のデータ取得に役立つ。

ITニュース解説

米国証券取引委員会(SEC)が運営するEDGAR(Electronic Data Gathering, Analysis, and Retrieval)システムは、米国の上場企業が提出する全ての公式書類を公開している重要な情報源だ。決算報告書、有価証券報告書、合併に関する書類など、企業の重要な活動に関する情報が分単位で公開され、企業活動の監視、法令遵守のチェック、株式調査といった様々な目的で利用されている。システムエンジニアにとって、これらの情報を効率的に取得し、自社のアプリケーションや分析システムに組み込むことは、金融関連のシステム開発において非常に重要な課題の一つである。

EDGARの公式API(アプリケーション・プログラミング・インターフェース)は無料で提供されており、JSON形式という、プログラムで扱いやすい形式でデータを提供している。これは開発者にとって歓迎すべき点だが、このAPIを直接利用するにはいくつかの「お作法」がある。例えば、アクセス元を識別するためのUser-Agentという情報を必ず申告する必要があり、これには開発者の連絡先を含めなければならない。また、SECはサーバーへの負荷を軽減するため、1秒あたり10リクエストという厳しい制限を設けており、この制限を超過するリクエストは拒否される。さらに、大量の検索結果を得る場合には、結果を少しずつ取得するための「ページネーション」という処理を自力で実装する必要がある。そして、複数のAPIエンドポイント(特定の機能を提供するAPIの入り口)を利用する際には、それぞれのAPIが返すデータの形式や含まれるフィールドが異なるため、それらを統一して扱うための調整も開発者が行う必要がある。これらの作業は、ウェブサイトから情報を自動的に収集する「スクレイパー」を開発し、その維持管理を行うのと同程度の労力が必要となる場合があるため、開発者にとっては大きな負担となることが少なくない。

公式APIを直接利用する一つの方法としては、curlコマンドを用いて特定の企業の提出書類を直接取得することが挙げられる。例えば、Apple社のCIK(中央索引キー)という識別子を指定して、最新の提出書類の情報を取得するといったことが可能である。この方法は単一の企業や特定の少数のデータを取得する場合には有効だが、複数の企業を監視したり、複雑なキーワードで全文検索を行ったりする場面では、前述のページネーションや日付によるフィルタリング、異なるエンドポイントからのフィールドの整合性(フィールドの調整)といった手間がすぐに発生する。これらの処理を全て手作業で実装し、変更があった際にメンテナンスし続けるのは、開発チームにとって大きな負担となり、システムの安定性にも影響を与えかねない。

そこで、これらの課題を解決する手段として、「Apify」というプラットフォーム上で提供されている「Actor」という既製のプログラムを利用する方法が提案されている。具体的には、steadfetch/sec-edgar-monitorというActorが、公式APIの「お作法」を開発者に代わって処理してくれる「ラッパー」として機能する。このActorは、開発者が公式APIに直接アクセスする際に必要となるUser-Agentの宣言、1秒あたり10リクエストという制限の厳守、大量の検索結果に対するページネーション処理、そして一時的なネットワークエラーなどが発生した場合のリトライ(再試行)処理まで、全て自動的に行ってくれる。さらに、出力されるデータのスキーマ(データの構造)を毎回チェックし、もしSECのAPI側でデータ形式の変更があった場合には、不適切なデータをそのまま出力するのではなく、エラーとして通知することで、利用する側が常に正しい形式のデータを受け取れるように設計されている。このActorの利用に際して、SEC独自のAPIキーは不要であり、Apifyプラットフォームの認証トークンを用いるだけで利用を開始できる点も、手軽さにつながっている。

このActorへの入力は非常に柔軟である。特定の企業のCIKを指定して、必要な書類のタイプ(例えば年次報告書の10-K、四半期報告書の10-Qなど)と開始日、取得する最大件数を指定できる。また、特定のキーワード(例:「supply agreement」)を指定して全文検索を行うことも可能であり、検索範囲の日付や最大件数を設定できる。これらの入力条件は、curlコマンドを使ってApifyのAPIエンドポイントを呼び出すことで実行できるほか、Node.jsやPythonといったプログラミング言語から「Apify Client」というライブラリを利用して簡単に実行できる。例えば、Node.jsのコードでは、数行の記述でActorを実行し、結果のデータセットから必要な情報を取得する一連の処理が完結する。Pythonでも同様に、クライアントライブラリをインポートし、数行のコードでActorを呼び出して結果を受け取ることが可能だ。これにより、開発者は煩雑なAPIの直接操作やエラーハンドリングに時間を費やすことなく、取得したデータを自社のシステムでどのように活用するかに集中できる。

このActorから得られるデータは、EDGARの公式情報に基づいており、各ファイリング(提出書類)ごとに一つのデータ項目として提供される。出力されるデータには、書類の公式なアクセス番号(accession_no)、提出した企業のCIKと名称(cik、company_name)、書類の種類(form_type)、提出日(filing_date)と報告対象期間(report_date)、SECに受理された日時(acceptance_datetime)、そして提出された書類への直接リンク(primary_document_urlやurl)などが含まれる。さらに、その書類が以前の提出内容を修正する「修正申告」であるかを示すフラグ(is_amendment)や、データが抽出されたタイムスタンプ(scrapedAt)も提供される。これらの情報は、企業の動向を正確に把握するために不可欠な要素であり、常に検証された状態で提供されるため、データの信頼性が非常に高い。

このサービスは、Apifyプラットフォームの従量課金モデルに基づいて提供されており、取得した結果の件数に応じて費用が発生する。具体的には、1,000件のファイリングにつき5.00米ドル(1件あたり0.005米ドル)という料金体系であり、これに0.00005米ドルのランスタート料金が加算される。リクエストが失敗した場合や、検索結果が空だった場合には、結果件数に対する課金は発生しないため、無駄な費用が発生するリスクが低い。また、EDGARは構造化されたJSON形式で回答を返すため、ウェブブラウザをシミュレートする必要がなく、追加のプロキシ料金などが請求されることもない。

このActorの利用開始は非常に簡単である。Apify StoreでActorのページを開き、ウェブコンソールから直接実行するか、前述のAPIスニペットを利用して自社のアプリケーションに組み込むことができる。取得したデータセットは、既存のデータベースや分析ツールに容易にインポートして利用できるため、開発者は迅速に価値を生み出すことが可能だ。Steadfetchは、このように、スキーマ検証された高品質なデータ出力を提供し、公式情報源のみを利用することで、システムの安定性と信頼性を高めるActorを開発・提供しており、開発者が公共データを活用する上での強力な味方となるだろう。

関連コンテンツ

関連IT用語

関連ITニュース