From the dropdown list of countries in a sign-up form to the product categories in an e-commerce backend, certain pieces of data form the quiet, stable foundation of our applications. This is reference data, and while it may seem simple, how you manage it has a massive impact on your product's scalability, consistency, and maintenance overhead.
For product managers, it's the key to a consistent user experience. For developers, it's the difference between a quick, clean implementation and a future filled with technical debt.
This guide will break down what reference data is, why the common "just hardcode it" approach fails, and how a modern, API-first strategy can save your team from future headaches.
Reference data is the foundational, relatively static data used to classify, categorize, and provide context for your application's transactional data. Think of it as the "master data" or the dictionary that gives meaning to everything else. It doesn't change often, but it's essential for operations.
Common examples of reference data include:
Essentially, if it's a list of things your application "refers" to in order to function correctly, it's reference data.
When faced with needing a list of countries, the temptation is strong: find a list online, copy-paste it into a file or database table, and call it a day. While this works for a single, small application, it creates a significant anti-pattern that breaks down quickly as you scale.
Here’s why managing reference data across many applications and microservices becomes a nightmare:
The modern solution is to treat reference data as a managed service, just like you would for authentication or payments. By centralizing your reference data and serving it through an API, you create a single source of truth for every application and service in your stack.
The benefits are immediate:
This is precisely the problem reference.do was built to solve. We provide a single source of truth for all your reference data, accessible through a dead-simple, reliable API.
Stop managing static datasets in every application. Instead of finding, vetting, and embedding a list of currencies, a developer can simply do this:
import { Do } from '@do-inc/sdk';
const an = new Do(process.env.DO_API_KEY);
// Get a list of all ISO 4217 currencies
const currencies = await an.reference.get('iso-4217');
console.log(currencies);
/*
=> [
{ "code": "USD", "name": "United States Dollar", "symbol": "$" },
{ "code": "EUR", "name": "Euro", "symbol": "€" },
{ "code": "JPY", "name": "Japanese Yen", "symbol": "¥" },
...
]
*/
With one API call, you get a clean, accurate, and up-to-date list of currencies without ever having to manage a file or a database table.
reference.do provides a wide range of standard public datasets, from all the essential ISO codes (countries, currencies, languages) to other common industry lists.
But crucially, you can also upload, manage, version, and query your own proprietary reference datasets right alongside our public ones. Whether it's a list of your internal product SKUs, office locations, or custom sales regions, you can manage it all through the same simple API.
Q: What is reference data again, in short?
A: It's the stable, foundational data used to categorize other data. Think country codes, currency lists, or your company's internal product categories. It provides context.
Q: Why shouldn't I just hardcode a list of countries in my app?
A: Hardcoding leads to inconsistencies across multiple apps, creates a maintenance nightmare when data needs updating, and duplicates effort. A centralized service like reference.do ensures a single source of truth, making your system more robust and easier to manage.
Q: Can I use my own custom reference data with reference.do?
A: Yes. This is a core feature. You can upload, manage, and query your own proprietary datasets (like store locations or user roles) through the same API you use for public data like ISO codes.
Reference data management is an unseen but critical part of building scalable and reliable software. By moving away from scattered, static lists and embracing a centralized, API-first approach, you empower your developers to build faster and give your product managers the consistency they need.
Stop wrestling with static lists. Create your single source of truth today. Get started with reference.do.