# Valuation

> API version: v1

Our discounted cash flow (DCF) valuation, built only from the company's SEC filings: a 10-year free cash flow projection, the assumptions, and the fair value per share. When a free cash flow model does not fit the company (banks, insurers and real estate companies, or too little history) the response has `meaningful: false` and a `reason`. See the valuation methodology guide.

`GET /api/v1/companies/{symbol}/valuation`

Requires an API key in the `X-Api-Key` header.

## Parameters

| Name | In | Type | Required | Description |
|---|---|---|---|---|
| `symbol` | path | string | yes | Ticker symbol of a listed company, for example `CSCO`. Case-insensitive. |

## Request

**curl**

```bash
curl "https://studyingstocks.com/api/v1/companies/CSCO/valuation" \
  -H "X-Api-Key: $STUDYING_STOCKS_API_KEY"
```

**Python**

```python
import os
import requests

response = requests.get("https://studyingstocks.com/api/v1/companies/CSCO/valuation", headers={"X-Api-Key": os.environ["STUDYING_STOCKS_API_KEY"]})
response.raise_for_status()
print(response.json())
```

**JavaScript**

```javascript
const response = await fetch("https://studyingstocks.com/api/v1/companies/CSCO/valuation", {
  headers: { "X-Api-Key": process.env.STUDYING_STOCKS_API_KEY },
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
```

## Response

The valuation, or the reason there is none.

```json
{
    "data": {
        "meaningful": true,
        "fair_value_per_share": 61.42,
        "fair_equity_value": 245000000000,
        "enterprise_value": 249000000000,
        "net_debt": 4000000000,
        "currency": "USD",
        "assumptions": {
            "required_return": 0.085,
            "perpetual_growth": 0.025,
            "projection_years": 10,
            "stage_one_years": 5,
            "stage_one_growth": 0.04
        },
        "inputs": {
            "as_of": "2026-07-25",
            "balance_sheet_as_of": "2026-07-25",
            "total_debt": 28000000000,
            "cash_and_equivalents": 24000000000,
            "shares": 4000000000
        },
        "free_cash_flow_history": [
            {
                "fiscal_year": 2025,
                "free_cash_flow": 11500000000
            },
            {
                "fiscal_year": 2026,
                "free_cash_flow": 12767000000
            }
        ],
        "free_cash_flow_projection": [
            {
                "fiscal_year": 2027,
                "free_cash_flow": 13300000000,
                "growth_rate": 0.04,
                "discount_factor": 1.085,
                "present_value": 12258064516.13
            }
        ],
        "terminal_value": {
            "value": 330000000000,
            "present_value": 145000000000
        },
        "reason": null,
        "methodology_version": "1"
    },
    "meta": {
        "symbol": "CSCO",
        "currency": "USD",
        "source": "SEC EDGAR",
        "api_version": "v1",
        "generated_at": "2026-10-16T02:00:00Z"
    }
}
```

### Response fields

| Field | Type | Description |
|---|---|---|
| `data.meaningful` | boolean | `false` when a free cash flow model does not fit this company; see `reason`. |
| `data.reason` | object or null |  |
| `data.methodology_version` | string |  |
| `data.fair_value_per_share` | number | Fair value per share, in the reporting currency. |
| `data.fair_equity_value` | number |  |
| `data.enterprise_value` | number | Present value of the projected free cash flows and the terminal value. |
| `data.net_debt` | number |  |
| `data.currency` | string |  |
| `data.assumptions.required_return` | number | Discount rate as a fraction. |
| `data.assumptions.perpetual_growth` | number | Growth after the projection, as a fraction. |
| `data.assumptions.projection_years` | integer |  |
| `data.assumptions.stage_one_years` | integer |  |
| `data.assumptions.stage_one_growth` | number | Yearly growth in the first stage, as a fraction. |
| `data.inputs.as_of` | string | Period end of the latest period, where the share count is taken from. |
| `data.inputs.balance_sheet_as_of` | string | Oldest period end that debt and cash are taken from: the newest period that reports each. |
| `data.inputs.total_debt` | number |  |
| `data.inputs.cash_and_equivalents` | number |  |
| `data.inputs.shares` | number |  |
| `data.free_cash_flow_history[].fiscal_year` | integer |  |
| `data.free_cash_flow_history[].free_cash_flow` | number |  |
| `data.free_cash_flow_projection[].fiscal_year` | integer |  |
| `data.free_cash_flow_projection[].free_cash_flow` | number |  |
| `data.free_cash_flow_projection[].growth_rate` | number |  |
| `data.free_cash_flow_projection[].discount_factor` | number or null |  |
| `data.free_cash_flow_projection[].present_value` | number or null |  |
| `data.terminal_value` | object or null |  |
| `meta.source` | string | Where the data comes from: always SEC EDGAR (calculated items are derived from it). |
| `meta.api_version` | string |  |
| `meta.generated_at` | string | When this response was generated (responses are cached for a few hours). |
| `meta.symbol` | string |  |
| `meta.currency` | string |  |

## Errors

| Status | Code | When |
|---|---|---|
| 401 | [`unauthenticated`](https://studyingstocks.com/developers/errors#unauthenticated) | Missing or invalid API key. |
| 403 | [`subscription_inactive`](https://studyingstocks.com/developers/errors#subscription_inactive) | The Premium subscription behind the key is not active. |
| 404 | [`not_found`](https://studyingstocks.com/developers/errors#not_found) | The company is not covered. |
| 422 | [`invalid_parameter`](https://studyingstocks.com/developers/errors#invalid_parameter) | An unknown query parameter was sent. |
| 429 | [`rate_limited`](https://studyingstocks.com/developers/errors#rate_limited) | Rate limit reached. |
| 500 | [`server_error`](https://studyingstocks.com/developers/errors#server_error) | Something went wrong on our side. |

All errors have the [same shape](https://studyingstocks.com/developers/errors).
