---
title: "Get Results"
method: GET
path: "/api/results"
tags: ["screening"]
---

# Get Results

`GET /api/results`

## Request

- Base URL: `https://api.halalterminal.com`
- URL: `https://api.halalterminal.com/api/results`
- Auth: API key in header `X-API-Key`

Get all cached screening results.

Returns every screening result currently stored in the database,
regardless of when the screening was performed.

**curl example:**
```bash
curl -X GET "https://api.halalterminal.com/api/results" \
     -H "X-API-Key: <API_KEY>"
```

**Python requests example:**
```python
import requests

resp = requests.get(
    "https://api.halalterminal.com/api/results",
    headers={"X-API-Key": "<API_KEY>"},
)
results = resp.json()
```

## Response `200`

List of all cached screening results

- ScreeningResultResponse[]
  - `symbol` string, required
  - `name` string, nullable: Issuer / fund display name.
  - `asset_type` string, nullable: Asset class label derived during screening: 'Equity', 'ETF', 'ClosedEndFund', 'REIT', etc. Drives downstream methodology dispatch.
  - `last_checked_at` union
    - string, date-time
    - string
  - `is_stale` boolean, nullable: True when `last_checked_at` is older than the 7-day refresh policy (SCREENING_STALENESS_HOURS, default 168). The platform re-screens cached results nightly, most-requested symbols first.
  - `is_compliant` boolean, nullable: Overall Shariah compliance verdict (True = compliant under at least one methodology)
  - `shariah_compliance_status` 'compliant' | 'non_compliant' | 'insufficient_data', nullable: Canonical string mirror of `is_compliant` in lowercase vocabulary (matches the ETF response and `MethodologyVerdict`). Synthesized by the service normalizer if absent on cached rows.
  - `business_screen_pass` boolean, nullable: Whether the company's primary business activities are permissible
  - `business_screen_reason` string, nullable: Human-readable explanation for the business screen verdict
  - `financial_screen_pass` boolean, nullable: Whether the company passes all financial ratio thresholds
  - `error` string, nullable
  - `error_message` string, nullable
  - `sector` string, nullable
  - `industry` string, nullable
  - `country` string, nullable
  - `website` string, nullable
  - `long_business_summary` string, nullable
  - `total_assets` number, nullable
  - `total_debt` number, nullable
  - `cash_and_equivalents` number, nullable
  - `accounts_receivable` number, nullable
  - `total_revenue` number, nullable
  - `interest_income` number, nullable
  - `debt_to_assets_ratio` number, nullable: Total debt / total assets — must be below threshold (e.g. 33% for AAOIFI)
  - `cash_to_assets_ratio` number, nullable: Cash and equivalents / total assets
  - `accounts_receivable_to_assets_ratio` number, nullable: Accounts receivable / total assets
  - `interest_income_to_revenue_ratio` number, nullable: Interest income / total revenue — measures impermissible income proportion
  - `debt_to_market_cap_ratio` number, nullable: Total debt / market capitalization — the AAOIFI debt screen since June 2026, and an input to DJIM and S&P. Computed on the same capitalization the AAOIFI verdict was rendered against: spot market cap by default, or the trailing average when a trailing basis is in force for that screen.
  - `cash_to_market_cap_ratio` number, nullable
  - `receivables_to_market_cap_ratio` number, nullable
  - `liquidity_to_market_cap_ratio` number, nullable
  - `liquidity_to_assets_ratio` number, nullable
  - `purification_rate` number, nullable: Percentage of dividend income to purify (donate) due to impermissible revenue
  - `aaoifi_compliant` boolean, nullable: Pass/fail for AAOIFI (Shari'ah Standard 21). For ratio, basis and reason, see by_methodology.AAOIFI.
  - `djim_compliant` boolean, nullable: Pass/fail for the Dow Jones Islamic Market methodology. Detail in by_methodology.DJIM.
  - `ftse_compliant` boolean, nullable: Pass/fail for the FTSE Shariah methodology. Detail in by_methodology.FTSE.
  - `msci_compliant` boolean, nullable: Pass/fail for the MSCI Islamic methodology. Detail in by_methodology.MSCI.
  - `sp_compliant` boolean, nullable: Pass/fail for the S&P Shariah methodology. Detail in by_methodology.SP.
  - `methodology_summary` object, nullable: Mapping of methodology name to compliance verdict: true = compliant, false = non-compliant, null = insufficient data (see data_quality.methodologies_insufficient).
  - `by_methodology` object, nullable: Structured per-methodology block. Mirrors `methodology_summary` for the verdict but adds an `verified` audit flag and a `reason` string. Synthesized by the service normalizer if absent on cached rows.
  - `data_quality` DataQualityInfo: Diagnostic block reporting which raw fields were missing and which methodologies abstained as a result. Useful for surfacing 'we don't know yet' instead of conflating it with non-compliance.
    - `missing_fields` string[]: Field names absent from the upstream financials (e.g. 'total_debt', 'market_cap').
    - `quality_flags` string[]: Why a field was dropped by a data-quality guard rather than simply being absent upstream: 'source_divergence' (two independent figures disagree beyond tolerance), 'discontinuous_column' (a balance-sheet item jumped implausibly between consecutive reports), 'period_mismatch' (an annual numerator over a quarterly denominator), 'filed_figure_incomplete' (a regulatory filing omits a debt component). Distinguishes 'we refused to answer' from 'nobody reported it'.
    - `methodologies_insufficient` string[]: Methodologies that could not be scored. When this set contains every methodology, the aggregate `is_compliant` is null and `shariah_compliance_status` is `insufficient_data`.
  - `questionable_business` object, nullable: ADVISORY (does not affect the verdict): {flag, reasons} when the issuer's video-game portfolio includes simulated-gambling content (social casino, slots, poker). Video gaming itself passes the business screen; this flag marks the scholars-differ cases the way analyst-based screeners label them 'questionable'.
  - `ifi_exempt` boolean, nullable: True when the issuer is a certified Islamic financial institution (curated registry / regulated name markers): exempt from the conventional-finance exclusion and the accounting screens per the DJIM/MSCI/S&P IFI carve-outs. Null for ordinary issuers.
  - `business_income` object, nullable: ADVISORY (does not affect the verdict): per-segment revenue breakdown extracted from the issuer's latest 10-K, with each segment classified permissible / impermissible / questionable / unknown by a versioned rules map. Includes the combined impure ratio (interest + impermissible) and a separate with-questionable figure — the split where reputable screeners legitimately differ. Null when no segment analysis exists yet.
  - `fx_normalization` object, nullable: Present when the issuer reports financials in a different currency than its listing (ADR-style): {rate, from, to} used to convert the market-cap-ratio numerators into the listing currency. Null when no mismatch existed or no rate could be resolved (in which case MC-basis methodologies abstain).
  - `compliance_explanation` string, nullable: Plain-English summary of the compliance verdict: which methodologies pass, which fail, and which ratio tripped the failures. Empty for ticker_unknown or rows where the financial screen could not run.
  - `fundamentals_provenance` FundamentalsProvenance: Per-metric source attribution for the fundamentals behind a verdict. Each value is `sec` (SEC XBRL) or `yfinance`. Populated only when the SEC-XBRL financial provider screened the name; a screen result's `fundamentals_provenance` is null for yfinance-only screens.
    - `total_debt` string, required: Source of the total-debt figure: 'sec' or 'yfinance'.
    - `total_assets` string, required: Source of the total-assets figure.
    - `cash` string, required: Source of the cash-and-investments figure.
    - `receivables` string, required: Source of the accounts-receivable figure.
    - `total_revenue` string, required: Source of the total-revenue figure.
    - `interest_income` string, required: Source of the interest-income figure.
  - `return_on_equity` number, nullable
  - `net_profit_margin` number, nullable
  - `revenue_growth` number, nullable
  - `pe_ratio` number, nullable
  - `pb_ratio` number, nullable
  - `intrinsic_value` number, nullable
  - `dcf_upside_percentage` number, nullable: Upside/downside percentage based on DCF intrinsic value vs current price
  - `momentum_trend` string, nullable
  - `rsi_status` string, nullable
  - `current_ratio` number, nullable
  - `market_cap` number, nullable
  - `beta` number, nullable
  - `dividend_yield` number, nullable
  - `disposition` string, nullable: ETF-only. Non-verdict scholar-derived label: 'scholar_certified', 'data_quality_flag', 'contested', 'unrated'. See v2 cert spec §11.
  - `scholar_attestations` object[], nullable: ETF-only. List of scholar-board attestations; empty list when none on file.
  - `holdings_analysis` object, nullable: ETF-only. Aggregate holdings-based compliance metrics (compliant_weight, etc.).
  - `detail_url` string, nullable: ETF-only. Path to the richer first-class ETF endpoint (`/api/etf/{symbol}/screen`).
  - `disclaimers` Disclaimer[], nullable: Per-response disclaimers attached by the DisclaimerMiddleware. See `GET /api/disclaimers` for the full registry.
    - `id` string, required: Stable category identifier — safe for clients to dedupe and cache on.
    - `version` string, required: ISO-8601 date of the most recent edit to `text`. Advances whenever the wording changes, even for typo fixes.
    - `lang` string: BCP-47 language tag for `text`. Today always 'en'; reserved for future i18n.
    - `severity` string, required: Grouping hint for UIs. 'religious' for fatwa/scholar caveats; 'data' for data-freshness, sourcing, or coverage caveats.
    - `text` string, required: Short inline disclaimer text.
    - `url` string, required: Canonical legal page URL (deep-linked to the relevant section).

## Other responses

- `401`: API key required or invalid
- `429`: Quota exceeded

---

[API](https://skmtc.dev/halalterminal/apis/halal-terminal-api.md) · [All operations](https://skmtc.dev/halalterminal/apis/halal-terminal-api/llms.txt) · [OpenAPI document](https://skmtc.dev/halalterminal/apis/halal-terminal-api/revisions/78768b250943?raw)
