Skip to content

Available Routes / cURL

All routes are GET-only. Base URL: https://api.openflags.net

Health check

cli
GET https://api.openflags.net/api/v1/health
sh
curl https://api.openflags.net/api/v1/health

List flags (paginated)

Returns a page of flags. page defaults to 1, page_size defaults to 20 (max 100).

cli
GET https://api.openflags.net/api/v1/flags?page=1&page_size=20
sh
curl "https://api.openflags.net/api/v1/flags?page=1&page_size=20"

Get a single flag by ISO 3166 code

cli
GET https://api.openflags.net/api/v1/flags/:iso_code
sh
curl https://api.openflags.net/api/v1/flags/US-CA

Search flags

Matches against ISO code, region name, country name, and known aliases (including translated names).

cli
GET https://api.openflags.net/api/v1/search?q=:term
sh
curl "https://api.openflags.net/api/v1/search?q=california"

List flags for a country

cli
GET https://api.openflags.net/api/v1/countries/:iso/flags
sh
curl https://api.openflags.net/api/v1/countries/US/flags

Random flag (JSON)

cli
GET https://api.openflags.net/api/v1/flags/random
sh
curl https://api.openflags.net/api/v1/flags/random

Random flag image (direct SVG)

Serves the SVG file directly — safe to drop straight into an <img src>.

cli
GET https://api.openflags.net/api/v1/flags/random/image
html
<img src="https://api.openflags.net/api/v1/flags/random/image" alt="Random flag" />

Static flag / coat-of-arms files

Every flag's flag.svg / coat.svg field (see the flag object shape) is a path served directly under /flags/:

cli
GET https://api.openflags.net/flags/:country_iso/flag.svg
GET https://api.openflags.net/flags/:country_iso/:region_iso/flag.svg
sh
# Country-level flag
curl https://api.openflags.net/flags/US/flag.svg

# Region-level flag
curl https://api.openflags.net/flags/US/US-CA/flag.svg

PNG conversion

Converts a flag SVG to PNG on the fly (and caches the result). size is in pixels, defaults to 128, max 512.

cli
GET https://api.openflags.net/flags-png/:country/*path?size=128
sh
curl "https://api.openflags.net/flags-png/US/US-CA/flag.svg?size=256" --output california.png