Skip to main content
POST
/
api
/
v1
/
farms
/
{id}
/
fields
/
{fieldId}
/
blocks
/
{blockId}
/
plants
curl -X POST 'https://www.wiseyield.co/api/v1/farms/11111111.../fields/88888888.../blocks/aaaaaaaa.../plants' \
  -H "Authorization: Bearer $WISEYIELD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "label": "Row 1, Tree 4",
    "tagId": "QR-MDJ-0247",
    "position": { "lat": 30.0444, "lng": 31.2357 },
    "plantedAt": "2024-03-15T00:00:00.000Z",
    "status": "alive"
  }'
{
  "data": {
    "id": "ffffffff-1111-2222-3333-444444444444",
    "blockId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
    "label": "Row 1, Tree 4",
    "tagId": "QR-MDJ-0247",
    "position": { "lat": 30.0444, "lng": 31.2357 },
    "plantedAt": "2024-03-15T00:00:00.000Z",
    "status": "alive",
    "createdAt": "2026-05-17T17:20:00.000Z"
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.wiseyield.co/llms.txt

Use this file to discover all available pages before exploring further.

POST https://www.wiseyield.co/api/v1/farms/{id}/fields/{fieldId}/blocks/{blockId}/plants

Authentication

Requires a key with the fields:write scope.

Path parameters

id
string
required
Farm UUID.
fieldId
string
required
Field UUID.
blockId
string
required
Block UUID.

Request body

label
string
required
1–100 characters. Within-block identifier (e.g. "Row 1, Tree 4", "P-0001").
tagId
string
1–200 characters. QR / RFID / barcode identifier. Unique within the block — duplicate returns 409 CONFLICT.
position
object
{ lat: number, lng: number }. GPS position. Pass null to clear.
plantedAt
string
ISO 8601 datetime.
status
string
default:"alive"
One of alive, sick, dead, replaced, removed.
notes
string
Up to 2,000 characters.

Response

Returns the created plant wrapped under data.
curl -X POST 'https://www.wiseyield.co/api/v1/farms/11111111.../fields/88888888.../blocks/aaaaaaaa.../plants' \
  -H "Authorization: Bearer $WISEYIELD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "label": "Row 1, Tree 4",
    "tagId": "QR-MDJ-0247",
    "position": { "lat": 30.0444, "lng": 31.2357 },
    "plantedAt": "2024-03-15T00:00:00.000Z",
    "status": "alive"
  }'
{
  "data": {
    "id": "ffffffff-1111-2222-3333-444444444444",
    "blockId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
    "label": "Row 1, Tree 4",
    "tagId": "QR-MDJ-0247",
    "position": { "lat": 30.0444, "lng": 31.2357 },
    "plantedAt": "2024-03-15T00:00:00.000Z",
    "status": "alive",
    "createdAt": "2026-05-17T17:20:00.000Z"
  }
}

Errors

StatusWhen
400 INVALID_IDAny path UUID is malformed
400 VALIDATION_ERRORBody validation failed
401Missing, malformed, expired, or revoked API key
403 INSUFFICIENT_SCOPEKey lacks fields:write scope
404 NOT_FOUNDFarm, field, or block doesn’t exist or belongs to another user
409 CONFLICTtagId already exists for another plant in this block
429 RATE_LIMIT_EXCEEDEDPer-user rate limit reached
5xxServer error