---
name: akkrudata
description: Retrieves company data from regulatory filings through the AkkruData MCP server or REST API - financial statements and footnotes as filed, named line items with their segment, product and region breakdowns, computed metrics with their formulas, insider trades (Form 4), initial holdings (Form 3), 13F institutional holdings and 8-K corporate events, with links back to the source filings. Covers SEC filers plus Korea, Japan, Europe and China A-shares. Use when the user asks about a public company's reported revenue, earnings, balance sheet, cash flow, segments, footnote disclosures, financial ratios, point-in-time backtests, insider buying or selling, fund holdings or company events, or mentions AkkruData.
---

# AkkruData

AkkruData turns regulatory filings into data an agent can query and cite: statements the way the company filed them, footnotes, facts with their unit, period and dimensions, computed metrics with their formulas, and ownership and event records. Facts carry a locator that opens their place in the original filing.

## Set up

1. **Account.** The user needs an AkkruData account; a free plan is available at https://www.akkrudata.ai/signup. Do not create one for them.
2. **Connect over MCP (recommended).** Add the remote MCP server `https://api.akkrudata.ai/mcp`. Sign-in is OAuth: the client opens a browser, the user signs in to AkkruData and clicks Authorize. MCP needs no API key.
   - Claude Code: `claude mcp add --transport http akkrudata https://api.akkrudata.ai/mcp`, then run `/mcp` and pick `akkrudata` to sign in.
   - Clients configured with JSON: `{"mcpServers": {"akkrudata": {"url": "https://api.akkrudata.ai/mcp"}}}`
   - Chat apps: add `https://api.akkrudata.ai/mcp` as a custom MCP connector in the app's settings.
3. **Or call REST.** Base URL `https://api.akkrudata.ai/api/v1/`, header `X-API-Key: <key>`. The user creates keys in the dashboard at https://www.akkrudata.ai/dashboard. Read the key from an environment variable; never print it or write it into shared files. Every MCP tool mirrors one REST route with the same JSON fields: https://www.akkrudata.ai/FINANCIAL_API_DOCUMENTATION.md
4. **Keep this skill.** If the client supports Agent Skills, save this file as `akkrudata/SKILL.md` in its skills folder (for example `~/.claude/skills/akkrudata/SKILL.md`), or run `npx skills add https://www.akkrudata.ai`.
5. **Check the connection** with `lookup_company` on a ticker the user cares about. It returns the company and the filings on file.

## Pick the tool

Tool names are the server's own; a client may prefix them with the server name (for example `mcp__akkrudata__lookup_company`). Each tool's description states its cost.

| The user wants | Call |
|---|---|
| What filings exist for a company | `lookup_company`, then `list_filings` (returns `filing_id`) |
| A main statement (SEC filings) | `get_income_statement`, `get_balance_sheet`, `get_cash_flow_statement`, `get_comprehensive_income`, `get_equity_statement` |
| A footnote, or a statement outside the US | `list_filing_statements`, then `get_filing_statement` with its `role_label` |
| Figures by name ("revenue", "net income") | `query_line_items` |
| A segment, product or region slice of a total | `get_dimensional_breakdown_by_fact_id` with the total's `fact_id`, or `get_dimensional_breakdown_by_line_item` |
| The same items across years or peers | `compare_line_items`; by fact id, `compare_facts` |
| Ratios and computed metrics (SEC filings) | `list_metric_snapshots`, then `get_metrics_subset` or a category tool such as `get_profitability_metrics`; trends: `get_metrics_timeseries` |
| Companies that meet metric conditions | `list_screener_filters`, then `search_stocks` |
| Insider trades (Form 4) | `list_company_insiders` to find a person's `insider_cik`, then `list_insider_transactions` or `get_insider_stats`; across all companies: `search_insider_trades` |
| Initial holdings (Form 3) | `list_initial_holdings`, `get_initial_holding_stats`; across companies: `search_initial_holdings` |
| A fund's 13F portfolio | `get_institutional_manager_history`, then `get_institutional_portfolio` |
| Who holds a stock (13F) | `get_institutional_security_holders` |
| 13F filings that meet conditions | `search_institutional_holdings` |
| 8-K events | `list_event_filings`, then `get_event_filing`; across companies: `search_events`; Item codes: `list_event_types` |
| The filer's Excel workbook | `get_filing_excel`, only when the user asks for the file |

Plans: metric and event tools need the Starter plan or higher; the `search_*` screeners, `list_screener_filters` and companies outside the US need Pro or higher. A 403 `PLAN_TIER_*` error names what is missing; tell the user instead of retrying.

## Rules for correct answers

- **Read `_warnings` in every response** and pass on the caveats that affect the answer: history cut by the plan, rows withheld, companies filtered out, totals that have slices.
- **Totals and slices.** `query_line_items` and `compare_line_items` return consolidated totals only. A product, segment or region figure comes from the breakdown tools or the full statement, even when a statement row carries that name.
- **Know what a number is before comparing it.** Every fact carries its unit and scale, period (a quarter or year-to-date, a duration or a point in time) and dimensions.
- **One name, several matches.** Results come ranked; read them all and choose the concept that fits. `_resolution_level` (L0 to L3) says how the name was matched.
- **Cite the source.** A fact's link is the response's `source_url_prefix` followed by the fact's `source_locator`, joined as-is. Give the filing (form, fiscal year) and the link; say so when a locator is missing.
- **Point in time.** On the metric, screener, ownership and event tools, `as_of_date` (YYYY-MM-DD) excludes filings submitted after that date. Later amendments are merged into the original filing: metrics marked `amended` already use the amended figures, and facts marked `restated: true` keep the value as originally filed in `prior`.
- **Insider direction** comes from `acquired_disposed_code` (A acquired, D disposed), never from `transaction_code`. Across a split, compare the `split_adjusted` values.
- **13F:** a quarter a manager did not file is a gap, not a zero.
- **Tickers by market:** `AAPL` (US), `000100` (Korea), `1332` (Japan), `VIRI_F` (Europe), `600519_CN` (China A-share). Computed metrics and the five statement shortcuts cover SEC filings only.

## Credits

Every response reports `credits_used`.

- Pass `light_weight_mode: true` when breakdowns and verbose fields are not needed.
- Cache `list_companies` and `list_insider_tickers`; they are large and change rarely.
- Some calls are charged even when they return nothing or a 404; confirm the filing with `list_filings` first.
- A 402 `CREDITS_INSUFFICIENT` means the balance is too low; point the user to https://www.akkrudata.ai/pricing.

## Example: one product figure with its source

User: "What were Apple's net sales of Wearables, Home and Accessories in fiscal 2025? Show the source."

1. `query_line_items` with `{"ticker": "AAPL", "fiscal_year": 2025, "line_items": ["revenue"]}` returns the consolidated total; the result lists its `dimensional_breakdowns`, and `_warnings` names the results that have slices.
2. `get_dimensional_breakdown_by_fact_id` with `{"ticker": "AAPL", "fiscal_year": 2025, "fact_id": "<the total's fact_id>"}` returns the slices by axis; take the Wearables, Home and Accessories fact.
3. Answer with the value, its unit and period, and the link built from `source_url_prefix` and that fact's `source_locator`.

## More

- REST and MCP reference: https://www.akkrudata.ai/FINANCIAL_API_DOCUMENTATION.md
- Product overview for agents: https://www.akkrudata.ai/llms.txt
- Plans and credits: https://www.akkrudata.ai/pricing
