A clean, sync, typed Python client for Korea's OpenDART (전자공시) disclosure API.
Project description
opendart-client
English | 한국어
A clean, typed Python client for Korea's OpenDART (전자공시) — the Financial Supervisory Service's electronic disclosure system.
Zero dependencies. Sync. Returns plain dict / list[dict], so you frame it your way.
Install
pip install opendart-client
Get a free API key (40 chars) at https://opendart.fss.or.kr.
Quickstart
from opendartclient import OpenDart
dart = OpenDart(api_key="...") # or set OPENDART_API_KEY in the environment
# resolve a name / ticker / 초성 / typo -> corp_code
code = dart.resolver().resolve("삼성전자") # "00126380"
# disclosures filed in a date window
rows = dart.disclosure.search(
corp_code=code, begin_date="20260101", end_date="20260131",
)
# financial statements, and any corporate event
dart.finance.single_accounts(code, fiscal_year=2025)
dart.event.paid_in_capital_increase(
corp_code=code, begin_date="20260101", end_date="20260131",
)
# want a DataFrame? returns are list[dict], which the constructors take directly
import pandas as pd
pd.DataFrame(rows)
# or
import polars as pl
pl.DataFrame(rows)
Features
- All 85 OpenDART endpoints across six groups — disclosure, periodic reports,
financial statements, ownership, major-event reports, securities registration —
as readable methods (
dart.event.convertible_bond(...), notcvbdIsDecsn). - Company resolver — name / ticker / 초성 (
ㅅㅅㅈㅈ) / typo →corp_code. - Zero runtime dependencies — the standard library carries it all. Rows come back
as
list[dict], whichpandas.DataFrame/polars.DataFrameaccept directly, so no DataFrame adapter is needed. - Fully typed, ships
py.typed; closed vocabularies areLiterals, so a bad code fails the type checker, not the API. - Raw returns —
list[dict](flat),dict[str, list[dict]](grouped),bytes(zip endpoints).status 013(no data) is an empty result; other errors raise a typedDartError.
API
Top level: dart.corp_codes() (all corp_code ↔ name / ticker), dart.resolver() →
CorpResolver.resolve(query) / .search(query).
report_code defaults to "11011" (annual report). Others: 11012 half-year,
11013 Q1, 11014 Q3.
disclosure
| Method | Description |
|---|---|
search(corp_code=…, begin_date=…, end_date=…, …) |
Filings matching the window / filters (auto-paginated) |
company(corp_code) |
Company profile (name, ceo, address, industry, …) |
document(rcept_no) |
Original filing as raw zip bytes |
report (periodic-report key items)
All take (corp_code, *, fiscal_year, report_code="11011").
| Method | Description |
|---|---|
total_shares |
Total number of shares |
treasury_shares |
Treasury stock acquired and disposed |
dividends |
Dividends |
capital_changes |
Capital increase / reduction history |
debt_securities_issued |
Debt securities issuance record |
commercial_paper_outstanding |
Commercial paper outstanding balance |
short_term_bond_outstanding |
Short-term bond outstanding balance |
corporate_bond_outstanding |
Corporate bond outstanding balance |
hybrid_security_outstanding |
Hybrid capital security outstanding balance |
contingent_capital_outstanding |
Contingent capital security outstanding balance |
public_offering_fund_usage |
Use of public-offering proceeds |
private_placement_fund_usage |
Use of private-placement proceeds |
audit_opinion |
External auditor name and audit opinion |
audit_service_contracts |
Audit service contracts |
non_audit_service_contracts |
Non-audit service contracts with the auditor |
outside_directors |
Outside (independent) directors and changes |
largest_shareholders |
Largest shareholder |
largest_shareholder_changes |
Largest shareholder changes |
minority_shareholders |
Minority shareholders |
executives |
Officers / executives |
employees |
Employees |
unregistered_executive_pay |
Unregistered-executive compensation |
director_pay_approved |
Director & auditor pay (AGM-approved amount) |
director_pay_total |
Director & auditor pay (total paid) |
director_pay_by_type |
Director & auditor pay (by type) |
individual_pay |
Individual director/auditor pay (>= 500M KRW) |
individual_pay_v2 |
Individual pay (>= 500M KRW) Ver2.0 — filings after 2026-05, grouped |
top5_individual_pay |
Top-5 individual pay (>= 500M KRW) |
top5_individual_pay_v2 |
Top-5 individual pay Ver2.0 — filings after 2026-05, grouped |
equity_investments |
Investments in other corporations |
finance
| Method | Description |
|---|---|
single_accounts(corp_code, *, fiscal_year, report_code) |
Key accounts, one company |
multi_accounts(corp_codes, *, fiscal_year, report_code) |
Key accounts, several companies |
full_statements(corp_code, *, fiscal_year, statement_div, report_code) |
Full statements (every BS/IS/CIS/CF line) |
single_indicators(corp_code, *, fiscal_year, index_class, report_code) |
Key financial ratios, one company |
multi_indicators(corp_codes, *, fiscal_year, index_class, report_code) |
Key financial ratios, several companies |
xbrl_document(rcept_no, *, report_code) |
Raw XBRL zip for one filing (bytes) |
xbrl_taxonomy(*, statement_kind) |
Standard XBRL account taxonomy |
ownership
| Method | Description |
|---|---|
insider_holdings(corp_code) |
Insider (officer / major-shareholder) ownership filings |
five_percent_holdings(corp_code) |
5%-rule large-holding filings |
event (major-event reports)
All take (corp_code, *, begin_date, end_date).
| Method | Description |
|---|---|
default_occurrence |
Default (부도) occurrence |
business_suspension |
Business suspension |
rehabilitation_filing |
Rehabilitation-procedure filing |
dissolution_cause |
Dissolution cause occurrence |
paid_in_capital_increase |
Paid-in capital increase decision |
bonus_issue |
Bonus issue (free capital increase) decision |
combined_capital_increase |
Combined paid-in / bonus increase decision |
capital_reduction |
Capital reduction decision |
creditor_management_start |
Creditor-bank management-procedure start |
creditor_management_stop |
Creditor-bank management-procedure stop |
litigation |
Litigation filed |
overseas_listing_decision |
Overseas listing decision |
overseas_delisting_decision |
Overseas delisting decision |
overseas_listing |
Overseas listing |
overseas_delisting |
Overseas delisting |
convertible_bond |
Convertible bond (CB) issuance decision |
bond_with_warrant |
Bond with warrant (BW) issuance decision |
exchangeable_bond |
Exchangeable bond (EB) issuance decision |
contingent_convertible_bond |
Write-down contingent capital security issuance decision |
treasury_acquisition |
Treasury stock acquisition decision |
treasury_disposal |
Treasury stock disposal decision |
treasury_trust_contract |
Treasury-stock trust-contract decision |
treasury_trust_termination |
Treasury-stock trust-termination decision |
asset_transaction |
Asset transfer (other) / put-back option |
business_acquisition |
Business acquisition decision |
business_transfer |
Business transfer decision |
tangible_asset_acquisition |
Tangible asset acquisition decision |
tangible_asset_transfer |
Tangible asset transfer decision |
equity_stake_acquisition |
Acquisition of another company's shares / equity |
equity_stake_transfer |
Transfer of another company's shares / equity |
equity_bond_acquisition |
Acquisition of share-related bonds |
equity_bond_transfer |
Transfer of share-related bonds |
merger |
Company merger decision |
spinoff |
Company split (spin-off) decision |
split_merger |
Split-merger decision |
stock_exchange |
Stock exchange / transfer decision |
registration (securities-registration statements)
All take (corp_code, *, begin_date, end_date).
| Method | Description |
|---|---|
equity_securities |
Equity securities |
debt_securities |
Debt securities |
depositary_receipts |
Depositary receipts |
merger |
Merger |
stock_exchange |
Comprehensive stock exchange / transfer |
division |
Division |
License
MIT © Seokhoon Joo
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file opendart_client-0.1.0.tar.gz.
File metadata
- Download URL: opendart_client-0.1.0.tar.gz
- Upload date:
- Size: 37.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a02d7c4aa0a946fe00e27adbe9c77e4227e4877ac6e16471dff3505f5568dfbf
|
|
| MD5 |
daabbd7cafbb8c4a20041d370b34079c
|
|
| BLAKE2b-256 |
1aa1772ccd32ef4da0728a631623951fda8b40e6ada3ec7c472db34f33ca4c3d
|
Provenance
The following attestation bundles were made for opendart_client-0.1.0.tar.gz:
Publisher:
publish.yml on seokhoonj/opendart-client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
opendart_client-0.1.0.tar.gz -
Subject digest:
a02d7c4aa0a946fe00e27adbe9c77e4227e4877ac6e16471dff3505f5568dfbf - Sigstore transparency entry: 2260830975
- Sigstore integration time:
-
Permalink:
seokhoonj/opendart-client@834092241fca115a6896b530b0d4e22a6f32c193 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/seokhoonj
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@834092241fca115a6896b530b0d4e22a6f32c193 -
Trigger Event:
release
-
Statement type:
File details
Details for the file opendart_client-0.1.0-py3-none-any.whl.
File metadata
- Download URL: opendart_client-0.1.0-py3-none-any.whl
- Upload date:
- Size: 28.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0585d381566772b1285e8ffdc43093f777ef9610a6d289aa7e12e867b0e7b56
|
|
| MD5 |
65bc4de0ad325877e0412d985412f5f1
|
|
| BLAKE2b-256 |
ecdc519b7dd68a7903d149d3ecc40181e60ca066ae0d35d0ffb75946f9bfa45e
|
Provenance
The following attestation bundles were made for opendart_client-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on seokhoonj/opendart-client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
opendart_client-0.1.0-py3-none-any.whl -
Subject digest:
a0585d381566772b1285e8ffdc43093f777ef9610a6d289aa7e12e867b0e7b56 - Sigstore transparency entry: 2260831385
- Sigstore integration time:
-
Permalink:
seokhoonj/opendart-client@834092241fca115a6896b530b0d4e22a6f32c193 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/seokhoonj
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@834092241fca115a6896b530b0d4e22a6f32c193 -
Trigger Event:
release
-
Statement type: