# Category endpoints (`/metric/<category>`)

Seven endpoints returning curated metric sets — margins, growth, leverage, efficiency, cash-flow, valuation. Flat **158 credits**, rate limit **60/minute**.

| Endpoint | Metrics returned |
|---|---|
| `POST /metric/profitability` | `gross_margin`, `operating_margin`, `net_margin`, `ebitda_margin`, `return_on_equity`, `return_on_assets`, `return_on_invested_capital`, `return_on_tangible_equity`, `fcf_margin`, `nopat`, `nopat_reported_oi_proxy`, `nopat_margin`, `return_on_net_operating_assets`, `owner_earnings_estimate`, `owner_earnings_cash_proxy`, `owner_earnings_per_share` (16) |
| `POST /metric/growth` | `revenue_growth_yoy`, `revenue_growth_qoq`, `revenue_growth_qoq_single_quarter`, `eps_growth_yoy`, `net_income_growth_yoy`, `fcf_growth_yoy`, `revenue_cagr_3y`, `revenue_cagr_5y`, `revenue_cagr_10y`, `diluted_eps_cagr_3y`, `diluted_eps_cagr_5y`, `diluted_eps_cagr_10y`, `shares_outstanding_cagr_3y`, `shares_outstanding_cagr_5y`, `shares_outstanding_cagr_10y` (15) |
| `POST /metric/financial-health` | `debt_to_equity`, `debt_to_assets`, `debt_to_ebitda`, `interest_coverage`, `current_ratio`, `quick_ratio`, `cash_ratio`, `net_debt`, `net_debt_to_ebitda`, `net_financial_obligations`, `net_financial_expense_after_tax` (11) |
| `POST /metric/efficiency` | `asset_turnover`, `inventory_turnover`, `receivables_turnover`, `days_inventory`, `days_receivable`, `days_payable`, `cash_conversion_cycle`, `payables_turnover`, `net_operating_assets`, `net_operating_asset_turnover` (10) |
| `POST /metric/cash-flow` | `free_cash_flow`, `fcf_margin`, `payout_ratio`, `free_cash_flow_per_share`, `free_cash_flow_after_sbc`, `fcf_ex_sbc_addback`, `free_cash_flow_cagr_3y`, `free_cash_flow_cagr_5y`, `free_cash_flow_cagr_10y`, `free_cash_flow_per_share_cagr_3y`, `free_cash_flow_per_share_cagr_5y`, `free_cash_flow_per_share_cagr_10y`, `cfo_to_net_income`, `fcf_to_net_income`, `cash_distributions_to_fcf`, `common_dividend_burden_on_group_fcf`, `sbc_to_revenue`, `sbc_to_fcf` (18 — `fcf_margin` also in `/metric/profitability`) |
| `POST /metric/valuation` | All 13 price-sensitive ratios: `market_cap`, `enterprise_value`, `pe_ratio`, `price_to_book`, `price_to_sales`, `price_to_cash_flow`, `ev_to_ebitda`, `ev_to_revenue`, `ev_to_fcf`, `fcf_yield`, `dividend_yield`, `buyback_yield`, `owner_earnings_yield`. Accepts `current_price` for realtime; returns both `realtime` and `filing_date_price` blocks. |
| `POST /metric/valuation/filing-date` | Same 13 valuation ratios as above but **only** the filing-date price block — `current_price` and `current_fx_rate` are rejected with `422 VALIDATION_ERROR`. |

**Request body** (5 simple categories + `/metric/valuation`): the filing selection of [`POST /metric/all`](/documents/post-metricall.md) (`metric_group_id`, `filing_id`, or `ticker` + `fiscal_year`). Optional: `accept_suggested_formula`, `formula_override`, `as_of_date`, `current_price`, `current_fx_rate`, `detail` — same semantics as on [`POST /metric/all`](/documents/post-metricall.md). `metric_names` is **not** accepted (the category fixes the metric set; sending it returns `422 VALIDATION_ERROR`).

**Request body** (`/metric/valuation/filing-date`): same as above minus `current_price` / `current_fx_rate` — see [`POST /metric/all/filing-date`](/documents/post-metricallfiling-date.md). `detail` is accepted on this endpoint as well.

**Response shape:** `ticker`, `form_type`, `fiscal_year`, `quarter`, `cik`, `source_accession`, `primary_document`, `metric_group_id`, `source_url_prefix`, `valuation_context`, `segments`, `price_insensitive_metrics`, `price_sensitive_metrics`, `credits_used`, plus the conditional `price_context` and the optional root fields `ttm_composite`, `dei_corrected`, `corporate_actions` and `_warnings`. When some of the category's metrics are not in this filing, the response also carries `_metric_name_errors`, `_supported_metric_names` and `_supported_metric_names_note` (still 158 credits). For `/metric/valuation` and `/metric/valuation/filing-date` the `price_insensitive_metrics` block is always `{}` (all 13 valuation ratios are price-sensitive).

**Errors:** same as [`POST /metric/all`](/documents/post-metricall.md).
