Join on the AMFI scheme code. The other two are worse in different ways, and one of them fails silently.
Names are labels, not identifiers, and they move in waves. Over one month, 1,234 schemes were renamed, 942 of them on a single day, which was the SEBI deadline for re-filing under the new categorisation. Low Duration became Ultra Short to Short Term, Savings became Money Market, Equity and Debt became Aggressive Hybrid. Any saved search or hard-coded filter on an old name comes back empty.
Spelling drifts alongside the renames, which is worse than a rename because it is invisible. The same feed carries five spellings of children's fund, the apostrophe in different places and one version with none at all. One large renamed hybrid fund reads AGGRESIVE with a single s, across four plans. Until the filer corrects it, a search on the correct spelling will not find it, and nothing anywhere reports an error.
ISINs are better, and still not permanent. In the same month 37 schemes had their ISIN swapped for a different one, and two more had an old value only eleven characters long, which were repairs.
The case worth understanding, because it does not error: a retired ISIN can be reassigned rather than left dead. One gold ETF now publishes a new ISIN; the code it replaced belonged to a different house, and that old code still resolves today - to that other fund, with a full price history that stops in 2023, because the fund business changed hands and the record picks up under the new house days later. A lookup that quietly returns a plausible wrong answer is far more expensive than one that returns nothing. If you have an identifier you cannot date, treat a successful match as a claim to check, not a result.
The general rule beyond funds: join on whatever the issuer treats as an identifier, never on what it treats as a description, and carry a validity date with any external code you store.
The one caveat on scheme code: when a fund changes manager, a NEW scheme code is issued while the ISIN stays with the instrument, so a single code can hold only one leg of the history. To stitch a full history across that boundary, search by ISIN with active=all, then pull each scheme code. Detail: why some India mutual fund data looks wrong. Also useful: checking whether an ISIN is valid or simply not the one you need, and what the SEBI recategorisation breaks. Full write-up: https://www.tigzig.com/post/amfi-name-and-isin-changes-aug2026.
Building something like this? How I work covers the rates, the availability and what I take on.