Rankings
by Kakerapetit Japan Company Data in Markets & finance
Rank Japanese listed companies by any financial metric from EDINET annual reports: roe, roa, revenue, operating_income, net_income, total_assets, equity_ratio, fcf and 30+ more. Returns the top or bottom N companies on the latest fiscal year, each with the full normalized indicator row and filing provenance. Example: /v2/rankings?metric=roe&order=desc&limit=10. League tables and factor screens for Japanese stocks in an EDGAR-style unified schema.
GET https://api.kakerapetit.dev/v2/rankings
Last 30 days
Status and outage history · Atom feed
- Uptime
- 100%
- Response time
- 461 ms typical, 745 ms slowest 5%
- Last check
- 4 min ago
- Next check
- in 26 min
How to call it
GET https://api.kakerapetit.dev/v2/rankings
Each call costs $0.01 in USDC on Base, paid with the request over x402.
Run a free test callOne unpaid request, the way an agent sends it. You see the payment challenge it gets back. Nothing is charged.
Example request
From the listing.
GET https://api.kakerapetit.dev/v2/rankings?limit=2&metric=roe&order=descParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Max rows (default 50, max 100). |
market | string | No | Market segment (default: all; only jp today). One of: jp. |
metric | string | Yes | Metric column to rank by (whitelisted): any indicator (revenue, total_assets, …) or ratio (roe, roa, operating_margin, equity_ratio, de_ratio, asset_turnover, fcf). |
order | string | No | Sort direction (default "desc"). One of: desc, asc. |
Example response
The provider's example. We can't check it without paying.
Example response, 133 lines
{
"count": 2,
"metric": "roe",
"order": "desc",
"results": [
{
"asset_turnover": 0.7538,
"capex": null,
"capex_disclosure": 211673000000,
"cash_and_deposits": null,
"cash_end": 585981000000,
"cf_financing": -179221000000,
"cf_investing": -237450000000,
"cf_operating": 475903000000,
"code": "7751",
"consolidated": true,
"cost_of_sales": null,
"currency": "JPY",
"current_assets": null,
"current_liabilities": null,
"current_ratio_pct": null,
"de_ratio": null,
"depreciation": null,
"dividends_paid": null,
"doc_id": "S100XTLJ",
"eps_basic": 367.48,
"eps_diluted": 367.25,
"equity_owners": 3491808000000,
"equity_ratio_pct": 56.92,
"fcf": null,
"filed_at": "2026-03-25 15:00",
"fiscal_year": "FY2025",
"gross_profit": null,
"income_taxes": null,
"intangibles": null,
"interest_bearing_debt": null,
"inventories": null,
"market": "jp",
"name": "キヤノン株式会社",
"name_en": "CANON INC.",
"net_assets": 3491808000000,
"net_income": null,
"net_income_owners": 332053000000,
"net_margin_pct": 7.18,
"operating_income": null,
"operating_margin_pct": null,
"ordinary_income": null,
"period_end": "2025-12-31",
"period_months": 12,
"period_start": "2025-01-01",
"ppe": null,
"pretax_income": 482059000000,
"rank": 1,
"revenue": 4624727000000,
"revenue_source": "standard",
"rnd_expense": 339288000000,
"roa_pct": 5.41,
"roe_pct": 9.51,
"sector": "電気機器",
"sga": null,
"standard": "USGAAP",
"total_assets": 6135044000000,
"total_liabilities": null,
"trade_receivables": null,
"treasury_shares": null
},
{
"asset_turnover": 0.7706,
"capex": -287155000000,
"capex_disclosure": 365900000000,
"cash_and_deposits": 713810000000,
"cash_end": 713810000000,
"cf_financing": -429902000000,
"cf_investing": -224968000000,
"cf_operating": 660442000000,
"code": "5108",
"consolidated": true,
"cost_of_sales": 2722789000000,
"currency": "JPY",
"current_assets": 2863182000000,
"current_liabilities": 1122654000000,
"current_ratio_pct": 255.04,
"de_ratio": 0.1331,
"depreciation": 353229000000,
"dividends_paid": -148573000000,
"doc_id": "S100XRPR",
"eps_basic": 246,
"eps_diluted": 245.77,
"equity_owners": 3661793000000,
"equity_ratio_pct": 63.71,
"fcf": 373287000000,
"filed_at": "2026-03-18 15:00",
"fiscal_year": "FY2025",
"gross_profit": 1706663000000,
"income_taxes": 30519000000,
"intangibles": 369355000000,
"interest_bearing_debt": 487270000000,
"inventories": 885458000000,
"market": "jp",
"name": "株式会社ブリヂストン",
"name_en": "BRIDGESTONE CORPORATION",
"net_assets": 3719888000000,
"net_income": 334299000000,
"net_income_owners": 327264000000,
"net_margin_pct": 7.39,
"operating_income": 381237000000,
"operating_margin_pct": 8.61,
"ordinary_income": null,
"period_end": "2025-12-31",
"period_months": 12,
"period_start": "2025-01-01",
"ppe": 1858259000000,
"pretax_income": 354661000000,
"rank": 2,
"revenue": 4429452000000,
"revenue_source": "statement",
"rnd_expense": 126400000000,
"roa_pct": 5.69,
"roe_pct": 8.94,
"sector": "ゴム製品",
"sga": 1219078000000,
"standard": "IFRS",
"total_assets": 5747705000000,
"total_liabilities": 2027817000000,
"trade_receivables": 1093109000000,
"treasury_shares": -433930000000
}
],
"source": {
"attribution": "出典:EDINET閲覧(提出)サイト(https://disclosure2dl.edinet-fsa.go.jp/)、PDL1.0",
"attribution_en": "Source: EDINET, Financial Services Agency of Japan (PDL 1.0). Processed and normalized by api.kakerapetit.dev."
}
}Call it from code
The curl command shows the payment challenge. The JavaScript and Python versions pay and call, and never pay more than $0.01.
curl: see the payment challenge
# bash or zsh: see the payment challenge. Nothing is charged.
curl -sS -g -i 'https://api.kakerapetit.dev/v2/rankings?limit=2&metric=roe&order=desc'
# x402 v2 sends the challenge base64-encoded in the PAYMENT-REQUIRED header (v1 sends it in the body).
# To read the header:
curl -sS -g -o /dev/null -D - 'https://api.kakerapetit.dev/v2/rankings?limit=2&metric=roe&order=desc' \
| grep -i '^payment-required:' | cut -d' ' -f2 | tr -d '\r' | base64 --decodeJavaScript: pay and call
// npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
// Pays at most $0.01 per call.
const client = new x402Client().setSpendControls({ maxAmountPerPayment: "$0.01" });
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.EVM_PRIVATE_KEY) });
const pay = wrapFetchWithPayment(fetch, client);
// Not sure it's safe to pay? ToolVet checks it first for $0.005. Pay for that from a separate
// client: this one is capped at $0.01 per payment. GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fapi.kakerapetit.dev%2Fv2%2Frankings
const res = await pay("https://api.kakerapetit.dev/v2/rankings?limit=2&metric=roe&order=desc");
console.log(res.status, await res.text());Python: pay and call
# pip install "x402[requests,evm]"
import os
from eth_account import Account
from x402 import x402ClientSync
from x402.http.clients import x402_requests
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client
# Pays at most $0.01 per call.
client = x402ClientSync().set_spend_controls({"max_amount_per_payment": "$0.01"})
register_exact_evm_client(client, EthAccountSigner(Account.from_key(os.environ["EVM_PRIVATE_KEY"])))
with x402_requests(client) as session:
res = session.get("https://api.kakerapetit.dev/v2/rankings?limit=2&metric=roe&order=desc")
print(res.status_code, res.text)Security scan
- No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time | Price |
|---|---|---|---|---|
| 4 min ago | Passed | 402 | 882 ms | $0.01 |
| 4 h ago | Passed | 402 | 511 ms | $0.01 |
| 8 h ago | Passed | 402 | 619 ms | $0.01 |
| 12 h ago | Passed | 402 | 439 ms | $0.01 |
| 16 h ago | Passed | 402 | 500 ms | $0.01 |
| 20 h ago | Passed | 402 | 448 ms | $0.01 |
| 24 h ago | Passed | 402 | 226 ms | $0.01 |
| 28 h ago | Passed | 402 | 595 ms | $0.01 |
| 31 h ago | Passed | 402 | 449 ms | $0.01 |
| 35 h ago | Passed | 402 | 413 ms | $0.01 |
| 39 h ago | Passed | 402 | 463 ms | $0.01 |
| 42 h ago | Passed | 402 | 352 ms | $0.01 |
| 46 h ago | Passed | 402 | 461 ms | $0.01 |
| 2 days ago | Passed | 402 | 745 ms | $0.01 |
| 2 days ago | Passed | 402 | 290 ms | $0.01 |