Appearance
locations
23 endpoints at a glance
| Method | Path | Summary |
|---|---|---|
GET | /admin/locations/cities/datasets | List Datasets |
GET | /admin/locations/cities/imports | List Imports |
GET | /admin/locations/cities/imports/{import_id} | Get Import |
POST | /admin/locations/cities/imports/run | Submit Import |
GET | /admin/locations/cities/stats | Cities Stats |
GET | /admin/locations/cities/status | Cities Status |
GET | /admin/locations/languages/imports | List Language Imports |
GET | /admin/locations/languages/imports/{import_id} | Get Language Import |
POST | /admin/locations/languages/imports/run | Run Language Import |
GET | /admin/locations/languages/stats | Languages Stats |
GET | /admin/locations/languages/status | Languages Status |
GET | /locations/cities | List Cities |
GET | /locations/cities/{geoname_id} | Get City |
GET | /locations/cities/{geoname_id}/history | Get City History |
GET | /locations/cities/countries | List Country Counts |
GET | /locations/countries | List Countries |
GET | /locations/countries/{cca2} | Get Country |
POST | /locations/countries/refresh | Refresh Countries |
GET | /locations/languages | List Languages |
GET | /locations/languages/{lang_id} | Get Language |
GET | /locations/regions | List Regions |
GET | /locations/regions/{region_id} | Get Region |
POST | /locations/regions/refresh | Refresh Regions |
locations
List Countries
GET
/locations/countries
All countries.
details=false (default) → slim {code, name, region, flag}
picker payload. details=true → the full {code, data, meta}
envelope per row. Both ordered alphabetically by common name.
Parameters
Header Parameters
authorization
Query Parameters
details
Type
boolean
Default
falseResponses
Successful Response
application/json
JSON { "additionalProperties": "string" }
[
]
Get Country
Refresh Countries
POST
/locations/countries/refresh
Pull the latest country dataset from REST Countries (admin only).
Runs the (blocking) HTTP + bulk-upsert off the event loop and records
a task_history row so the admin panel sees it.
Parameters
Header Parameters
authorization
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
List Regions
Get Region
Refresh Regions
List Cities
GET
/locations/cities
Paginated city search. Returns {rows, total, limit, offset}.
Parameters
Header Parameters
authorization
Query Parameters
q
country
admin1
min_population
limit
Type
integer
Maximum
200Minimum
1Default
25offset
Type
integer
Minimum
0Default
0Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
List Country Counts
Get City
Get City History
GET
/locations/cities/{geoname_id}/history
Per-city change history (most recent first).
Parameters
Header Parameters
authorization
Path Parameters
geoname_id*
Type
Requiredinteger
Query Parameters
skip
Type
integer
Minimum
0Default
0limit
Type
integer
Maximum
500Minimum
1Default
100Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
List Languages
GET
/locations/languages
Search + filter + paginate. Slim {id, ref_name, part1, scope, type, retired} rows.
Parameters
Header Parameters
authorization
Query Parameters
q
scope
I | M | S
type
Living | Extinct | …
has_639_1
include_retired
Type
boolean
Default
falsepage
Type
integer
Minimum
1Default
1limit
Type
integer
Maximum
200Minimum
1Default
50Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Get Language
List Datasets
Cities Status
Cities Stats
List Imports
Get Import
Submit Import
POST
/admin/locations/cities/imports/run
Queue a cities import. Returns immediately with worker state.
Parameters
Header Parameters
authorization
Request Body
application/json
JSON "dataset": "string", "skip_if_unchanged": false
{
}
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Languages Status
Languages Stats
List Language Imports
Get Language Import
Run Language Import
POST
/admin/locations/languages/imports/run
Download the SIL tables + upsert (admin only). Runs the blocking work
off the event loop and returns the resulting import-audit row.
Parameters
Header Parameters
authorization
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}