Stock Asset Metrics (investing.com)
Pricing
from $1.00 / 1,000 results
Stock Asset Metrics (investing.com)
This Apify Actor retrieves fundamental financial metrics for a given stock symbol from Investing.com. It is particularly useful for extracting key valuation indicators, profitability ratios, and stock health indicators based on country and symbol.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Pinto Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
28 days
Issues response
a day ago
Last modified
Categories
Share
📈 Stock Asset Metrics Data (Investing.com) — Apify Actor
This Apify Actor gets fundamental financial metrics for a stock symbol from Investing.com: valuation indicators, profitability ratios and stock health indicators, looked up by country and symbol.
🧠 What It Does
You give the Actor a stock symbol and the country where it's listed. It returns structured asset metrics:
- Fair Value (InvestingPro-only, see Data availability)
- Net Income
- EPS Growth Forecast (InvestingPro-only)
- Dividend Payment and Growth Streaks (InvestingPro-only)
- Book Value per Share
- Return on Assets & Equity
- Gross Profit Margin
- Price-to-Book Ratio
- EBITDA & EV/EBITDA
- RSI (Relative Strength Index)
The full record goes to the Apify dataset. A short summary goes to the key-value store under asset_metrics_summary.
✅ Example Input
{"stockSymbol": "AAPL","country": "united states"}
🔐 Data availability & locked fields
Since 13 October 2026, Investing.com no longer shows some InvestingPro metrics to visitors without a subscription. Every run is a live scrape (isCached: false), and each field ends up in one of three states:
| Status | Meaning | Value returned |
|---|---|---|
available | Investing.com published a value | the number |
locked | InvestingPro-only, not published to non-subscribers | null |
unavailable | Investing.com published the field but has no value for this company (shown as NA / -) | null |
Guarantees:
- A locked or unavailable field is always
null. - The Actor never returns a cached, stale or placeholder value as if it were current. Investing.com fills locked fair values with dummy numbers such as
111.11, and those are detected and discarded. - If the page can't be loaded or parsed, the run fails with a coded status message (see Errors). It never returns a partial or old record.
Fields
Top-level fields (dataset item):
| Field | Type | Description |
|---|---|---|
stock, stock_symbol, country | string | Echo of the input |
retrieved_at / dataAsOf | ISO-8601 (UTC) | When the data was scraped (always the current run) |
isCached | boolean | Always false: no cache is used |
fairValue | number | null | InvestingPro fair value, or null if locked or unavailable |
fairValueLocked | boolean | true when Investing.com has locked the fair value |
fairValueStatus | "available" | "locked" | "unavailable" | Fair-value state |
fairValueCalculationDate | string | null | Date Investing.com calculated the fair value, when published. Currently always null |
fair_value_available | boolean | Same as fairValue != null (kept for backward compatibility) |
lockedFields | string[] | Metric names that are locked |
unavailableFields | string[] | Metric names with no value for this company |
asset_metrics | object | All metrics (see below) |
has_data | boolean | true on every successful run |
asset_metrics fields: the names are the same as before the October 2026 change.
| Field | Unit |
|---|---|
proFairValue | price, in the stock's currency |
proFairValueUpside | fraction (0.12 = +12 %) |
proNetIncome | millions |
proEpsGrowthForcast | fraction |
proDivPaymentStreak, proDivGrowthStreak | years (integer) |
proBookValueShare | price |
proReturnOnAssets, proReturnOnEquity, proGrossProfitMargin | fraction (0.074 = 7.4 %) |
proPriceBook, proEvEbitda | ratio |
proEbitda | millions |
RSI(14) | 0–100 |
fieldStatus | object: the status of every metric above |
lockedFields, unavailableFields | string[] |
rawDisplayValues | the values exactly as shown on Investing.com (e.g. "32.76B", "7.4%") |
source | "keyStatisticsMetrics" (current page layout) or "assetMetricsData" (old layout) |
url, symbol | the Investing.com page that was scraped |
Example: locked fair value (current behaviour for non-InvestingPro data)
{"stock": "XOM","country": "united states","stock_symbol": "XOM","retrieved_at": "2026-10-19T17:13:19.963+00:00","dataAsOf": "2026-10-19T17:13:19.963+00:00","isCached": false,"has_data": true,"fairValue": null,"fairValueLocked": true,"fairValueStatus": "locked","fairValueCalculationDate": null,"fair_value_available": false,"lockedFields": ["proFairValue", "proFairValueUpside", "proEpsGrowthForcast", "proDivPaymentStreak", "proDivGrowthStreak"],"unavailableFields": [],"asset_metrics": {"proFairValue": null,"proFairValueUpside": null,"proNetIncome": 32760.0,"proEpsGrowthForcast": null,"proDivPaymentStreak": null,"proDivGrowthStreak": null,"proBookValueShare": 62.58,"proReturnOnAssets": 0.074,"proReturnOnEquity": 0.126,"proGrossProfitMargin": 0.298,"proPriceBook": 2.8,"proEbitda": 67940.0,"proEvEbitda": 10.7,"RSI(14)": 71.24,"fieldStatus": {"proFairValue": "locked","proFairValueUpside": "locked","proNetIncome": "available","proEpsGrowthForcast": "locked","proDivPaymentStreak": "locked","proDivGrowthStreak": "locked","proBookValueShare": "available","proReturnOnAssets": "available","proReturnOnEquity": "available","proGrossProfitMargin": "available","proPriceBook": "available","proEbitda": "available","proEvEbitda": "available","RSI(14)": "available"},"lockedFields": ["proFairValue", "proFairValueUpside", "proEpsGrowthForcast", "proDivPaymentStreak", "proDivGrowthStreak"],"unavailableFields": [],"rawDisplayValues": { "proNetIncome": "32.76B", "proReturnOnAssets": "7.4%", "proEvEbitda": "10.7x", "RSI(14)": "71.24" },"source": "keyStatisticsMetrics","url": "https://www.investing.com/equities/exxon-mobil","symbol": "XOM"}}
Example: temporarily unavailable data
When Investing.com shows NA or - for a company (for example, EBITDA for some fintechs), the field is null, has the status unavailable, and is listed in unavailableFields:
{"fairValueStatus": "locked","unavailableFields": ["proEbitda", "proEvEbitda"],"asset_metrics": {"proEbitda": null,"proEvEbitda": null,"fieldStatus": { "proEbitda": "unavailable", "proEvEbitda": "unavailable" },"rawDisplayValues": { "proEbitda": "-", "proEvEbitda": "NA" }}}
Example: available fair value
If Investing.com publishes the fair value, it's returned as a number:
{"fairValue": 1964.56,"fairValueLocked": false,"fairValueStatus": "available","lockedFields": []}
Cached / stale data
This Actor does not cache. isCached is always false, and retrieved_at / dataAsOf are the time of the current run. If you keep the last known fair value on your side, treat fairValueStatus != "available" as "no new value", and don't overwrite your stored value with null.
❗ Errors
Failed runs end with status FAILED and a status message that starts with a stable error code. No dataset item is saved, so failed runs aren't charged. The same error is written to the asset_metrics_summary key-value record under error.
| Code | When |
|---|---|
INVALID_INPUT | Missing or invalid stockSymbol / country |
STOCK_NOT_FOUND | The symbol isn't listed for that country on Investing.com |
BLOCKED_BY_TARGET | Investing.com kept blocking the request (403 / 429 / challenge) after all retries. Retry later |
UPSTREAM_HTTP_ERROR | Investing.com returned another HTTP error or couldn't be reached |
PAGE_STRUCTURE_CHANGED | The page loaded but its data block is missing or changed |
INTERNAL_ERROR | Unexpected error (please report it) |
Example status message: [BLOCKED_BY_TARGET] Investing.com could not be reached after 7 attempts (blocked by anti-bot protection). Please retry later.
💬 Support
Questions or issues: Telegram @pintoflow.