Dacom API Docs

Rest-API for the Dacom Crop-Recording platform

API parameters

The parameters below are generally valid http request parameters for every API request. The header contains the name of the request parameter and the paragraphe below explains valid values for this parameter.

L10N
Http request parameter to specify the localization(L10N) to use for the API. if not specified the L10N of the currently authenticated farm is used.
Options are:
standard: De standard L10N is used (ground surfaces in hectares 'ha', temperature in °C)
country code: A country alpha-2 code (ISO_3166-1). The L10N for that country is used

examples:

  • /api/v3/farms/789b88c6-eefc-11e6-b4e7-8019341382ba/settings/: returns the L10N settings for the current farm.
  • /api/v3/farms/789b88c6-eefc-11e6-b4e7-8019341382ba/settings/?L10N=standard: returns the standard L10N settings.
  • /api/v3/farms/789b88c6-eefc-11e6-b4e7-8019341382ba/settings/?L10N=country_eg: returns the L10N settings for the country egypt.
Throttling
Usage of the API is throttled at 100 requests per minute per application. If the limit is reached the API will return the 429 (Too many requests) HTTP status code.

API scopes

coding_lists

All crops of the Dacom platform

No fields.

Required scopes to access this end point
No scopes required.

All crops of the Dacom platform

Fields:

  • id: CharField
  • coding_list: SerializerMethodField
  • name: CharField R
  • dacom_code: CharField
  • edi_code: CharField R
  • code: EdiCodeSerializerField
Required scopes to access this end point
No scopes required.

All crop varieties of the Dacom platform

No fields.

Required scopes to access this end point
No scopes required.

All crop varieties of the Dacom platform

Fields:

  • id: CharField
  • coding_list: SerializerMethodField
  • name: CharField R
  • code: EdiCodeSerializerField
  • crops: SerializerMethodField
Required scopes to access this end point
No scopes required.

All operation types of the Dacom platform

No fields.

Required scopes to access this end point
No scopes required.

All operation types of the Dacom platform

Fields:

  • id: CharField
  • coding_list: SerializerMethodField
  • name: CharField R
  • code: EdiCodeSerializerField
Required scopes to access this end point
No scopes required.

Get a fertilizer list

Args:

country
a country alpha-2 code (ISO_3166-1), if not specified the international fertilizers list is returned

No fields.

Required scopes to access this end point
No scopes required.

Get a fertilizer list

Args:

country
a country alpha-2 code (ISO_3166-1), if not specified the international fertilizers list is returned

Fields:

  • id: CharField
  • coding_list: SerializerMethodField
  • name: CharField R
  • code: EdiCodeSerializerField
  • unit: ChoiceField
  • specs: SerializerMethodField
Required scopes to access this end point
No scopes required.

Get a fertilizer list

Args:

country
a country alpha-2 code (ISO_3166-1), if not specified the international fertilizers list is returned

No fields.

Required scopes to access this end point
No scopes required.

Get a fertilizer list

Args:

country
a country alpha-2 code (ISO_3166-1), if not specified the international fertilizers list is returned

Fields:

  • id: CharField
  • coding_list: SerializerMethodField
  • name: CharField R
  • code: EdiCodeSerializerField
  • unit: ChoiceField
  • specs: SerializerMethodField
Required scopes to access this end point
No scopes required.

Get a chemical list

Args:

country
a country alpha-2 code (ISO_3166-1), if not specified the international chemical list is returned

No fields.

Required scopes to access this end point
No scopes required.

Get a chemical list

Args:

country
a country alpha-2 code (ISO_3166-1), if not specified the international chemical list is returned

Fields:

  • id: CharField
  • coding_list: SerializerMethodField
  • name: CharField R
  • code: EdiCodeSerializerField
  • unit: ChoiceField
  • specs: SerializerMethodField
  • active_substances: SerializerMethodField
Required scopes to access this end point
No scopes required.

Get a chemical list

Args:

country
a country alpha-2 code (ISO_3166-1), if not specified the international chemical list is returned

Fields:

  • id: CharField
  • coding_list: SerializerMethodField
  • name: CharField R
  • code: EdiCodeSerializerField
  • unit: ChoiceField
  • specs: SerializerMethodField
  • active_substances: SerializerMethodField
Required scopes to access this end point
No scopes required.

Get a chemical list

Args:

country
a country alpha-2 code (ISO_3166-1), if not specified the international chemical list is returned

No fields.

Required scopes to access this end point
No scopes required.

Get a chemical list

Args:

country
a country alpha-2 code (ISO_3166-1), if not specified the international chemical list is returned

Fields:

  • id: CharField
  • coding_list: SerializerMethodField
  • name: CharField R
  • code: EdiCodeSerializerField
  • unit: ChoiceField
  • specs: SerializerMethodField
  • active_substances: SerializerMethodField
Required scopes to access this end point
No scopes required.

Get a chemical list

Args:

country
a country alpha-2 code (ISO_3166-1), if not specified the international chemical list is returned

Fields:

  • id: CharField
  • coding_list: SerializerMethodField
  • name: CharField R
  • code: EdiCodeSerializerField
  • unit: ChoiceField
  • specs: SerializerMethodField
  • active_substances: SerializerMethodField
Required scopes to access this end point
No scopes required.

Get the list of additives

Args:

country
a country alpha-2 code (ISO_3166-1), if not specified the international additive list is returned

No fields.

Required scopes to access this end point
No scopes required.

Get the list of additives

Args:

country
a country alpha-2 code (ISO_3166-1), if not specified the international additive list is returned

Fields:

  • id: CharField
  • coding_list: SerializerMethodField
  • name: CharField R
  • code: EdiCodeSerializerField
  • unit: ChoiceField
  • specs: SerializerMethodField
Required scopes to access this end point
No scopes required.

Get a chemical list

Args:

country
a country alpha-2 code (ISO_3166-1), if not specified the international chemical list is returned

No fields.

Required scopes to access this end point
No scopes required.

Get a chemical list

Args:

country
a country alpha-2 code (ISO_3166-1), if not specified the international chemical list is returned

Fields:

  • id: CharField
  • coding_list: SerializerMethodField
  • name: CharField R
  • code: EdiCodeSerializerField
  • unit: ChoiceField
  • specs: SerializerMethodField
  • active_substances: SerializerMethodField
Required scopes to access this end point
No scopes required.

Get a chemical list

Args:

country
a country alpha-2 code (ISO_3166-1), if not specified the international chemical list is returned

Fields:

  • id: CharField
  • coding_list: SerializerMethodField
  • name: CharField R
  • code: EdiCodeSerializerField
  • unit: ChoiceField
  • specs: SerializerMethodField
  • active_substances: SerializerMethodField
Required scopes to access this end point
No scopes required.

Get the list of attributes

No fields.

Required scopes to access this end point
No scopes required.

Get the list of attributes

Fields:

  • id: CharField
  • coding_list: SerializerMethodField
  • name: CharField R
  • unit: CharField
  • code: EdiCodeSerializerField
Required scopes to access this end point
No scopes required.

Get the list of all soil types

No fields.

Required scopes to access this end point
No scopes required.

Get the list of all soil types

Fields:

  • id: CharField
  • coding_list: SerializerMethodField
  • name: CharField R
  • code: CharField R
Required scopes to access this end point
No scopes required.

Get the list of all soil types

No fields.

Required scopes to access this end point
No scopes required.

Get the list of all soil types

Fields:

  • id: CharField
  • coding_list: SerializerMethodField
  • name: CharField R
  • code: CharField R
Required scopes to access this end point
No scopes required.

Get the list of all known disease code for crops

No fields.

Required scopes to access this end point
No scopes required.

Get the list of all known disease code for crops

Fields:

  • coding_list: SerializerMethodField
  • name: SerializerMethodField
  • code: CharField R
  • crop: SerializerMethodField
Required scopes to access this end point
No scopes required.

Get the list of all known observation code

No fields.

Required scopes to access this end point
No scopes required.

Get the list of all known observation code

Fields:

  • coding_list: SerializerMethodField
  • name: CharField R
  • code: CharField R
Required scopes to access this end point
No scopes required.

sensors

store weather data for a sensor based on it's id.

simple code example in python to store weather data

cropr_api_client.put('/api/v3/sensors/[EXTERNAL_ID]/data/',
              data=json.dumps(
                  {
                      "timestamp": "1633667263",  # timestamp in UTC in seconds since 1 jan 1970.
                      "AT": 21.3,  # Air temperature (°C)
                      "PT": 21.3,  # Precipitation (mm)
                      "RAD": 331,  # Radiation (J/cm²)
                      "RH": 80,    # Relative humidity (%)
                      "WD": 270,   # Wind direction (°)
                      "WS": 4,     # Wind speed (m/s)
                  }),
              content_type="application/json"
              )

No fields.

Required scopes to access this end point
No scopes required.

weather_forecasts

returns a list of weather forecast regions viewable by the user

Optional parameters are:

lat (latitude)
lon (longitude)

If both lat and lon are specified this end point will return the data of the nearest found region at the position of lat, lon. The json response will only contain one region but also includes the region forecast.
(See for a json example (including forecast) the example of the weather forecast detail end point.)

json list example:


{
    "id": "d687552f-8b8c-43e1-b2b7-d496f294a697"    # unique id of this weather forecast region
    "name": "MC Hoogeveen",                                 # name weather forecast region
    "country": "NL",                                        # country
    "latitude": 52.720833,                                  # center of gravity weather region (latitude)
    "longitude": 6.478889,                                  # center of gravity weather region (longitude)
    "meta": [                                               # meta info about what forecasts are predicted
        "air_temperature",                                  # the air temperature in °C
        "rel_humidity",                                     # relative humidity in %
        "precip_chance",                                    # precipitation chance in %
        "precipitation",                                    # precipitation in mm
        "wind_direction",                                   # wind direction in °
        "wind_speed",                                       # wind speed in m/s
        "radiation",                                        # radiation in J/cm2
        "cloud",                                            # cloud density 1-8 (1 no clouds, 8 closed by clouds)
        "weather_descriptor"                                # description of weather conditions
    ],
},

No fields.

Required scopes to access this end point
No scopes required.

returns a list of weather forecast predictions of <region_id>

Optional parameters are:

start (epoch) timestamp to get the forecast from a timestamp until now+10 days

json list example:


{
    "id": "d687552f-8b8c-43e1-b2b7-d496f294a697"    # unique id of this weather forecast region
    "name": "MC Hoogeveen",                         # name weather forecast region
    "country": "NL",                                # country
    "latitude": 52.720833,                          # center of gravity weather region (latitude)
    "longitude": 6.478889,                          # center of gravity weather region (longitude)
    "meta": [                                       # meta info about what forecasts are predicted
        "air_temperature",                              # the air temperature in °C
        "rel_humidity",                                 # relative humidity in %
        "precip_chance",                                # precipitation chance in %
        "precipitation",                                # precipitation in mm
        "wind_direction",                               # wind direction in °
        "wind_speed",                                   # wind speed in m/s
        "radiation",                                    # radiation in J/cm2
        "cloud",                                        # cloud density 1-8 (1 no clouds, 8 closed by clouds)
        "weather_descriptor"                            # description of weather conditions

    ],
    "forecast": [                                   # list of forecasts predicted for this weather region
        {
            "timestamp": 1487721600,                            # timestamp (epoch)
            "values": [
                9.6,                                                # the air temperature in °C
                89.0,                                               # relative humidity in %
                57.0,                                               # precipitation chance in %
                0.2,                                                # precipitation in mm
                233.0,                                              # wind direction in °
                13.9,                                               # wind speed in m/s
                0.0,                                                # radiation in J/cm2
                7.9,                                            # cloud density 1-8
                "CLOUDY"

            ]
        },
        {
            "timestamp": 1487725200,                            # timestamp (epoch)
            "values": [
                10.0,                                               # the air temperature in °C
                90.0,                                               # relative humidity in %
                62.0,                                               # precipitation chance in %
                0.3,                                                # precipitation in mm
                235.0,                                              # wind direction in °
                14.6,                                               # wind speed in m/s
                0.0,                                                # radiation in J/cm2
                8.0,                                            # cloud density 1-8
                "CLOUDY_LIGHT_RAIN"
            ]
        },
        ...
     ]
}

No fields.

Required scopes to access this end point
No scopes required.

returns a list of weather forecast predictions of <region_id> per 6 hours;

json list example:


{
    "id": "d687552f-8b8c-43e1-b2b7-d496f294a697"    # unique id of this weather forecast region
    "aggregation_hours": 6,                         # number of hours data is aggregated of
    "name": "MC Hoogeveen",                         # name weather forecast region
    "country": "NL",                                # country
    "latitude": 52.720833,                          # center of gravity weather region (latitude)
    "longitude": 6.478889,                          # center of gravity weather region (longitude)
    "meta": [                                       # meta info about what forecasts are predicted
        "minimum_temperature",                          # minimum temperature in °C during 6 hrs.
        "maximum_temperature",                          # maximum temperature in °C during 6 hrs.
        "humidity",                                     # minimum humidity in % during 6 hrs.
        "precipitation_chance",                         # weighed maximum, average precipitation chance in % over 6 hrs.
        "precipitation_amount",                         # precipitation sum in mm over 6 hrs.
        "wind_direction",                               # average wind_direction in °
        "wind_speed",                                   # average windspeed in m/s over 6 hrs.
        "radiation",                                    # radiation sum in J/cm2 over 6 hrs
        "cloud",                                        # average cloud cover (0-8) over 6 hrs
        "weather_descriptor"                            # weather descriptor
    ],
    "forecast": [                                   # list of forecasts per 6 hours predicted for this weather region
    {
        "timestamp": 1548633600,                    # timestamp (epoch): start of aggregated data
        "values": [
            11.905,                                     # minimum temperature in °C during 6 hrs.
            14.513,                                     # maximum temperature in °C during 6 hrs.
            82.8,                                       # minimum humidity in % during 6 hrs.
            20.0,                                       # weighed maximum, average precipitation chance in % over 6 hrs.
            0.1,                                        # precipitation sum in mm over 6 hrs.
            45.0,                                       # average wind_direction in °
            1.7,                                        # average windspeed in m/s over 6 hrs.
            15.2,                                       # radiation sum in J/cm2 over 6 hrs
            1.4,                                        # average cloud cover (0-8) over 6 hrs
            "SUNNY"                                     # weather descriptor
        ]
    },
    {
        "timestamp": 1548655200,                    # timestamp (epoch): start of aggregated data
        "values": [
            17.048,                                     # minimum temperature in °C during 6 hrs.
            24.756,                                     # maximum temperature in °C during 6 hrs.
            40.9,                                       # minimum humidity in % during 6 hrs.
            50.0,                                       # weighed maximum, average precipitation chance in % over 6 hrs.
            0.3,                                        # precipitation sum in mm over 6 hrs.
            135.0,                                      # average wind_direction in °
            3.5,                                        # average windspeed in m/s over 6 hrs.
            1046.7,                                     # radiation sum in J/cm2 over 6 hrs
            5.0,                                        # average cloud cover (0-8) over 6 hrs
            "PARTLY_CLOUDY"                             # weather descriptor
        ]
    },
 ....
 ]

}

No fields.

Required scopes to access this end point
No scopes required.

returns a list of weather forecast predictions of <region_id> per 24 hours (day);

json list example:


{
    "id": "d687552f-8b8c-43e1-b2b7-d496f294a697"    # unique id of this weather forecast region
    "name": "MC Hoogeveen",                         # name weather forecast region
    "aggregation_hours": 24,                         # number of hours data is aggregated of
    "country": "NL",                                # country
    "latitude": 52.720833,                          # center of gravity weather region (latitude)
    "longitude": 6.478889,                          # center of gravity weather region (longitude)
    "meta": [                                       # meta info about what forecasts are predicted
        "minimum_temperature",                          # minimum temperature in °C during 24 hrs.
        "maximum_temperature",                          # maximum temperature in °C during 24 hrs.
        "humidity",                                     # minimum humidity in % during 24 hrs.
        "precipitation_chance",                         # weighed maximum, average precipitation chance in % over 24 hrs.
        "precipitation_amount",                         # precipitation sum in mm over 24 hrs.
        "wind_direction",                               # average wind_direction in °
        "wind_speed",                                   # average windspeed in m/s over 24 hrs.
        "radiation",                                    # radiation sum in J/cm2 over 24 hrs
        "cloud",                                        # average cloud cover (0-8) over 24 hrs
        "weather_descriptor"                            # weather descriptor
    ],
    "forecast": [                                   # list of forecasts per 24 hours predicted for this weather region
    {
        "timestamp": 1548633600,                    # timestamp (epoch): start of aggregated data
        "values": [
            11.905,                                     # minimum temperature in °C during 24 hrs.
            26.641,                                     # maximum temperature in °C during 24 hrs.
            36.5,                                       # minimum humidity in % during 24 hrs.
            70.0,                                       # weighed maximum, average precipitation chance in % over 24 hrs.
            3.1,                                        # precipitation sum in mm over 24 hrs.
            90.0,                                       # average wind_direction in °
            3.2,                                        # average windspeed in m/s over 24 hrs.
            1793.7,                                     # radiation sum in J/cm2 over 24 hrs
            0.0,                                        # average cloud cover (0-8) over 24 hrs
            "PARTLY_CLOUDY_LIGHT_RAIN"                  # weather descriptor
        ]
    },
    {
        "timestamp": 1548655200,                    # timestamp (epoch): start of aggregated data
        "values": [
            12.358,                                     # minimum temperature in °C during 24 hrs.
            31.845,                                     # maximum temperature in °C during 24 hrs.
            16.2,                                       # minimum humidity in % during 24 hrs.
            50.0,                                       # weighed maximum, average precipitation chance in % over 24 hrs.
            1.7,                                        # precipitation sum in mm over 24 hrs.
            45.0,                                       # average wind_direction in °
            3.7,                                        # average windspeed in m/s over 24 hrs.
            2043.7,                                     # radiation sum in J/cm2 over 24 hrs
            3.6,                                        # average cloud cover (0-8) over 24 hrs
            "PARTLY_CLOUDY_LIGHT_RAIN"                  # weather descriptor
        ]
    },
 ....
 ]

}

No fields.

Required scopes to access this end point
No scopes required.

returns a list of weather forecast ET0 predictions of <region_id> per 24 hours (day);

json list example:


{
    "id": "d687552f-8b8c-43e1-b2b7-d496f294a697"    # unique id of this weather forecast region
    "name": "MC Hoogeveen",                         # name weather forecast region
    "aggregation_hours": 24,                        # number of hours data is aggregated of
    "country": "NL",                                # country
    "latitude": 52.720833,                          # center of gravity weather region (latitude)
    "longitude": 6.478889,                          # center of gravity weather region (longitude)
    "forecast": [                                   # list of forecasts per 24 hours predicted for this weather region
    {
        "timestamp": 1548633600,                    # timestamp (epoch): start of aggregated data
        "et0": 0.7                                  # et0 in mm of current day
    },
    {
        "timestamp": 1548655200,                    # timestamp (epoch): start of aggregated data
        "et0": 0.48                                  # et0 in mm of current day
    },
 ....
 ]

}

No fields.

Required scopes to access this end point
No scopes required.

installations

returns a list of owned sensor installations: soil moisture stations and weather stations

json list example:


{
    "id": "2242a8a3-4b8c-4ea5-b895-c4f1c4b6daa7",   # unique id of this sensor installation
    "installed_on_farm_id": "23f9-321f-a3d2-cdb39"  # farm_id used this to retrieve sensor the data for this shared sensor.
    "name": "UK Agrii Alton",                           # name of this sensor installation
    "view_settings_name": "UK Agrii Alton",         # name of the view settings of this installation
    "serial_number": "57242",                           # serial number of sensor installation
    "active_period_start": 1460073600,                  # timestamp (epoch) when this sensor installation was activated
    "active_period_end": null,                          # timestamp (epoch) until when this sensor installation was active
    "powered_on": true,                                 # 'true' if the sensor installation is powered on
    "is_weather_station": false,                    # 'true' if the sensor is a weather station
    "is_soil_moisture_station": false,              # 'true' if the sensor is a soil moisture station
    "is_precipitation_station": true,               # 'true' if the sensor is a precipitation station
    "has_recent_measurements": true,                    # 'true' if this sensor installation has recent measurements
    "latitude": 51.079167,                          # location sensor installation (latitude)
    "longitude": -1.026111,                         # location sensor installation (longitude)
    "meta": [                                           # meta info about the sensor installation measurements
        {
            "unit": "°C",
            "key": "air_temperature"                    # the air temperature in °C
        },
        {
            "unit": "%",
            "key": "rel_humidity"                           # relative humidity in %
        },
        {
            "unit": "mm",
            "key": "precipitation"                          # precipitation in mm
        },
        {
            "unit": "m/s",
            "key": "wind_speed"                                 # wind speed in m/s
        },
        {
            "unit": "°",
            "key": "wind_direction"                         # wind direction in °
        },
        {
            "unit": "J/cm²",
            "key": "radiation"                                  # radiation in J/cm2
        },
        {
            "unit": "°C",
            "key": "soil_temperature"                           # the soil temperature in °C
        }
    ]
},
{
    "id": "913f1a79-42e0-44a8-997b-22cdbeec08bb",   # unique id of this sensor installation
    "name": "1012",                                 # name of this sensor installation
    "serial_number": "0000001012",                  # serial number of sensor installation
    "active_period_start": 1454284800,                  # timestamp (epoch) when this sensor installation was activated
    "active_period_end": 1514678400,                    # timestamp (epoch) until when this sensor installation was active
    "powered_on": true,                                 # 'true' if the sensor installation is powered on
    "has_recent_measurements": true,                    # 'true' if this sensor installation has recent measurements
    "latitude": 52.77261,                           # location sensor installation (latitude)
    "longitude": 6.80483,                           # location sensor installation (longitude)
    "meta": [                                           # meta info about the sensor installation measurements
        {
            "unit": "mm",
            "key": "moisture_level__depths__10"                 # the soil moisture level at 10 cm depth
        },
        {
            "unit": "mm",
            "key": "moisture_level__depths__20"                 # the soil moisture level at 20 cm depth
        },
        {
            "unit": "°C",
            "key": "soil_temperature__depths__10"           # the soil temperature in °C at 10 cm depth
        },
        {
            "unit": "°C",
            "key": "soil_temperature__depths__20"           # the soil temperature in °C at 20 cm depth
        }
    ]
}

No fields.

Required scopes to access this end point
No scopes required.

returns a list of raw measurements measured by installation_id

Optional parameters are:

start (epoch) timestamp to get the measurements from a timestamp
end (epoch) timestamp to get the measurements until a timestamp
days (int) to get a number of days (always from now)

json list example:



    {
        "id": "913f1a79-42e0-44a8-997b-22cdbeec08bb",       # unique id of this sensor installation
        "name": "1012",     # name of this sensor installation
        "serial_number": "0000001012",      # serial number of sensor installation
        "active_period_start": 1454284800,  # timestamp (epoch) when this sensor installation was activated
        "active_period_end": 1514678400,    # timestamp (epoch) until when this sensor installation was active
        "powered_on": true, # 'true' if the sensor installation is powered on
        "has_recent_measurements": true,    # 'true' if this sensor installation has recent measurements
        "latitude": 52.77261,       # location sensor installation (latitude)
        "longitude": 6.80483,       # location sensor installation (longitude)
        "meta": [   # meta info about the sensor installation measurements
            {
                "unit": "dacom",
                "key": "moisture_level__depths__10"         # the soil moisture level at 10 cm depth
            },
            {
                "unit": "dacom",
                "key": "moisture_level__depths__20"         # the soil moisture level at 20 cm depth
            },
            {
                "unit": "°C",
                "key": "soil_temperature__depths__10"               # the soil temperature in °C at 10 cm depth
            },
            {
                "unit": "°C",
                "key": "soil_temperature__depths__20"               # the soil temperature in °C at 20 cm depth
            }
        ],
        "raw_measurements": [       # list of measurements by this station
            {
                "timestamp": 1484958600,            # timestamp of the measurement (epoch)
                "values": [
                    71.78,          # the soil moisture level at 10 cm depth
                    85.18,          # the soil moisture level at 20 cm depth
                    12.02,          # the soil temperature in °C at 10 cm depth
                    12.33           # the soil temperature in °C at 20 cm depth
                ]
            },
            {
                "timestamp": 1484960400,            # timestamp of the measurement (epoch)
                "values": [
                    71.78,          # the soil moisture level at 10 cm depth
                    85.18,          # the soil moisture level at 20 cm depth
                    12.13,          # the soil temperature in °C at 10 cm depth
                    12.33           # the soil temperature in °C at 20 cm depth
                ]
            },
            {
                "timestamp": 1484962200,            # timestamp of the measurement (epoch)
                "values": [
                    71.84,          # the soil moisture level at 10 cm depth
                    85.18,          # the soil moisture level at 20 cm depth
                    12.07,          # the soil temperature in °C at 10 cm depth
                    12.33           # the soil temperature in °C at 20 cm depth
                ]
            },

            ...
          ]
    }

No fields.

Required scopes to access this end point
No scopes required.

returns a list of internal technical details (energy consumption, signal quality) measured by installation_id

json list example:


{
    "id": "913f1a79-42e0-44a8-997b-22cdbeec08bb",   # unique id of this sensor installation
    "name": "1012",                                 # name of this sensor installation
    "serial_number": "0000001012",                  # serial number of sensor installation
    "active_period_start": 1454284800,                  # timestamp (epoch) when this sensor installation was activated
    "active_period_end": 1514678400,                    # timestamp (epoch) until when this sensor installation was active
    "powered_on": true,                                 # 'true' if the sensor installation is powered on
    "has_recent_measurements": true,                    # 'true' if this sensor installation has recent measurements
    "latitude": 52.77261,                           # location sensor installation (latitude)
    "longitude": 6.80483,                           # location sensor installation (longitude)
    "tech_meta": [                                  # meta info about the sensor technical details
        "voltage",                                          # battery voltage
        "csq",                                                  # RF signal quality
        "sim",                                                  # SIM card number
        "reset",                                            # True if sensor was reset
        "fw_version"                                            # Firmware version
    ],
    "tech": [                                           # list of technical details measurements
        {
            "timestamp": 1487724300,                            # timestamp of the technical details measurement (epoch)
            "values": [
                "4.15",                                             # battery voltage (V)
                "18",                                               # RF signal quality
                "8933012360300653266",                              # SIM card number
                "False",                                        # True if sensor was reset
                "V6.12.001_RevE_USB"                                # Firmware version
            ]
        },
        ...
    ]
}

Optional parameters are:

start (epoch) timestamp to get the technical details measurements from a timestamp end (epoch) timestamp to get the technical details measurements until a timestamp days (int) to get a number of days (always from now)

No fields.

Required scopes to access this end point
No scopes required.

returns a list of interpreted measurements measured by installation_id based on the settings made by the user

json list example:


{
    "id": "913f1a79-42e0-44a8-997b-22cdbeec08bb",   # unique id of this sensor installation
    "name": "1012", # name of this sensor installation
    "serial_number": "0000001012",  # serial number of sensor installation
    "active_period_start": 1454284800,      # timestamp (epoch) when this sensor installation was activated
    "active_period_end": 1514678400,        # timestamp (epoch) until when this sensor installation was active
    "powered_on": true,     # 'true' if the sensor installation is powered on
    "has_recent_measurements": true,        # 'true' if this sensor installation has recent measurements
    "latitude": 52.77261,   # location sensor installation (latitude)
    "longitude": 6.80483,   # location sensor installation (longitude)
        "meta": [   # meta info about the sensor installation measurements
        {
            "unit": "mm",
            "key": "moisture_level__depths__10"             # the soil moisture level at 10 cm depth in mm
        },
        {
            "unit": "mm",
            "key": "moisture_level__depths__20"             # the soil moisture level at 20 cm depth in mm
        },
        {
            "unit": "°C",
            "key": "soil_temperature__depths__10"           # the soil temperature in °C at 10 cm depth
        },
        {
            "unit": "°C",
            "key": "soil_temperature__depths__20"           # the soil temperature in °C at 20 cm depth
        }
    ],
    "raw_measurements": [   # list of measurements by this station
        {
            "timestamp": 1484958600,                # timestamp of the measurement (epoch)
            "values": [
                7.78,               # the soil moisture level at 10 cm depth in mm
                8.18,               # the soil moisture level at 20 cm depth in mm
                12.02,              # the soil temperature in °C at 10 cm depth
                12.33               # the soil temperature in °C at 20 cm depth
            ]
        },
        {
            "timestamp": 1484960400,                # timestamp of the measurement (epoch)
            "values": [
                7.78,               # the soil moisture level at 10 cm depth in mm
                8.18,               # the soil moisture level at 20 cm depth in mm
                12.13,              # the soil temperature in °C at 10 cm depth
                12.33               # the soil temperature in °C at 20 cm depth
            ]
        },
        {
            "timestamp": 1484962200,                # timestamp of the measurement (epoch)
            "values": [
                7.84,               # the soil moisture level at 10 cm depth in mm
                8.19,               # the soil moisture level at 20 cm depth in mm
                12.07,              # the soil temperature in °C at 10 cm depth
                12.33               # the soil temperature in °C at 20 cm depth
            ]
        },

        ...
      ]
}

Optional parameters are:

start (epoch) timestamp to get the measurements from a timestamp
end (epoch) timestamp to get the measurements until a timestamp
days (int) to get a number of days (always from now)

No fields.

Required scopes to access this end point
No scopes required.

returns the installation id and the name of the actual view settings

json list example:


{
    "installation_id": "913f1a79-42e0-44a8-997b-22cdbeec08bb",      # unique id of this sensor installation
    "name": "1012 view settings",   # name of this installation view settings
}

No fields.

Required scopes to access this end point
No scopes required.

EWS

returns EWS URLs for all allowed EWS regions and diseases

EWS discover example response:


{
    "REGION_NAME": {
        "CROP_CODE": {
            "urls": [
                "https://sfam.crop-r.com/ews/tile/REGION_NAME/2021/4/29/FUNGUS_CODE/{z}/{x}/{y}.png?key=SECRET_KEY"
            ]
        }
    }
}
The z,x and y in '/z/x/y.png' should be replaced with your preferences. z is the zoom level x is the x-coordinate (Longitude) y is the y-coordinate (Latitude) see for more info: https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames

No fields.

Required scopes to access this end point
No scopes required.

API end point, which returns the EWS value for a given point (lat, lng) within a region.

required request parameters:

lat
Latitude
lng
Longitude
region
Region code e.g. 'NL"

Example request: https://sfam.crop-r.com/api/V1/ews/PHYTOPHTHORA_CROP_TOMATO/?lat=52.3&lng=6.3&region=NL the response will look something like this. The infection chances are in percentages (0% - 100%). To have an indication of what these percentages mean > 50% Infection risk is high 50% - 35% Infection risk is moderate < 35% Infection risk is low


{
    "fungus": "PHYTOPHTHORA_CROP_TOMATO",
    "location": {
        "lat": 52.3,
        "lng": 6.3
    },
    "infection_chances": {
        "2021-05-12": 15,  // infection chance in percent (0% - 100%)
        "2021-05-13": 8,
        "2021-05-14": 3,
        "2021-05-15": 5,
        "2021-05-16": null,  // there no infection chance calculated.
    }
}

No fields.

Required scopes to access this end point
No scopes required.

v3

No fields.

Required scopes to access this end point
  1. user

Creates a new user, requires a valid application_id

Fields:

  • username: EmailField R
  • first_name: CharField
  • last_name: CharField
  • email: EmailField
  • email_verified: SerializerMethodField
  • avatar_url: ReadOnlyField
  • language_code: SerializerMethodField
  • user_identity_service_uuid: CharField
Required scopes to access this end point
  1. user

Fields:

  • username: EmailField R
  • first_name: CharField
  • last_name: CharField
  • email: EmailField
  • email_verified: SerializerMethodField
  • avatar_url: ReadOnlyField
  • language_code: SerializerMethodField
  • user_identity_service_uuid: CharField
Required scopes to access this end point
  1. user

Get farm data. Without parameter (/farms/), it shows the list of farms this account has access to with a limited set of attributes.

If a specific farm is requested (/farms//), more details are returned. See 'Fields' on detail view for more information.

Filtering

optional request parameters for filtering are:

modified_since
return farms that are modified after the given modified since date (%Y-%m-%d %H:%M)
owned
only return farms owned by the authenticated user

No fields.

Required scopes to access this end point
  1. farm

Get farm data. Without parameter (/farms/), it shows the list of farms this account has access to with a limited set of attributes.

If a specific farm is requested (/farms//), more details are returned. See 'Fields' on detail view for more information.

Filtering

optional request parameters for filtering are:

modified_since
return farms that are modified after the given modified since date (%Y-%m-%d %H:%M)
owned
only return farms owned by the authenticated user

Fields:

  • id: CharField
  • name: CharField R
  • avatar_url: ReadOnlyField
  • address: AddressSerializer
  • social_media_profile: SocialMediaProfileSerializer
  • edi_id: SerializerMethodField
Required scopes to access this end point
  1. farm

Retrieve the features I would get as a user on this farm. The active features are a merged set of the active subscription, the installed applications and special user roles like SuperUser

returns: a dictionary of features


{
    "export_shape": "True",
    "add_farm_contact": "True",
    "custom_resources": "True",
    "mobile_app": "True",
    "admissions": "True",
    "maximum_area": "300",
    "pro": "True",
    "maximum_records": "3000",
    "bulk": "True",
    "record_switch_view": "True",
    "job": "True",
    "planning": "True",
    "allowed_users": "5",
    "inventory": "True",
    "basic": "True",
    "report": "True",
    "soil_data": "True",
    "brp_history": "True",
    "configuration": "True"
}

Fields:

  • id: CharField
  • name: CharField R
Required scopes to access this end point
  1. farm

Retrieve the active order of the farm.

returns:


{
    "period_end,": "2018-03-31",
    "active_until,": "2018-03-31",
    "subscription_name": "Pro",
    "period_start,": "2017-03-31",
    "provided_features": {
        "export_shape": "True",
        "add_farm_contact": "True",
        "custom_resources": "True",
        "mobile_app": "True",
        "admissions": "True",
        "maximum_area": "300",
        "pro": "True",
        "maximum_records": "3000",
        "bulk": "True",
        "record_switch_view": "True",
        "job": "True",
        "planning": "True",
        "allowed_users": "5",
        "inventory": "True",
        "basic": "True",
        "report": "True",
        "soil_data": "True",
        "brp_history": "True",
        "configuration": "True"
    }
    "product_gids": ["crop_recording", "cloudfarm"]
}

Fields:

  • id: CharField
  • name: CharField R
Required scopes to access this end point
  1. farm

Retrieve the custom coding_lists on a farm.

returns:


{
    "operation_types": [          // list of custom made operation type on this farm
        // see '/api/v3/coding_lists/operation_types/' how it is represented in json
    ],
    "fertilizers": [        // list of custom made fertilizers on this farm
        // see also '/api/v3/coding_lists/fertilizers/' how it is represented in json
    ]
}

Fields:

  • id: CharField
  • name: CharField R
Required scopes to access this end point
  1. farm

Retrieve the configuration of the farm.

returns:


{
    "diseases": [          // list of configured disease_codes on this farm
        // see '/api/v3/coding_lists/disease_codes/' how it is represented in json
    ],
}

Fields:

  • id: CharField
  • name: CharField R
Required scopes to access this end point
  1. farm

Get farm data. Without parameter (/farms/), it shows the list of farms this account has access to with a limited set of attributes.

If a specific farm is requested (/farms//), more details are returned. See 'Fields' on detail view for more information.

Filtering

optional request parameters for filtering are:

modified_since
return farms that are modified after the given modified since date (%Y-%m-%d %H:%M)
owned
only return farms owned by the authenticated user

Fields:

  • id: CharField
  • name: CharField R
Required scopes to access this end point
  1. farm

Post or Get new event to the farm upon which the application can act.

parameters:

  • event_type
  • ids

Fields:

  • id: CharField
  • name: CharField R
Required scopes to access this end point
  1. farm

returns:


{
    "chemical_list": [          // a list of used chemical lists on this farm
        "International",            // the international chemical list
    ],
    "fertilizer_list": [        // a list of used fertilizer lists on this farm
        "International",            // the international fertilizer list
        "nl",                       // the dutch fertilizer list
    ],
    "l10n": {                   // localization settings of this farm
        "unit_area": "ha",          // unit of area (e.g 'ha', 'acre', 'm2' (square meter)
        "unit_distance": "m",
        "unit_mass": "kg",
        "unit_temp": "C",
        "unit_volume": "liter",
        "unit_currency": "EUR"
        "unit_precipitation": "mm"
        "unit_windspeed": "mps"
    }
}

Fields:

  • id: CharField
  • name: CharField R
Required scopes to access this end point
  1. farm

Retrieve the features i would get as a user on this farm, including permissions which are no longer active. The period features are a merged set of the active subscription, the installed applications, and special user roles like SuperUser. If available, each feature has a start date and end date when the feature was active. For b&b subscriptions this endpoint tries to determine if de subscription is a trial.

returns: a dictionary of features with the period in which the feature is active


{
    "dacom_online_disease": {
        "value": true,
        "periodStart": "2021-08-24",
        "periodEnd": "2031-09-24",
        "active": true
    },
    "bbnl_pro": {
        "value": true,
        "periodStart": "2021-07-24",
        "periodEnd": "2031-08-25",
        "active": false,
        "trial": true
    },
    "sensetion": {
        "periodStart": "",
        "periodEnd": "",
        "active": true
    }
}

Fields:

  • id: CharField
  • name: CharField R
Required scopes to access this end point
  1. farm

Get farm data. Without parameter (/farms/), it shows the list of farms this account has access to with a limited set of attributes.

If a specific farm is requested (/farms//), more details are returned. See 'Fields' on detail view for more information.

Filtering

optional request parameters for filtering are:

modified_since
return farms that are modified after the given modified since date (%Y-%m-%d %H:%M)
owned
only return farms owned by the authenticated user

No fields.

Required scopes to access this end point
  1. farm

Get farm data. Without parameter (/farms/), it shows the list of farms this account has access to with a limited set of attributes.

If a specific farm is requested (/farms//), more details are returned. See 'Fields' on detail view for more information.

Filtering

optional request parameters for filtering are:

modified_since
return farms that are modified after the given modified since date (%Y-%m-%d %H:%M)
owned
only return farms owned by the authenticated user

Fields:

  • id: CharField
  • name: CharField R
Required scopes to access this end point
  1. farm

Get token to access other applications

parameters:

  • app

Fields:

  • id: CharField
  • name: CharField R
Required scopes to access this end point
  1. farm

Get cropping schemes

No fields.

Required scopes to access this end point
  1. plan

Get cropping schemes

Fields:

  • id: CharField
  • name: CharField R
  • farm_id: DidSerializerField
  • period_start: DateField
  • period_end: DateField
Required scopes to access this end point
  1. plan

Get the financial balance of the requested cropping scheme

Fields:

  • id: CharField
  • name: CharField R
  • farm_id: DidSerializerField
  • period_start: DateField
  • period_end: DateField
Required scopes to access this end point
  1. plan

No fields.

Required scopes to access this end point
  1. parcel_d

Fields:

  • id: CharField
  • name: CharField R
  • date: DateTimeField R
  • end_date: DateField
  • laboratory: LaboratorySerializer
  • registered_area: AreaAPIField
  • geometry: GeometryField
  • depth: SerializerMethodField
  • stratified: BooleanField
  • measurements: ListSerializer
  • crop_fields: ListSerializer
  • note: CharField
  • external_id: CharField
Required scopes to access this end point
  1. parcel_d

No fields.

Required scopes to access this end point
  1. crop_rec

Fields:

  • id: CharField
  • name: CharField R
  • date: DateTimeField R
  • laboratory: LaboratorySerializer
  • registered_area: AreaAPIField
  • geometry: GeometryField
  • crop_fields: ListSerializer
  • note: CharField
  • external_id: CharField
  • bbch: IntegerField
  • crop: CropTypeReferrerSerializer
Required scopes to access this end point
  1. crop_rec

Fields:

  • id: CharField
  • name: CharField R
  • date: DateTimeField R
  • laboratory: LaboratorySerializer
  • registered_area: AreaAPIField
  • geometry: GeometryField
  • crop_fields: ListSerializer
  • note: CharField
  • external_id: CharField
  • bbch: IntegerField
  • crop: CropTypeReferrerSerializer
Required scopes to access this end point
  1. crop_rec

Reference imports are sets of farm-imported geometries, like shapefiles.

No fields.

Required scopes to access this end point
  1. farm

Reference imports are sets of farm-imported geometries, like shapefiles.

Fields:

  • id: CharField
  • name: CharField R
  • type: SerializerMethodField
  • date_import: DateTimeField
  • nr_features: IntegerField
  • lower_left_extent: GeometryField R
  • upper_right_extent: GeometryField R
  • items: ListSerializer R
Required scopes to access this end point
  1. farm

Get contacts for farm

No fields.

Required scopes to access this end point
  1. farm

Get contacts for farm

Fields:

  • id: CharField
  • farm_id: DidSerializerField
  • contact_name: CharField
  • email: EmailField
  • phone: CharField
  • roles: ReadOnlyField
  • address: AddressSerializer
Required scopes to access this end point
  1. farm

No fields.

Required scopes to access this end point
  1. farm

Fields:

  • id: CharField
  • farm_id: DidSerializerField
  • contact_name: CharField
  • email: EmailField
  • phone: CharField
  • external_id: CharField R
  • address: AddressSerializer
Required scopes to access this end point
  1. farm

No fields.

Required scopes to access this end point
  1. farm

Fields:

  • id: CharField
  • field_id: CharField
  • cropfield_id: CharField R
  • cropfield_version: CharField R
  • cropfield_designator: CharField
  • third_party_cropfield_id: CharField
  • begin_date: DateTimeField R
  • end_date: DateTimeField
  • country: CharField R
  • regulatory_soiltype_code: CharField
  • croptype_code: CharField R
  • croptype_code_listID: CharField
  • crop_production_purpose_code: CharField
  • field_use_code: CharField
  • use_title_code: CharField R
  • variety_code: CharField
  • geometry: GeometryField
  • imported_at: DateTimeField
  • area: DecimalField
  • crop_name: SerializerMethodField
Required scopes to access this end point
  1. farm

Fields:

  • id: CharField
  • field_id: CharField
  • cropfield_id: CharField R
  • cropfield_version: CharField R
  • cropfield_designator: CharField
  • third_party_cropfield_id: CharField
  • begin_date: DateTimeField R
  • end_date: DateTimeField
  • country: CharField R
  • regulatory_soiltype_code: CharField
  • croptype_code: CharField R
  • croptype_code_listID: CharField
  • crop_production_purpose_code: CharField
  • field_use_code: CharField
  • use_title_code: CharField R
  • variety_code: CharField
  • geometry: GeometryField
  • imported_at: DateTimeField
  • area: DecimalField
  • crop_name: SerializerMethodField
Required scopes to access this end point
  1. farm

Fields:

  • id: CharField
  • field_id: CharField
  • cropfield_id: CharField R
  • cropfield_version: CharField R
  • cropfield_designator: CharField
  • third_party_cropfield_id: CharField
  • begin_date: DateTimeField R
  • end_date: DateTimeField
  • country: CharField R
  • regulatory_soiltype_code: CharField
  • croptype_code: CharField R
  • croptype_code_listID: CharField
  • crop_production_purpose_code: CharField
  • field_use_code: CharField
  • use_title_code: CharField R
  • variety_code: CharField
  • geometry: GeometryField
  • imported_at: DateTimeField
  • area: DecimalField
  • crop_name: SerializerMethodField
Required scopes to access this end point
  1. farm

Fields:

  • id: CharField
  • field_id: CharField
  • cropfield_id: CharField R
  • cropfield_version: CharField R
  • cropfield_designator: CharField
  • third_party_cropfield_id: CharField
  • begin_date: DateTimeField R
  • end_date: DateTimeField
  • country: CharField R
  • regulatory_soiltype_code: CharField
  • croptype_code: CharField R
  • croptype_code_listID: CharField
  • crop_production_purpose_code: CharField
  • field_use_code: CharField
  • use_title_code: CharField R
  • variety_code: CharField
  • geometry: GeometryField
  • imported_at: DateTimeField
  • area: DecimalField
  • crop_name: SerializerMethodField
Required scopes to access this end point
  1. farm

No fields.

Required scopes to access this end point
  1. crop_f

Fields:

  • id: CharField
  • farm_id: DidSerializerField
  • cropping_scheme_id: SerializerMethodField
  • name: CharField R
  • registered_area: AreaAPIField
  • period_start: DateField
  • period_end: DateField
  • crop: CropTypeReferrerSerializer R
  • variety: CropVarietyReferrerSerializer R
  • geometry: SerializerMethodField
  • soil_type: SerializerMethodField
  • regulatory_soil_type: EdiCodeSerializerField
  • country: PrimaryKeyRelatedField
  • notes: CharField
  • owner: FarmContactSerializer R
  • attributes: SerializerMethodField
  • soil_researches: ListSerializer
Required scopes to access this end point
  1. crop_f

Fields:

  • id: CharField
  • farm_id: DidSerializerField
  • cropping_scheme_id: SerializerMethodField
  • name: CharField R
  • registered_area: AreaAPIField
  • period_start: DateField
  • period_end: DateField
  • crop: CropTypeReferrerSerializer R
  • variety: CropVarietyReferrerSerializer R
  • geometry: SerializerMethodField
  • soil_type: SerializerMethodField
  • regulatory_soil_type: EdiCodeSerializerField
  • country: PrimaryKeyRelatedField
Required scopes to access this end point
  1. crop_f

returns the centroid if the crop field:


{
    "centroid": [
        7.148085688312003,  // x coordinate (longitude)
        53.22557800646526   // y coordinate (latitude)
    ]
}

Fields:

  • id: CharField
  • farm_id: DidSerializerField
  • cropping_scheme_id: SerializerMethodField
  • name: CharField R
  • registered_area: AreaAPIField
  • period_start: DateField
  • period_end: DateField
  • crop: CropTypeReferrerSerializer R
  • variety: CropVarietyReferrerSerializer R
  • geometry: SerializerMethodField
  • soil_type: SerializerMethodField
  • regulatory_soil_type: EdiCodeSerializerField
  • country: PrimaryKeyRelatedField
Required scopes to access this end point
  1. crop_f

No fields.

Required scopes to access this end point
  1. crop_f

Fields:

  • farm_id: DidSerializerField
  • cropping_scheme_id: DidSerializerField
  • name: CharField R
  • crop_field_ids: SerializerMethodField
Required scopes to access this end point
  1. crop_f

No fields.

Required scopes to access this end point
  1. barn

Fields:

  • id: CharField
  • farm_id: DidSerializerField
  • cropping_scheme_id: DidSerializerField
  • name: CharField R
  • product: ProductTypeReferrerSerializer R
  • unit: ReadOnlyField
  • attributes: SerializerMethodField
Required scopes to access this end point
  1. barn

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of jobs and create a job from multiple tasks

When creating a new job, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a jon.

# With a list of machine ids | uuids
cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/jobs/',
                     data=json.dumps({"name": "name of job", "tasks": [1, 2, 3, ...] | ["b123-234", ...], }),
                     content_type="application/json"
                     )

Filtering

optional request parameters for filtering are:

order_nr
only return jobs matching the exact order_nr

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of tasks or to create new tasks.

When creating a new task, data must be sent in json format and the content_type of the put request must be "application/json"

simple code example to create a task.

cropr_api_client.post('/api/v3/farms/[FARM_ID]/cropping_schemes/[CROPPING_SCHEME_ID]/crop_fields/[FIELD_ID]/tasks/',
                     data=json.dumps({"date": "2016-11-11T16:41:00", "operations": [{"edi_code": "504003", }], }),
                     content_type="application/json"
                     )
example of more complex json data for creating a task:
{
    "id": "06af0aac-cf96-4a17-84ff-4b9027568",  # unique id for this task.
    "date": "2016-11-11T16:41:00",              # when task was performed
    "duration": "01:11:00",                     # duration of de task (1 hour and 11 minutes)
    "treatment_zone": {                         # treament zone of the task (if not specified whole cropfield is assumed)
        "unit": "ha",                               # unit of area
        "value": 10.8                               # area
    },
    "operations": [                             # list of operations in this task
        {
            "code": "80300",                        # operation edi code (Row spraying)
            "batches": [                            # batches used for this operation
                {
                    "batch_id": "b123-234",             # unique batch-id
                    "value": 1.125,                     # amount of product applied
                    "unit": "l/ha",                     # dosage unit
                    "product_name": "Finale",           # Name describing the product
                }
            ],
            "attributes": [                         # operation attributes
                {
                    "id": "8c409808-eefc-..."           # safety term attribute
                    "value": 14.0,                      # value of safety term (in days)
                }
            ],
        }
    ],
    "machines": ["b123-234", ...],                         # list of machine ids | uuids
    "labels": ["b123-234", ...] | ["a", "b", ...],         # list of label ids | uuids | names
    "coworkers" : ["b123-234", ...] | ["a", "b", ...],     # list of coworkers ids | uuids | names
    "notes": "Destroy Herbicides"                          # extra notes for this task.
}

Filtering

optional request parameters for filtering are:

order_nr
only return tasks matching the exact order_nr
history
return also the tasks history, e.g. if a task transitioned from planned to performed.

Task actions

Optional you pass actions along with the post request when creating a new task. e.g.
{
    "date": "2016-11-11T16:41:00",              # when task was performed

    ...

    "actions": {
        'SEND_CONTRACTOR_SELECTOR_INVITATION': {
            "external_id": "customer_nr_1",             # a customer external id
            "order_nr": "your own order number",        # an order number for the contractor selector invitation
        }
    }

}

SEND_CONTRACTOR_SELECTOR_INVITATION
This action links the customer to the new task and adds the order number. The customer receives an invitation email where he is asked to selected/draw the crop field where the task should be performed.

No fields.

Required scopes to access this end point
  1. crop_rec

Endpoint to get a list of observations.

No fields.

Required scopes to access this end point
  1. crop_rec

No fields.

Required scopes to access this end point
  1. crop_f