The facts behind the answers.

When your AI answers a question about chemistry, cocktails, or bird taxonomy — this is where the data comes from. 53 sites, 800,000+ curated records, 70+ REST APIs, MCP server, 15 languages. Look it up, build with it, or let your agent handle it.

53
Reference sites
800K+
Data records
70+
API endpoints
15
Languages
Reference data you can verify

Every claim on this page is backed by a live API. No account needed, no rate limits. Copy any command below — or let your agent do it.

# Color lookup — 16.7 million hex values
$ curl -s https://colorfyi.com/api/v1/colors/ff6b35/ | jq .name
"Orange Soda"

# Cocktail recipe with ABV + calories
$ curl -s https://cocktailfyi.com/api/v1/cocktails/margarita/ | jq '{abv, calories, glass}'
{ "abv": 13.2, "calories": 274, "glass": "Coupe" }

# Airport with coordinates + timezone
$ curl -s https://airportfyi.com/api/v1/airports/ICN/ | jq '{name, lat, lon, tz}'
{ "name": "Incheon International Airport",
  "lat": 37.4691, "lon": 126.4505, "tz": "Asia/Seoul" }

# Species taxonomy from GBIF
$ curl -s https://speciesfyi.com/api/v1/species/panthera-leo/ | jq .classification
{ "kingdom": "Animalia", "phylum": "Chordata",
  "class": "Mammalia", "order": "Carnivora" }

# Every site publishes an OpenAPI 3.1 spec
$ curl -s https://chemfyi.com/api/v1/openapi.json | jq .info.title
"ChemFYI API"
Our story

Seven years of structuring the world's reference data.

FYIPedia started in 2019, when we began building developer-facing data tools alongside fintech and infrastructure projects. The first was a color reference tool — because every existing converter was either buried in ads, couldn't handle modern color spaces like OKLCH, or had no API. We built ColorFYI, and that single decision — authoritative data, domain-specific models, zero-auth REST APIs — became the blueprint for everything after it.

Over the next five years, we refined the approach across increasingly complex domains. Chemistry required parsing IUPAC nomenclature rules. Ornithology demanded reconciling three competing taxonomies (IOC, Clements, and Howard–Moore) into a single coherent hierarchy. Sake brewing needed bilingual Japanese–English models that preserve 特定名称酒 classification. Cocktail chemistry meant computing ABV and calories from ingredient volumes, not copying numbers from a recipe book. Each domain taught us something new about data modeling, and each one proved the same thesis: people — and the agents they rely on — deserve reference data structured by those who understand the subject matter, not just the schema.

By 2024, we had systematized the process enough to accelerate: 14 sites by December, 30 by mid-2025, and 53 today — spanning 11 knowledge families from cocktail chemistry to stellar classification.

Domain-specific modeling

We don't dump data into generic tables.

Every FYIPedia site has a purpose-built data model designed from two perspectives: the data scientist who needs typed, relational, queryable fields — and the end user who needs computed values, intuitive groupings, and cross-references that make sense in context. We design schemas that encode domain expertise, not just store rows.

domain models — 3 of 53 sites
──── CocktailFYI ─────────────────────────────────────────

Cocktail
├─ name           CharField(100)
├─ slug           SlugField(unique)
├─ family         FK → Family (15: Sour, Daisy, Fizz, ...)
├─ base_spirit    FK → Spirit (Bourbon, Gin, Rum, ...)
├─ technique      FK → Technique (Shaken, Stirred, Built)
├─ glass          FK → Glassware (Coupe, Rocks, Highball)
├─ ingredients    M2M → Ingredient (with oz, dashes, unit)
├─ abv            Decimal(4,1)  ← computed from ingredients
├─ calories        Integer       ← computed from ingredients
├─ flavor_profile  JSON          ← {sweet, sour, bitter, spirit}
└─ garnish        CharField

──── ChemFYI ──────────────────────────────────────────────

Element
├─ symbol         CharField(3)   ← "Au", "Fe", "Og"
├─ atomic_number  SmallInteger   ← 1–118
├─ atomic_weight  Decimal(10,6)  ← IUPAC 2024 values
├─ category       FK → ElementCategory (Transition Metal, ...)
├─ period         SmallInteger   ← 1–7
├─ group          SmallInteger   ← 1–18 (nullable for f-block)
├─ electron_config CharField(100)
├─ melting_point   Decimal        ← °C, nullable (Og: predicted)
├─ density         Decimal        ← g/cm³, STP conditions
└─ discovery_year  Integer        ← nullable (ancient elements)

──── BirdFYI ──────────────────────────────────────────────

Bird
├─ common_name    CharField(200) ← IOC World Bird List v14.2
├─ scientific_name CharField(200) ← binomial (Passer domesticus)
├─ order          FK → Order (40 orders, 252 families)
├─ family         FK → Family (Passeridae, Accipitridae, ...)
├─ conservation   CharField      ← IUCN: LC/NT/VU/EN/CR/EW/EX
├─ wingspan        Decimal(6,1)  ← mm, from AVONET morphometrics
├─ body_mass       Decimal(8,1)  ← grams, AVONET mean values
├─ habitat        CharField      ← Forest/Wetland/Grassland/...
└─ distribution   TextField      ← GBIF occurrence summary

The pattern repeats across all 53 sites: foreign keys capture real-world relationships (a cocktail belongs to a family, an element sits in a period and group), computed fields derive values that users actually search for (ABV from ingredient volumes, wingspan from morphometric datasets), and every field traces to a specific source with version and date.

Data methodology

Every record traces back to a primary source.

We don't generate data, and we don't scrape aggregators. Each domain has a custom ETL pipeline that reads directly from authoritative datasets, validates against domain-specific schemas, and loads into typed PostgreSQL models.

Our 5-stage pipeline

1
Source acquisition
Download official datasets in their native format. IUPAC periodic table (JSON), FDA drug labels (XML via openFDA API), GBIF species backbone (Darwin Core Archive, 2.3 GB), Unicode CLDR (XML, v46), BJCP style guidelines (structured PDF → manual extraction).
2
Domain-specific schema design
Map source fields to typed Django models — not generic key-value stores. CocktailFYI uses DecimalField(max_digits=4, decimal_places=1) for ABV with ingredient-volume-based computation. ChemFYI stores IUPAC systematic names in CharField(max_length=500) because names like "potassium permanganate" reach 200+ characters.
3
Cross-reference validation
Run domain-specific validators: ChemFYI checks atomic weights against IUPAC 2024 values (max delta: 0.001 amu). AirportFYI cross-references IATA codes against OurAirports + ICAO databases. BirdFYI reconciles IOC v14.2 against GBIF backbone for 847 taxonomic name conflicts.
4
Translation & localization
Scientific names stay in Latin/English. Common names translated via CLDR, Wikidata labels (sitelinks in 15+ Wikipedias), and domain-specific sources: Japanese sake names from National Tax Agency (国税庁), Korean train stations from KORAIL open data, Arabic mineral names from geological survey publications.
5
Load, index, and serve
Seed via python manage.py seed into PostgreSQL 17 on Amazon RDS. Every record gets a canonical slug URL, JSON-LD structured data (Schema.org), OpenAPI-documented REST endpoint, and LLM-friendly .md endpoint. CDN edge caching via Cloudflare with content-hash static assets.

Real data. Real sources. Ready for anything.

We maintain direct access to these authoritative datasets — not through aggregators, mirrors, or third-party APIs. Reference data you can verify: each source is cited on its FYIPedia site with version number and access date.

118 elements
IUPAC Periodic Table (2024 update). Atomic weights from Commission on Isotopic Abundances and Atomic Weights.
iupac.org
636 cocktails
Original recipes with ingredient-computed ABV, calorie, and flavor profiles. Cross-validated against IBA Official Cocktails list.
iba-world.com
4,500+ airports
ICAO/IATA codes, WGS84 coordinates, elevation, timezone. Cross-referenced with OurAirports community database.
icao.int
3,953 emojis
Unicode Emoji 16.0 (September 2024). Full CLDR annotations, ZWJ sequences, skin tone variants. 8 encoding formats per character.
unicode.org
11,251 bird species
IOC World Bird List v14.2 taxonomy. Morphometrics from AVONET dataset (Tobias et al. 2022). Distribution from GBIF occurrence data.
worldbirdnames.org
6,215 minerals
IMA-approved mineral names via RRUFF database. Crystal systems, Mohs hardness, chemical formulas from Mindat.org.
rruff.info
119,602 stars
HYG database v3.7 (Hipparcos + Yale BSC + Gliese). Cross-referenced with SIMBAD (CDS Strasbourg) for spectral classification.
astronexus.com
379,774 plants
WCSP via GBIF backbone taxonomy. Cultivation hardiness zones from USDA Plant Hardiness Zone Map (2023 revision).
gbif.org
14,692 anatomical structures
Foundational Model of Anatomy ontology. Naming standard: Terminologia Anatomica (TA2, 2019 revision).
fma.si.washington.edu
112 beer styles
BJCP 2021 Style Guidelines. IBU/SRM/OG/FG ranges, ingredient profiles, commercial examples, serving parameters.
bjcp.org

Data freshness

Not all reference data changes at the same rate. We match our update cadence to the nature of each dataset — from minute-level seismic feeds to annual standard releases.

Earthquake events
USGS real-time GeoJSON feed. Live at quakefyi.com/earthquakes/today
every 5 min
Drug labels & interactions
openFDA drug event and labeling API. Synced to drugfyi.com and pillfyi.com
daily
Airport & airline data
OurAirports community database + IATA schedule changes. Live at airportfyi.com
weekly
Holiday calendars
Government gazette dates for 200+ countries. Next-year dates published Q4. holidayfyi.com/countries
quarterly
Species taxonomy
GBIF backbone releases + IOC bird list updates. speciesfyi.com, birdfyi.com
per release
Unicode & Emoji
Synced within 30 days of each Unicode release. emojifyi.com, unicodefyi.com
annual release
Periodic table
Updated when IUPAC confirms new elements or revises atomic weights. chemfyi.com/elements
per IUPAC update
Built for the AI era

Your AI already knows how to use our data.

Reference data is only useful if machines can access it reliably. We build native integrations for every major AI platform — so whether you're coding directly, delegating to an agent, or asking a question in natural language, you get structured data instead of hallucinated guesses.

MCP Server Model Context Protocol
A unified MCP server exposing all 53 sites as tools. Published on PyPI as fyipedia-mcp (v0.1.1). Works with Claude Desktop, Cursor, Windsurf, and any MCP-compatible client. One config line, instant access to 800K+ records.
# Add to Claude Desktop config (~/.claude/mcp.json)
{
  "mcpServers": {
    "fyipedia": { "command": "uvx", "args": ["fyipedia-mcp"] }
  }
}

# Then ask Claude: "What's the WCAG contrast ratio
# of #FF6B35 on white?"
# → Claude calls colorfyi.contrast(fg="#FF6B35", bg="#FFFFFF")
→ Ratio: 3.28:1 — AA Large: Pass, AA Normal: Fail
OpenAPI 3.1 Specs 70+ endpoints
Every site publishes a machine-readable OpenAPI 3.1.0 specification at /api/v1/openapi.json. AI agents auto-discover endpoints, request/response schemas, and parameter types without reading documentation. Every HTML page also supports .md suffix for LLM-optimized structured markdown.
# Discover available endpoints
$ curl -s https://cocktailfyi.com/api/v1/openapi.json \
  | jq '.paths | keys'
["/api/v1/cocktails/", "/api/v1/cocktails/{slug}/",
 "/api/v1/ingredients/", "/api/v1/search/", ...]

# LLM-friendly markdown for any page
$ curl -s https://chemfyi.com/elements/gold.md
# Gold (Au)
> Atomic number 79 · 196.967 amu · Transition metal
> Melting point: 1,064.18 °C · Density: 19.3 g/cm³
ChatGPT Custom GPTs 17 GPTs live
Specialized GPTs connected to live FYIPedia APIs via OpenAI Actions. When you ask "What cocktails use bourbon and honey?", the GPT calls /api/v1/search/?q=bourbon+honey — returning real-time data from our database, not training-set snapshots. Each GPT exposes all 10 endpoints from its corresponding site.
# Live on ChatGPT
ColorFYI · EmojiFYI · FontFYI · SymbolFYI · UnicodeFYI
UnitFYI · TimeFYI · HolidayFYI · NameFYI · DistanceFYI
CocktailFYI · AirportFYI · ChemFYI · PillFYI
BarcodeFYI · QRCodeFYI · NFCFYI

# Try asking:
"Convert 500ml to cups" → UnitFYI API → 2.113 cups
"WCAG contrast of navy on beige" → ColorFYI → 8.4:1 AAA
11 Families

From colors to cocktails to constellations.

53 sites organized into 11 thematic families. Each family has a hub domain, shared design language, and cross-linked navigation. Every member site shares the same API conventions, i18n framework, and data quality pipeline.

Open source

Use our data in any language.

Zero-dependency packages published on every major registry. Core computation packages (color math, unit conversion, distance calculation) work entirely offline — no API calls needed. API client packages wrap any FYIPedia site with full type annotations.

# Python — typed, zero dependencies
$ pip install colorfyi
>>> from colorfyi import Color
>>> c = Color("#FF6B35")
>>> c.wcag_contrast("#FFFFFF")
3.28

# TypeScript — full type definitions
$ npm install @fyipedia/colorfyi

# Go — six packages on pkg.go.dev
$ go get github.com/fyipedia/barcodefyi-go

# CLI — unified command for all sites
$ fyi color contrast FF6B35 FFFFFF
Ratio: 3.28:1 — AA Large Pass · AA Normal Fail
26
PyPI packages
23
npm packages
6
Go modules
128
GitHub repositories

All packages MIT-licensed. Published under github.com/fyipedia. Rust crates and Ruby gems are code-complete, pending registry publication.

Infrastructure

How we keep 53 sites reliable.

All sites share one proven stack — optimized for uptime, data integrity, and global performance rather than novelty.

Cloudflare global CDN
Edge caching across 300+ cities. R2 object storage with content-hash URLs and immutable cache headers. Zero exposed ports — all traffic routes through encrypted tunnels
300+ PoPs
PostgreSQL on Amazon RDS
Managed relational database with automated daily backups and point-in-time recovery. Each of the 53 sites has its own isolated database with domain-specific schemas
53 databases
Real-time error tracking
Every exception across all 53 sites is captured, triaged by domain, and alerted within seconds via Sentry + instant messaging
all 53 sites
1-minute uptime monitoring
Health checks every 60 seconds on every site. Downtime triggers immediate alerts — average response time under 2 minutes
60s intervals
15-language i18n pipeline
Localized content served with hreflang tags, per-locale OG images, and CLDR-sourced translations. Right-to-left support for Arabic
15 languages
Quality assurance

How we ensure accuracy at scale.

With 800,000+ records across 53 domains, data accuracy is the product. We enforce it at every layer — from initial import through runtime serving.

Primary-source only
No Wikipedia scraping. Every dataset links to its upstream authority with version and access date.
Typed model validation
Django model constraints + custom validators catch malformed data at import time, not runtime. CI rejects invalid seeds.
Source version pinning
Each upstream dataset is pinned: "Unicode 16.0", "BJCP 2021", "GBIF Backbone v2024.12", "IOC v14.2". Reproducible imports.
Schema.org structured data
JSON-LD on every page — BreadcrumbList, CollectionPage, and domain-specific types (Recipe, Drug, Place, Taxon).
Strict CI pipeline
Every commit runs ruff (lint), mypy (strict type-checking), pytest (unit + integration), and migration integrity checks.
Data corrections
Report inaccuracies via [email protected] or GitHub Issues. We investigate, trace to source, and update within 48 hours.
Team

Who builds FYIPedia.

Based in Seoul, South Korea and the United States, with contributors across Toronto, Berlin, and Singapore. A team of engineers and domain specialists who value subject-matter expertise as much as engineering skill — backgrounds in biochemistry, history of science, applied mathematics, industrial design, and marine biology. We understand the data we model, not just the code that serves it.

안수찬 (Suchan An)
Founder & Lead Engineer · Seoul
Seoul National University, Computer Science & Engineering. 12+ years building production systems — from payment infrastructure and fintech APIs to the FYIPedia architecture serving 53 sites on a unified framework. Designed the shared pipeline (domain-specific models → typed REST API → OpenAPI spec → MCP/GPT integrations) and maintains all 128 open-source repositories. ansuchan.com · github · x.com
Data Engineer — Life Sciences
Biochemist turned data engineer · Singapore
Built the ETL pipelines for our four Health FYI sites: AnatomyFYI (14,692 FMA structures), PillFYI (FDA drug labels), DrugFYI (adverse event reports), and NutriFYI (USDA FoodData Central). Designed the YMYL compliance framework ensuring health data meets FDA/FTC guidelines. Previously built clinical genomics data pipelines at a biotech company in Singapore.
Backend Engineer — Natural Sciences
Historian of science turned developer · Seoul
Brings archival rigor to data provenance — every record across ChemFYI, MineralFYI, and StarFYI traces to a specific source version and access date. Built the cross-reference validation system that reconciles three competing taxonomies (IOC, GBIF, and Clements) for BirdFYI's 11,251 species. Manages upstream dataset version pinning across all 53 sites.
ML Engineer — Search & i18n
Mathematician turned ML engineer · Berlin
Developed the multilingual search ranking across 15 languages — handling CJK tokenization, Arabic right-to-left indexing, and romanization edge cases (Korean names via revised romanization, Japanese sake terms via modified Hepburn). Built the translation quality pipeline using CLDR + Wikidata sitelinks. Previously worked on NLP systems at a Berlin-based AI startup.
Frontend Engineer — Design Systems
Industrial designer turned frontend engineer · Toronto
Created the shared visual system across 11 families — each with distinct identity (Geist Sans typography, family-specific accent colors, dark mode) while maintaining consistent UX patterns. Built the OG image generation pipeline producing locale-aware social previews for all 53 sites and the Tailwind CSS component library.

Plus 6 more specialists in marine biology (FishFYI), mixology & food science (Beverage FYI), aviation operations (Transport FYI), gemology & mineralogy (Science FYI), CJK linguistics (i18n), and DevOps/infrastructure.

Contact
GitHubgithub.com/fyipedia — 128 repositories
PyPIpypi.org/user/fyipedia — 26 packages
npmnpmjs.com/org/fyipedia — 23 packages
Data corrections[email protected]

Health data disclaimer. FYIPedia provides factual reference data sourced from authoritative institutions (FDA, IUPAC, USDA, WHO). Our four health-related sites — PillFYI, DrugFYI, AnatomyFYI, and NutriFYI — present official data for informational and educational purposes only. This content is not medical advice. Always consult a qualified healthcare professional for medical decisions.