API リファレンス
GET /companies/{companyId}/filings/{filingId}
1 つの filing detail を返す contract を説明します。
このページの内容13項目
GET /api/signal-foundry/companies/{companyId}/filings/{filingId} は、1 filing の finance facts と text sections を返します。
契約サマリー
| Field | Value |
|---|---|
| Method | GET |
| Path | /api/signal-foundry/companies/{companyId}/filings/{filingId} |
| Auth | production は API key 必須 |
| Usage | request usage / rate limit 対象 |
| Credit | data credit は消費しない |
| CLI | sf filing show <companyId> <filingId> --json |
| Next | compare / section analysis へ進む |
この endpoint の job は、選択済み filing の facts と sections を読むことです。filingId が分からない場合は、先に GET /companies/{companyId}/filings または sf company filings <companyId> --json を実行してください。
リクエスト
HTTP
curl "https://signal-foundry.app/api/signal-foundry/companies/jpx_5574/filings/edinet_fil_S100XYUO?section_key=business_risks&fact_limit=50" \ -H "Authorization: Bearer <SIGNAL_FOUNDRY_API_KEY>"
CLI
sf filing show jpx_5574 edinet_fil_S100XYUO \ --section-key business_risks \ --fact-limit 50 \ --json
見る key:
filing.filing_idfiling.summary_metricsfinance.facts[]finance.meta.available_summary_metricsfinance.meta.returned_factssections.items[]sections.meta.returned_sectionsmeta.resolved_filing_by
パスパラメータ
{filingId} には次のどちらかを使えます。
edinet_fil_*のfiling_idS100XXXXのdoc_id
クエリパラメータ
| Param | Type | Default | Notes |
|---|---|---|---|
consolidation | array | [] | consolidated / non_consolidated / unknown |
fact_limit | integer | 200 | 1..1000 |
fact_offset | integer | 0 | 0..10000 |
metric_key | array | [] | repeated または comma-separated |
metric_scope | array | [] | repeated または comma-separated |
relative_year | array | [] | -5..5 |
section_key | array | [] | business_risks / strategy / event_details / report_contents |
include_section_content | boolean | true | false で本文省略 |
include_section_content=false を使うと section metadata だけを返し、本文を省略できます。agent が最初に当たりをつける場合は、まず本文なしで取得してください。
レスポンス
中心フィールド
companyfiling- filing summary
artifact_healthfact_statssummary_metricssegment_metricsprevious_comparable_filing
financefacts[]meta.available_summary_metricsmeta.filtered_fact_statsmeta.returned_factsmeta.has_more
sectionsitems[]meta.filtered_section_statsmeta.returned_sections
metarequested_filing_identifierresolved_filing_byfact_filterssection_filters
例
{
"company": {
"company_id": "jpx_5574",
"display_name": "ABEJA, Inc."
},
"filing": {
"filing_id": "edinet_fil_S100XYUO",
"doc_id": "S100XYUO",
"document_type": "annual_report",
"processing_state": "parsed",
"artifact_health": {
"failed_count": 0,
"failed_fetch_error_codes": [],
"pending_count": 0,
"states": {
"fetched": 2
}
},
"fact_stats": {
"consolidations": ["unknown"],
"distinct_metric_keys": 120,
"effective_consolidations": ["consolidated"],
"metric_scopes": ["current_duration", "current_instant"],
"relative_years": [0, -1],
"segment_fact_rows": 12,
"total_rows": 500
},
"summary_metrics": {
"revenue": {
"value": 1234567890,
"unit": "JPY",
"relative_year": 0
}
},
"segment_metrics": [
{
"member_key": "Software",
"context_ids": ["CurrentYearDuration_SoftwareMember"],
"metrics": {
"sales_revenue": {
"value": 1234567890,
"unit": "JPY",
"metric_scope": "current_duration",
"metric_key": "jpcrp_cor:SalesRevenuesIFRS",
"context_id": "CurrentYearDuration_SoftwareMember"
}
}
}
],
"previous_comparable_filing": {
"filing_id": "edinet_fil_S100PREV",
"doc_id": "S100PREV"
}
},
"finance": {
"facts": [
{
"metric_key": "jpcrp_cor:NetSalesSummaryOfBusinessResults",
"metric_scope": "current_duration",
"metric_value": 1234567890,
"unit": "JPY",
"relative_year": 0,
"evidence_key": "edinet:S100XYUO:net_sales"
}
],
"meta": {
"available_summary_metrics": {
"revenue": {
"value": 1234567890,
"unit": "JPY"
}
},
"returned_facts": 1,
"has_more": false,
"total_filtered_facts": 1
}
},
"sections": {
"items": [
{
"section_key": "business_risks",
"section_title": "事業等のリスク",
"content": "..."
}
],
"meta": {
"returned_sections": 1,
"filtered_section_stats": {
"section_keys": ["business_risks"],
"total_rows": 1
}
}
},
"meta": {
"requested_filing_identifier": "edinet_fil_S100XYUO",
"resolved_filing_by": {
"field": "filing_id",
"value": "edinet_fil_S100XYUO"
},
"fact_limit": 50,
"fact_offset": 0
}
}
エラー
| Status | Code | Meaning |
|---|---|---|
400 | invalid_query | query parameter が schema に合わない |
401 | invalid_api_key など | API key が無効、失効、または revoke 済み |
404 | company_not_found | {companyId} を canonical company に解決できない |
404 | filing_not_found | {filingId} を同一 company 内の filing_id / doc_id に解決できない |
429 | rate_limit_exceeded | API key の rate limit を超えた |
filing_not_found の例
{
"error": {
"code": "filing_not_found",
"message": "Filing not found for identifier: S100XXXX"
}
}
復旧方法
filing_not_found が返る場合:
sf company filings <companyId> --limit 10 --jsonを実行します。filings[].filing_idとfilings[].doc_idを確認します。- 同じ
company_idに紐づく filing を選び直します。
finance.facts[] が多すぎる場合:
fact_limitを下げます。metric_key,metric_scope,relative_year,consolidationで絞ります。- section の本文が不要なら
include_section_content=falseを付けます。
segment_metrics が空の場合:
filing.artifact_health.failed_countとpending_countを確認します。filing.fact_stats.segment_fact_rowsを確認します。filing.processing_stateがparsedではない場合は、source refresh / EDINET retry の対象にします。
sections.items[] が 0 件の場合は、section_key filter を外して再実行します。本文抽出がない filing では、filing.summary_metrics と finance.facts[] だけを使ってください。
次に進む先
- 前回 filing と比較する:
GET /companies/{companyId}/filings/{filingId}/compare - filing を選び直す:
GET /companies/{companyId}/filings