The DSM and True Ortho API uses the Staticmap v2 API to return coverage information and raster image content for a user-specified area. First, call GET /staticmap/v2/coverage.json to find available surveys and retrieve a transaction token. Then call GET /staticmap/v2/surveys/{surveyId}/{type}.{format} to download imagery for the same area.
The DSM and True Ortho API provides access to DetailDsm, TrueOrtho, and Vert imagery for a user-specified area.
Subscription required. The DSM and True Ortho API requires a separate subscription. Contact your Nearmap Account Manager to enable access.
Content types
| Type | Description |
|---|---|
DetailDsm | Digital Surface Model — elevation data derived from captured imagery, representing the top of visible surfaces (roofs, trees, ground). |
TrueOrtho | Geometrically corrected aerial imagery with no building lean or perspective distortion. |
Vert | Standard top-down vertical imagery. |
Each content type may have a different native pixel resolution. The coverage.json response includes pixelSizes per type, allowing you to calculate the appropriate size parameter for your image request.
How it works
The API follows a two-step transaction model. You must complete both steps in sequence.
Step 1 - Request coverage
Call GET /staticmap/v2/coverage.json with your AOI (defined by a center point and radius). The response returns available surveys along with a Transaction Token to authorize subsequent image requests for the same AOI.
Step 2 - Request imagery
Call GET /staticmap/v2/surveys/{surveyId}/{type}.{format} using the surveyId and transactionToken from the coverage response. Repeat this call with different type values to retrieve multiple content types for the same area until the token expires.
Endpoints
Get coverage and transaction token
GET https://api.nearmap.com/staticmap/v2/coverage.json
Returns available survey resources for the given AOI, ordered from most to least recent, along with a Transaction Token to use for image retrieval.
Query parameters
| Parameter | Required | Description |
|---|---|---|
apikey | Yes | Your Nearmap API key. See Authentication. |
point | Yes | Centre of the AOI as longitude,latitude (WGS84 decimal degrees). Example: 144.967761,-37.821139. |
radius | Yes | Radius of the AOI in metres. Maximum: 100. |
resources | Yes | Comma-separated list of content types to check availability for. Accepted values: Vert, DetailDsm, TrueOrtho. Example: Vert,DetailDsm,TrueOrtho. |
since | No | Return only surveys captured on or after this date. Accepts YYYY-MM-DD or a relative value such as 24M (24 months ago). |
until | No | Return only surveys captured on or before this date (YYYY-MM-DD). |
filter | No | Controls whether returned surveys must match all requested resource types (allTypes, default) or at least one requested type (anyTypes). |
Example request
GET https://api.nearmap.com/staticmap/v2/coverage.json?point=144.967761,-37.821139&radius=50&resources=Vert,DetailDsm,TrueOrtho&since=24M&filter=allTypes&apikey={YOUR_API_KEY}
Example response
{
"surveys": [
{
"captureDate": "2021-10-27",
"firstPhotoTime": "2021-10-26T22:02:08Z",
"id": "96a07752-41b1-11ec-b551-0303fe0a0115",
"lastPhotoTime": "2021-11-29T22:01:51Z",
"pixelSizes": {
"DetailDsm": 0.15,
"TrueOrtho": 0.055,
"Vert": 0.055
}
}
],
"limit": 20,
"offset": 0,
"total": 1,
"transactionToken": "{YOUR_TRANSACTION_JWT}"
}Response fields
| Field | Description |
|---|---|
surveys[].id | Survey ID. Pass this as surveyId in the image retrieval endpoint. |
surveys[].captureDate | Survey date in the local timezone of the capture location. |
surveys[].firstPhotoTime / lastPhotoTime | UTC timestamps of the first and last photos in the survey. |
surveys[].pixelSizes | Ground Sample Distance (GSD) in meters for each available content type. Use these to calculate the appropriate size for image requests. |
transactionToken | Token authorizing image retrieval for this AOI. Valid for 30 days from the coverage call, this can be reused for all subsequent image requests within the same AOI. |
Retrieve imagery
GET https://api.nearmap.com/staticmap/v2/surveys/{surveyId}/{type}.{format}
Returns a raster image for the specified survey, content type, and output format, centered on the same point and radius as the coverage request.
Path parameters
| Parameter | Description |
|---|---|
surveyId | The survey ID from the coverage.json response. |
type | Content type: DetailDsm, TrueOrtho, or Vert. |
format | format can be tif, jpg, png, jgw, pgw, or tfw. tif is recommended for GeoTIFF for DSM and True Ortho. |
Query parameters
| Parameter | Required | Description |
|---|---|---|
transactionToken | Yes | The token returned by coverage.json. |
point | Yes | Centre of the AOI as longitude,latitude. Must match the AOI from the coverage call. |
radius | Yes | Radius in meters. Must be within the AOI from the coverage call. Maximum: 100. |
size | Yes | Output image dimensions in pixels as {width}x{height}. Maximum: 5000x5000. The image resolution (GSD) is determined by (2 × radius) / size. |
Example request — True Ortho as GeoTIFF
GET https://api.nearmap.com/staticmap/v2/surveys/dc26410e-6331-11ea-9feb-eb1617c46d8e/TrueOrtho.tif?point=151.0904291,-33.724291&radius=100&size=5000x5000&transactionToken={TRANSACTION_TOKEN}
Example request — DSM
GET https://api.nearmap.com/staticmap/v2/surveys/dc26410e-6331-11ea-9feb-eb1617c46d8e/DetailDsm.tif?point=151.0904291,-33.724291&radius=100&size=5000x5000&transactionToken={TRANSACTION_TOKEN}
Service limits
| Limit | Value |
|---|---|
| Maximum AOI radius | 100 m (equivalent to a 200×200 m area) |
| Maximum image dimensions | 5000×5000 px |
| Transaction token validity | 30 days from the coverage call |
Transaction costs
The coverage response creates a transaction token. Once you successfully retrieve the first image with that token, the transaction is counted against your monthly allowance. Additional image requests within the same AOI do not incur extra usage costs for 30 days from the coverage call.
Controlling image resolution
Image resolution (pixel size / GSD) is a function of radius and size:
GSD (m/px) = (2 × radius) / pixel_dimension
For example, with radius=100 and size=5000x5000:
GSD = (2 × 100) / 5000 = 0.04 m/px
Note that DSM and True Ortho have different native resolutions (DetailDsm ≈ 0.15 m, TrueOrtho ≈ 0.055 m). Requesting both at the same size will over- or under-sample one relative to its native resolution. Refer to the pixelSizes values in the coverage response to calculate the optimal size for each type independently.
Related
Read the coverage response
The transaction token encodes the user credentials and restricts the image to be returned for the same area as the one requested by the coverage request.
IMPORTANT: Keep your Transaction Token in a safe place. Persist your token if you want to reuse it and download multiple images.