Developers

The Core API.

Shariah-first research by API: read-only, by key, versioned, with a free sandbox to build against.

Quick start

One header.
Plain JSON back.

Every call takes your key in the Authorization header — never in a web address — and answers in JSON (or CSV with ?format=csv). A sandbox key (mk_sandbox_…) answers every endpoint with sample figures, marked as such, so you can build before you subscribe.

curl -H "Authorization: Bearer mk_sandbox_…" \
     https://api.marbin.co.uk/v1/screen/NVDA

{
  "screen": {
    "symbol": "NVDA",
    "compliant": true,
    "detail": "Semiconductors; debt 1%, cash 1% of 24-month avg market value; interest income 0.9% of revenue",
    "ratios": { "debt_pct": 1.0, "cash_pct": 1.0, "interest_income_pct": 0.9 },
    "thresholds": { "debt_pct": 33.0, "cash_pct": 33.0, "interest_income_pct": 5.0 },
    "checked_at": "2026-10-03T22:57:43Z"
  },
  "checks": 1,
  "api_version": "1.4"
}

Illustrative answer, shortened. The full reference, with every field and a try-it console, is at api.marbin.co.uk/docs; the OpenAPI description at /v1/openapi.json.

Endpoints

What you can ask.

EndpointWhat it answers
GET /v1/healthIs the engine running: heartbeat, last scan, stocks covered. No key needed.
GET /v1/universeEvery stock covered, with its Shariah status and when it was last checked.
GET /v1/screen/{symbol}, /v1/screen?symbols=…The Shariah screen for one stock, or up to 50 in one call.
GET /v1/purification/{symbol}The share of a dividend to give away, from the company’s interest income.
GET /v1/zakatThe zakatable part of a portfolio, with the nisab.
GET /v1/marketIndex trends against their 200-day averages, and the VIX.
GET /v1/signalsStocks that passed every gate at the last scan, best score first.
GET /v1/model/coreThe long-term model portfolio MARBIN’s rules pick today.
GET /v1/filings, /v1/track-recordFilings red flags, and the forecasts’ record.
GET /v1/history/{symbol}, /v1/history/day/{date}, /v1/history/marketThe daily history: one stock, one day, the market.
GET /v1/fx/{pair}Daily exchange rates, e.g. GBPUSD.

The rules of the road

Predictable, by design.

Counted per answer

Each answer says how many checks it counted. Refused calls are never counted. Your usage and invoices are in your own portal.

Limits you can see

A rate per minute per key, a monthly quota by plan, and prepaid credit beyond it. Over a limit you get a clear 429, not a surprise bill.

Versioned

Every answer carries api_version. Fields are only ever added within /v1; anything that changes or goes away is announced first and kept until it retires.

Keys you control

Rotate a key with an overlap you choose, or revoke it at once, and see when each key was last used. Keys are stored only as fingerprints; a lost key is replaced, never recovered.

Signed notifications

For banks on the white-label service: events about your customers — joined, approved, trades, stops, pauses, alerts — posted to your systems, signed so you can check they came from MARBIN, and retried if you miss one.

The API guide covers keys, every endpoint, errors, limits, webhooks with signature checks in Python and Node, and the sandbox.