AI agents & LLMs

How can I get ChatGPT to look up fund and ETF data by ISIN?

Connect the FundFacts MCP server in ChatGPT's developer mode and ask about any ISIN, with results shown as interactive cards. Or build a custom GPT on the OpenAPI spec, or paste the JSON. Steps for each.Published September 12, 2026 · Updated October 13, 2026 · by FundFacts API

Short answer

Connect the FundFacts MCP server. In ChatGPT's developer mode (Plus, Pro, Business, Enterprise and Edu, on the web), add https://fundfactsapi.com/api/mcp under Plugins with Authentication set to OAuth and sign in with your FundFacts account; ChatGPT can then look up, compare and look through funds by ISIN or name, and shows the results as interactive cards. On plans that can create GPTs, build a custom GPT whose Action imports the OpenAPI spec at https://fundfactsapi.com/openapi.json with bearer authentication. For a one-off question, paste the JSON from a single GET /funds/{isin} call into the chat.

Fastest route: the FundFacts MCP server. About a minute in developer mode, on every FundFacts plan including Free, with seven read-only tools and results shown as interactive cards in the chat. The MCP server guide covers every tool, the sign-in and troubleshooting; the steps for ChatGPT are below.

Why ChatGPT needs a data source for funds

Fund figures live in PDFs and product pages that change monthly. A model answering from memory will quote a TER or a top holding from whenever its training data was collected, without an as-of date. Giving ChatGPT a tool that returns the current published figures fixes both problems: the answer is current and it carries dataAsOf.

Option 1: connect the MCP server

ChatGPT adds remote MCP servers in developer mode, available on Plus, Pro, Business, Enterprise and Edu, on the web. Turn it on under Settings → Security and login → Developer mode, then open Plugins (chatgpt.com/plugins), click + and enter:

SettingValue
NameFundFacts
Server URLhttps://fundfactsapi.com/api/mcp
AuthenticationOAuth

Click Create and sign in with your FundFacts account when the consent screen opens. ChatGPT cannot send an API key (the dialog has no header field), so it signs in instead. The connector signs in with your FundFacts account (OAuth 2.1, PKCE): a consent screen opens in the browser, the connection then counts against the same plan and quota as an API key, and it appears in the dashboard, where you can disconnect it at any time. In ChatGPT and in Claude on the web and desktop, tool results also render as cards (fund, comparison, portfolio look-through, overlap, SCPI) next to the answer. No API key goes into the URL; for code and CLIs the Authorization header stays the recommended form.

The MCP server exposes seven tools, each counted like the REST endpoint it wraps: get_fund (ISIN → the full factsheet payload), search_funds (name → ISINs, free), compare_funds (side-by-side table for several ISINs), analyze_portfolio (weighted look-through of a list of positions, Starter and above), fund_overlap (shared holdings between funds, Starter and above), get_scpi (French SCPI data by name or ISIN) and search_scpi (SCPI name → matches, free), plus a tour prompt that explains the service on the example fund IE00B4L5Y983, which is not counted. Every tool only reads data. Authentication is either your FundFacts account (OAuth 2.1 with PKCE, the sign-in the claude.ai, Claude Desktop and ChatGPT connectors run) or the same bearer API key as the REST API, sent as an Authorization header by editors, CLIs and frameworks. The MCP server guide has the full tool reference, setup for every client and troubleshooting.

Then ask in plain language: "What is the TER and top ten of IE00B4L5Y983?", "Compare IE00B4L5Y983 and IE00B3RBWM25", "How much do these two ETFs overlap?". ChatGPT picks the tool, calls it and cites the figures with their as-of date.

Option 2: a custom GPT with an Action

Custom GPTs take an OpenAPI document as an Action, which works on every plan that can create GPTs:

  1. Create a GPT, open Configure → Actions → Create new action.
  2. Choose Import from URL and paste https://fundfactsapi.com/openapi.json.
  3. Authentication: API Key, auth type Bearer, paste your ffk_ key.
  4. In the instructions, add: "Use getFund for any ISIN the user mentions. Always state data.dataAsOf next to figures. Treat 404 fund_not_found as 'not a covered fund'."

The spec describes every endpoint (single fund, batch, search, portfolio look-through, overlap, factsheets, SCPI), so the GPT can answer more than lookups.

Option 3: paste the JSON

For a one-off question, run one call and paste the result:

bash
curl -s https://fundfactsapi.com/api/v1/funds/IE00B4L5Y983 -H "Authorization: Bearer $FUNDFACTS_API_KEY"

The payload is a few kilobytes of JSON with self-describing keys (headlineMetrics.ter, topHoldings, sector, calendarReturns, dataAsOf), so ChatGPT reads it without further explanation. Without a key, GET https://fundfactsapi.com/api/v1/demo/funds/IE00B4L5Y983 returns the same payload for funds already in the store.

What to tell the model

Whichever route you take, two instructions improve the answers: quote data.dataAsOf with every figure, and do not fill gaps. Fields a fund does not disclose come back empty, not missing, and the model should say "not disclosed" rather than estimate.

Paid plans include an AI companion kit generated from the live field reference: an AGENTS.md with every endpoint, field, rule and a reference client; a Cursor rule; a Claude Code skill; the OpenAPI spec and TypeScript types, with your key baked in or read from an environment variable. Download it from the dashboard; the public edition without a key is at /llms-full.txt.

Verify it yourself

The demo endpoint returns the live payload for a fund that is already in the store, without a key. Everything on this page can be checked against it.
bash
curl -s https://fundfactsapi.com/api/v1/demo/funds/IE00B4L5Y983 | jq '{name, asOf: .data.dataAsOf, ter: .data.headlineMetrics.ter, risk: .data.riskRating, top: .data.topHoldings[:3]}'

Frequently asked questions

Does the connector cost extra?

No. Tool calls are counted exactly like REST requests on your plan: one request per fund found. The Free plan's 5 lookups a month are enough to try it; a working assistant usually sits on Starter or Pro.

Will ChatGPT cite fundfactsapi.com in search answers?

ChatGPT search reads this site (the crawlers are allowed in robots.txt and the pages are listed in llms.txt), so answers about fund data APIs may cite it. That is independent of the connector, which is about your own account's data access.

Do I need a credit card to try it?

No. The Free plan is 5 lookups per month with no card; sign up with an e-mail address or Google and the key is shown in the dashboard.

Which ISINs work?

Any share class of a UCITS fund, ETF, money-market fund or open-end fund whose management company publishes a product page, factsheet and KID. Each share class has its own ISIN and is looked up on its own. Stocks, bonds and indices are not funds and return 404 fund_not_found.

Try it on your own ISINs

One request returns key facts, holdings, risk and performance as JSON. Free plan, no card.