Guides / Conventions
Data conventions
Rules that keep you from misreading numbers. Units and bases travel with each response, so check the fields below before you use a number on its own.
Units
| Value | Unit | Field to check |
|---|---|---|
| Prices (current, close, IPO price, etc.) | KRW for Korea, USD for the US | market |
| Financial statement amounts (PRO API) | KRW 100 million (eok) for Korea, USD millions for the US | unit (per row) · meta.unit_note |
| Market cap (PRO API) | KRW 100 million (eok) for Korea, USD millions for the US | market_cap_unit: KRW_EOK (KRW 100 million) · USD_MIL (USD millions) |
| Ratios (PRO API: growth, margins, ROE, dividend yield, price change) | Percent values (1.25 = 1.25%) | change_percent · *_pct · meta.unit_note |
| Price change (Data API) | Decimal ratio (0.0101 = +1.01%) | change_rate |
Price change uses different notation in each API
The Data API's
change_rate is a decimal ratio; the PRO API's change_percent is a percent value. Check whether you need to multiply by 100 before displaying it.meta.unit_note and similar descriptive strings are in Korean. 억원 (eok won) means KRW 100 million; 백만달러 means USD millions.
Currency
- Korean stocks are in won (KRW) and US stocks in dollars (USD). We do not convert between them.
- Values that can mix currencies, such as dividends, come with a
currencyfield. - When currencies or bases differ, the PRO API variance table (
/earnings/{symbol}/variance) does not compute a difference (%) and gives the reason inreasons.
Fiscal and calendar periods
- Financial values follow the company's fiscal period. Most Korean listed companies close their books in December, but a US company's fiscal year can differ from the calendar year (for example, a fiscal year ending in September). Read
fiscal_yearandperiodtogether. - PRO API period parameters look like
FY2027Q2,2026 3분기(Q3 2026) or2026(full year). - Korean Q2–Q4 values may be derived by subtracting the previous cumulative figure from a cumulative report. In that case
derived_fromnames the subtracted report. Values from preliminary earnings filings havepreliminary: true. fsdistinguishes consolidated from separate statements. Korean EPS, PER and ROE are based on net income attributable to controlling shareholders, marked byeps_basis(controlling·total).
Dates and times
- Timestamps (
as_of,published_at, etc.) are ISO 8601 strings in UTC (ending inZ). Add 9 hours for KST. - Read date-only values (
YYYY-MM-DD) as is, without time-zone conversion. Korean data uses Korean dates; US filing and earnings schedules use US local dates. Turning a date string into midnight and then applying a time zone can shift it by a day. - Dates for the daily quota and usage (
X-Quota-Period,usage.day) are in KST. - PRO API quotes tell you which session a value comes from with
sessionandregular.label(정규장 현재가, regular-session price ·정규장 종가, regular-session close). Pre-market, after-hours and day-market trades are kept separately inextended.
Sources and as-of time
Every PRO API data response uses the same envelope.
json
{
"data": { "...": "endpoint-specific values" },
"as_of": "2026-10-21T06:35:10.000Z",
"sources": [
{ "name": "DART", "url": "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20261021000123" }
],
"disclaimer": "…",
"meta": { "unit_note": "국내 억원 · 미국 백만달러" }
}as_of: the point in time the values refer to. It can differ from when the response was generated (for example, the quote date).sources: a list of source links. It contains only DART and SEC originals and Phoenix AI page links.- Financial rows carry
report(report name),rcept_date(filing date) andsource_url(link to the original). - AI filing summaries use
sourceto say whether the summary is stored (cache) or was generated for this request (generated). - Data API filing responses include the receipt number and a link to the original; news includes the publisher name (
publisher) and a link to open the original article.
Data coverage (markets)
- Data is provided per contract for Korea (
KR), the United States (US) or both. Japan (JP) and China (CN) data are coming soon. - Your account’s markets are in
marketsonGET /key(withmarkets_availableandmarkets_coming_soon), theX-Marketsresponse header and the coverage card in the developer console. - The market comes from the symbol (6-digit Korean code =
KR, US ticker =US) or themarketparameter. A market outside your contract returns403 MARKET_NOT_ENTITLED; Japan and China return400 MARKET_NOT_AVAILABLE. - On lists that take
market, leaving it out picks your market when the account has only one. The mixed-market news feed returns articles from your markets only.
Data API response envelope
- Single document:
{ data, meta }. List:{ data, next_cursor, has_more, meta }. For the next page, sendnext_cursorunchanged with the same filters. metaalways carriesas_of(response time); company endpoints (/companies/{symbol}/…) also carrydisclaimer,unit_noteandpage_url.- Errors are always
{ error: { code, message, docs } }. This differs from the PRO API frame above (withsources); don't mix them up.
Units and currency by endpoint
| Endpoint | Field | Korea (KR) | US |
|---|---|---|---|
/companies/{symbol}/financials | value | KRW 100 million (KRW_EOK); per-share values in KRW | USD millions (USD_MIL); EPS in USD per share (USD); share counts in millions (SHARES_MIL) |
/companies/{symbol}/metrics | amounts (ratios, valuation) | KRW 100 million (KRW_EOK) | USD millions (USD_MIL) |
/companies/{symbol}/metrics | ratios and growth | % | % |
/companies/{symbol}/segments | amount · pct | KRW 100 million · % | USD millions · % |
/companies/{symbol}/dividends | per-share amounts · yield and payout | KRW · % | USD · % (total_dividends_paid in USD millions) |
/companies/{symbol}/consensus | consensus, actual … | raw KRW (default unit=raw) · unit=eok KRW 100 million · unit=million KRW millions | raw USD (default) · unit=million USD millions |
/companies/{symbol}/guidance | value, low, high | raw KRW (unit = KRW; EPS KRW_PER_SHARE) | raw USD (USD; EPS USD_PER_SHARE) |
/companies/{symbol}/net-income-split | amounts | KRW 100 million (consolidated) | — |
/quotes/{symbol} | data.valuation | market cap in KRW 100 million (KRW_EOK); per-share KRW | — |
Consensus uses different units from financial statements (raw KRW / USD by default). Add
unit=eok (Korea) or unit=million to line them up. Every value comes with unit and unit_scale (original amount = value × unit_scale).Machine-readable codes
period_code: fiscal yearFY2025· quarter2026Q3· year-to-date2025YTDQ2(first half) /2025YTDQ3(Q1–Q3). Company fiscal calendar (for US companies check the actual dates inperiod_end).account_code: the account codes below.fs_code:CFS(consolidated) /OFS(separate).unit_code:KRW_EOK,USD_MIL,USD,KRW,SHARES_MIL.report_code: Koreaannual_report,half_year_report,q1_report,q3_report; US SEC forms (10-K,10-Q,20-F,8-K…).- Korean fields (
account,period,report,name) are display strings. Sort, join and filter on the code fields.
Account codes
The account parameter and the account_code field of /companies/{symbol}/financials. An English code matches exactly that account; a Korean name matches by substring (e.g. 순이익 → both net-income lines). Pass several separated by commas; an unknown English word returns 400 BAD_REQUEST.
| account_code | Ledger name (display) | English | Statement | Markets |
|---|---|---|---|---|
revenue | 매출액 | Revenue | Income | KR · US |
cost_of_revenue | 매출원가 | Cost of revenue | Income | KR · US |
gross_profit | 매출총이익 | Gross profit | Income | KR · US |
sga_expense | 판매비와관리비 | Selling, general & administrative expense | Income | KR · US |
rnd_expense | 연구개발비 | Research & development expense | Income | KR · US |
operating_income | 영업이익 | Operating income | Income | KR · US |
finance_income | 금융수익 | Finance income | Income | KR |
finance_costs | 금융비용 | Finance costs | Income | KR |
interest_expense | 이자비용 | Interest expense | Income | US |
pretax_income | 법인세차감전순이익 | Income before income taxes | Income | KR |
income_tax_expense | 법인세비용 | Income tax expense | Income | KR · US |
discontinued_operations_income | 중단영업손익 | Profit (loss) from discontinued operations, net of tax | Income | KR |
net_income | 당기순이익 | Net income | Income | KR · US |
net_income_controlling | 지배주주순이익 | Net income attributable to owners of the parent | Income | KR |
eps | 주당순이익 | Earnings per share (diluted) | Income | US |
current_assets | 유동자산 | Current assets | Balance sheet | KR · US |
cash_and_equivalents | 현금및현금성자산 | Cash and cash equivalents | Balance sheet | KR |
trade_receivables | 매출채권 | Trade receivables | Balance sheet | KR |
inventories | 재고자산 | Inventories | Balance sheet | KR |
noncurrent_assets | 비유동자산 | Non-current assets | Balance sheet | KR · US |
property_plant_equipment | 유형자산 | Property, plant and equipment | Balance sheet | KR |
intangible_assets | 무형자산 | Intangible assets | Balance sheet | KR |
total_assets | 자산총계 | Total assets | Balance sheet | KR · US |
current_liabilities | 유동부채 | Current liabilities | Balance sheet | KR · US |
trade_payables | 매입채무 | Trade payables | Balance sheet | KR |
short_term_borrowings | 단기차입금 | Short-term borrowings | Balance sheet | KR |
current_portion_long_term_debt | 유동성장기부채 | Current portion of long-term debt | Balance sheet | KR |
noncurrent_liabilities | 비유동부채 | Non-current liabilities | Balance sheet | KR · US |
bonds_payable | 사채 | Bonds payable | Balance sheet | KR |
long_term_borrowings | 장기차입금 | Long-term borrowings | Balance sheet | KR |
total_liabilities | 부채총계 | Total liabilities | Balance sheet | KR · US |
share_capital | 자본금 | Share capital | Balance sheet | KR · US |
retained_earnings | 이익잉여금 | Retained earnings | Balance sheet | KR · US |
equity_controlling | 지배기업소유주지분 | Equity attributable to owners of the parent | Balance sheet | KR |
noncontrolling_interests | 비지배지분 | Non-controlling interests | Balance sheet | KR · US |
total_equity | 자본총계 | Total equity | Balance sheet | KR · US |
diluted_shares | 발행주식수 | Weighted-average diluted shares | Balance sheet | US |
shares_outstanding | 발행주식수(시점) | Shares outstanding (cover date) | Balance sheet | US |
operating_cash_flow | 영업활동현금흐름 | Cash flow from operating activities | Cash flow | KR · US |
investing_cash_flow | 투자활동현금흐름 | Cash flow from investing activities | Cash flow | KR · US |
financing_cash_flow | 재무활동현금흐름 | Cash flow from financing activities | Cash flow | KR · US |
capex | 설비투자 | Capital expenditure | Cash flow | KR · US |
amortization | 무형자산상각비 | Amortization of intangible assets | Cash flow | KR |
depreciation_amortization | 감가상각비 | Depreciation & amortization | Cash flow | US |
dividends_paid | 배당금지급 | Dividends paid | Cash flow | US |
Period input (period)
- Financial statements: fiscal year
FY2025or2025; quarter2026Q2,FY2026 Q2orQ2 2026; Korea-only year-to-date2025H1(=2025YTDQ2) or2025YTDQ3; pluslatest_quarter,annual,quarterly. Korean forms (2025 연간,2026 2분기,2025 반기 누적) are accepted too. - Consensus and guidance:
2026Q3orFY2027Q2(quarter),FY2026or2026(year),last/next(previous / next quarter). - Anything else returns
400 BAD_PERIOD. Aperiod_codefrom a response can be passed back as-is.
Samsung Electronics · 005930
bash
curl -sG "https://api.chickstockfi.com/openapi/v1/companies/005930/financials" \
-H "Authorization: Bearer $PHOENIX_API_KEY" \
--data-urlencode "account=revenue,operating_income" \
--data-urlencode "period=2026Q2" \
--data-urlencode "fs=CFS"Financial statements: order and pages
- Order: fiscal year and quarter, newest first (within a year: annual, then Q4 down to Q1; year-to-date rows after the same quarter) → account (statement order) → consolidated (CFS) first → filing ledger first.
- Pages:
limit(default 100, max 200) +cursor. Without account and period you get the whole ledger from the latest period; follownext_cursorfor the rest (meta.total= total rows). Rows are indata.rows. fs=CFSorfs=OFSselects consolidated or separate statements (Korea). US rows areCFS.
Periods filled from company IR materials
- Filed values (DART, SEC) come first. Only (account, period) pairs missing from the ledger are filled from company IR materials, with
source=기업 IR 자료(company IR materials). - Only revenue, operating income, net income, total liabilities, total equity, current assets and current liabilities are filled, so a filled period carries only some accounts.
meta.partner_filled_periodsandpartner_filled_accountslist them. - IR rows are not filings, so
report,report_code,filed_date,source_urlandperiod_endarenull.
Consensus and guidance
- Consensus covers revenue and operating income in Korea, revenue only in the US.
meta.metricslists what is actually served for the market. - For reported periods,
vs_consensus_pctis calculated only when a consensus observed before the announcement date (reported_on) exists (consensus_at_report). Otherwise it isnullandcomparison_statussays why —compared·basis_unconfirmed·no_pre_report_estimate(no pre-report value, or announcement date unknown) ·no_actual·upcoming. - For some US periods the source gives no announcement time, so
reported_onisnulland no pre-report value is picked. - In guidance (
/companies/{symbol}/guidance),value,lowandhighare raw KRW / USD andunit/unit_scale(1) describe them. The table unit isdisplay_unit/display_scale(value ÷display_scale= number indisplay_unit).
Filtering filings (US)
- On
/companies/{symbol}/disclosures, filter US companies withform=10-K,10-Q,8-K(only these;10-Kincludes10-K/A) orexclude_forms=424B2,SC 13G(all but these), up to 10 forms. - Without a filter, high-volume repetitive forms (424B2, SC 13G …) are limited to part of the list. Passing these filters for a Korean company returns
400 BAD_REQUEST. - Every filing row carries
report_code(Korean periodic-report code or SEC form).
News coverage
market=KRis Korean-language articles from Korean media;market=USis US articles (English-language articles from international media, company press releases, SEC filing alerts). Omit it for both. Only articles Phoenix AI has already collected are returned.- For US English articles
titleis the original andtitle_kothe Phoenix AI Korean translation (ornull).langis the language oftitle. publisheris the publisher name. When an aggregator's name appears in that place it is shown as해외 언론(overseas media) or뉴스(news).- The
symbolfilter returns only articles with a verified symbol tag, so a page can be shorter thanlimit— followhas_moreandnext_cursor. Re-sent copies of the same story (near-duplicates) are reduced to one per page.
Quotes (/quotes)
data.valuationis the same calculation asvaluationin/companies/{symbol}/metrics(basis,eps_basis— Korean EPS and P/E use net income attributable to owners). Not-applicable values that arrived as 0 arenull.- Top-level fields (
symbol,price,fundamentals…) are kept for legacy clients (deprecated) with their old values and units (fundamentals.debt_ratiois a ratio: 0.311 = 31.1%). New code should readdata.
Empty values and symbols
- When a value cannot be determined, it is
null. Do not confuse it with0. - Korean stocks use 6-digit codes (for example Samsung Electronics · 005930); US stocks use tickers (for example Apple · AAPL). The reference lists the supported markets for each endpoint.
Reference material notice
Data and AI summaries from the API are reference material to support investment decisions, not investment advice. Verify numbers against the originals in
sources.