Developer preview. Illustrative API responses over demonstration data — Hallor GSE is a demonstration issuer, others are fictional; not live offers; SoukRaise is not yet licensed.
Home / Developers · Open Discovery API & MCP
Open AI infrastructure · MCP · REST · GraphQL

Your AI can query SoukRaise

Point your own AI assistant, family-office system or wealth platform at SoukRaise and it discovers the deals you are authorized to see. Read-only, eligibility-gated, and answered to your mandate — never a recommendation.

🔒

Eligibility first

An offer you may not legally take is never returned. Ineligible offers are absent, not partially rendered (a 403). Server-side, always.

🛡️

Issuer-permissioned

Only the fields an issuer exposed and the documents you are cleared for are returned. A withheld figure never leaks — enforced in the core, not by prompting.

⚖️

Never a recommendation

No quality or merit score exists. Results are ordered by your own mandate fit, with the reason on each. The API answers a mandate; it never pushes an offer.

Live · MCP tool: search_offers

Ask in plain language

A query is a mandate expression. This runs the same deterministic discovery engine (@soukraise/discovery) your AI would call — over illustrative demonstration data.

Note how Qudra Energy's valuation is absent — that issuer did not expose it. And how the stated-but-unverified revenue never appears; only the verified figure does. That is the ACL in the core, not a prompt.

Model Context Protocol

Four read-only tools

Connect a compatible AI assistant to the SoukRaise MCP server. There is deliberately no tool that moves money or commits capital.

search_offers

Eligible offers matched to a mandate/NL query, each with its reason; ordered by your own fit.

get_offer

One offer's structured profile — permissioned fields + cleared documents only; 403 if ineligible.

get_taxonomy

The versioned sectors, themes, structures and jurisdictions.

register_alert

A standing mandate for offer.matched webhooks; delivery re-checks eligibility at send time.

# connect an AI assistant to the SoukRaise MCP server (reference: apps/mcp-server) soukraise-mcp # JSON-RPC 2.0 over stdio; auth = your OAuth2 access token # your AI calls, in effect: tools/call search_offers { "query": "Series A climate-tech in the GCC with patented IP" } tools/call get_offer { "offerId": "hallor-gse" } tools/call register_alert{ "criteria": { "sectors":["climate-energy"], "stage":"series-a" } }
REST · OAuth 2.1

Or plain HTTP

GET /v1/offers?sector=fintech&geo=UAE&shariah=true Authorization: Bearer <token> 200 { "results":[ { "id":"baraka-financial", "matchReasons":["Sector · fintech","Shariah-compliant"], "mandateFit":2 } ], "absentCount":2, "note":"not a recommendation" } GET /v1/offers/souq-rewards # ineligible for you 403 { "access":"denied" } # absent, never a partial render
GraphQL · Webhooks

And the rest

query { offers(filter:{ sector:"climate-energy" }) { results { id matchReasons mandateFit } absentCount } } # webhook — delivery re-checks eligibility + permission POST https://you.example/hooks { "event":"offer.matched", "offerId":"…", "subscription":"sub_…" }
The moat

What it will never do

An investor's AI can trust SoukRaise precisely because the interface is constrained.

  • Recommend, rank or endorse an offer
  • Return offer content to an investor who isn't eligible
  • Return a field the issuer withheld, or a document you aren't cleared for
  • Offer any write path to money or commitment
  • Profile you covertly — a query is only ever the mandate you expressed
StatusRunnable, tested reference implementation across all four surfaces — packages/discovery (core), packages/access (OAuth), packages/audit, packages/webhooks, apps/mcp-server (MCP) and apps/discovery-api (REST + GraphQL + OAuth), 43 tests. Full contract in docs/api-mcp-contract.md. This preview runs illustrative demonstration data; nothing here is a live offer, and SoukRaise is not yet licensed to operate a regulated marketplace.