Measure MapAPI

Exports and estimates

Get a project's PDF report, spreadsheet and GIS files, and what the measured work comes to, from your own software.

Two endpoints turn a project into something to hand on:

Both use the same code as the app's Export and estimate, so the numbers and files your software gets are the ones the app shows.

Export files#

Shell
curl -X POST https://api.measuremaponline.com/api/v2/projects/PROJECT_ID/export \
  -H "Authorization: $MMO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"formats": ["pdf", "csv"], "language": "en", "pdf": {"design": "survey"}}'

The answer lists a link for each file:

JSON
{
  "type": "export",
  "projectId": "Xr7Lp2Qm9KdT4wZs",
  "files": [
    {"name": "14 Harbour Road.pdf", "format": "pdf", "contentType": "application/pdf", "url": "https://storage.googleapis.com/…"},
    {"name": "14 Harbour Road.csv", "format": "csv", "contentType": "text/csv", "url": "https://storage.googleapis.com/…"}
  ],
  "expiresOn": 1792087654000
}
  • The links work for 24 hours (expiresOn). Download the files and keep your own copy; anyone with a link can download its file until then.
  • The files are built while you wait. A report of a large project can take several seconds: use a generous timeout, 60 seconds or more.
  • Your account can build up to 120 exports an hour: see Rate limits.
  • The report has no map picture: the app photographs its own map, and a server has none. Everything else is there.
  • For just the report, Get a project's report takes its options in the query: GET /projects/PROJECT_ID/pdf?design=brief.

Prices#

Prices come from your product catalogue, and reading them needs Products: read on the key, which is never given by default:

The key has Products: readThe reportincludeEstimate: trueGet a project's estimate
YesWith pricesThe estimate is addedAnswers
NoMade with every price left out403 insufficient_scope403 insufficient_scope

A product's cost price is never in a file or an answer.

The report#

Choose the report in pdf:

OptionValues
designfield (the default), survey or brief: the three designs of the app.
pageSizeA4 or LETTER
orientationportrait or landscape
pictureSizesmall, normal or big
spotsSortname or icon
includeEstimate, includeSummary, includePoints, includeSideLengths, includeProfile, includeImages, includeCompany, includeLogo, hidePricestrue or false

The report is made in your account's name, with your letterhead: your organisation's, inside one, under its report settings, as a report exported in the app.

Units#

Files are written in metric units unless you ask otherwise, with units:

JSON
{"formats": ["csv"], "units": {"system": "imperial", "length": "ft", "area": "acre"}}
SystemlengthShowsareaShows
metricmm, then kmm2m², then km²
m_nmim, then nautical milesa_haares, then hectares
hahectares
m2_ham², then hectares
imperialftft, then milessqftsq ft, then sq mi
ft_nmift, then nautical milessqydsq yd, then sq mi
ydyd, then milesacreacres
yd_nmiyd, then nautical milessqft_acresq ft, then acres
ft_inft and inches, then milesroof_squareroofing squares

A unit must belong to the system: {"system": "imperial", "area": "m2"} answers 400 invalid_body.

The estimate#

Shell
curl "https://api.measuremaponline.com/api/v2/projects/PROJECT_ID/estimate?date=2026-11-02" \
  -H "Authorization: $MMO_API_KEY"
  • A line per product, across every shape and spot that uses it, with its area and length in the product's own pricing unit, its amount before tax, and the tax at the product's rate (or the project's, when the product sets none).
  • Subtotals, taxes and totals per currency. Amounts in different currencies are never added together; mixedCurrency says when there is more than one.
  • What each shape and spot comes to on its own, under geometries, by the IDs that Get a project's measurements uses.
  • date prices the work as on that day, which decides the seasonal prices in force.