Skip to content
getgeolens.com

Create Map Endpoint

POST
/maps/
curl --request POST \
--url https://example.com/api/maps/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "name": "NYC Infrastructure", "description": "Buildings, parks, and transit routes in Manhattan", "notes": "example", "terrain_config": { "enabled": false, "source_dataset_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "exaggeration": 1 }, "basemap_config": { "label_mode": "full", "road_visibility": "full", "boundary_visibility": "full", "building_visibility": true, "land_water_tone": "default", "relief_contrast": "soft", "opacity": 1, "sublayer_overrides": { "additionalProperty": { "stroke_color": "example", "stroke_width": 1, "casing_color": "example", "casing_width": 1, "min_zoom": 1, "max_zoom": 1, "opacity": 1 } } } }'

Create a new map.

Media type application/json
MapCreate
object
name
required
Name

Map display name

string
>= 1 characters <= 255 characters
Example
NYC Infrastructure
description
Any of:
string
<= 2000 characters
notes
Any of:
string
<= 50000 characters
terrain_config
Any of:
TerrainConfig
object
enabled
Enabled
boolean
source_dataset_id
Any of:
string format: uuid
exaggeration
Exaggeration
number
default: 1 <= 10
basemap_config
Any of:
BasemapConfig
object
label_mode
BasemapLabelMode

Basemap label prominence.

string
default: full
Allowed values: full subtle hidden
road_visibility
BasemapSublayerVisibility

Road and transit sublayer visibility where supported.

string
default: full
Allowed values: full subtle hidden
boundary_visibility
BasemapSublayerVisibility

Administrative boundary sublayer visibility where supported.

string
default: full
Allowed values: full subtle hidden
building_visibility
Building Visibility

Whether supported building/3D building basemap layers are shown.

boolean
default: true
land_water_tone
BasemapLandWaterTone

Land and water color treatment where supported.

string
default: default
Allowed values: default muted contrast monochrome
relief_contrast
Any of:
BasemapReliefContrast
string
Allowed values: soft standard strong
opacity
Opacity

Master basemap opacity 0.0-1.0

number
default: 1 <= 1
sublayer_overrides
Any of:
object
key
additional properties
SublayerOverride

Per-sublayer style override for a single basemap sublayer.

All fields are nullable — a None value means “use the basemap default”. Only #RRGGBB hex strings are accepted for color fields; None means the basemap default color is preserved. Numeric ranges are clamped at validation time (Pydantic ge/le constraints).

The key set of BasemapConfig.sublayer_overrides is treated as opaque (forward-compatible with future sublayer IDs) — see CONTEXT.md D-01.

Security: extra=“forbid” locks the D-14 scope guardrail: unknown style axes such as dash patterns, line caps, halo blur, and text-font are rejected at validation time (T-1059A-03).

object
stroke_color
Any of:
string
stroke_width
Any of:
number
<= 20
casing_color
Any of:
string
casing_width
Any of:
number
<= 20
min_zoom
Any of:
number
<= 24
max_zoom
Any of:
number
<= 24
opacity
Any of:
number
<= 1

Successful Response

Media type application/json
MapResponse
object
id
required
Id
string format: uuid
name
required
Name
string
description
required
Any of:
string
notes
Any of:
string
center_lng
required
Any of:
number
center_lat
required
Any of:
number
zoom
required
Any of:
number
bearing
required
Bearing
number
pitch
required
Pitch
number
basemap_style
required
Basemap Style
string
show_basemap_labels
required
Show Basemap Labels
boolean
basemap_config
Any of:
BasemapConfig
object
label_mode
BasemapLabelMode

Basemap label prominence.

string
default: full
Allowed values: full subtle hidden
road_visibility
BasemapSublayerVisibility

Road and transit sublayer visibility where supported.

string
default: full
Allowed values: full subtle hidden
boundary_visibility
BasemapSublayerVisibility

Administrative boundary sublayer visibility where supported.

string
default: full
Allowed values: full subtle hidden
building_visibility
Building Visibility

Whether supported building/3D building basemap layers are shown.

boolean
default: true
land_water_tone
BasemapLandWaterTone

Land and water color treatment where supported.

string
default: default
Allowed values: default muted contrast monochrome
relief_contrast
Any of:
BasemapReliefContrast
string
Allowed values: soft standard strong
opacity
Opacity

Master basemap opacity 0.0-1.0

number
default: 1 <= 1
sublayer_overrides
Any of:
object
key
additional properties
SublayerOverride

Per-sublayer style override for a single basemap sublayer.

All fields are nullable — a None value means “use the basemap default”. Only #RRGGBB hex strings are accepted for color fields; None means the basemap default color is preserved. Numeric ranges are clamped at validation time (Pydantic ge/le constraints).

The key set of BasemapConfig.sublayer_overrides is treated as opaque (forward-compatible with future sublayer IDs) — see CONTEXT.md D-01.

Security: extra=“forbid” locks the D-14 scope guardrail: unknown style axes such as dash patterns, line caps, halo blur, and text-font are rejected at validation time (T-1059A-03).

object
stroke_color
Any of:
string
stroke_width
Any of:
number
<= 20
casing_color
Any of:
string
casing_width
Any of:
number
<= 20
min_zoom
Any of:
number
<= 24
max_zoom
Any of:
number
<= 24
opacity
Any of:
number
<= 1
terrain_config
Any of:
TerrainConfig
object
enabled
Enabled
boolean
source_dataset_id
Any of:
string format: uuid
exaggeration
Exaggeration
number
default: 1 <= 10
visibility
required
MapVisibility
string
Allowed values: private internal public
thumbnail_url
Any of:
string
forked_from_id
Any of:
string format: uuid
forked_from_name
Any of:
string
created_by
required
Any of:
string format: uuid
created_by_username
Any of:
string
created_at
required
Created At
string format: date-time
updated_at
required
Updated At
string format: date-time
layers
required
Layers
Array<object>
MapLayerResponse
object
id
required
Id
string format: uuid
dataset_id
required
Dataset Id
string format: uuid
dataset_name
required
Dataset Name
string
dataset_geometry_type
required
Any of:
string
dataset_table_name
required
Dataset Table Name
string
dataset_extent_bbox
required
Any of:
Array<number>
dataset_column_info
Any of:
Array<object>
object
key
additional properties
any
dataset_feature_count
Any of:
integer
dataset_sample_values
Any of:
object
key
additional properties
any
display_name
Any of:
string
sort_order
required
Sort Order
integer
visible
required
Visible
boolean
opacity
required
Opacity
number
paint
required
Paint
object
key
additional properties
any
layout
required
Layout
object
key
additional properties
any
layer_type
Layer Type
string
default: vector_geolens
dataset_record_type
Any of:
string
filter
Any of:
Array
label_config
Any of:
object
key
additional properties
any
popup_config
Any of:
PopupConfig

Per-layer popup configuration: enable/disable + custom title template

  • ordered visible-fields allowlist. Persisted as JSONB on map_layers.
object
enabled
required
Enabled
boolean
expression
Any of:
string
<= 500 characters
visible_fields
Any of:
Array<string>
<= 100 items
style_config
Any of:
object
key
additional properties
any
show_in_legend
Show In Legend
boolean
default: true
is_3d
Any of:
boolean
is_dem
Any of:
boolean
dem_vertical_units
Any of:
string
layer_count
required
Layer Count
integer
widgets
Any of:
Array<string>
Example
{
"basemap_config": {
"label_mode": "full",
"road_visibility": "full",
"boundary_visibility": "full",
"building_visibility": true,
"land_water_tone": "default",
"relief_contrast": "soft",
"opacity": 1
},
"terrain_config": {
"enabled": false,
"exaggeration": 1
},
"visibility": "private",
"layers": [
{
"layer_type": "vector_geolens",
"show_in_legend": true
}
]
}

Bad request — invalid payload

Unauthorized — missing or invalid credentials

Forbidden — caller lacks write access

Not found

Conflict — resource state prevents the operation

Validation error

Internal server error