# Purpose Investments — Full API Reference > Purpose Investments Inc. is a Canadian asset management firm offering actively managed ETFs and mutual funds. This extended reference helps AI agents understand the complete structure of fund data available at purposeinvest.com. See [llms.txt](https://www.purposeinvest.com/llms.txt) for the concise overview. --- ## API Endpoints ### GET /api/funds Returns a JSON array of all active funds. No authentication required. **URL:** `https://www.purposeinvest.com/api/funds` **Query parameters:** - `locale` — `en-CA` (default) or `fr-CA` **Response shape:** JSON array of `FundSummary` objects. ### GET /api/funds/{urlName} Returns full detail for a single fund. `urlName` comes from the `urlName` field in `/api/funds`. **URL:** `https://www.purposeinvest.com/api/funds/{urlName}` **Query parameters:** - `locale` — `en-CA` (default) or `fr-CA` **Example:** `https://www.purposeinvest.com/api/funds/purpose-bitcoin-etf` --- ## Structured Data on Fund Pages (JSON-LD) Fund pages at `https://www.purposeinvest.com/funds/{urlName}` are JavaScript-heavy and may not render fully in environments that do not execute JavaScript. However, each fund page includes a `schema.org/FinancialProduct` JSON-LD block that is **server-side rendered** and present in the raw HTML of the initial response — no JavaScript execution is required to read it. ### How to access it Fetch the raw HTML of any fund page and extract the contents of: ```html ``` There will be two JSON-LD blocks on each fund page: one for the `Organization` (Purpose Investments) and one for the `FinancialProduct`. Parse the one where `"@type": "FinancialProduct"`. ### What the JSON-LD contains | Field | Description | |---|---| | `name` | Full fund name | | `description` | SEO meta description — a plain-English summary of the fund | | `slogan` | Short tagline for the fund | | `url` | Canonical fund page URL | | `provider` | Purpose Investments Inc. organization reference | | `brand` | Purpose Investments brand reference | | `category` | Asset class (e.g. `"Investments > Equity"`, `"Investments > Alternatives"`) | | `feesAndCommissionsSpecification` | MER for each series as a readable string (e.g. `"MER — ETF: 0.66%, F: 0.66%, A: 1.76%..."`) | | `termsOfService` | Direct URL to the fund's prospectus PDF | | `identifier` | Array of `PropertyValue` objects — one per series. `propertyID` is `"ticker"` for exchange-listed ETF series or `"FundServ"` for mutual fund series codes. `value` is the ticker or FundServ code. `description` is the series name. | | `offers` | Array of `Offer` objects — one per series with a valid NAV. Each has `name` (series), `price` (NAV), and `priceCurrency`. | | `isSimilarTo` | Array of related `FinancialProduct` stubs with `name` and `url` for suggested alternative funds. | | `inLanguage` | `["en-CA", "fr-CA"]` | ### Example identifier entries ```json { "@type": "PropertyValue", "propertyID": "ticker", "value": "BTCC", "description": "ETF (CAD Hedged)" }, { "@type": "PropertyValue", "propertyID": "FundServ", "value": "PFC6701", "description": "F Series" } ``` ### When to use JSON-LD vs the API - **Prefer the API** (`/api/funds/{urlName}`) for the most complete and structured data — it includes portfolio holdings, compound returns, distribution history, tax factors, and more. - **Use JSON-LD** when you only have access to the page HTML and cannot make a separate API call, or when you need a quick summary (name, MER, NAV, tickers, category, prospectus) without parsing the full API response. --- ## FundSummary Schema (/api/funds response fields) | Field | Type | Description | |---|---|---| | `code` | string | Internal fund code (e.g. `BTCC`, `PSA`) | | `name` | string | Full fund name | | `tickers` | string[] | All exchange ticker symbols (ETF + mutual fund series codes) | | `tickers_assoc` | object | Map of series identifier to exchange ticker | | `fundSubheader` | string | Short tagline for the fund | | `urlName` | string | URL slug used in fund page and API paths | | `fee` | string | Management expense ratio, e.g. `"1.00%"` | | `featured_asset_category` | string | Primary asset class | | `asset_categories` | string[] | All applicable asset categories | | `yield` | string \| null | Annualized distribution yield percentage | | `distributionRate` | string \| null | Most recent distribution dollar amount | | `pms` | string[] | Portfolio manager names | | `managers` | object[] | Portfolio manager objects with name and bio link | | `outcome` | string[] | Investment outcome tags (e.g. `["Income", "Growth"]`) | | `region` | string[] | Geographic region tags (e.g. `["Canada", "Global"]`) | | `etf_code` | string | Primary ETF series ticker | | `f_code` | string | Mutual fund series code | | `coreFund` | boolean | Whether this is a core (featured) fund | | `partnerFund` | boolean | Whether this is a partner/sub-advised fund | | `updated_at` | ISO 8601 string | Last data update timestamp | --- ## FundDetail Schema (/api/funds/{urlName} response fields) The detail response merges CMS metadata with daily (sometimes weekly or monthly) fund performance and portfolio data. Key top-level fields: | Field | Type | Description | |---|---|---| | `code` | string | Fund code | | `name` | string | Full fund name | | `urlName` | string | URL slug | | `metaTitle` | string | SEO page title | | `metaDescription` | string | SEO meta description | | `series` | object | Keyed by series ID; each value has `name`, `code`, `nav_updated` | | `details` | object | Keyed by series ID; each value is array of `{name, val}` objects | | `portfolio` | object | Holdings data at multiple levels (Level1–Level4) | | `calendarReturns` | object | Monthly/annual returns by series and year | | `compoundReturns` | object | Compound return metrics (1m, 3m, 6m, YTD, 1y, 3y, 5y, SI) by series | | `distributions` | object | Distribution payment history by series | | `taxFactors` | object | Annual tax factors by year and series | | `blogPosts` | object[] | Related Ghost CMS articles tagged with the fund code | | `documents` | object | Fund documents (brochure, MRFP, fund facts, prospectus, financial statements) | | `suggestedFunds` | string[] | urlNames of similar recommended funds | | `disclaimer` | string | Regulatory disclaimer text (markdown) | | `noIndex` | boolean | If true, fund is restricted/private and page is noindex | ### Reading NAV for a series The `details` object maps series IDs to arrays of `{name, val}` pairs. To get NAV: ``` details[seriesId].find(d => d.name === "nav")?.val // e.g. "$12.34" ``` To get AUM: ``` details[seriesId].find(d => d.name === "aum")?.val // e.g. "$1.2B" ``` ### Two-step lookup example ``` # Step 1: Get all funds to find a urlName GET https://www.purposeinvest.com/api/funds → find the fund you want, note its urlName # Step 2: Fetch fund detail GET https://www.purposeinvest.com/api/funds/purpose-bitcoin-etf → returns full NAV, holdings, returns, distributions # Step 3: Extract primary series NAV response.details["BTCC"]?.find(d => d.name === "nav")?.val ``` --- ## Complete Fund Directory All active funds as of 2026-04. Use `urlName` values with `/api/funds/{urlName}` or `/funds/{urlName}`: | Code | Name | URL Slug | Asset Category | |------|------|----------|----------------| | BTCC | Purpose Bitcoin ETF | purpose-bitcoin-etf | Alternatives | | BTCO | Purpose Core Bitcoin ETF | purpose-core-bitcoin-etf | Alternatives | | BTCY | Purpose Bitcoin Yield ETF | purpose-bitcoin-yield-etf | Alternatives | | ETHH | Purpose Ether ETF | purpose-ether-etf | Alternatives | | ETHO | Purpose Core Ether ETF | purpose-core-ether-etf | Alternatives | | ETHY | Purpose Ether Yield ETF | purpose-ether-yield-etf | Alternatives | | ETHC_B | Purpose Ether Staking Corp ETF | purpose-ether-staking-corp-etf | Alternatives | | SOLL | Purpose Solana ETF | purpose-solana-etf | Alternatives | | XRPP | Purpose XRP ETF | purpose-xrp-etf | Alternatives | | PSA | Purpose High Interest Savings Fund | purpose-high-interest-savings-fund | Cash | | MNY | Purpose Cash Management Fund | purpose-cash-management-fund | Cash | | MNU_U | Purpose USD Cash Management Fund | purpose-usd-cash-management-fund | Cash | | PSU_U | Purpose US Cash Fund | purpose-us-cash-fund | Cash | | PMR | Purpose Premium Money Market Fund | purpose-premium-money-market-fund | Cash | | KILO | Purpose Gold Bullion Fund | purpose-gold-bullion-fund | Commodities | | SBT | Purpose Silver Bullion Fund | purpose-silver-bullion-fund | Commodities | | PDF | Purpose Core Dividend Fund | purpose-core-dividend-fund | Equity | | PDIV | Purpose Enhanced Dividend Fund | purpose-enhanced-dividend-fund | Equity | | PID | Purpose International Dividend Fund | purpose-international-dividend-fund | Equity | | PHW | Purpose International Enhanced Equity Income Fund | purpose-international-enhanced-equity-income-fund | Equity | | RDE | Purpose Core Equity Income Fund | purpose-core-equity-income-fund | Equity | | BNC | Purpose Canadian Financial Income Fund | purpose-canadian-financial-income-fund | Equity | | BNK | Big Banc | big-banc | Equity | | PINV | Purpose Global Innovators Fund | purpose-global-innovators-fund | Equity | | REM | Purpose Emerging Markets Dividend Fund | purpose-emerging-markets-dividend-fund | Equity | | RPU | Purpose US Preferred Share Fund | purpose-us-preferred-share-fund | Active Fixed Income | | RPS | Purpose Canadian Preferred Share Fund | purpose-canadian-preferred-share-fund | Active Fixed Income | | IGB | Purpose Global Bond Class | purpose-global-bond-class | Active Fixed Income | | BND | Purpose Global Bond Fund | purpose-global-bond-fund | Active Fixed Income | | FLX | Purpose Global Flexible Credit Fund | purpose-global-flexible-credit-fund | Active Fixed Income | | PBD | Purpose Total Return Bond Fund | purpose-total-return-bond-fund | Active Fixed Income | | CROPS | Purpose Credit Opportunities Fund | purpose-credit-opportunities-fund | Alternatives | | CROC | Purpose Credit Opportunities Class | purpose-credit-opportunities-class | Alternatives | | PYF | Purpose Premium Yield Fund | purpose-premium-yield-fund | Alternatives | | PAYF | Purpose Enhanced Premium Yield Fund | purpose-enhanced-premium-yield-fund | Alternatives | | SYLD | Purpose Strategic Yield Fund | purpose-strategic-yield-fund | Alternatives | | SPEC | Purpose Specialty Lending Trust | purpose-specialty-lending-trust | Alternatives | | PHR | Purpose Real Estate Income Fund | purpose-real-estate-income-fund | Alternatives | | PRA | Purpose Diversified Real Asset Fund | purpose-diversified-real-asset-fund | Alternatives | | PMM | Purpose Multi-Strategy Market Neutral Fund | purpose-multi-strategy-market-neutral-fund | Alternatives | | REDRGI | Purpose Global Resource Fund | purpose-global-resource-fund | Alternatives | | PABF | Purpose Active Balanced Fund | purpose-active-balanced-fund | Multi-Asset Class | | PACF | Purpose Active Conservative Fund | purpose-active-conservative-fund | Multi-Asset Class | | PAGF | Purpose Active Growth Fund | purpose-active-growth-fund | Multi-Asset Class | | PRP | Purpose Conservative Income Fund | purpose-conservative-income-fund | Multi-Asset Class | | PIN | Purpose Monthly Income Fund | purpose-monthly-income-fund | Multi-Asset Class | | PBI | Purpose Best Ideas Fund | purpose-best-ideas-fund | Multi-Asset Class | | RTA | Purpose Tactical Asset Allocation Fund | purpose-tactical-asset-allocation-fund | Multi-Asset Class | | PINC | Purpose Multi-Asset Income Fund | purpose-multi-asset-income-fund | Multi-Asset Class | | APLY | Apple Yield Shares Purpose ETF | apple-yield-shares-purpose-etf | Equity | | YAMZ | Amazon Yield Shares Purpose ETF | amazon-yield-shares-purpose-etf | Equity | | YNVD | NVIDIA Yield Shares Purpose ETF | nvidia-yield-shares-purpose-etf | Equity | | YMET | Meta Yield Shares Purpose ETF | meta-yield-shares-purpose-etf | Equity | | YGOG | Alphabet Yield Shares Purpose ETF | alphabet-yield-shares-purpose-etf | Equity | | YTSL | Tesla Yield Shares Purpose ETF | tesla-yield-shares-purpose-etf | Equity | | YMAG | Tech Innovators Yield Shares Purpose ETF | tech-innovators-yield-shares-purpose-etf | Equity | | MSFY | Microsoft Yield Shares Purpose ETF | microsoft-yield-shares-purpose-etf | Equity | | JPYS | JPYS Yield Shares Purpose ETF | jpys-yield-shares-purpose-etf | Equity | | RBCY | Purpose RBC Yield Shares ETF | purpose-rbc-yield-shares-etf | Equity | | BNSY | Purpose Scotiabank Yield Shares ETF | purpose-scotiabank-yield-shares-etf | Equity | | CNQY | Purpose Canadian Natural Resources Yield Shares ETF | purpose-canadian-natural-resources-yield-shares-etf | Equity | | ATDY | Purpose Couche-Tard Yield Shares ETF | purpose-couche-tard-yield-shares-etf | Equity | | DOLY | Purpose Dollarama Yield Shares ETF | purpose-dollarama-yield-shares-etf | Equity | | SHPY | Purpose Shopify Yield Shares ETF | purpose-shopify-yield-shares-etf | Equity | | ENBY | Purpose Enbridge Yield Shares ETF | purpose-enbridge-yield-shares-etf | Equity | | BNY | Purpose Brookfield Yield Shares ETF | purpose-brookfield-yield-shares-etf | Equity | | TY | Purpose TELUS Yield Shares ETF | purpose-telus-yield-shares-etf | Equity | | BRKY | Berkshire Hathaway Yield Shares Purpose ETF | berkshire-hathaway-yield-shares-purpose-etf | Equity | | YCON | Coinbase Yield Shares Purpose ETF | coinbase-yield-shares-purpose-etf | Equity | | YPLT | Palantir Yield Shares Purpose ETF | palantir-yield-shares-purpose-etf | Equity | | YAMD | AMD Yield Shares Purpose ETF | amd-yield-shares-purpose-etf | Equity | | YAVG | Broadcom Yield Shares Purpose ETF | broadcom-yield-shares-purpose-etf | Equity | | YCST | Costco Yield Shares Purpose ETF | costco-yield-shares-purpose-etf | Equity | | YNET | Netflix Yield Shares Purpose ETF | netflix-yield-shares-purpose-etf | Equity | | YUNH | UnitedHealth Yield Shares Purpose ETF | unitedhealth-yield-shares-purpose-etf | Equity | --- ## Notes for AI Agents - The `tickers` array includes both ETF exchange tickers (short, e.g. `BTCC`) and internal mutual fund series codes (longer numeric strings starting with `PFC`). ETF tickers suitable for quoting are in `etf_code`. - Distribution `yield` and `distributionRate` fields may be `null` for funds that do not pay out distributions. - All monetary values are in CAD unless the fund name includes `US`, `USD`, or `.U` series.