edinet_cli 0.0.2

A command-line interface for EDINET.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
# EDINET CLI

EDINET から有価証券報告書を取得し、主要項目を JSON で確認するための CLI ツールです。


## できること

- 企業コードや会社名で有価証券報告書を検索して取得する
- 取得結果を JSON で確認する

# Get Started

## インストール

```bash
cargo install --git https://github.com/strikegroup/edinet_cli
```

## セットアップ
### API キーの登録
最初に EDINET API キーを登録します。

```bash
edinet setup --key <YOUR_EDINET_API_KEY>
```

API キーは、以下の EDINET API 仕様書の 2-3 節の手順で取得してください。

https://disclosure2dl.edinet-fsa.go.jp/guide/static/disclosure/download/ESE140206.pdf

### 検索インデックスを更新
使う前に検索インデックスを更新します。

```bash
edinet update
```

直近一年分の有報を取得できるようになります。


## ユースケース

### 会社名で有報を取得

会社名または提出者名の一部を指定し、該当する最新の有価証券報告書を取得します。

```bash
edinet get --company ストライク
```

```json
{
  "metadata": {
    "file_date": "2025-12-17",
    "doc_id": "S100XAN1",
    "edinet_code": "E32380",
    "sec_code": "61960",
    "filer_name": "株式会社ストライク",
    "period_start": "2024-10-01",
    "period_end": "2025-09-30",
    "submit_date_time": "2025-12-17 12:18",
    "doc_description": "有価証券報告書-第29期(2024/10/01-2025/09/30)"
  },
  "report": {
    "company_overview": {
      "company_history": "2 【沿革】 年月概要1997年7月東京都足立区において、M&A仲介業務を事業目的として設立...",
      "employees": "5 【従業員の状況】(1) 提出会社の状況2025年9月30日現在...",
      "business_results_summary": [
        {
          "period": "CurrentYear",
          "label": "当期",
          "operating_revenue": 20314153000,
          "ordinary_income": 6341778000,
          "net_income": 4719993000,
          "net_assets": 21474522000,
          "total_assets": 24763151000,
          "employees": 452
        },
        "..."
      ]
    },
    "business_overview": {
      "business_description": "3 【事業の内容】当社は公認会計士及び税理士が経営主体となり..."
    },
    "facilities": "...",
    "corporate_information": "...",
    "financial_information": "..."
  }
}
```

保存済み CSV キャッシュだけを使う場合は `--offline` を指定します。キャッシュにない書類はダウンロードせずに失敗します。

```bash
edinet get --company ストライク --offline
```

### 会社の営業収益を取得

主要な経営指標から、最新年度の営業収益だけを取得します。

```bash
edinet get --company ストライク | jq '.report.company_overview.business_results_summary[0].operating_revenue'
```

```json
20314153000
```

### 会社の有報の「事業の内容」セクションを取得

有価証券報告書の「事業の内容」を取得します。

```bash
edinet get --company ストライク | jq '.report.business_overview.business_description'
```

```json
"3 【事業の内容】当社は公認会計士及び税理士が経営主体となり、創業よりM&A(企業合併、企業買収、企業間の資本提携等)の仲介を主たる事業としております。なお、当社はM&A仲介事業の単一セグメントであるため、セグメント情報は記載しておりません。..."
```

### 会社名で候補を探してから有報を取得

会社名の一部から候補を検索し、提出者名または書類IDを指定して有価証券報告書を取得します。

```bash
edinet search トヨタ --limit 3 --json
```

```json
{
  "metadatas": [
    {
      "doc_id": "S100YMDA",
      "edinet_code": "E05031",
      "sec_code": null,
      "jcn": "8010601027383",
      "filer_name": "トヨタファイナンス株式会社",
      "period_start": "2025-04-01",
      "period_end": "2026-03-31",
      "submit_date_time": "2026-06-30 13:07",
      "doc_description": "有価証券報告書-第38期(2025/04/01-2026/03/31)"
    },
    "...",
    {
      "doc_id": "S100Y9AH",
      "edinet_code": "E00540",
      "sec_code": "31160",
      "jcn": "2180301014324",
      "filer_name": "トヨタ紡織株式会社",
      "period_start": "2025-04-01",
      "period_end": "2026-03-31",
      "submit_date_time": "2026-06-09 10:09",
      "doc_description": "有価証券報告書-第101期(2025/04/01-2026/03/31)"
    }
  ]
}
```

検索結果の提出者名を指定して、有価証券報告書を取得します。

```bash
edinet get --company トヨタ紡織株式会社
```

レスポンス形式は「会社名で有報を取得」と同じです。

### EDINET コードで有報を取得

EDINETコードを指定して有価証券報告書を取得します。

```bash
edinet get --edinet-code E00424
```

```json
{
  "metadata": {
    "file_date": "2026-04-14",
    "doc_id": "S100XYDT",
    "edinet_code": "E00424",
    "sec_code": "25900",
    "filer_name": "ダイドーグループホールディングス株式会社",
    "period_start": "2025-01-21",
    "period_end": "2026-01-20",
    "submit_date_time": "2026-04-14 15:33",
    "doc_description": "有価証券報告書-第51期(2025/01/21-2026/01/20)"
  },
  "report": "..."
}
```

### 会社名から最新の有報 PDF をダウンロード

会社名または提出者名の一部を指定し、該当する最新の有価証券報告書を PDF でダウンロードします。

```bash
edinet download pdf ./downloads --company ストライク
```

`./downloads/S100XAN1.pdf` のように、書類 ID をファイル名とした PDF が保存されます。

### 書類 ID を指定して XBRL 変換 CSV をダウンロード

`search` で確認した書類 ID を指定し、XBRL 変換 CSV の ZIP ファイルをダウンロードして展開します。

```bash
edinet download csv ./downloads --doc-id S100XAN1 --extract
```

ZIP ファイルは `./downloads/S100XAN1-csv.zip` に保存され、内容は同名の `./downloads/S100XAN1-csv/` ディレクトリに展開されます。

### 出力 JSON のキーを日本語で出力する場合

`--lang ja` を指定し、JSONのキーを有価証券報告書の日本語項目名で出力します。

```bash
edinet get --company ストライク --lang ja
```

```json
{
  "書類情報": {
    "提出日": "2025-12-17",
    "書類ID": "S100XAN1",
    "EDINETコード": "E32380",
    "証券コード": "61960",
    "提出者名": "株式会社ストライク",
    "事業年度開始日": "2024-10-01",
    "事業年度終了日": "2025-09-30",
    "提出日時": "2025-12-17 12:18",
    "書類概要": "有価証券報告書-第29期(2024/10/01-2025/09/30)"
  },
  "有価証券報告書": {
    "第1 企業の概況": {
      "沿革": "2 【沿革】 年月概要1997年7月東京都足立区において...",
      "従業員の状況": "5 【従業員の状況】(1) 提出会社の状況...",
      "主要な経営指標等の推移": ["..."]
    },
    "第2 事業の状況": "...",
    "第3 設備の状況": "...",
    "第4 提出会社の状況": "...",
    "第5 経理の状況": "..."
  }
}
```

### 提出日の範囲で候補を絞り込む場合

提出日時の日付範囲で候補を絞り込み、検索結果の書類IDから有価証券報告書を取得します。

```bash
edinet search トヨタ --from 2026-06-09 --to 2026-06-10 --limit 3 --json
```

```json
{
  "metadatas": [
    {
      "doc_id": "S100Y8NY",
      "edinet_code": "E02144",
      "sec_code": "72030",
      "jcn": "1180301018771",
      "filer_name": "トヨタ自動車株式会社",
      "period_start": "2025-04-01",
      "period_end": "2026-03-31",
      "submit_date_time": "2026-06-10 15:33",
      "doc_description": "有価証券報告書-第122期(2025/04/01-2026/03/31)"
    },
    {
      "doc_id": "S100Y9AH",
      "edinet_code": "E00540",
      "sec_code": "31160",
      "jcn": "2180301014324",
      "filer_name": "トヨタ紡織株式会社",
      "period_start": "2025-04-01",
      "period_end": "2026-03-31",
      "submit_date_time": "2026-06-09 10:09",
      "doc_description": "有価証券報告書-第101期(2025/04/01-2026/03/31)"
    }
  ]
}
```

検索結果の書類IDを指定して、有価証券報告書を取得します。

```bash
edinet get --doc-id S100Y8NY
```

書類IDを直接指定した場合は保存済み書類メタデータを経由しないため、`metadata` は `null` です。

```json
{
  "metadata": null,
  "report": {
    "company_overview": {
      "company_history": "2 【沿革】 年月概要1933年9月㈱豊田自動織機製作所自動車部を分離独立..."
    },
    "business_overview": "...",
    "facilities": "...",
    "corporate_information": "...",
    "financial_information": "..."
  }
}
```

## よくあるエラー

`failed to read config file ... run cargo run -- setup --key <EDINET_API_KEY> first or pass --key`

API キーがまだ登録されていません。`setup` を実行するか、`update` / `get` に `--key` を付けて実行してください。

`ASR document not found for the given query`

条件に一致する書類が検索用データにない可能性があります。先に `edinet update` を実行してください。

`migration 1 was previously applied but has been modified`

ローカル DB と現在の migration 定義に差分があります。`edinet clear` でローカルデータを削除して作り直すか、新しい DB を指定して実行してください。詳細は [Development Guide](docs/development.md) を参照してください。


# Documentation

## コマンド

| コマンド | 短縮形 | 概要 |
|---|---|---|
| `setup` | `init` | API キーを登録します |
| `update` | `u` | 検索インデックスを更新します |
| `search` | `s` | 有価証券報告書の候補を検索します |
| `get` | `g` | 有価証券報告書を取得します |
| `download` | `d` | 書類データをダウンロードします |
| `clear` | `c` | ローカルデータを削除します |
| `status` | `st` | 保存済みデータの状態を表示します |

各オプションの短縮形は `edinet <COMMAND> --help` で確認できます。

### `setup`

EDINET API キーを登録します。

```bash
edinet setup --key <YOUR_EDINET_API_KEY>
```

### `update`

書類検索に使う書類メタデータを更新します。

```bash
# 直近1年の未更新日を更新
edinet update

# この実行だけ別のAPIキーを使う
edinet update --key <YOUR_EDINET_API_KEY>

# 直近3年の未更新日を更新
edinet update --years 3

# 最大8件の日次API取得を並列実行
edinet update --years 3 --concurrency 8

# 日次API取得を直列実行
edinet update --years 3 --sequential

# 更新済み日付も含めて直近3年を再取得
edinet update --years 3 --force

# 指定期間を更新
edinet update --from 2026-04-01 --to 2026-04-14

# 今日の分だけ更新
edinet update --today
```

日次 API の取得は既定で最大4件を並列実行します。`--concurrency`(`-p`)で並列数を変更でき、`--sequential`(`-s`)を指定すると直列実行します。`--concurrency 1` でも同じ動作になります。HTTP 429 が返された場合は、待機時間を延ばしながら最大3回再試行します。

引数なしまたは `--years` を指定した更新では、通常は未更新日のみ取得します。`--force`(`-F`)を指定すると、既存インデックスの更新状態を無視して対象期間の全日を再取得します。`--today` と `--from` / `--to` は元から指定期間を再取得します。

### `search`

保存済みメタデータから、有価証券報告書の候補一覧を表示します。

```bash
# 提出者名、EDINETコード、証券コード、法人番号をまとめて検索
edinet search トヨタ

# 証券コードで検索
edinet search --sec-code 7203

# 2025年に提出された有報を検索
edinet search --company ストライク --year 2025

# 提出日時の日付範囲で絞り込み
edinet search トヨタ --from 2026-04-01 --to 2026-04-14

# 2ページ目を表示
edinet search トヨタ --limit 20 --page 2

# JSON 形式で出力
edinet search トヨタ --json
```

`--limit` 未指定時と `--limit 0` 指定時は全件表示します。ページ指定は `--limit` が 1 以上のときに有効です。

検索対象は、CSV を取得できる有価証券報告書に限定されます。日付条件は、書類一覧 API のファイル日付ではなく、書類ごとの提出日時を基準にします。
`--year` は4桁の西暦を指定し、その年の1月1日から12月31日までに提出された有価証券報告書を対象にします。`--date`、`--from`、`--to` とは併用できません。

### `get`

有価証券報告書を取得し、JSON で表示します。

```bash
# 企業コードで取得
edinet get --edinet-code E00424

# 会社名で取得
edinet get --company トヨタ

# 2025年に提出された最新の有報を取得
edinet get --company トヨタ --year 2025

# 書類IDを指定して取得
edinet get --doc-id S100XYDT

# 日本語キーで出力
edinet get --edinet-code E00424 --lang ja

# この実行だけ別のAPIキーを使う
edinet get --company トヨタ --key <YOUR_EDINET_API_KEY>
```

`--doc-id` は `--edinet-code`、`--company`、`--year` と併用できません。条件に一致する書類が複数ある場合は、その年に提出された最新の有価証券報告書を取得します。
`--lang ja` を指定したときだけ、JSON のフィールド名を日本語ラベルで出力します。既定は `--lang en` です。

### `download`

有価証券報告書の生データを PDF、XBRL、XBRL 変換 CSV のいずれかでダウンロードします。

```text
edinet download <xbrl|pdf|csv> [PATH] [OPTIONS]
```

`PATH` を省略した場合は、カレントディレクトリに保存します。ディレクトリを指定すると、書類 ID に応じて次のファイル名が使われます。

- `xbrl`: `<DOC_ID>-xbrl.zip`
- `pdf`: `<DOC_ID>.pdf`
- `csv`: `<DOC_ID>-csv.zip`

```bash
# 書類 ID を指定して PDF を取得
edinet download pdf ./downloads --doc-id S100XAN1

# 会社名に一致する最新の書類を XBRL 形式で取得
edinet download xbrl ./downloads --company ストライク

# 2025年に提出された最新の書類を PDF で取得
edinet download pdf ./downloads --company ストライク --year 2025

# ZIP をダウンロード後に展開
edinet download csv ./downloads --doc-id S100XAN1 --extract

# この実行だけ別の API キーを使う
edinet download pdf ./downloads --doc-id S100XAN1 --key <YOUR_EDINET_API_KEY>
```

書類 ID を直接指定する `--doc-id` は、`--company`、`--edinet-code`、`--year` と併用できません。書類 ID を指定しない場合は、いずれかの検索条件が必要です。`--year` に4桁の西暦を指定すると、その年に提出された書類だけを対象にします。複数件に一致した場合は、提出日時が最新の書類を取得します。

`--extract` は ZIP 形式で取得する `xbrl` または `csv` で使用できます。PDF では使用できません。ZIP ファイルは残したまま、拡張子を除いた同名ディレクトリへ展開します。

### `clear`

ローカルの SQLite DB と CSV キャッシュを削除します。`config.toml` に保存した API キーは削除しません。

```bash
edinet clear
```

### `status`

保存済みデータ、CSV キャッシュ、API キーの登録状態を表示します。DB が未作成の場合でも、新しい DB は作成しません。

```bash
edinet status
```

## 出力される主な項目

`get` の結果は、保存済み書類メタデータ由来の `metadata` と、XBRL CSV から抽出した `report` を返します。
`--doc-id` 直接指定時は保存済み書類メタデータを経由しないため、`metadata` は `null` です。
`report` は有価証券報告書の章立てに沿って出力されます。

- `company_overview`
  - `company_history`
  - `employees`
  - `business_results_summary`
- `business_overview`
  - `business_description`
  - `performance`
  - `issues_to_address`
  - `risks`
  - `sustainability`
  - `research_and_development`
  - `critical_contracts`
- `facilities`
  - `capital_expenditures`
  - `major_facilities`
  - `facility_plans`
- `corporate_information`
  - `shareholding`
  - `major_shareholders`
  - `dividend_policy`
  - `officers`
  - `corporate_governance`
  - `officer_compensation`
- `financial_information`
  - `segment_information`

## 開発者向け情報

実装構成、migration、SQLx、開発時の手順は [Development Guide](docs/development.md) を参照してください。

## ライセンス

このソフトウェアは [Apache License 2.0](LICENSE) で提供します。