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{
"ticker": "<string>",
"report_period": "2023-12-25",
"fiscal_period": "<string>",
"period": "quarterly",
"currency": "<string>",
"accession_number": "<string>",
"form_type": "<string>",
"filing_url": "<string>",
"filing_date": "2023-12-25",
"filing_datetime": "2023-11-07T05:31:56Z",
"enterprise_value": 123,
"price_to_earnings_ratio": 123,
"price_to_book_ratio": 123,
"price_to_sales_ratio": 123,
"enterprise_value_to_ebitda_ratio": 123,
"enterprise_value_to_revenue_ratio": 123,
"free_cash_flow_yield": 123,
"peg_ratio": 123,
"gross_margin": 123,
"operating_margin": 123,
"net_margin": 123,
"return_on_equity": 123,
"return_on_assets": 123,
"return_on_invested_capital": 123,
"asset_turnover": 123,
"inventory_turnover": 123,
"receivables_turnover": 123,
"days_sales_outstanding": 123,
"operating_cycle": 123,
"working_capital_turnover": 123,
"current_ratio": 123,
"quick_ratio": 123,
"cash_ratio": 123,
"operating_cash_flow_ratio": 123,
"debt_to_equity": 123,
"debt_to_assets": 123,
"interest_coverage": 123,
"revenue_growth": 123,
"earnings_growth": 123,
"book_value_growth": 123,
"earnings_per_share_growth": 123,
"free_cash_flow_growth": 123,
"operating_income_growth": 123,
"ebitda_growth": 123,
"payout_ratio": 123,
"earnings_per_share": 123,
"book_value_per_share": 123,
"free_cash_flow_per_share": 123,
"next_page_url": "<string>"
}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{
"ticker": "<string>",
"report_period": "2023-12-25",
"fiscal_period": "<string>",
"period": "quarterly",
"currency": "<string>",
"accession_number": "<string>",
"form_type": "<string>",
"filing_url": "<string>",
"filing_date": "2023-12-25",
"filing_datetime": "2023-11-07T05:31:56Z",
"enterprise_value": 123,
"price_to_earnings_ratio": 123,
"price_to_book_ratio": 123,
"price_to_sales_ratio": 123,
"enterprise_value_to_ebitda_ratio": 123,
"enterprise_value_to_revenue_ratio": 123,
"free_cash_flow_yield": 123,
"peg_ratio": 123,
"gross_margin": 123,
"operating_margin": 123,
"net_margin": 123,
"return_on_equity": 123,
"return_on_assets": 123,
"return_on_invested_capital": 123,
"asset_turnover": 123,
"inventory_turnover": 123,
"receivables_turnover": 123,
"days_sales_outstanding": 123,
"operating_cycle": 123,
"working_capital_turnover": 123,
"current_ratio": 123,
"quick_ratio": 123,
"cash_ratio": 123,
"operating_cash_flow_ratio": 123,
"debt_to_equity": 123,
"debt_to_assets": 123,
"interest_coverage": 123,
"revenue_growth": 123,
"earnings_growth": 123,
"book_value_growth": 123,
"earnings_per_share_growth": 123,
"free_cash_flow_growth": 123,
"operating_income_growth": 123,
"ebitda_growth": 123,
"payout_ratio": 123,
"earnings_per_share": 123,
"book_value_per_share": 123,
"free_cash_flow_per_share": 123,
"next_page_url": "<string>"
}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 five tools: search,
list_categories and get_details are free, use and batch_use are
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
- Request URL template: https://api.aisa.one/apis/v1/financial/financial-metrics
- cik: query; optional
- cursor: 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
- 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: afe2e5d365275c032408a51b04030fb8f5be4f9d70a476d8735d89f06821a9b8
{
"operationId": "get_financial_financial_metrics",
"method": "GET",
"path": "/apis/v1/financial/financial-metrics",
"servers": [
{
"url": "https://api.aisa.one"
}
],
"parameters": [
{
"name": "cik",
"in": "query",
"description": "The Central Index Key (CIK) of the company. Can be used instead of ticker.",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "cursor",
"in": "query",
"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.",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "filing_date",
"in": "query",
"description": "Filter by exact SEC filing date in YYYY-MM-DD format. Rows without a known filing date are excluded.",
"required": false,
"schema": {
"type": "string",
"format": "date"
}
},
{
"name": "filing_date_gt",
"in": "query",
"description": "Filter by SEC filing date greater than date in YYYY-MM-DD format. Rows without a known filing date are excluded.",
"required": false,
"schema": {
"type": "string",
"format": "date"
}
},
{
"name": "filing_date_gte",
"in": "query",
"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.",
"required": false,
"schema": {
"type": "string",
"format": "date"
}
},
{
"name": "filing_date_lt",
"in": "query",
"description": "Filter by SEC filing date less than date in YYYY-MM-DD format. Rows without a known filing date are excluded.",
"required": false,
"schema": {
"type": "string",
"format": "date"
}
},
{
"name": "filing_date_lte",
"in": "query",
"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.",
"required": false,
"schema": {
"type": "string",
"format": "date"
}
},
{
"name": "limit",
"in": "query",
"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`.",
"required": false,
"schema": {
"type": "integer"
}
},
{
"name": "period",
"in": "query",
"description": "The time period for the financial data.",
"required": true,
"schema": {
"type": "string",
"enum": [
"annual",
"quarterly",
"ttm"
]
}
},
{
"name": "report_period",
"in": "query",
"description": "Filter by exact report period date in YYYY-MM-DD format.",
"required": false,
"schema": {
"type": "string",
"format": "date"
}
},
{
"name": "report_period_gt",
"in": "query",
"description": "Filter by report period greater than date in YYYY-MM-DD format.",
"required": false,
"schema": {
"type": "string",
"format": "date"
}
},
{
"name": "report_period_gte",
"in": "query",
"description": "Filter by report period greater than or equal to date in YYYY-MM-DD format.",
"required": false,
"schema": {
"type": "string",
"format": "date"
}
},
{
"name": "report_period_lt",
"in": "query",
"description": "Filter by report period less than date in YYYY-MM-DD format.",
"required": false,
"schema": {
"type": "string",
"format": "date"
}
},
{
"name": "report_period_lte",
"in": "query",
"description": "Filter by report period less than or equal to date in YYYY-MM-DD format.",
"required": false,
"schema": {
"type": "string",
"format": "date"
}
},
{
"name": "ticker",
"in": "query",
"description": "The ticker symbol of the company. Required if cik is not provided.",
"required": false,
"schema": {
"type": "string"
}
}
],
"security": [
{
"bearerAuth": []
}
],
"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.
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 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 ticker symbol of the company.
The reporting period of the financial metrics.
The fiscal period of the financial metrics.
The time period of the financial metrics.
quarterly, ttm, annual The currency in which the financial data is reported.
The SEC accession number of the filing.
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.
URL to the SEC filing.
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).
The total value of the company (market cap + debt - cash).
Price to earnings ratio.
Price to book ratio.
Price to sales ratio.
Enterprise value to EBITDA ratio.
Enterprise value to revenue ratio.
Free cash flow yield.
Price to earnings growth ratio.
Gross profit as a percentage of revenue.
Operating income as a percentage of revenue.
Net income as a percentage of revenue.
Net income as a percentage of shareholders' equity.
Net income as a percentage of total assets.
Net operating profit after taxes as a percentage of invested capital.
Revenue divided by average total assets.
Cost of goods sold divided by average inventory.
Revenue divided by average accounts receivable.
Average accounts receivable divided by revenue over the period.
Inventory turnover + receivables turnover.
Revenue divided by average working capital.
Current assets divided by current liabilities.
Quick assets divided by current liabilities.
Cash and cash equivalents divided by current liabilities.
Operating cash flow divided by current liabilities.
Total debt divided by shareholders' equity.
Total debt divided by total assets.
EBIT divided by interest expense.
Year-over-year growth in revenue.
Year-over-year growth in earnings.
Year-over-year growth in book value.
Growth in earnings per share over the period.
Growth in free cash flow over the period.
Growth in operating income over the period.
Growth in EBITDA over the period.
Dividends paid as a percentage of net income.
Net income divided by weighted average shares outstanding.
Shareholders' equity divided by shares outstanding.
Free cash flow divided by shares outstanding.
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.