Skip to content
GuidesBlogPlaygroundDashboard

Query features by spatial predicate, bounding box, or H3 cell

$client->elements->query(?string bbox, ?string contains, ?string crosses, ?string cursor, ?string format, ?string h3, ?string intersects, ?int limit, ?string near, ?float outputBuffer, ?bool outputCentroid, ?string outputFields, ?bool outputGeometry, ?string outputInclude, ?int outputPrecision, ?float outputSimplify, ?string outputSort, ?float radius, ?string touches, ?string type, ?string within): FeatureCollection
GET/api/v1/features

Query features by spatial predicate, bounding box, or H3 cell

ParametersExpand Collapse
bbox?:optional string

Legacy shorthand. Bounding box: south,west,north,east. Use spatial predicates (near, within, intersects) instead.

contains?:optional string

Geometry that features must contain

crosses?:optional string

Geometry that features must cross

cursor?:optional string

Cursor for pagination

format?:optional string

Response format. json (default) returns paginated GeoJSON. geojson/csv/ndjson stream via chunked transfer encoding.

h3?:optional string

Legacy shorthand. H3 cell index. Use spatial predicates instead.

intersects?:optional string

Geometry that features must intersect

limit?:optional int

Maximum results (default 100, max 10000)

near?:optional string

Point geometry for proximity search (lat,lng). Requires radius.

outputBuffer?:optional float

Buffer geometry by meters

outputCentroid?:optional bool

Replace geometry with centroid

outputFields?:optional string

Comma-separated property fields to include

outputGeometry?:optional bool

Include geometry (default true)

outputInclude?:optional string

Extra computed fields: bbox, distance, center

outputPrecision?:optional int

Coordinate decimal precision (1-15, default 7)

outputSimplify?:optional float

Simplify geometry tolerance in meters

outputSort?:optional string

Sort by: distance, name, osm_id

radius?:optional float

Search radius in meters (for near) or buffer distance (for other predicates)

touches?:optional string

Geometry that features must touch

type?:optional string

Element types (comma-separated: node,way,relation)

within?:optional string

Geometry that features must be within

ReturnsExpand Collapse
list<GeoJsonFeature> features

Array of GeoJSON Feature objects

Type type

Always FeatureCollection

Query features by spatial predicate, bounding box, or H3 cell

<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

$client = new Client(apiKey: 'My API Key', environment: 'local');

$featureCollection = $client->elements->query(
  bbox: 'bbox',
  contains: 'contains',
  crosses: 'crosses',
  cursor: 'cursor',
  format: 'format',
  h3: 'h3',
  intersects: 'intersects',
  limit: 0,
  near: 'near',
  outputBuffer: 0,
  outputCentroid: true,
  outputFields: 'output[fields]',
  outputGeometry: true,
  outputInclude: 'output[include]',
  outputPrecision: 0,
  outputSimplify: 0,
  outputSort: 'output[sort]',
  radius: 0,
  touches: 'touches',
  type: 'type',
  within: 'within',
);

var_dump($featureCollection);
{
  "features": [
    {
      "geometry": {
        "coordinates": [
          2.3522,
          48.8566
        ],
        "type": "Point"
      },
      "properties": {
        "@id": "bar",
        "@type": "bar",
        "amenity": "bar",
        "cuisine": "bar",
        "name": "bar"
      },
      "type": "Feature",
      "id": "node/21154906"
    }
  ],
  "type": "FeatureCollection"
}
Returns Examples
{
  "features": [
    {
      "geometry": {
        "coordinates": [
          2.3522,
          48.8566
        ],
        "type": "Point"
      },
      "properties": {
        "@id": "bar",
        "@type": "bar",
        "amenity": "bar",
        "cuisine": "bar",
        "name": "bar"
      },
      "type": "Feature",
      "id": "node/21154906"
    }
  ],
  "type": "FeatureCollection"
}