AVAILABLE
Developer Tools
GeoJSON Inspect & Geometry Guard
Inspect, normalize, bound, point-test, and apply explicit policy to RFC 7946 GeoJSON without fetching maps, geocoding, transforming a CRS, or storing payloads.
CONTRACT
Predictable for agents. Legible for reviewers.
- REST
POST /v1/geojson/policy-check- MCP tool
check_geojson_policy- Inputs
- One GeoJSON object or strict JSON string up to 512 KiB. Operations enforce 5,000 features, 250,000 positions, 64 levels, bounded findings, and explicit precision, topology, bbox, winding, antimeridian, and property policies.
- Returns
- CLEAR, REVIEW_REQUIRED, or BLOCKED with counts, geometry types, calculated bbox, topology and antimeridian evidence, hashes, named findings, and an agent-readable next action.
- Latency
- Synchronous
- Usage unit
- GeoJSON operation
The suite also exposes /v1/geojson/inspect, /v1/geojson/normalize, /v1/geojson/bbox, and /v1/geojson/point-test plus /mcp/geojson. It follows RFC 7946 longitude/latitude axis order. Point predicates are planar and reject antimeridian-spanning geometry; they are not geodesic, cadastral, routing, geocoding, or map-data decisions.
AGENT-READABLE EXCEPTIONS
GEOJSON_PARSE_ERRORGEOJSON_CRS_MEMBER_FORBIDDENGEOJSON_COORDINATE_RANGE_INVALIDGEOJSON_TOPOLOGY_INVALIDGEOJSON_ANTIMERIDIAN_UNSUPPORTEDGEOJSON_PRECISION_NOT_ALLOWEDGEOJSON_PROPERTY_NOT_ALLOWEDGEOJSON_OUTPUT_TOO_LARGEHTTP request
POST /v1/geojson/policy-check
Authorization: Bearer apc_...
Content-Type: application/json
{
"document": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"site_id": "DEN-1"
},
"geometry": {
"type": "Point",
"coordinates": [
-104.9903,
39.7392
]
}
}
]
},
"allowed_types": [
"FeatureCollection"
],
"max_features": 100,
"max_positions": 10000,
"max_coordinate_precision": 6,
"require_valid_topology": true,
"allow_null_geometry": false,
"allow_antimeridian": false,
"allowed_property_names": [
"site_id"
],
"require_property_allowlist": true
}cURL (bash)
curl --request POST \
--url 'https://api-production-9502.up.railway.app/v1/geojson/policy-check' \
--header 'Authorization: Bearer ${AP_CONTROL_API_KEY}' \
--header 'Content-Type: application/json' \
--data '{
"document": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"site_id": "DEN-1"
},
"geometry": {
"type": "Point",
"coordinates": [
-104.9903,
39.7392
]
}
}
]
},
"allowed_types": [
"FeatureCollection"
],
"max_features": 100,
"max_positions": 10000,
"max_coordinate_precision": 6,
"require_valid_topology": true,
"allow_null_geometry": false,
"allow_antimeridian": false,
"allowed_property_names": [
"site_id"
],
"require_property_allowlist": true
}'Representative response
{
"status": "COMPLETED",
"decision": "CLEAR",
"permitted": true,
"metadata": {
"root_type": "FeatureCollection",
"feature_count": 1,
"geometry_count": 1,
"position_count": 1,
"geometry_types": [
"Point"
],
"dimensions": [
2
],
"max_coordinate_precision": 4,
"calculated_bbox": [
-104.9903,
39.7392,
-104.9903,
39.7392
],
"crosses_antimeridian": false,
"source_sha256": "83c1...",
"canonical_sha256": "83c1..."
},
"findings": [],
"ruleset_version": "2026-08-11",
"static_analysis_only": true,
"geocoding_performed": false,
"crs_transformed": false,
"network_access_performed": false,
"payload_stored": false,
"next_action": "Continue only within the supplied static policy; validate downstream map, privacy, and authorization requirements separately."
}Use GeoJSON Inspect & Geometry Guard through RapidAPI.
Choose a capped marketplace plan, copy the generated request, and route the structured result through your own authorized workflow.