curl 'https://www.wiseyield.co/api/v1/crops?status=growing&limit=50' \
-H "Authorization: Bearer $WISEYIELD_API_KEY"
const res = await fetch(
'https://www.wiseyield.co/api/v1/crops?status=growing&limit=50',
{ headers: { Authorization: `Bearer ${process.env.WISEYIELD_API_KEY}` } }
);
const { data, pagination } = await res.json();
import os, requests
res = requests.get(
'https://www.wiseyield.co/api/v1/crops',
params={'status': 'growing', 'limit': 50},
headers={'Authorization': f"Bearer {os.environ['WISEYIELD_API_KEY']}"},
)
body = res.json()
{
"data": [
{
"id": "33333333-4444-5555-6666-777777777777",
"farmId": "11111111-2222-3333-4444-555555555555",
"fieldId": "88888888-9999-aaaa-bbbb-cccccccccccc",
"cropType": "date palm",
"variety": "Medjool",
"adminCropId": null,
"adminCropVarietyId": null,
"plantedArea": "4.2",
"plantingDate": "2024-03-15T00:00:00.000Z",
"expectedHarvestDate": "2026-10-01T00:00:00.000Z",
"actualHarvestDate": null,
"season": "spring",
"seasonYear": 2024,
"expectedYield": "180",
"actualYield": null,
"estimatedCost": "12000",
"actualCost": "10500",
"estimatedRevenue": "45000",
"actualRevenue": null,
"status": "growing",
"notes": "Drip-irrigated, fall NPK pending",
"createdAt": "2024-03-15T08:00:00.000Z",
"updatedAt": "2026-05-10T14:30:00.000Z"
}
],
"pagination": { "page": 1, "limit": 50, "total": 1, "totalPages": 1 }
}
{
"error": "Forbidden",
"code": "INSUFFICIENT_SCOPE",
"message": "Insufficient permissions. Required scope: crops:read",
"details": {
"requiredScope": "crops:read",
"availableScopes": ["farms:read"]
}
}
Crops
List crops
List crops belonging to farms owned by the authenticated user.
GET
/
api
/
v1
/
crops
curl 'https://www.wiseyield.co/api/v1/crops?status=growing&limit=50' \
-H "Authorization: Bearer $WISEYIELD_API_KEY"
const res = await fetch(
'https://www.wiseyield.co/api/v1/crops?status=growing&limit=50',
{ headers: { Authorization: `Bearer ${process.env.WISEYIELD_API_KEY}` } }
);
const { data, pagination } = await res.json();
import os, requests
res = requests.get(
'https://www.wiseyield.co/api/v1/crops',
params={'status': 'growing', 'limit': 50},
headers={'Authorization': f"Bearer {os.environ['WISEYIELD_API_KEY']}"},
)
body = res.json()
{
"data": [
{
"id": "33333333-4444-5555-6666-777777777777",
"farmId": "11111111-2222-3333-4444-555555555555",
"fieldId": "88888888-9999-aaaa-bbbb-cccccccccccc",
"cropType": "date palm",
"variety": "Medjool",
"adminCropId": null,
"adminCropVarietyId": null,
"plantedArea": "4.2",
"plantingDate": "2024-03-15T00:00:00.000Z",
"expectedHarvestDate": "2026-10-01T00:00:00.000Z",
"actualHarvestDate": null,
"season": "spring",
"seasonYear": 2024,
"expectedYield": "180",
"actualYield": null,
"estimatedCost": "12000",
"actualCost": "10500",
"estimatedRevenue": "45000",
"actualRevenue": null,
"status": "growing",
"notes": "Drip-irrigated, fall NPK pending",
"createdAt": "2024-03-15T08:00:00.000Z",
"updatedAt": "2026-05-10T14:30:00.000Z"
}
],
"pagination": { "page": 1, "limit": 50, "total": 1, "totalPages": 1 }
}
{
"error": "Forbidden",
"code": "INSUFFICIENT_SCOPE",
"message": "Insufficient permissions. Required scope: crops:read",
"details": {
"requiredScope": "crops:read",
"availableScopes": ["farms:read"]
}
}
GET https://www.wiseyield.co/api/v1/crops
Authentication
Requires a key with thecrops:read scope. See Authentication.
Query parameters
Page number (≥ 1).
Results per page (1–100; values above 100 are clamped to 100).
Filter by status:
planned, planted, growing, harvested, failed.Filter to crops on a specific farm (UUID).
Filter to crops on a specific field (UUID).
Sort field:
createdAt, cropType, plantedArea, plantingDate.Sort direction:
asc, desc.Response
Array of crop objects.
Show Crop
Show Crop
UUID.
UUID of the parent farm.
UUID of the field this crop is planted on. Required per the Operations Attachment Principle.
Free-text crop name (e.g.
"wheat", "date palm").Free-text variety (e.g.
"Medjool").UUID linking to the admin Crop Library (preferred over free-text).
UUID linking to the admin variety record.
Numeric string in the farm’s
areaUnit.ISO 8601.
ISO 8601.
ISO 8601. Auto-set when
status transitions to harvested.One of
winter, summer, autumn, spring, year_round.e.g.
2026.Numeric string (tons).
Numeric string (tons).
Numeric string in the farm’s
currency.Numeric string in the farm’s
currency.Numeric string in the farm’s
currency.Numeric string in the farm’s
currency.One of
planned, planted, growing, harvested, failed.Free text, up to 5,000 characters.
ISO 8601.
ISO 8601.
curl 'https://www.wiseyield.co/api/v1/crops?status=growing&limit=50' \
-H "Authorization: Bearer $WISEYIELD_API_KEY"
const res = await fetch(
'https://www.wiseyield.co/api/v1/crops?status=growing&limit=50',
{ headers: { Authorization: `Bearer ${process.env.WISEYIELD_API_KEY}` } }
);
const { data, pagination } = await res.json();
import os, requests
res = requests.get(
'https://www.wiseyield.co/api/v1/crops',
params={'status': 'growing', 'limit': 50},
headers={'Authorization': f"Bearer {os.environ['WISEYIELD_API_KEY']}"},
)
body = res.json()
{
"data": [
{
"id": "33333333-4444-5555-6666-777777777777",
"farmId": "11111111-2222-3333-4444-555555555555",
"fieldId": "88888888-9999-aaaa-bbbb-cccccccccccc",
"cropType": "date palm",
"variety": "Medjool",
"adminCropId": null,
"adminCropVarietyId": null,
"plantedArea": "4.2",
"plantingDate": "2024-03-15T00:00:00.000Z",
"expectedHarvestDate": "2026-10-01T00:00:00.000Z",
"actualHarvestDate": null,
"season": "spring",
"seasonYear": 2024,
"expectedYield": "180",
"actualYield": null,
"estimatedCost": "12000",
"actualCost": "10500",
"estimatedRevenue": "45000",
"actualRevenue": null,
"status": "growing",
"notes": "Drip-irrigated, fall NPK pending",
"createdAt": "2024-03-15T08:00:00.000Z",
"updatedAt": "2026-05-10T14:30:00.000Z"
}
],
"pagination": { "page": 1, "limit": 50, "total": 1, "totalPages": 1 }
}
{
"error": "Forbidden",
"code": "INSUFFICIENT_SCOPE",
"message": "Insufficient permissions. Required scope: crops:read",
"details": {
"requiredScope": "crops:read",
"availableScopes": ["farms:read"]
}
}
Errors
| Status | When |
|---|---|
401 | Missing, malformed, expired, or revoked API key |
403 | Key lacks crops:read scope |
429 | Rate limit reached |
5xx | Server error |
⌘I