Skip to main content
GET
Search instruments
Search returns both stocks and ETFs. Every item carries a type discriminator so you can branch on it:
  • type: "stock" — includes a compliance status (compliant | non-compliant | pending) and last_analyzed_at.
  • type: "etf" — includes Shariah purity (purity_percentage and badge_color) plus match_coverage_percent, and carries no status field. An ETF’s purity is deliberately not collapsed into a binary compliant/non-compliant verdict. Route ETF hits to Get an ETF for the full holdings-based breakdown.
match_coverage_percent is the percent of fund weight whose holdings are matched to a screened instrument — it is match coverage, not screened coverage. Do not present it as ”% screened”. purity_percentage / badge_color are the screened verdict and are null until the ETF has been screened.

Filtering by type

The optional types query parameter narrows results to one kind:
  • types=stock — stocks only (the pre-ETF response shape).
  • types=etf — ETFs only.
  • Omitted — both (the default).
types is comma-separated and allow-list validated: any value other than stock or etf returns 400 Bad Request.

Authorizations

X-API-Key
string
header
required

Query Parameters

q
string
required

Search query (ticker or company/fund name).

Minimum string length: 1
Example:

"nvidia"

limit
integer
default:10
Required range: 1 <= x <= 100
types
string

Comma-separated instrument-type filter. Allowed values: stock, etf. Omitted returns both. Any unrecognised value returns 400.

Example:

"stock"

Response

Search results

data
object[]

A stock search hit. Carries the compliance status.

meta
object