---
title: "How many ISINs can I look up in one API call?"
description: "POST /api/v1/funds takes a list of ISINs: 10 per call on Starter, 50 on Pro, 200 on Scale, 1,000 on Enterprise. How pending, not_found and invalid entries come back, and how to load a universe."
canonical: https://fundfactsapi.com/answers/how-many-funds-can-i-look-up-per-call
published: 2026-09-12
updated: 2026-10-13
publisher: FundFacts API
---

# How many ISINs can I look up in one API call?

**Short answer:** POST https://fundfactsapi.com/api/v1/funds with { "isins": [...], "wait": true } answers up to 10 ISINs per call on Starter, 50 on Pro, 200 on Scale and 1,000 on Enterprise (the Free plan is one at a time). Each entry in results[] carries status ok, not_found, pending, invalid or error and the same data payload as the single-fund endpoint. One request is counted per fund found; not_found entries are free (up to 15 misses a month or the plan's allowance if larger) and pending ISINs (still loading) cost nothing until you re-send them.

## The call

```bash
curl -s --max-time 300 -X POST https://fundfactsapi.com/api/v1/funds \
  -H "Authorization: Bearer $FUNDFACTS_API_KEY" -H "Content-Type: application/json" \
  -d '{"isins":["IE00B4L5Y983","IE00B3RBWM25","LU1681043599"],"wait":true}'
```

```json
{
  "results": [
    { "input": "IE00B4L5Y983", "isin": "IE00B4L5Y983", "status": "ok", "name": "iShares Core MSCI World UCITS ETF", "cached": true, "expiresAt": "…", "data": { "…": "…" } },
    { "input": "IE00B3RBWM25", "isin": "IE00B3RBWM25", "status": "ok", "name": "…", "data": { "…": "…" } },
    { "input": "LU1681043599", "isin": "LU1681043599", "status": "pending" }
  ]
}
```

## Statuses

| `status` | Meaning | Counted |
|---|---|---|
| `ok` | Payload attached | 1 |
| `not_found` | No fund data; `reason` says why (`not_a_fund`, `issuer_not_covered`, `documents_unreadable`, `temporarily_unavailable`) | 0 |
| `pending` | Cold ISIN being loaded in the background; re-send in a minute | 0 |
| `invalid` | Not a syntactically valid ISIN | 0 |
| `error` | Temporary upstream failure; retry later | 0 |

Misses are free up to 15 a month, or the plan's allowance if larger; past that they count 1 like an answer.

With `wait: true` the call waits (up to the 300-second limit) for cold ISINs that fit the time budget; the rest come back `pending` and are warmed in the background so the next call finds them.

## Loading a universe

1. Validate ISINs locally (format and check digit) to avoid wasting entries.
2. Send batches of the plan's size; collect `ok` and `not_found`, queue `pending` for a retry after 60 seconds.
3. Store each payload with its `expiresAt`; refresh only expired rows, spread across the day.
4. Watch `X-RateLimit-Remaining` and pause below a floor.

The [fund screener use case](https://fundfactsapi.com/use-cases/fund-screener) and the [Next.js screener guide](https://fundfactsapi.com/blog/build-a-fund-screener-with-nextjs) show the code. For a whole store dump on Scale, `GET /export` streams NDJSON in one request.

## FAQ

### Is a batch cheaper than single calls?

The count is the same (one per fund found); the batch saves round trips and lets the server load cold ISINs in parallel within the time budget.

### 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.

## About FundFacts API

FundFacts turns any fund or ETF ISIN into one dated factsheet (fees and KID costs, the 1–7 risk indicator, holdings, sector and country exposure, returns) read from the fund house's own documents: as a client-ready PDF under your firm's name for advisers and wealth managers, as JSON through its API for developers, or inside ChatGPT and Claude through its MCP server.

FundFacts works inside ChatGPT and Claude as a connector (a remote MCP server): ask about any fund or ETF by ISIN, ticker or name and the assistant answers from FundFacts' dated figures, fees, risk, holdings, exposure and returns, with fund cards, side-by-side comparisons, holdings overlap and portfolio look-through.

- Free API key, no card: https://fundfactsapi.com/signup
- Documentation: https://fundfactsapi.com/docs (OpenAPI: https://fundfactsapi.com/openapi.json)
- MCP server: https://fundfactsapi.com/api/mcp (set-up for every client: https://fundfactsapi.com/mcp-server)
- Pricing: https://fundfactsapi.com/pricing
- Site index for AI assistants: https://fundfactsapi.com/llms.txt
- Informational data, not investment advice.
