> For the complete documentation index, see [llms.txt](https://learn.spexi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learn.spexi.com/api-reference/image-api/search-images.md).

# GET Search images

## GET /developer-api/api/v1/image

> Search images

```json
{"openapi":"3.0.3","info":{"title":"Spexi Developer API","version":"1.0.0"},"servers":[{"url":"https://world.spexi.com","description":"Production"}],"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"components":{"securitySchemes":{"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"API key passed via request header. Either this or the `api_key` query parameter is required."},"ApiKeyQuery":{"type":"apiKey","in":"query","name":"api_key","description":"API key passed as a query parameter. Either this or the `x-api-key` header is required."}},"schemas":{"ImageSearchResponse":{"type":"object","properties":{"type":{"type":"string","enum":["FeatureCollection"]},"features":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["Feature"]},"geometry":{"type":"object","properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{}}}},"required":["type","coordinates"],"description":"Geographic area captured within the image (footprint)."},"properties":{"type":"object","properties":{"id":{"type":"string","description":"Encoded image identifier (SID)."},"key":{"type":"string","description":"Unique identifier for the image."},"url":{"type":"string","format":"uri","description":"S3 URL to the image."},"captureType":{"type":"string","description":"Type of image capture (e.g., panorama, orthomosaic, oblique)."},"heading":{"type":"number","description":"Camera heading in degrees [0, 360), 0 is north."},"pitch":{"type":"number","description":"Camera angle below horizontal in degrees [-135, 45], -90 is nadir."},"roll":{"type":"number","description":"Camera roll in degrees."},"altitude":{"type":"number","description":"Altitude above ground level in meters."},"tag":{"type":"string","description":"Optional tag for grouping images."},"attributes":{"type":"object","additionalProperties":{},"description":"Additional metadata stored as JSON."},"capturedAt":{"type":"string","description":"Timestamp when image was captured."},"processedAt":{"type":"string","description":"Timestamp when image was processed."},"cameraPosition":{"type":"object","properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{}},"required":["type","coordinates"],"description":"2D point location of the camera at time of capture."},"distance":{"type":"number","description":"Distance in meters from the query point (only present when querying by point)."}},"required":["id","key","url","captureType","heading","pitch","roll","altitude","capturedAt","processedAt","cameraPosition"]},"links":{"type":"array","items":{"type":"object","properties":{"rel":{"type":"string","description":"Link relation type."},"href":{"type":"string","format":"uri","description":"URL of the linked resource."},"type":{"type":"string","description":"Media type of the linked resource."},"title":{"type":"string","description":"Human-readable title for the link."}},"required":["rel","href"]},"description":"Links to image variants."}},"required":["id","type","geometry","properties"]}},"next":{"type":"string","format":"uri","description":"URL to fetch the next page of results, if more exist."},"numberReturned":{"type":"number","description":"The number of features in the response."}},"required":["type","features","numberReturned"]}}},"paths":{"/developer-api/api/v1/image":{"get":{"operationId":"ImageController_searchImages","parameters":[{"name":"p","required":false,"in":"query","description":"A point of interest to query with an optional radius search parameter in the format longitude,latitude[,radiusMeters]. Returns images that view any portion of the specified point or radius area.","schema":{"type":"string"}},{"name":"bbox","required":false,"in":"query","description":"An area of interest to query in the format `minLon,minLat,maxLon,maxLat`.","schema":{"type":"string"}},{"name":"polygon","required":false,"in":"query","description":"Polygon coordinates to query, in WKT format. Maximum polygon bounding box area: 1 km².","schema":{"type":"string"}},{"name":"heading","required":false,"in":"query","description":"Camera heading in degrees, expressed as an inclusive range [hmin, hmax], or as a single value.\nRange: [0, 360), where 0 is north, 90 is east, etc.\nBy default, no filter is applied.\nNote that a slight margin is applied to the edges to avoid filtering images at the edges of the range.","schema":{"type":"string"}},{"name":"pitch","required":false,"in":"query","description":"Camera angle below horizontal in degrees, expressed as an inclusive range [pmin, pmax], or as a single value.\nRange: [-135, 45], where -90 is directly downward (nadir), -60 is oblique, and -30 is more horizontal.\nBy default, no filter is applied.\nNote that a slight margin is applied to the edges to avoid missing images at the edges of the range.","schema":{"type":"string"}},{"name":"altitude","required":false,"in":"query","description":"Camera altitude above ground level in meters, expressed as an inclusive range [amin, amax], or as a single value.\nRange: [0, 10000], where 0 is ground level and 10000m is the practical maximum.\nBy default, no filter is applied.\nNote that a slight margin is applied to the edges to avoid missing images at the edges of the range.","schema":{"type":"string"}},{"name":"captured_at","required":false,"in":"query","description":"Image capture timestamp, expressed as an inclusive range [start, end], or as a single value.\nFormat: Any valid JavaScript date format (e.g., \"2023-01-01T00:00:00Z\", \"2023-01-01\", \"Jan 1, 2023\").\nBy default, no filter is applied.","schema":{"type":"string"}},{"name":"capture_type","required":false,"in":"query","description":"Filter by image capture type(s). Can be a single type or comma-separated list.\nValid values: panorama, orthomosaic, oblique.\nExample: \"panorama\" or \"panorama,oblique\".\nBy default, no filter is applied.","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","description":"Maximum number of images to return. The default is 100.","schema":{"minimum":1,"maximum":1000,"default":100,"type":"integer"}},{"name":"cursor","required":false,"in":"query","description":"Pagination token for retrieving subsequent result sets. Obtained from previous response when additional results exist.","schema":{"pattern":"^[aV64kbEPFOzgpjAGnN710Bvw8sucxrIQyXtdRJfMqK39CZUhoiLS2DWeH5mYlT]+$","type":"string"}},{"name":"focused","required":false,"in":"query","description":"Apply advanced filtering to prioritize images where the point/area of interest is prominently featured.","schema":{"default":true,"oneOf":[{"type":"boolean"},{"type":"string"}]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImageSearchResponse"}}}}},"summary":"Search images","tags":["Image"]}}}}
```
