latestOpenAPI 3.0.02026-08-2010141507.9 KB

3d5897270d8a

ETF/MF

Exposure model

ETF Pro

🔒 Audit-grade by construction

Every claim in this response is defensible in an IC meeting or audit. Most competing "AI fund classification" APIs return plausible-sounding prose you cannot verify. This endpoint is different. For each claim you get:

  • 🔗 a clickable URL to the exact authoritative document (SEC EDGAR prospectus, N-CSR shareholder report, N-CEN census),
  • 📄 the document section the claim is drawn from (e.g., Principal Investment Strategies, Principal Investment Risks, Expense Example, Portfolio Manager Commentary),
  • 💬 a verbatim quote from that section (20–400 characters, copied word-for-word),
  • machine-verified at generation time — we fetch the filing, strip HTML, and confirm the quote literally appears in the document before we store it. Fabricated or paraphrased quotes are rejected and the model is regenerated.

An analyst can click a URL, jump to the section, Ctrl-F the quote, and have the source paragraph in front of them in ten seconds. No more "trust me, the AI read the prospectus."

What's in the model

Summary, mandate (including benchmark), portfolio construction, exposures (risk drivers + key holdings/buckets), implementation (replication + derivatives + securities lending), distributions & taxes, costs & leakage, sensitivities (macro/market/mechanics), and use cases & failure modes (best/bad/failure).

Every section and array item carries a sources array of machine-verified citations.

Source document types

Citations draw from: prospectus (485BPOS / 497 / N-1A), N-CSR / N-CSRS (annual / semi-annual shareholder reports), N-CEN (annual fund census), N-PORT (quarterly holdings), and issuer-website.

Two possible response shapes

200 OK — model is ready

Returns the full ExposureModel JSON. Stable and safe to cache client-side.

202 Accepted — model is being generated

The model for this fund has never been built. A background job has been queued (or one was already in flight).

Generation takes a few minutes. The job fetches the fund's latest prospectus, N-CSR, and N-CEN directly from SEC EDGAR, passes them to the AI along with strict citation requirements, verifies every quote against the filing text, and writes the result.

Poll this same endpoint with the same symbol — once the job completes you will start receiving the 200 response. A reasonable poll interval is every 30 seconds.

{
  "status": "generating",
  "jobId": "64abfe1234567890abcdef12",
  "message": "Generating exposure model — this can take a few minutes. Call this endpoint again to retrieve the result."
}

Deduplication

If a generation job is already in flight for this fund — regardless of which account queued it — this endpoint returns the existing jobId. You will never queue two generations for the same fund series.

Cost

Generation runs server-side and does not count against your API request budget beyond the call to this endpoint.

get/api/fund/exposure-model

Query parameters

symbolstring

Fund ticker symbol (ETF or mutual fund). Identify the entity by exactly one of: symbol, cik, cusip, composite_figi, or share_class_figi. At least one is required.

cikinteger

SEC Central Index Key (CIK).

cusipstring

CUSIP identifier (9 characters).

composite_figistring

Composite OpenFIGI identifier.

share_class_figistring

Share-class OpenFIGI identifier.

Response

Model is ready. Full exposure model JSON with per-claim SEC-filing citations.

summaryobject

Primary exposure, strategy type, who-it-is-for, what-it-is-not. Has sources[].

mandateobject

Investment objective, benchmark, universe (asset class / geography / instruments), constraints. Has sources[].

portfolioConstructionobject

Selection rules, weighting, rebalancing frequency + triggers, concentration notes. Has sources[].

exposuresobject

Risk drivers, factor tilts, key holdings or buckets (each with own sources[]), KPI mappings. Has sources[].

implementationobject

Replication method, derivatives usage, securities lending, liquidity notes. Has sources[].

distributionsAndTaxesobject

Distribution profile, tax notes, capital gains risk. Has sources[].

costsAndLeakageobject

Expense ratio notes, implicit costs, tracking difference drivers. Has sources[].

sensitivitiesobject

Macro, market, and portfolio-mechanics sensitivities. Has sources[].

useCasesAndFailureModesobject

bestUseCases, badUseCases, failureModes — each an array of {text, sources[]}.