etf

Screen Bulk

Screen multiple ETFs for Shariah compliance in a single request.

Accepts up to 100 ETF symbols and returns each ETF's compliance status, compliant/non-compliant weights, and purification rate. Also includes a summary with total/compliant/non-compliant/error counts. Pass force_refresh=true to bypass cached results — available only for enterprise and internal plans; for other plans the flag is silently treated as False.

curl example:

curl -X POST "http://localhost:8000/api/etf/screen-bulk" \
     -H "Content-Type: application/json" \
     -d '{"symbols": ["VTI", "SPY", "SCHB"], "force_refresh": false}'

Python requests example:

import requests
resp = requests.post(
    "http://localhost:8000/api/etf/screen-bulk",
    json={"symbols": ["VTI", "SPY", "SCHB"], "force_refresh": False},
)
data = resp.json()
print(f"Compliant: {data['summary']['compliant']}/{data['summary']['total']}")
post/api/etf/screen-bulk

Request

  • Base URL: https://api.halalterminal.com
  • URL: https://api.halalterminal.com/api/etf/screen-bulk
  • Auth: API key in header X-API-Key

Request body

symbolsstring[] required

List of 1-100 ETF ticker symbols to screen.

force_refreshboolean

When true, bypass cached screening results and re-screen from scratch.

Example request

{
  "force_refresh": false,
  "symbols": [
    "VTI",
    "SPY",
    "SCHB"
  ]
}

Response

Bulk screening results with per-ETF statuses and aggregate summary.

Example response

{
  "results": [
    {
      "compliance_status": "non_compliant",
      "compliant_weight": 78,
      "is_compliant": false,
      "non_compliant_weight": 19,
      "purification_rate": 3.2,
      "symbol": "VTI"
    }
  ],
  "summary": {
    "compliant": 0,
    "errors": 0,
    "non_compliant": 3,
    "total": 3
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.