curl --request GET \
--url https://api.aisa.one/apis/v1/financial/financial-metrics \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.aisa.one/apis/v1/financial/financial-metrics"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aisa.one/apis/v1/financial/financial-metrics', 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.aisa.one/apis/v1/financial/financial-metrics",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.aisa.one/apis/v1/financial/financial-metrics"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.aisa.one/apis/v1/financial/financial-metrics")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/financial/financial-metrics")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"accession_number": "<string>",
"asset_turnover": 123,
"book_value_growth": 123,
"book_value_per_share": 123,
"cash_ratio": 123,
"currency": "<string>",
"current_ratio": 123,
"days_sales_outstanding": 123,
"debt_to_assets": 123,
"debt_to_equity": 123,
"earnings_growth": 123,
"earnings_per_share": 123,
"earnings_per_share_growth": 123,
"ebitda_growth": 123,
"enterprise_value": 123,
"enterprise_value_to_ebitda_ratio": 123,
"enterprise_value_to_revenue_ratio": 123,
"filing_date": "2023-12-25",
"filing_datetime": "2023-11-07T05:31:56Z",
"filing_url": "<string>",
"fiscal_period": "<string>",
"form_type": "<string>",
"free_cash_flow_growth": 123,
"free_cash_flow_per_share": 123,
"free_cash_flow_yield": 123,
"gross_margin": 123,
"interest_coverage": 123,
"inventory_turnover": 123,
"net_margin": 123,
"next_page_url": "<string>",
"operating_cash_flow_ratio": 123,
"operating_cycle": 123,
"operating_income_growth": 123,
"operating_margin": 123,
"payout_ratio": 123,
"peg_ratio": 123,
"period": "quarterly",
"price_to_book_ratio": 123,
"price_to_earnings_ratio": 123,
"price_to_sales_ratio": 123,
"quick_ratio": 123,
"receivables_turnover": 123,
"report_period": "2023-12-25",
"return_on_assets": 123,
"return_on_equity": 123,
"return_on_invested_capital": 123,
"revenue_growth": 123,
"ticker": "<string>",
"working_capital_turnover": 123
}Get Financial Metrics
Computed valuation, margin and return ratios for one company, across periods.
curl --request GET \
--url https://api.aisa.one/apis/v1/financial/financial-metrics \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.aisa.one/apis/v1/financial/financial-metrics"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aisa.one/apis/v1/financial/financial-metrics', 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.aisa.one/apis/v1/financial/financial-metrics",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.aisa.one/apis/v1/financial/financial-metrics"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.aisa.one/apis/v1/financial/financial-metrics")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/financial/financial-metrics")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"accession_number": "<string>",
"asset_turnover": 123,
"book_value_growth": 123,
"book_value_per_share": 123,
"cash_ratio": 123,
"currency": "<string>",
"current_ratio": 123,
"days_sales_outstanding": 123,
"debt_to_assets": 123,
"debt_to_equity": 123,
"earnings_growth": 123,
"earnings_per_share": 123,
"earnings_per_share_growth": 123,
"ebitda_growth": 123,
"enterprise_value": 123,
"enterprise_value_to_ebitda_ratio": 123,
"enterprise_value_to_revenue_ratio": 123,
"filing_date": "2023-12-25",
"filing_datetime": "2023-11-07T05:31:56Z",
"filing_url": "<string>",
"fiscal_period": "<string>",
"form_type": "<string>",
"free_cash_flow_growth": 123,
"free_cash_flow_per_share": 123,
"free_cash_flow_yield": 123,
"gross_margin": 123,
"interest_coverage": 123,
"inventory_turnover": 123,
"net_margin": 123,
"next_page_url": "<string>",
"operating_cash_flow_ratio": 123,
"operating_cycle": 123,
"operating_income_growth": 123,
"operating_margin": 123,
"payout_ratio": 123,
"peg_ratio": 123,
"period": "quarterly",
"price_to_book_ratio": 123,
"price_to_earnings_ratio": 123,
"price_to_sales_ratio": 123,
"quick_ratio": 123,
"receivables_turnover": 123,
"report_period": "2023-12-25",
"return_on_assets": 123,
"return_on_equity": 123,
"return_on_invested_capital": 123,
"revenue_growth": 123,
"ticker": "<string>",
"working_capital_turnover": 123
}market_cap, enterprise_value, price_to_earnings_ratio, price_to_book_ratio, price_to_sales_ratio, enterprise_value_to_ebitda_ratio, free_cash_flow_yield, peg_ratio, gross_margin, operating_margin, net_margin, return_on_equity, return_on_assets, return_on_invested_capital, the turnover and liquidity ratios, each stamped with report_period and fiscal_period. period is required; identify by ticker or cik. Use it to trend a ratio across periods. For the current values only, get_financial_financial_metrics_snapshot is one row and much smaller.
https://mcp.aisa.one/mcp — Claude
Code, Codex, Cursor, VS Code and the rest. Authorization is OAuth: the client
opens a browser, you click Allow once, and there is no key to paste. Your
agent then reaches every endpoint through a few meta tools: search,
list_categories, get_details and batch_quote are free, batch_use is
billed per call. Setup per client is in
Connect via MCP; the live tool list and what each call
costs are on aisa.one/mcp.Request contract
- Method and path: GET /apis/v1/financial/financial-metrics
- Availability: enabled
- Request URL template: https://api.aisa.one/apis/v1/financial/financial-metrics
- cik: query; optional
- cursor: query; optional
- exchange: query; optional
- filing_date: query; optional
- filing_date_gt: query; optional
- filing_date_gte: query; optional
- filing_date_lt: query; optional
- filing_date_lte: query; optional
- isin: query; optional
- limit: query; optional
- period: query; required
- report_period: query; optional
- report_period_gt: query; optional
- report_period_gte: query; optional
- report_period_lt: query; optional
- report_period_lte: query; optional
- ticker: query; optional
- Runtime facts: 694a99fb21efca575a4b8ff0db4c82ec36667c583b6490faf3c0b3ff64e0beaa
{
"operationId": "get_financial_financial_metrics",
"method": "GET",
"path": "/apis/v1/financial/financial-metrics",
"servers": [
{
"url": "https://api.aisa.one"
}
],
"parameters": [
{
"description": "The Central Index Key (CIK) of the company. Can be used instead of ticker.",
"in": "query",
"name": "cik",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.",
"in": "query",
"name": "cursor",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "The exchange the ticker is listed on. Omit for US listings. Use `LSE` for the London Stock Exchange; any ticker of the company, including a second share class, returns the company's metrics. Price-based values (market cap, enterprise value, valuation ratios, dividend yield) are not yet available for UK tickers.",
"in": "query",
"name": "exchange",
"required": false,
"schema": {
"enum": [
"LSE"
],
"type": "string"
}
},
{
"description": "Filter by exact SEC filing date in YYYY-MM-DD format. Rows without a known filing date are excluded.",
"in": "query",
"name": "filing_date",
"required": false,
"schema": {
"format": "date",
"type": "string"
}
},
{
"description": "Filter by SEC filing date greater than date in YYYY-MM-DD format. Rows without a known filing date are excluded.",
"in": "query",
"name": "filing_date_gt",
"required": false,
"schema": {
"format": "date",
"type": "string"
}
},
{
"description": "Filter by SEC filing date greater than or equal to date in YYYY-MM-DD format. Rows without a known filing date are excluded.",
"in": "query",
"name": "filing_date_gte",
"required": false,
"schema": {
"format": "date",
"type": "string"
}
},
{
"description": "Filter by SEC filing date less than date in YYYY-MM-DD format. Rows without a known filing date are excluded.",
"in": "query",
"name": "filing_date_lt",
"required": false,
"schema": {
"format": "date",
"type": "string"
}
},
{
"description": "Filter by SEC filing date less than or equal to date in YYYY-MM-DD format. Useful for point-in-time queries: returns only data that was publicly filed by the given date. Rows without a known filing date are excluded.",
"in": "query",
"name": "filing_date_lte",
"required": false,
"schema": {
"format": "date",
"type": "string"
}
},
{
"description": "The ISIN (International Securities Identification Number) of a non-US listing. An alternative to `ticker` and `exchange`.",
"in": "query",
"name": "isin",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "The maximum number of results to return. This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`.",
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "integer"
}
},
{
"description": "The time period for the financial data.",
"in": "query",
"name": "period",
"required": true,
"schema": {
"enum": [
"annual",
"quarterly",
"ttm"
],
"type": "string"
}
},
{
"description": "Filter by exact report period date in YYYY-MM-DD format.",
"in": "query",
"name": "report_period",
"required": false,
"schema": {
"format": "date",
"type": "string"
}
},
{
"description": "Filter by report period greater than date in YYYY-MM-DD format.",
"in": "query",
"name": "report_period_gt",
"required": false,
"schema": {
"format": "date",
"type": "string"
}
},
{
"description": "Filter by report period greater than or equal to date in YYYY-MM-DD format.",
"in": "query",
"name": "report_period_gte",
"required": false,
"schema": {
"format": "date",
"type": "string"
}
},
{
"description": "Filter by report period less than date in YYYY-MM-DD format.",
"in": "query",
"name": "report_period_lt",
"required": false,
"schema": {
"format": "date",
"type": "string"
}
},
{
"description": "Filter by report period less than or equal to date in YYYY-MM-DD format.",
"in": "query",
"name": "report_period_lte",
"required": false,
"schema": {
"format": "date",
"type": "string"
}
},
{
"description": "The ticker symbol of the company. Required if cik is not provided.",
"in": "query",
"name": "ticker",
"required": false,
"schema": {
"type": "string"
}
}
],
"security": [
{
"bearerAuth": []
}
],
"x-aisa-status": "enabled",
"x-aisa-pricing": {
"cost_contract": "fixed_success",
"customer_multiplier": 1.0,
"customer_pricing": "provider_cost_multiplier",
"default_request_estimate_usd": 0.02,
"estimate_source": "profile_seed",
"evidence_source": "request_snapshot"
},
"components": {
"securitySchemes": {
"bearerAuth": {
"scheme": "bearer",
"type": "http"
}
}
}
}
Cost and request rules
Published reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ. Published reference values are not an account-specific quote or a settled charge. For endpoints supporting X-AISA-Cost-Mode: quote, obtain a free quote for your exact request before execution; reconcile the settled cost with response metadata and Usage Logs. USD amounts use 1,000,000 integer micro-USD per dollar.- Default request reference estimate (USD): 0.02
- Cost contract: fixed_success
- Published reference multiplier: 1.0
- Settlement evidence source: request_snapshot
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
The Central Index Key (CIK) of the company. Can be used instead of ticker.
Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.
The exchange the ticker is listed on. Omit for US listings. Use LSE for the London Stock Exchange; any ticker of the company, including a second share class, returns the company's metrics. Price-based values (market cap, enterprise value, valuation ratios, dividend yield) are not yet available for UK tickers.
LSE Filter by exact SEC filing date in YYYY-MM-DD format. Rows without a known filing date are excluded.
Filter by SEC filing date greater than date in YYYY-MM-DD format. Rows without a known filing date are excluded.
Filter by SEC filing date greater than or equal to date in YYYY-MM-DD format. Rows without a known filing date are excluded.
Filter by SEC filing date less than date in YYYY-MM-DD format. Rows without a known filing date are excluded.
Filter by SEC filing date less than or equal to date in YYYY-MM-DD format. Useful for point-in-time queries: returns only data that was publicly filed by the given date. Rows without a known filing date are excluded.
The ISIN (International Securities Identification Number) of a non-US listing. An alternative to ticker and exchange.
The maximum number of results to return. This is the total across all pages, not a page size: each page holds up to 10 records, linked by next_page_url.
The time period for the financial data.
annual, quarterly, ttm Filter by exact report period date in YYYY-MM-DD format.
Filter by report period greater than date in YYYY-MM-DD format.
Filter by report period greater than or equal to date in YYYY-MM-DD format.
Filter by report period less than date in YYYY-MM-DD format.
Filter by report period less than or equal to date in YYYY-MM-DD format.
The ticker symbol of the company. Required if cik is not provided.
Response
The historical financial metrics and ratios for a ticker
The SEC accession number of the filing.
Revenue divided by average total assets.
Year-over-year growth in book value.
Shareholders' equity divided by shares outstanding.
Cash and cash equivalents divided by current liabilities.
The currency in which the financial data is reported.
Current assets divided by current liabilities.
Average accounts receivable divided by revenue over the period.
Total debt divided by total assets.
Total debt divided by shareholders' equity.
Year-over-year growth in earnings.
Net income divided by weighted average shares outstanding.
Growth in earnings per share over the period.
Growth in EBITDA over the period.
The total value of the company (market cap + debt - cash).
Enterprise value to EBITDA ratio.
Enterprise value to revenue ratio.
Calendar day SEC accepted the filing, in Eastern Time (the SEC's operating timezone). Calendar-day pair to filing_datetime. Null when no dated SEC filing is linked to the row.
Sub-day timestamp recording when SEC accepted the filing, in Eastern Time. Sourced from SEC's acceptanceDateTime field on the EDGAR submissions API. Pairs with filing_date (calendar-day precision of the same event).
URL to the SEC filing.
The fiscal period of the financial metrics.
The SEC form this row was sourced from (10-K, 10-Q/A, 20-F, S-1, ...). The exact form as filed, so amendments keep their /A suffix. Null when period is ttm: a trailing twelve month window can span multiple filings, so we don't attribute it to one. A quarterly row can carry 10-K when the fourth quarter is derived from the fiscal-year filing.
Growth in free cash flow over the period.
Free cash flow divided by shares outstanding.
Free cash flow yield.
Gross profit as a percentage of revenue.
EBIT divided by interest expense.
Cost of goods sold divided by average inventory.
Net income as a percentage of revenue.
Absolute URL of the next page of results. Present only when more results remain; request it as-is to continue. Each page holds up to 10 records.
Operating cash flow divided by current liabilities.
Inventory turnover + receivables turnover.
Growth in operating income over the period.
Operating income as a percentage of revenue.
Dividends paid as a percentage of net income.
Price to earnings growth ratio.
The time period of the financial metrics.
quarterly, ttm, annual Price to book ratio.
Price to earnings ratio.
Price to sales ratio.
Quick assets divided by current liabilities.
Revenue divided by average accounts receivable.
The reporting period of the financial metrics.
Net income as a percentage of total assets.
Net income as a percentage of shareholders' equity.
Net operating profit after taxes as a percentage of invested capital.
Year-over-year growth in revenue.
The ticker symbol of the company.
Revenue divided by average working capital.