Blog·Craft·

The flag is just a field

emoji ships on the same /country call as capital and currency, no separate endpoint.

You don't need an endpoint for a flag. You need a field.

GET /country/us
{ "country": "us", "name": "United States", "capital": "Washington, D.C.", "currency": "USD", "emoji": "🇺🇸" }

emoji rides next to capital and currency on the same call. No /flag/{code}, no second round trip, no CDN of PNGs to keep in sync across 250 flags.

One object, nothing to stitch together

A dropdown, a shipping form, a country picker, all of it wants the name and the flag in the same breath. /country/{code} hands back both in one object, so there is nothing to key together after the fact, no join between a names table and a flags table on your end.

Unicode already solved the hard part, every country has a flag emoji baked into the standard. emoji just points at the field instead of asking a developer to look up the codepoints themselves.

Try it

Call /country/jp. The flag is already there. It was never going anywhere else.