Skip to content
getgeolens.com

Probe Service Url

POST
/services/probe/
curl --request POST \
--url https://example.com/services/probe/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "token": "example", "url": "example" }'

Probe a remote service URL to detect its type and list available layers.

Validates the URL against SSRF, detects whether it is a WFS or ArcGIS service, and returns a unified layer list. All attempts are audit-logged.

Media type application/json
ProbeRequest
object
token
Any of:
string
<= 1000 characters
url
required
Url

Service URL to probe. May be a WFS GetCapabilities URL or an ArcGIS service endpoint.

string
>= 1 characters <= 2048 characters
Example generated
{
"token": "example",
"url": "example"
}

Successful Response

Media type application/json
ProbeResponse
object
layers
required
Layers

Layers exposed by the probed service.

Array<object>
LayerInfo
object
feature_count
Any of:
integer
geometry_type
Any of:
string
kind
Kind

Backend-classified layer kind. ‘vector’ = point/line/polygon feature data. ‘raster’ = imagery/coverage. Per Phase 1057 CLASS-07 D-09. Classification rule: raster IFF geometry_type contains ‘raster’, adapter is STAC, or layer has coverage_format/bands/mediaType:image/*. Everything else (including geometry_type=None after D-05 ogrinfo drop) defaults to ‘vector’.

string
default: vector
Allowed values: vector raster
layer_id
Any of:
integer
layer_type
Layer Type

Layer kind: ‘layer’ (spatial) or ‘table’ (non-spatial attribute table).

string
default: layer
name
required
Name

Internal layer identifier used by the source service.

string
object_id_field
Any of:
string
title
Any of:
string
selected_layer_id
Any of:
integer
service_type
required
Service Type

Detected service type, e.g. ‘WFS 2.0’ or ‘ArcGIS FeatureServer’.

string
url
required
Url

Normalized service URL after probing.

string
Example
{
"layers": [
{
"kind": "vector",
"layer_type": "layer"
}
]
}

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"
}