Skip to main content

Nature, Risk and Resilience Reporting Metrics Integration API


​This API lets your organisation pull the Nature, Risk and Resilience Reporting metrics for your supplying holdings straight into your own systems, dashboards or reporting tools. Each record holds the holding's details and its baseline metrics. Where the farmer has shared a Land Management Plan, it also includes future and uplift figures. Results can be filtered by date, by when they were last updated, or by search term. A second endpoint returns the name, description and display format for every metric.
​
​To unlock the Integration API, please see this guidance.

Request

URL: https://integration-api.thelandapp.com/nature-reporting/metrics

HTTP Method: GET

Parameters type: URL query params

Parameters:

apiKey – (mandatory) API key generated by The Land App for your organisation

page – (optional) number of the page (see 3. Functionality). Default value is 0

size – (optional) size of the page (see 3. Functionality). The default value is 50. Max value is 1000

updatesSinceDate – (optional) returns only farms that have had updates on or after this date. Farms that were last updated before this date will be filtered out. Formatted: yyyy-mm-dd

asOfDate – (optional) returns each farm’s metrics as of this date. Ignores any updates to metrics after this date and filters out farms added after this date. Formatted: yyyy-mm-dd

search – (optional) phrase used to filter results by holding, leadFarmer, or mapName

Example requests:

https://integration-api.thelandapp.com/nature-reporting/metrics?apiKey={apiKey}&size=50&search=Seldon&asOfDate=2025-08-04

Response

Response HTTP codes:

- 200 if all OK

- 400 if request is wrong (proper message why it is wrong is provided)

- 500 if unhandled error on server-side occurs

Attributes in response:

Key

Data Type

Description

id

string

A unique identifier for this metrics record.

declaration

string

An ID referencing the associated declaration record.

acceptedAt

string (ISO Date)

Timestamp indicating when the declaration was accepted.

organisation

string

An ID referencing the associated organisation record (your organisation id)

map

string

An ID referencing the associated map record.

mapName

string

The name of the associated map.

status

string

The current acceptance status of the record (e.g., "accepted").

processingStatus

string

The status of the processing state of metrics (e.g., "finished").

holding

string

The name or identifier of the farming holding.

landOwnership

string

The nature of land ownership (e.g., "both").

leadFarmer

string

The name of the lead farmer.

certificates

array of strings

A list of farm certifications held (e.g., "red_tractor").

carbonAudit

string

The type or provider of the carbon audit (e.g., "farm_carbon_toolkit").

processors

array of strings

A list of processors (e.g., "Dovecote Park").

produceTypes

array of strings

A list of types of produce types (e.g., "Beef").

county

array of strings

A list of counties where the holding is located (e.g., "Northumberland").

country

array of strings

A list of countries where the holding is located (e.g., "England").

createdAt

string (ISO Date)

Timestamp indicating when the record was initially created.

baseLineArea

number

The calculated baseline area in hectares.

updatedAt

string (ISO Date)

Timestamp indicating when the record was last updated.

metrics

list of objects

List of metrics objects (key, baseline, future, uplift)

anonymisation (optional)

boolean

If true, indicates that mapName, holding, and leadFarmer are all anonymised. Set by the user who has done the land declaration.

Key

Data Type

Description

key

string

A unique identifier for this metric.

baseline

string/float/integer

The score generated for this metric from the "Baseline Habitat Assessment", which describes the current layout of the farm's habitats.

future (optional)

string/float/integer

The score generated for this metric from the "Land Management Plan", which describes the future layout of the farm's habitats.

Note: Can be an empty string (“”) if not applicable for a certain farm (e.g winter_cover_ha/”Cropland with winter cover (ha)” can have the baseline value of “” if there is no cropland on the farm, as the metric is not applicable).

uplift (optional)

string/float/integer

future score minus baseline score

*depending on the metric type: see the possible type values here

Response model

JSON

{

page: 0,

size: 20,

hasNext: true,

data: [

{

id: string,

declaration: string,

acceptedAt: string (ISO DATE),

organisation: string,

map: string,

mapName: string,

status: string,

processingStatus: string,

holding: string,

landOwnership: string,

leadFarmer: string,

certificates: array,

carbonAudit: string,

processors: array,

produceTypes: array,

county: array,

country: array,

createdAt: string (ISO DATE),

baseLineArea: number,

updatedAt: string (ISO DATE),

__v: 0,

metrics: [

{

key: string,

baseline: number,

future: number,

uplift: number

},

...

],

},

…

],

};

Example response

JSON

{

"page": 0,

"size": 50,

"hasNext": true,

"data": [

{

"id": "6927a50b5461cc91b5700109",

"declaration": "6926fe82eebe6abf1f998d94",

"acceptedAt": "2025-11-26T13:20:57.956Z",

"organisation": "5f58c88053e4f40012156618",

"map": "68f60e77868001863250d5b0",

"mapName": "Barwhillanty_Demo",

"status": "accepted",

"processingStatus": "finished",

"holding": "Demo - Barwillhanty ",

"landOwnership": "owner",

"leadFarmer": "Land App demo",

"certificates": [

"red_tractor"

],

"carbonAudit": "agrecalc",

"processors": [

"None"

],

"produceTypes": [

"Beef",

"Venison",

"Venison (Organic)"

],

"county": [

"Dumfries and Galloway"

],

"country": [

"Scotland"

],

"createdAt": "2025-11-27T01:10:35.604Z",

"baseLineArea": 2035.7409315803645,

"updatedAt": "2025-11-27T01:11:00.843Z",

"__v": 0,

"metrics": [

{

"key": "habitatBngUnits",

"baseline": 9962.23590235076

},

{

"key": "habitatBngDensity",

"baseline": 4.893665862785882

},

{

"key": "watercourseBngUnits",

"baseline": 0

},

{

"key": "watercourseBngDensity",

"baseline": 0

},

{

"key": "hedgerowBngUnits",

"baseline": 0

},

{

"key": "hedgerowBngDensity",

"baseline": 0

},

{

"key": "connectednessPercentage",

"baseline": 0.5463213719281186

},

{

"key": "unconnectedComponents",

"baseline": 41

},

{

"key": "largestConnectedArea",

"baseline": 208.01412512974605

},

{

"key": "coreToEdgePercentage",

"baseline": 0.3559652734682516

},

{

"key": "habitatCoverPercentage",

"baseline": 0.17096260916615935

},

{

"key": "winterCoverPercentage",

"baseline": ""

},

{

"key": "winterCoverHa",

"baseline": ""

},

{

"key": "floodzoneAreaHa",

"baseline": 44.75421814179502

},

{

"key": "floodzoneAreaPercentage",

"baseline": 0.021984240453942195

},

{

"key": "productiveFloodzoneAreaHa",

"baseline": 15.90925816637338

},

{

"key": "productiveFloodzoneAreaPercentage",

"baseline": 0.025375873034412133

}

...

]},

...

]};

DESCRIPTION

Request

URL: http://integration-api.thelandapp.com/nature-reporting/metrics/description

HTTP Method: GET

Parameters type: URL query params

Parameters:

  • apiKey – (mandatory) API key generated by Land App for your organisation

Example request:

Response

Response HTTP codes:

- 200 if all OK

- 400 if the request is wrong (including a message explaining why it is wrong)

- 500 if unhandled error on server-side occurs

Response model:

JSON

[

{

key: string,

name: string,

type: string,

variants: array,

description: string

decimalPlaces: number

},

…

];

Attributes in response:

Key

Data Type

Description

key

string

A unique identifier for this metric.

name

string

The end-user name of the metric

type

string

The type in which the value should be displayed:

FLOAT, PERCENTAGE, INTEGER, TEXT. See the table of possible values below.

variants

array

All the possible variants for that metric: baseline, future (optional), uplift (optional). Future and Uplift, even if specified as options for the metric, may be empty values in the metrics API response, if the farmer hasn't shared a Land Management Plan, in which case a null/ N/a value should be given for both values.

description

string

The human-readable description that explains the metric for end users

decimalPlaces (optional)

number

Number of decimal places that the value should be rounded to and displayed at.

Type values:

Data Type

Raw Format (API)

Display Logic for Land App Frontend

Example

FLOAT

Decimal Number

Default: Round to 2 decimal places.

Override: If decimalPlaces property exists, use that value.

15.678 → 15.6815.678 → 15.678 (if specified)

PERCENTAGE

Decimal Fraction (can be above 1)

Multiply by 100 and suffix with % and display to 2 decimal places.

Override: If decimalPlaces property exists, use that value.

0.15 → 15%

1.25345 → 125.35%

INTEGER

Whole Number

Display as is (no decimal).

4 → 4

TEXT

String

Display as is.

"Good" → Good

Example response:

JSON

[

{

key: 'habitatBngUnits',

name: 'Habitat BNG Units',

type: 'FLOAT',

variants: ['BASELINE', 'FUTURE', 'UPLIFT'],

description:

'Total BNG Units for the farm’s habitats, calculated using the statutory Biodiversity Unit Metric. It reflects the value habitats are likely to provide for native biodiversity.',

},

…

];

Did this answer your question?