GET /companies/{companyId}/filings
1 社の EDINET filing 一覧を返すエンドポイントの入出力を説明します。
このページの内容11項目
GET /api/signal-foundry/companies/{companyId}/filings は、1 社の EDINET filing の evidence 一覧を返します。通常の公開の使い方では、Company Card と IR Signals を先に読み、必要なときだけ filing id や source の状態を確認するために使います。
契約サマリー
| 項目 | 値 |
|---|---|
| メソッド | GET |
| パス | /api/signal-foundry/companies/{companyId}/filings |
| 認証 | 本番環境では API key が必須です。 |
| 利用 | usage / rate limit の対象です。 |
| クレジット | 1 request credit(operation credit は 0)。 |
| CLI | sf signals <companyId> --json |
| 次のステップ | Company Card / IR Signals の根拠を確認する |
このエンドポイントの役割は、解決済みの company_id から filing の evidence を確認することです。社名や検索語しかない場合は、先に GET /companies または sf search <query> --json で company_id を解決してください。
リクエスト
HTTP
curl "https://signal-foundry.app/api/signal-foundry/companies/jpx_5574/filings?document_type=annual_report&limit=5" \ -H "Authorization: Bearer <SIGNAL_FOUNDRY_API_KEY>"
CLI
sf signals jpx_5574 --json
見る key:
filings[].filing_idfilings[].doc_idfilings[].document_typefilings[].submitted_atfilings[].artifact_healthfilings[].fact_statsfilings[].previous_comparable_filingmeta.returned_filingsmeta.has_more
クエリパラメータ
| パラメータ | 型 | 既定値 | 備考 |
|---|---|---|---|
document_type | array | [] | annual_report / semi_annual_report / quarterly_report / extraordinary_report |
limit | integer | 20 | 1..100 |
offset | integer | 0 | 0..10000 |
レスポンス
中心フィールド
okobjectstatuscompany_idcompanyfilings[]filing_iddoc_iddocument_typesubmitted_atdisclosed_dateartifact_healthsummary_metricsfact_statssegment_metricssection_statsprevious_comparable_filingartifacts
metafilters.document_typesrequested_identifierresolved_byreturned_filingshas_more
previous_comparable_filing は、内部の差分生成や裏付けとなる evidence の確認に使われます。通常の使い方では、その結果を Company Card / IR Signals 側で読みます。artifacts には PDF / XBRL 由来の inventory 情報が入り、artifact_health は failed / expected な成果物を先に確認するための要約です。
例
{
"ok": true,
"object": "company_filings",
"status": "completed",
"company_id": "jpx_5574",
"company": {
"company_id": "jpx_5574",
"display_name": "ABEJA, Inc."
},
"filings": [
{
"filing_id": "edinet_fil_S100XYUO",
"doc_id": "S100XYUO",
"document_type": "annual_report",
"period_end": "2025-08-31",
"submitted_at": "2025-11-28T00:00:00+09:00",
"artifact_health": {
"failed_count": 0,
"failed_fetch_error_codes": [],
"pending_count": 0,
"states": {
"fetched": 2
}
},
"summary_metrics": {
"revenue": {
"value": 1234567890,
"unit": "JPY",
"relative_year": 0
}
},
"fact_stats": {
"total_rows": 320,
"distinct_metric_keys": 180,
"segment_fact_rows": 12
},
"segment_metrics": [],
"section_stats": {
"section_keys": ["business_risks", "strategy"],
"total_rows": 2
},
"previous_comparable_filing": {
"filing_id": "edinet_fil_S100PREV",
"doc_id": "S100PREV",
"document_type": "annual_report"
},
"artifacts": [
{
"artifact_type": "source_document",
"inventory_state": "fetched",
"file_extension": "pdf"
}
]
}
],
"meta": {
"company_id": "jpx_5574",
"filters": {
"document_types": ["annual_report"]
},
"returned_filings": 1,
"has_more": false,
"requested_identifier": "jpx_5574",
"resolved_by": {
"field": "company_id",
"value": "jpx_5574"
}
}
}
filings[].previous_comparable_filing が null でも、一覧の取得自体は成功しています。前回の filing を自動選択できないだけなので、通常は IR Signals の coverage(カバー範囲)/ gap(欠損)として扱います。
エラー
| ステータス | コード | 意味 |
|---|---|---|
400 | invalid_query | document_type, limit, offset が schema に合わない |
401 | invalid_api_key など | API key が無効、期限切れ、または取り消し済み |
404 | company_not_found | {companyId} を正規化済みの会社に解決できない |
429 | rate_limit_exceeded | API key の rate limit を超えた |
復旧方法
company_not_found が返る場合:
sf search <query> --jsonを実行します。companies[].company.company_idを確認します。- 解決した
company_idでsf signals <companyId> --jsonを実行します。
filings が空の場合:
document_typeの絞り込みを外して再実行します。meta.returned_filingsとmeta.has_moreを確認します。- それでも 0 件なら、対象会社が EDINET 提出会社ではない可能性があります。0 件を filing の失敗として扱わず、profile / observations 側の根拠で補完してください。
rate_limit_exceeded が返る場合は、Retry-After を見て待機します。同じリクエストを短時間に繰り返さないでください。
次に進む先
- Company Card を読む:
GET /companies/{companyId}/profile - IR Signals を読む:
sf signals <companyId> --json