type string
The document's top-level GeoJSON type. Always present, because an unresolvable type is an error and errors are refused.
example: FeatureCollection
objectCounts object
One key per GeoJSON type — Feature, FeatureCollection, Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection — always all nine present, zeros included. Geometries nested inside GeometryCollections and Features are counted.
example: {"Point":1,"MultiPoint":0,"LineString":0,"MultiLineString":0,"Polygon":1,"MultiPolygon":0,"GeometryCollection":0,"Feature":2,"FeatureCollection":1}
positionCount integer
Total positions across every geometry, counting each ring's repeated closing position every time it appears.
example: 6
ringCount integer
Linear rings across all Polygons and MultiPolygons, exterior and interior.
example: 1
unlocatedFeatureCount integer
Features whose 'geometry' is null. RFC 7946 §3.2 calls these unlocated; they are legal and render nothing.
example: 0
emptyGeometryCount integer
Geometries with an empty 'coordinates' array. RFC 7946 §3.1 lets processors treat these as null objects, so they can silently vanish.
example: 0
hasAltitude boolean
At least one position carries the optional third element, which RFC 7946 §4 defines as height in metres above or below the WGS 84 reference ellipsoid.
example: false
mixedDimensions boolean
True when some positions have two elements and others three. Legal, but it makes RFC 7946 §5's 2*n bbox length ambiguous.
example: false
elevationRange object nullable
{ minMeters, maxMeters } over the third elements present, rounded to 3 decimals; null when no position has one.
example: null
bbox object nullable
Computed bounding box as { array, west, south, east, north }. 'array' is the ready-to-paste RFC 7946 §5 member, always the four-element two-dimensional form [west, south, east, north], rounded to 9 decimals; the named members repeat it so nothing depends on positional order. The 2-D form is emitted even for 3-D documents, because §5's 2*n rule is ambiguous for a document that mixes 2- and 3-element positions; the height extent is reported separately as 'elevationRange'. It is the extent of the positions themselves and nothing more: when a ring encircles a pole the box does not cover the polar cap that ring bounds, because §5.3's spherical-cap form ([-180, minlat, 180, 90]) is an inference about intent rather than a measurement — a meta.warnings entry says so, and the ring's 'winding' and 'areaSquareMeters' are refused for the same reason. null when the document contains no position.
example: {"array":[100,0,102,1],"west":100,"south":0,"east":102,"north":1}
bboxCrossesAntimeridian boolean
True when the chosen longitude interval wraps ±180, in which case west is greater than east exactly as RFC 7946 §5.2 requires. A meta.warnings entry says so in words.
example: false
bboxAlternative object nullable
The rejected candidate longitude interval, in the same shape as 'bbox'. Of the two intervals covering every position — the plain min→max interval and the one that wraps the antimeridian — this endpoint emits the narrower and hands you the other, because for a sparse global point set the narrower interval can be the wrong intent. On an exact tie (longitudes -179 and 1, say, where both intervals span 180 degrees) the plain box wins and the wrapped one is still disclosed here, because equally narrow is not the same as identical. null only when there is a single candidate — when the widest gap between consecutive longitudes is the gap across ±180 itself, so the minimal covering interval already is the plain one.
example: null
bboxCenter object nullable
{ longitude, latitude } — the centre of the emitted box, longitude normalised to [-180, 180). Not a centre of mass, not an area centroid, not the mean of the positions. null when 'bbox' is null.
example: {"longitude":101,"latitude":0.5}
declaredBbox object nullable
The document's own root-level 'bbox' member as { array, dimensions, west, south, east, north }. 'array' is the member verbatim — unrounded, and either 4 or 6 elements — and 'dimensions' is §5's n, so a 3-D box keeps its height axes; the named edges are read from the §5 positions (indices 0, 1 and 3, 4 for the 6-element form). null when the member is absent, or when it is unusable: not an array, not length 4 or 6, or carrying an element that parsed to a non-finite number. Nested 'bbox' members on Features and Geometries are legal under §5 and are shape-checked by /validate, but are not read here.
example: null
declaredBboxContainsGeometry boolean nullable
Whether the declared root bbox contains every position. Antimeridian-aware: when its west exceeds its east the longitude interval is [west, 180] plus [-180, east], per RFC 7946 §5.2. Elevation-aware: RFC 7946 §5 says a bbox's edges follow lines of constant longitude, latitude and elevation, so a six-element box's height axes (indices 2 and 5, read as the interval they span) are also compared against every position that carries a third element — a four-element box declares no height extent, and a two-element position carries none, so neither is compared. null when there is no usable declared bbox.
example: null
lengthMeters float nullable
Great-circle length of every LineString and MultiLineString, summed, with no connecting segment between the parts of a MultiLineString. Rounded to 3 decimals; null when the document has none.
example: null
perimeterMeters float nullable
Great-circle length of every linear ring, exterior and interior, summed. Rounded to 3 decimals; null when the document has no ring.
example: 444763.385
areaSquareMeters float nullable
Spherical area of every Polygon (exterior minus its holes), summed, rounded to 2 decimals. null when there is no polygon, or when some polygon's area cannot be computed — because its holes enclose at least as much area as its exterior, or because one of its rings encircles a pole. A wrong number would be worse than none.
example: 12363718145.18
rings object[]
Up to 100 entries in document order, each with 'path' (an RFC 6901 pointer to the ring array), 'role' (exterior|interior), 'positionCount', 'closed', 'winding' (counterclockwise|clockwise|indeterminate), 'followsRightHandRule' (boolean, or null when the winding is indeterminate) and 'areaSquareMeters' (a non-negative float, or null when indeterminate). Beyond 100 rings a meta.warnings entry says how many were omitted.
example: [{"path":"/features/1/geometry/coordinates/0","role":"exterior","positionCount":5,"closed":true,"winding":"counterclockwise","followsRightHandRule":true,"areaSquareMeters":12363718145.18}]
foreignMemberPaths string[]
Up to 50 RFC 6901 pointers to members RFC 7946 §6.1 does not define. Descendants of a foreign member are not listed separately, and values inside a Feature's 'properties' are not foreign members at all. A structural member on a type §7.1 does not forbid it on — 'coordinates' on a GeometryCollection, 'geometries' on any other Geometry — is listed here rather than invented as an error, because §3.1.8 says a GeometryCollection simply has no 'coordinates' member; the ones §7.1 does forbid are reported by /validate as errors instead.
example: []
crsMemberPresent boolean
True when a 'crs' member is present on any GeoJSON object in the document. RFC 7946 §4's note records that alternative coordinate reference systems were removed from this version, so 'crs' is now a foreign member that some consumers may still act on; this endpoint never honours it.
example: false
model string
Always "mean-earth-sphere" — the same surface /api/geodesy documents. Not an ellipsoid, not survey precision.
example: mean-earth-sphere
radiusMeters float
The IUGG mean Earth radius used for every area and length, in metres.
example: 6371008.8