Fund Marketplace

List Monark's evergreen fund catalogue, with search, asset class filters, and the entry minimum of each fund.

The marketplace is Monark's catalogue of evergreen funds. It is usually the entry point to the rest of the integration: a user finds a fund here, opens its Fund Detail page, and invests from there.

Endpoints used

MethodEndpointPurpose
GET/primary/v1/omnibus/fundList funds, with their share classes, search, filtering, and pagination

Workflow

  1. Request the first page of funds. Pass the user's search text and asset class filter through to the API instead of filtering in the browser.
  2. Render one card per fund. Show the lowest initial minimum across the fund's embedded shareClasses[] as its entry minimum.
  3. Open the Fund Detail page when a card is selected, passing the fund's id.

List funds

GET /primary/v1/omnibus/fund?page=1&pageSize=25&assetClass=Private%20Credit
Query parameterTypeDescription
searchTermstringMatches fund name or symbol. Bind this to your search box.
assetClassstringRestricts results to one asset class. Must match the fund's assetClass exactly.
sortOrderstringAscending or Descending by when the fund was last updated. Defaults to Descending.
pageintegerPage number. Defaults to 1.
pageSizeintegerResults per page. Defaults to 25, maximum 1000.

A trimmed response:

{
  "items": [
    {
      "id": "01a05a22-0000-7000-8000-0000000000f1",
      "name": "Example Private Credit Fund",
      "symbol": "EXPCX",
      "logoUrl": "https://cdn.example.com/logos/expcx.png",
      "assetClass": "Private Credit",
      "structure": "BDC",
      "aum": 77000000000,
      "currency": "USD",
      "vintage": 2021,
      "subscriptionCadence": "Monthly",
      "redemptionCadence": "Quarterly",
      "distributionCadence": "Monthly",
      "allInvestors": true,
      "accreditedInvestor": false,
      "fundManager": { "id": "a1b2c3d4-0000-4000-8000-000000000001", "name": "Example Asset Management" },
      "shareClasses": [
        {
          "id": "01a06194-0000-7000-8000-0000000000c1",
          "omnibusFundId": "01a05a22-0000-7000-8000-0000000000f1",
          "series": "Class I",
          "symbol": "EXPCX",
          "cusip": "000000000",
          "initialMinimumInvestment": 2500,
          "subsequentMinimumInvestment": 500
        }
      ]
    }
  ],
  "pagination": { "totalRecords": 42, "totalPages": 2, "currentPage": 1 }
}

The list is the whole catalogue: it is not filtered to the funds your platform can trade. Fund access is granted per custodian, and an order for a fund that the account's custodian has not been enabled for is rejected with FinancialInstitutionFundAccessDenied. Confirm with Monark which funds each of your custodians is enabled for before you present a fund as investable.

Fund cards

The fields you show are your choice. The reference implementation uses a card that answers the first questions an advisor or investor asks: what the fund is, who manages it, how large it is, how liquid it is, and what it costs to get in.

UI elementSourceNotes
LogoFund.logoUrlFall back to the fund's initials when null.
Fund nameFund.name
ManagerFund.fundManager.name
Asset classFund.assetClassA free-text label, such as Private Credit.
StructureFund.structureFor example, interval fund, tender offer fund, REIT, or BDC.
Assets under managementFund.aumDenominated in Fund.currency. Abbreviate large values, such as "$77.0B".
SubscriptionsFund.subscriptionCadenceDaily, Weekly, Monthly, Quarterly, or Annual.
RedemptionsFund.redemptionCadenceWeekly, Monthly, Quarterly, or Annual.
Minimum investmentLowest ShareClass.initialMinimumInvestment for the fundSee Entry minimums, below.
Card actionFund.idOpens the Fund Detail page.

Search and filters

Search and asset class filtering run on the server, so they work across the whole catalogue and not only the page that is loaded.

  • Search. Send the contents of the search box as searchTerm. Debounce the input so that you send one request when the user pauses, not one per keystroke.
  • Asset class chips. Build the list of chips from the distinct assetClass values across the catalogue instead of hard-coding it, so that new asset classes appear automatically. The list is paged, so read them from a request with pageSize=1000 rather than from the page on screen, and pass the value back as assetClass exactly as returned.
  • Paging. Reset page to 1 whenever the search text or filter changes.

Entry minimums

Investment minimums belong to the share class, not to the fund. Each fund in the list includes its shareClasses[], so take the lowest initialMinimumInvestment across them to show a single "minimum investment" on each card. No second request is needed.

When you need share classes on their own, for example for a single fund, use GET /primary/v1/omnibus/share-class?omnibusFundId={id}.

Note: initialMinimumInvestment can be null, which means the share class has no minimum. Treat null as zero when you compute a fund's entry minimum, and display it as "No minimum" instead of "$0".

Implementation notes

  • Cache the catalogue. Fund and share class data changes infrequently. Caching it for the length of a session keeps the marketplace responsive.
  • Show eligibility early. If your platform knows the active account, flag funds whose investor requirements the account does not meet. See Accounts & Eligibility.
  • Handle empty results. A search or filter with no matches returns an empty items array. Offer a way to clear the search instead of showing a blank page.

Next steps


Did this page help you?