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.
Developers
Shariah-first research by API: read-only, by key, versioned, with a free sandbox to build against.
Quick start
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
| Endpoint | What it answers |
|---|---|
GET /v1/health | Is the engine running: heartbeat, last scan, stocks covered. No key needed. |
GET /v1/universe | Every 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/zakat | The zakatable part of a portfolio, with the nisab. |
GET /v1/market | Index trends against their 200-day averages, and the VIX. |
GET /v1/signals | Stocks that passed every gate at the last scan, best score first. |
GET /v1/model/core | The long-term model portfolio MARBIN’s rules pick today. |
GET /v1/filings, /v1/track-record | Filings red flags, and the forecasts’ record. |
GET /v1/history/{symbol}, /v1/history/day/{date}, /v1/history/market | The daily history: one stock, one day, the market. |
GET /v1/fx/{pair} | Daily exchange rates, e.g. GBPUSD. |
The rules of the road
Each answer says how many checks it counted. Refused calls are never counted. Your usage and invoices are in your own portal.
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.
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.
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.
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.