Skip to content
getgeolens.com

Create Map Endpoint

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

Create a new map.

Media type application/json
MapCreate
object
basemap_config
Any of:
BasemapConfig
object
background_color
Any of:
string
basemap_position
Any of:
BasemapPosition

Whether the basemap renders below (‘bottom’, default) or above (‘top’) data layers.

string
Allowed values: bottom top
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
label_mode
BasemapLabelMode

Basemap label prominence.

string
default: full
Allowed values: full subtle hidden
land_water_tone
BasemapLandWaterTone

Land and water color treatment where supported.

string
default: default
Allowed values: default muted contrast monochrome
opacity
Opacity

Master basemap opacity 0.0-1.0

number
default: 1 <= 1
projection
Any of:
BasemapProjection

Map projection. ‘mercator’ (default) or experimental ‘globe’.

string
Allowed values: mercator globe
relief_contrast
Any of:
BasemapReliefContrast
string
Allowed values: soft standard strong
road_visibility
BasemapSublayerVisibility

Road and transit sublayer visibility where supported.

string
default: full
Allowed values: full subtle hidden
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
casing_color
Any of:
string
casing_width
Any of:
number
<= 20
max_zoom
Any of:
number
<= 24
min_zoom
Any of:
number
<= 24
opacity
Any of:
number
<= 1
stroke_color
Any of:
string
stroke_width
Any of:
number
<= 20
description
Any of:
string
<= 2000 characters
name
required
Name

Map display name

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

Successful Response

Media type application/json
MapResponse
object
basemap_config
Any of:
BasemapConfig
object
background_color
Any of:
string
basemap_position
Any of:
BasemapPosition

Whether the basemap renders below (‘bottom’, default) or above (‘top’) data layers.

string
Allowed values: bottom top
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
label_mode
BasemapLabelMode

Basemap label prominence.

string
default: full
Allowed values: full subtle hidden
land_water_tone
BasemapLandWaterTone

Land and water color treatment where supported.

string
default: default
Allowed values: default muted contrast monochrome
opacity
Opacity

Master basemap opacity 0.0-1.0

number
default: 1 <= 1
projection
Any of:
BasemapProjection

Map projection. ‘mercator’ (default) or experimental ‘globe’.

string
Allowed values: mercator globe
relief_contrast
Any of:
BasemapReliefContrast
string
Allowed values: soft standard strong
road_visibility
BasemapSublayerVisibility

Road and transit sublayer visibility where supported.

string
default: full
Allowed values: full subtle hidden
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
casing_color
Any of:
string
casing_width
Any of:
number
<= 20
max_zoom
Any of:
number
<= 24
min_zoom
Any of:
number
<= 24
opacity
Any of:
number
<= 1
stroke_color
Any of:
string
stroke_width
Any of:
number
<= 20
basemap_style
required
Basemap Style
string
bearing
required
Bearing
number
center_lat
required
Any of:
number
center_lng
required
Any of:
number
created_at
required
Created At
string format: date-time
created_by
required
Any of:
string format: uuid
created_by_username
Any of:
string
description
required
Any of:
string
forked_from_id
Any of:
string format: uuid
forked_from_name
Any of:
string
id
required
Id
string format: uuid
layer_count
required
Layer Count
integer
layers
required
Layers
Array<object>
MapLayerResponse
object
band_count
Any of:
integer
dataset_column_info
Any of:
Array<object>
object
key
additional properties
any
dataset_extent_bbox
required
Any of:
Array<number>
dataset_feature_count
Any of:
integer
dataset_geometry_type
required
Any of:
string
dataset_id
required
Dataset Id
string format: uuid
dataset_name
required
Dataset Name
string
dataset_record_type
Any of:
string
dataset_sample_values
Any of:
object
key
additional properties
any
dataset_table_name
required
Dataset Table Name
string
dem_vertical_units
Any of:
string
display_name
Any of:
string
filter
Any of:
Array
id
required
Id
string format: uuid
is_3d
Any of:
boolean
is_dem
Any of:
boolean
label_config
Any of:
object
key
additional properties
any
layer_type
Layer Type
string
default: vector_geolens
layout
required
Layout
object
key
additional properties
any
opacity
required
Opacity
number
paint
required
Paint
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
show_in_legend
Show In Legend
boolean
default: true
sort_order
required
Sort Order
integer
style_config
Any of:
object
key
additional properties
any
visible
required
Visible
boolean
legend_title
Any of:
string
name
required
Name
string
notes
Any of:
string
og_image_url
Any of:
string
pitch
required
Pitch
number
plugins
Any of:
Array<string>
show_basemap_labels
required
Show Basemap Labels
boolean
terrain_config
Any of:
TerrainConfig
object
enabled
Enabled
boolean
exaggeration
Exaggeration
number
default: 1 <= 10
source_dataset_id
Any of:
string format: uuid
thumbnail_url
Any of:
string
updated_at
required
Updated At
string format: date-time
visibility
required
MapVisibility
string
Allowed values: private internal public
zoom
required
Any of:
number
Example
{
"basemap_config": {
"basemap_position": "bottom",
"boundary_visibility": "full",
"building_visibility": true,
"label_mode": "full",
"land_water_tone": "default",
"opacity": 1,
"projection": "mercator",
"relief_contrast": "soft",
"road_visibility": "full"
},
"layers": [
{
"layer_type": "vector_geolens",
"show_in_legend": true
}
],
"terrain_config": {
"enabled": false,
"exaggeration": 1
},
"visibility": "private"
}

Bad request — invalid payload

ProblemDetail
object
detail
required
Detail
string
status
required
Status
integer
title
required
Title
string
type
Type
string
default: about:blank
Example
{
"type": "about:blank"
}

Unauthorized — missing or invalid credentials

ProblemDetail
object
detail
required
Detail
string
status
required
Status
integer
title
required
Title
string
type
Type
string
default: about:blank
Example
{
"type": "about:blank"
}

Forbidden — caller lacks write access

ProblemDetail
object
detail
required
Detail
string
status
required
Status
integer
title
required
Title
string
type
Type
string
default: about:blank
Example
{
"type": "about:blank"
}

Not found

ProblemDetail
object
detail
required
Detail
string
status
required
Status
integer
title
required
Title
string
type
Type
string
default: about:blank
Example
{
"type": "about:blank"
}

Conflict — resource state prevents the operation

ProblemDetail
object
detail
required
Detail
string
status
required
Status
integer
title
required
Title
string
type
Type
string
default: about:blank
Example
{
"type": "about:blank"
}

Validation error

ProblemDetail
object
detail
required
Detail
string
status
required
Status
integer
title
required
Title
string
type
Type
string
default: about:blank
Example
{
"type": "about:blank"
}

Internal server error

ProblemDetail
object
detail
required
Detail
string
status
required
Status
integer
title
required
Title
string
type
Type
string
default: about:blank
Example
{
"type": "about:blank"
}