Step 2: Create a new map

To create an empty map, we'll call the Upload map endpoint. The core function is the following:

url = ''

args = {
    'file_type': 'empty',
    'title': 'London Attractions',
    'short_name': 'london-attractions',
    'visibility': 'public',

headers = {
    'Authorization': 'Token ' + API_KEY,
    'MapHub-API-Arg': json.dumps(args),

res =, headers=headers)
data = res.json()

When used with file_type=empty, the Upload map endpoint creates a new map.

In the script, we save the returned map's id into a JSON file (map_data.json). In later steps, we'll read the map id from this JSON file.

map_data.json sample

  "id": 12345,
  "url": "",
  "owner": "test",
  "short_name": "london-attractions",
  "title": "London Attractions",
  "visibility": "public"

Full script file