curl --request GET \
--url https://api-v2.hayinsights.com/openapi/v1/market/{market}/equities/{code}/financial-statements \
--header 'X-API-Key: <api-key>'import requests
url = "https://api-v2.hayinsights.com/openapi/v1/market/{market}/equities/{code}/financial-statements"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api-v2.hayinsights.com/openapi/v1/market/{market}/equities/{code}/financial-statements', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-v2.hayinsights.com/openapi/v1/market/{market}/equities/{code}/financial-statements",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-v2.hayinsights.com/openapi/v1/market/{market}/equities/{code}/financial-statements"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-v2.hayinsights.com/openapi/v1/market/{market}/equities/{code}/financial-statements")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-v2.hayinsights.com/openapi/v1/market/{market}/equities/{code}/financial-statements")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"statusCode": 200,
"data": {
"statement": "income-statement",
"currency": "JPY",
"columns": [
{
"key": "ttm",
"label": "TTM",
"periodType": "ttm",
"periodEnd": "2026-06-30"
},
{
"key": "2026-03-31",
"label": "Mar 31, 2026",
"periodType": "annual",
"periodEnd": "2026-03-31"
}
],
"rows": [
{
"key": "TotalRevenue",
"label": "Total Revenue",
"unit": "JPY",
"values": {
"ttm": 51957026000000,
"2026-03-31": 50684952000000
},
"children": [
{
"key": "OperatingRevenue",
"label": "Operating Revenue",
"unit": "JPY",
"values": {
"ttm": 51957026000000,
"2026-03-31": 50684952000000
},
"children": []
}
]
}
],
"dataAsOf": "2026-06-30",
"lastUpdatedAt": "2026-10-01T14:00:12.000Z"
},
"meta": {
"source": [
"yahoo:ws/fundamentals-timeseries"
],
"as_of": "2026-06-30",
"unit": "JPY",
"classification": "RAW",
"formula_version": "yahoo-statement-catalog-v1",
"was_restated": false,
"served_from_cache": true,
"cache_expires_at": "2026-10-02T08:00:00.000Z",
"timestamp": "2026-10-01T08:00:00.000Z"
}
}{
"success": false,
"statusCode": 400,
"error": {
"code": "MARKET_NOT_SUPPORTED",
"message": "Thị trường \"us\" chưa được hỗ trợ — hiện chỉ có jp"
},
"meta": {
"error": "Bad Request",
"statusCode": 400,
"timestamp": "2026-10-01T08:00:00.000Z"
}
}{
"success": false,
"statusCode": 401,
"error": {
"code": "API_KEY_INVALID",
"message": "Invalid API key"
},
"meta": {
"timestamp": "2026-06-19T08:34:08.023Z"
}
}{
"success": false,
"statusCode": 403,
"error": {
"code": "FEATURE_NOT_IN_PLAN",
"message": "Your plan does not include this feature"
},
"meta": {
"timestamp": "2026-06-19T08:34:08.100Z"
}
}{
"success": false,
"statusCode": 404,
"error": {
"code": "EQUITY_NOT_FOUND",
"message": "Không tìm thấy mã cổ phiếu 99999"
},
"meta": {
"error": "Not Found",
"statusCode": 404,
"timestamp": "2026-10-01T08:00:00.000Z"
}
}{
"success": false,
"statusCode": 429,
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded"
},
"meta": {
"timestamp": "2026-06-19T08:34:09.000Z"
}
}{
"success": false,
"statusCode": 500,
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error"
},
"meta": {
"timestamp": "2026-06-19T08:34:10.000Z"
}
}Japan equity financial statements
Income statement (TTM + 3 fiscal years) or balance sheet (4 fiscal years, no TTM), as Yahoo Finance line items arranged in a tree.
All rows share columns; read a figure with row.values[column.key]. Column
labels use each company’s actual fiscal year end (e.g. Mar 31, 2026).
columns and rows are empty while the statement has not been collected yet.
curl --request GET \
--url https://api-v2.hayinsights.com/openapi/v1/market/{market}/equities/{code}/financial-statements \
--header 'X-API-Key: <api-key>'import requests
url = "https://api-v2.hayinsights.com/openapi/v1/market/{market}/equities/{code}/financial-statements"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api-v2.hayinsights.com/openapi/v1/market/{market}/equities/{code}/financial-statements', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-v2.hayinsights.com/openapi/v1/market/{market}/equities/{code}/financial-statements",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-v2.hayinsights.com/openapi/v1/market/{market}/equities/{code}/financial-statements"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-v2.hayinsights.com/openapi/v1/market/{market}/equities/{code}/financial-statements")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-v2.hayinsights.com/openapi/v1/market/{market}/equities/{code}/financial-statements")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"statusCode": 200,
"data": {
"statement": "income-statement",
"currency": "JPY",
"columns": [
{
"key": "ttm",
"label": "TTM",
"periodType": "ttm",
"periodEnd": "2026-06-30"
},
{
"key": "2026-03-31",
"label": "Mar 31, 2026",
"periodType": "annual",
"periodEnd": "2026-03-31"
}
],
"rows": [
{
"key": "TotalRevenue",
"label": "Total Revenue",
"unit": "JPY",
"values": {
"ttm": 51957026000000,
"2026-03-31": 50684952000000
},
"children": [
{
"key": "OperatingRevenue",
"label": "Operating Revenue",
"unit": "JPY",
"values": {
"ttm": 51957026000000,
"2026-03-31": 50684952000000
},
"children": []
}
]
}
],
"dataAsOf": "2026-06-30",
"lastUpdatedAt": "2026-10-01T14:00:12.000Z"
},
"meta": {
"source": [
"yahoo:ws/fundamentals-timeseries"
],
"as_of": "2026-06-30",
"unit": "JPY",
"classification": "RAW",
"formula_version": "yahoo-statement-catalog-v1",
"was_restated": false,
"served_from_cache": true,
"cache_expires_at": "2026-10-02T08:00:00.000Z",
"timestamp": "2026-10-01T08:00:00.000Z"
}
}{
"success": false,
"statusCode": 400,
"error": {
"code": "MARKET_NOT_SUPPORTED",
"message": "Thị trường \"us\" chưa được hỗ trợ — hiện chỉ có jp"
},
"meta": {
"error": "Bad Request",
"statusCode": 400,
"timestamp": "2026-10-01T08:00:00.000Z"
}
}{
"success": false,
"statusCode": 401,
"error": {
"code": "API_KEY_INVALID",
"message": "Invalid API key"
},
"meta": {
"timestamp": "2026-06-19T08:34:08.023Z"
}
}{
"success": false,
"statusCode": 403,
"error": {
"code": "FEATURE_NOT_IN_PLAN",
"message": "Your plan does not include this feature"
},
"meta": {
"timestamp": "2026-06-19T08:34:08.100Z"
}
}{
"success": false,
"statusCode": 404,
"error": {
"code": "EQUITY_NOT_FOUND",
"message": "Không tìm thấy mã cổ phiếu 99999"
},
"meta": {
"error": "Not Found",
"statusCode": 404,
"timestamp": "2026-10-01T08:00:00.000Z"
}
}{
"success": false,
"statusCode": 429,
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded"
},
"meta": {
"timestamp": "2026-06-19T08:34:09.000Z"
}
}{
"success": false,
"statusCode": 500,
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error"
},
"meta": {
"timestamp": "2026-06-19T08:34:10.000Z"
}
}Authorizations
Your HayInsights API key (prefixed apk_). Create and manage keys in the
HayInsights dashboard (Account → API keys).
Send it in the X-API-Key header on every request to /openapi/v1/*.
Which data domains you may access and your request quota are both governed by
the subscription plan attached to the key — see the Plans & features and
Rate limits guides.
Path Parameters
Market code. Only jp (Tokyo Stock Exchange) is supported for now.
jp "jp"
Stock code — the 4-character ticker (7203) or the 5-character J-Quants code (72030).
"7203"
Query Parameters
Which statement to return.
income-statement, balance-sheet Response
The requested financial statement.
Standard success envelope shared by every endpoint. Each operation's response
wrapper extends this (via allOf) and adds a typed data property.
Always true for a successful response.
true
Mirrors the HTTP status code.
200
Financial statement as a table: columns are periods, rows are a tree of line
items. The income statement has TTM + 3 fiscal years; the balance sheet has 4
fiscal years (no TTM). columns and rows are empty while the statement has not
been collected yet.
Show child attributes
Show child attributes
Response metadata for the Equities domain. On top of timestamp, every equities
response says where the numbers came from and how fresh they are.
Show child attributes
Show child attributes