Size

Retrieve TrueFruit size measurements and size and mass forecasts by orchard and date, including size distributions, sample positions, and forecast ranges.

Use these endpoints to retrieve fruit size data collected in the field and forecasted size and mass distributions generated for future dates. The data supports three record types:

  • Measurements — Returns observed fruit size distributions for a specific orchard and measurement date. Detailed responses can also include length distributions, mass distributions, and sample position averages with GPS coordinates.
  • Size forecasts — Returns forecasted fruit size distributions for a specific orchard and forecast date, including per-range percentages of total count and total mass.
  • Mass forecasts — Returns forecasted fruit mass distributions for a specific orchard and forecast date, including per-range percentages of total count. These are only available for select Kiwifruit cultivars.

The measurements endpoints return observed size data, while the forecast endpoints return predicted distributions. Within each set, the list endpoint returns data aggregated by orchard and date, and the detail endpoint returns the full distribution data for a single orchard and date.

Recommended patterns for fetching TrueFruit size data

How to fetch fruit size distributions per orchard

  1. First pull per orchard size measurement dates for a given time period using the farming/truefruit/size/measurements/ endpoint. The response will return a list of objects containing an orchard_id and measurement_date. Filter the response using the processed_date query parameter. Using the processed_date is the most robust approach because it avoids losing records where there is a large delay between the data collection date and when it became available to consume. If you are fetching data on a cron, for example once a day, use the date you last fetched data on.
  2. To fetch the detailed orchard size distributions and aggregated metrics, pass the orchard_id and measurement_date received in the farming/truefruit/size/measurements/ response into the farming/truefruit/size/measurements/{orchard_id}/{measurement_date} endpoint. Use the size_distribution_format query parameter to select 1mm, 2mm, 2.5mm, 5mm, harvest_ranges_by_weight, or harvest_ranges_by_pieces bins. The default is harvest_ranges_by_pieces. For select Kiwifruit cultivars, use mass_distribution_format to select 1g, 5g, 10g, or harvest_ranges mass bins. The default is 1g.

How to fetch forecasted size distributions per orchard

  1. First pull per orchard size forecast dates for a given time period using the farming/truefruit/size/forecasts/ endpoint. The response will return a list of objects containing an orchard_id and forecast_date. Filter the response using the processed_date query parameter. Using the processed_date is the most robust approach because it avoids losing records where there is a large delay between the forecast generation date and when it became available to consume. If you are fetching data on a cron, for example once a day, use the date you last fetched data on.
  2. To fetch the detailed orchard size forecast and aggregated metrics, pass the orchard_id and forecast_date received in the farming/truefruit/size/forecasts/ response into the farming/truefruit/size/forecasts/{orchard_id}/{forecast_date} endpoint. This returns a size_ranges array with the bin ranges and each range's percentage of total count and percentage of total mass.

How to fetch forecasted mass distributions per orchard

  1. First pull per orchard mass forecast dates for a given time period using the farming/truefruit/mass/forecasts/ endpoint. The response will return a list of objects containing an orchard_id and forecast_date. Filter the response using the processed_date__gte query parameter. Using processed_date__gte is the most robust approach because it avoids losing records where there is a large delay between the forecast generation date and when it became available to consume. If you are fetching data on a cron, for example once a day, use the date you last fetched data on.
  2. To fetch the detailed orchard mass forecast and aggregated metrics, pass the orchard_id and forecast_date received in the farming/truefruit/mass/forecasts/ response into the farming/truefruit/mass/forecasts/{orchard_id}/{forecast_date} endpoint. This returns a mass_ranges array with the bin ranges and each range's percentage of total count.

Size Measurement Compact

KeyTypeDescription
farm_idIntegerThe unique identifier for the farm which is provided by Aerobotics.
orchard_idIntegerThe unique identifier of the orchard.
measurement_dateDateThe date on which the data was collected.
processed_dateDateThe date on which the data completed processing.
average_fruit_size_mmNumberThe average fruit size of the distribution in millimeters.
average_length_mmNumber | NullThe average fruit length in millimeters. Available for Kiwifruit and Avocado orchards.
average_mass_gNumber | NullThe average fruit mass in grams. Available for select Kiwifruit cultivars.
count_fruit_measuredIntegerTotal number of fruit included in the size distribution.

Example response

{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "farm_id": 1234,
      "orchard_id": 5678,
      "measurement_date": "2025-11-15",
      "processed_date": "2025-11-16",
      "average_fruit_size_mm": 63.8,
      "average_length_mm": 72.4,
      "average_mass_g": 145.2,
      "count_fruit_measured": 1240
    }
  ]
}

Size Measurement Detailed

KeyTypeDescription
farm_idIntegerThe unique identifier of the farm, provided by Aerobotics, which the measurement belongs to.
orchard_idIntegerThe unique identifier of the orchard, provided by Aerobotics, which the measurement belongs to.
measurement_dateDateThe date on which the data was collected.
processed_dateDateThe date on which the data completed processing.
size_distribution[][Size Distribution Record]The size distribution of fruit bucketed by either mm ranges or harvest size categories.
average_fruit_size_mmNumberThe average fruit size of the distribution in millimeters.
count_fruit_measuredIntegerTotal number of fruit included in the size distribution.
average_length_mmNumber | NullThe average fruit length in millimeters. Available for Kiwifruit and Avocado orchards.
length_distribution[][Length Distribution Record]The length distribution of fruit bucketed by mm ranges. Available for Kiwifruit and Avocado orchards.
average_mass_gNumber | NullThe average fruit mass in grams. Available for select Kiwifruit cultivars.
mass_distribution[][Mass Distribution Record]The mass distribution of fruit bucketed according to mass_distribution_format. Available for select Kiwifruit cultivars.
count_sample_positionsIntegerNumber of unique geolocations where data was collected within the orchard.
sample_positions[][Sample Position Record]An array of sample position records with GPS coordinates and per-position averages.

Size Distribution Record

KeyTypeDescription
bin_rangeStringSize range of the histogram bin in millimeters.
percentageNumberPercentage of fruit sizes that fall within the corresponding bin range.
labelString | NullName of the histogram bin range. Typically the harvest size category names. (optional)

Length Distribution Record

KeyTypeDescription
bin_rangeStringSize range of the histogram bin in millimeters.
percentageNumberPercentage of fruit lengths that fall within the corresponding bin

Mass Distribution Record

KeyTypeDescription
bin_rangeStringMass range of the histogram bin in grams. Returned as a string defined by <start_mass>-<end_mass>.
percentageNumberPercentage of fruit mass that fall within the corresponding bin.
labelString | NullName of the histogram bin range. Typically the harvest mass category names. (optional)

Sample Position Record

KeyTypeDescription
sample_position_idIntegerUnique identifier for a sample position.
latitudeNumberLatitude of the sample position location.
longitudeNumberLongitude of the sample position location.
average_fruit_size_mmNumberThe average fruit size of the distribution in millimeters.
count_fruit_measuredIntegerTotal number of fruit included in the size distribution for the sample position.
average_length_mmNumber | NullThe average fruit length in millimeters. Available for Kiwifruit and Avocado orchards.
average_mass_gNumber | NullThe average fruit mass in grams. Available for select Kiwifruit cultivars.

Example response

{
  "farm_id": 1234,
  "orchard_id": 5678,
  "measurement_date": "2025-11-15",
  "processed_date": "2025-11-16",
  "size_distribution": [
    {
      "bin_range": "60-61",
      "percentage": 12.5,
      "label": null
    },
    {
      "bin_range": "62-63",
      "percentage": 34.0,
      "label": null
    },
    {
      "bin_range": "64-65",
      "percentage": 53.5,
      "label": null
    }
  ],
  "average_fruit_size_mm": 63.8,
  "count_fruit_measured": 1240,
  "average_length_mm": 72.4,
  "length_distribution": [
    {
      "bin_range": "70-71",
      "percentage": 28.0
    },
    {
      "bin_range": "72-73",
      "percentage": 44.0
    },
    {
      "bin_range": "74-75",
      "percentage": 28.0
    }
  ],
  "average_mass_g": 145.2,
  "mass_distribution": [
    {
      "bin_range": "144-145",
      "percentage": 31.5
    },
    {
      "bin_range": "146-147",
      "percentage": 47.0
    },
    {
      "bin_range": "148-149",
      "percentage": 21.5
    }
  ],
  "count_sample_positions": 3,
  "sample_positions": [
    {
      "sample_position_id": 101,
      "latitude": -33.9249,
      "longitude": 18.4241,
      "average_fruit_size_mm": 63.1,
      "count_fruit_measured": 410,
      "average_length_mm": 71.8,
      "average_mass_g": 144.1
    },
    {
      "sample_position_id": 102,
      "latitude": -33.9251,
      "longitude": 18.4243,
      "average_fruit_size_mm": 64.0,
      "count_fruit_measured": 398,
      "average_length_mm": 72.6,
      "average_mass_g": 145.8
    },
    {
      "sample_position_id": 103,
      "latitude": -33.9253,
      "longitude": 18.4245,
      "average_fruit_size_mm": 64.2,
      "count_fruit_measured": 432,
      "average_length_mm": 72.9,
      "average_mass_g": 145.7
    }
  ]
}

Size Forecast Compact

KeyTypeDescription
farm_idIntegerThe unique identifier for the farm which is provided by Aerobotics.
orchard_idIntegerThe unique identifier of the orchard.
forecast_dateDateForecast date for the distribution.
processed_dateDateThe date on which the data completed processing.
average_fruit_size_mmNumberThe average fruit size of the forecasted distribution in millimeters.

Example response

{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "farm_id": 1234,
      "orchard_id": 5678,
      "forecast_date": "2025-11-30",
      "processed_date": "2025-11-16",
      "average_fruit_size_mm": 67.9
    }
  ]
}

Size Forecast Detailed

KeyTypeDescription
farm_idIntegerThe unique identifier of the farm.
orchard_idIntegerThe unique identifier of the orchard.
forecast_dateDateForecast date.
processed_dateDateThe date on which the data completed processing.
average_fruit_size_mmNumberThe average fruit size of the forecasted distribution in millimeters.
size_ranges[][Size Forecast Range]An array of forecast range records. Each record includes a bin range and its percentage of total count and percentage of total mass.

Size Forecast Range

KeyTypeDescription
labelString | NullName of the histogram bin range. Typically the harvest size category names.
bin_rangeStringSize range of the histogram bin in millimeters. Returned as a string defined by <start>-<end>.
percentage_of_total_countNumberPercentage of fruit sizes that fall within the corresponding bin range.
percentage_of_total_massNumberPercentage of fruit mass that fall within the corresponding bin range.

Example response

{
  "farm_id": 1234,
  "orchard_id": 5678,
  "forecast_date": "2025-11-30",
  "processed_date": "2025-11-16",
  "average_fruit_size_mm": 67.9,
  "size_ranges": [
    {
      "label": null,
      "bin_range": "64-65",
      "percentage_of_total_count": 18.0,
      "percentage_of_total_mass": 15.6
    },
    {
      "label": null,
      "bin_range": "66-67",
      "percentage_of_total_count": 41.5,
      "percentage_of_total_mass": 40.8
    },
    {
      "label": null,
      "bin_range": "68-69",
      "percentage_of_total_count": 40.5,
      "percentage_of_total_mass": 43.6
    }
  ]
}

Mass Forecast Compact

KeyTypeDescription
farm_idIntegerThe unique identifier of the farm.
orchard_idIntegerThe unique identifier of the orchard.
forecast_dateDateForecast date for the distribution.
processed_dateDateThe date on which the data completed processing.
average_fruit_mass_gNumber | NullThe average fruit mass of the forecasted distribution in grams.

Mass Forecast Detailed

KeyTypeDescription
farm_idIntegerThe unique identifier of the farm.
orchard_idIntegerThe unique identifier of the orchard.
forecast_dateDateForecast date.
processed_dateDateThe date on which the data completed processing.
average_fruit_mass_gNumber | NullThe average fruit mass of the forecasted distribution in grams.
mass_ranges[][Mass Forecast Range]An array of forecast range records. Each record includes a bin range and its percentage of total count.

Mass Forecast Range

KeyTypeDescription
labelString | NullName of the histogram bin range. Typically the harvest size category names.
bin_rangeStringMass range of the histogram bin in grams. Returned as a string defined by <start_mass>-<end_mass>.
percentage_of_total_countNumberPercentage of fruit that fall within the corresponding bin range.

Recipes