MCP readyRESTOpenAPI

Pakistan Stock Exchange data, built for machines

Deterministic, sourced and timestamped. Every number traces to a PSX filing, and the API tells you what it does not know instead of guessing.

Use it from an AI client

Point any MCP-compatible client at the endpoint below. You get typed tools with schemas — no guessing URLs, no parsing HTML.

{
  "mcpServers": {
    "psxlens": {
      "type": "http",
      "url": "https://api.psxlens.com/mcp"
    }
  }
}

Then ask plainly: “Which PSX dividend payers are down more than 5% from their 20-day high, excluding ex-dividend drops?”

Or call it directly

curl "https://api.psxlens.com/v1/screener?dividend_yield_min=1&daily_change_max=0&drawdown_20d_min=5&min_value_traded=5000000&exclude_ex_dividend=true"

What you can ask for

Screener
/v1/screener
Filter the whole universe server-side — yield, drawdown, P/E, liquidity, free float.
Dividends
/v1/dividends/{sym}
History by fiscal year, trailing DPS and yield, with an explicit coverage window.
Filings
/v1/announcements/{sym}
PSX company announcements, labelled as filings rather than press.
Prices
/v1/prices/{sym}
Daily OHLCV, newest first, with an honest adjustment flag.

What we promise not to hide

Quotes are delayed and labelled so. PSX data is delayed at source.

Dividend history starts at data_coverage_start. A short record before that date means our window is short — not that a company stopped paying.

Prices are not corporate-action adjusted. A 30% bonus issue leaves a ~23% step that is not a fall.

coverage: "unknown" means we could not reach PSX for that symbol. It never means zero.