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 '{ "url": "example", "token": "example", "auth": { "method": "bearer", "token": "example", "username": "example", "password": "example", "header_name": "example", "header_value": "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
url
required
Url

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

string
>= 1 characters <= 2048 characters
token
Any of:
string
<= 1000 characters
auth
Any of:
ServiceAuthRequest

How one request authenticates to the remote service it names.

object
method
required
Method

How the credential is presented to the remote service. Omit the whole auth object for a public service.

string
Allowed values: bearer basic header
token
Any of:
string
<= 1000 characters
username
Any of:
string
<= 255 characters
password
Any of:
string
<= 1000 characters
header_name
Any of:
string
<= 255 characters
header_value
Any of:
string
<= 1000 characters

Successful Response

Media type application/json
ProbeResponse
object
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
layers
required
Layers

Layers exposed by the probed service.

Array<object>
LayerInfo
object
name
required
Name

Internal layer identifier used by the source service.

string
title
Any of:
string
geometry_type
Any of:
string
feature_count
Any of:
integer
layer_type
Layer Type

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

string
default: layer
layer_id
Any of:
integer
object_id_field
Any of:
string
kind
Kind

Backend-classified layer kind. ‘vector’ = point/line/polygon feature data. ‘raster’ = imagery/coverage. Classified as ‘raster’ when geometry_type contains ‘raster’, the adapter is STAC, the layer declares coverage_format or bands, or one of its links has a media type of image/*. Everything else, including a layer with no geometry_type at all, defaults to ‘vector’.

string
default: vector
Allowed values: vector raster
selected_layer_id
Any of:
integer
Example
{
"layers": [
{
"layer_type": "layer",
"kind": "vector"
}
]
}

Bad request — invalid payload

Media type application/problem+json
ProblemDetail
object
type
Type
string
default: about:blank
title
required
Title
string
status
required
Status
integer
detail
required
Any of:
string
Example
{
"detail": "Dataset not found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}

Unauthorized — missing or invalid credentials

Media type application/problem+json
ProblemDetail
object
type
Type
string
default: about:blank
title
required
Title
string
status
required
Status
integer
detail
required
Any of:
string
Example
{
"detail": "Dataset not found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}

Forbidden — caller lacks write access

Media type application/problem+json
ProblemDetail
object
type
Type
string
default: about:blank
title
required
Title
string
status
required
Status
integer
detail
required
Any of:
string
Example
{
"detail": "Dataset not found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}

Not found

Media type application/problem+json
ProblemDetail
object
type
Type
string
default: about:blank
title
required
Title
string
status
required
Status
integer
detail
required
Any of:
string
Example
{
"detail": "Dataset not found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}

Conflict — resource state prevents the operation

Media type application/problem+json
ProblemDetail
object
type
Type
string
default: about:blank
title
required
Title
string
status
required
Status
integer
detail
required
Any of:
string
Example
{
"detail": "Dataset not found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}

Validation error

Media type application/problem+json
ProblemDetail
object
type
Type
string
default: about:blank
title
required
Title
string
status
required
Status
integer
detail
required
Any of:
string
Example
{
"detail": "Dataset not found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}

Too many requests — retry after the advertised interval

Media type application/problem+json
ProblemDetail
object
type
Type
string
default: about:blank
title
required
Title
string
status
required
Status
integer
detail
required
Any of:
string
Example
{
"detail": "Dataset not found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}
Retry-After
integer

Seconds until the request may be retried

Internal server error

Media type application/problem+json
ProblemDetail
object
type
Type
string
default: about:blank
title
required
Title
string
status
required
Status
integer
detail
required
Any of:
string
Example
{
"detail": "Dataset not found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}

Service unavailable — the database could not serve the request

Media type application/problem+json
ProblemDetail
object
type
Type
string
default: about:blank
title
required
Title
string
status
required
Status
integer
detail
required
Any of:
string
Example
{
"detail": "Dataset not found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}