A country carries its own states list
/country/{code}/states nests the full subdivision list under the country, no separate lookup required.
A country without its subdivisions is half an answer.
GET /country/de/states
{ "country": "DE", "states": [{ "state": "BW", "name": "Baden-Württemberg", "type": "land" }, { "state": "BY", "name": "Bavaria", "type": "land" }, ...] }
/country/{code}/states sits one path segment under the country itself. There is no second lookup to go from a country record to every subdivision inside it, the list rides along on the same route. Each row still carries a state code you can hand straight to /state/{code} when you need the full record.
The second dropdown is one call away
A shipping form picks a country, then needs to populate a state dropdown. That second list is a single call away from the first, same code the country response already gave you, no separate /state search to wire up.
Try it
Call /country/{code}/states right after a country lookup. The second list was always going to happen anyway.