Learn how to integrate with Monitor API, make requests for on-field practice insights and retrieve field data.
Monitor API enables access to the specific field and management data (such as crop cover, commodity crop type and tillage practices) needed to power sustainability programs and verify regenerative practices remotely.
Step 1: Obtain field boundaries
Before querying for field practices, you’ll first need to source the field boundaries. Monitor API accepts field boundaries in GeoJSON format, with polygon
or multiPolygon
geometry objects.
"feature_collection": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"coordinates": [
[
[
[
-84.003914,
40.333411
],
[
-84.003874,
40.332533
],
[
-84.001319,
40.332512
],
[
-83.999221,
40.332527
],
[
-83.999265,
40.336911
],
[
-83.999274,
40.336991
],
[
-83.999379,
40.336994
],
[
-84.003959,
40.336751
],
[
-84.006094,
40.336645
],
[
-84.006047,
40.333394
],
[
-84.003914,
40.333411
]
]
]
],
"type": "MultiPolygon"
}
}
]
}
Step 2: Submit a Request for Field Practices
To make a request for agricultural practice data for a field, make a POST
request to the /processes/monitor-fields-geojson/execution endpoint.
Request Body In the request body you’ll provide a feature-collection
object with GeoJSON field boundaries, as well as a date range. Use the date range to specify the time window you’d like to receive field practice data for.
Pro tip: When querying practice data for multiple fields for the same date range, you can submit multiple field boundaries in one request. Each field boundary is represented as a feature
object within the “features” array in the feature collection
.
"feature_collection": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"coordinates": [
[]
],
"type": "Polygon"
}
},
{
"type": "Feature",
"geometry": {
"coordinates": [
[]
],
"type": "Polygon"
}
}
]
}
Monitor API runs an asynchronous process. You can optionally include callback URLS and header parameters to receive notifications when the process is complete and field data is ready to be retrieved. To do so, include a subscriber object in the request body. Alternatively, you can use the /job-status endpoint to get the status of the process, or poll the /results endpoint. Use the job_id
from the response body of a successful request to check the status of the job or poll for results.
{
"inputs": {
"feature_collection": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"coordinates": [
[
[
[
-84.003914,
40.333411
],
[
-84.003874,
40.332533
],
[
-84.001319,
40.332512
],
[
-83.999221,
40.332527
],
[
-83.999265,
40.336911
],
[
-83.999274,
40.336991
],
[
-83.999379,
40.336994
],
[
-84.003959,
40.336751
],
[
-84.006094,
40.336645
],
[
-84.006047,
40.333394
],
[
-84.003914,
40.333411
]
]
]
],
"type": "MultiPolygon"
}
}
]
},
"start_date": "2017-01-01",
"end_date": "2017-12-31"
},
"outputs": {},
"response": "document",
"transmission_mode": "value",
"subscriber": {
"successUri": "string",
"successHeaders": {
"additionalProp1": "string",
"additionalProp2": "string"
},
"inProgressUri": "string",
"inProgressHeaders": {
"additionalProp1": "string",
"additionalProp2": "string"
},
"failedUri": "string",
"failedHeaders": {
"additionalProp1": "string",
"additionalProp2": "string"
}
}
}
Step 3: Retrieve Field Practice Data
Once the job for a field request is complete, you can make a GET
request to the /results endpoint to retrieve practice data. Use the job_id
returned from the original field request to specify which job to retrieve results for.
Field data includes practice information on commodity crops, cover crops and tillage practices, as well as field metadata and the specified date range.
Pro Tip: Store the boundary-id
from the results response to use in subsequent data queries for the field. Once you have a boundary-id
for a field, you can make subsequent requests for field practice data using the /monitor-fields-boundary-id endpoint instead of passing the field boundaries in GeoJSON format.
Field practice data is available via the /results endpoint for 30 days.