Skip to main content
Use the growers endpoints to create or manage grower records and to bulk-enable preview fields for onboarding. This page is the narrow reference for grower-specific operations, while farms and fields live in the broader fields reference. For conceptual background, see Growers.

Base URL

https://api.withleaf.io/services/fields/api

Endpoints

EndpointMethodPath
Get all growersGET/growers
Get a growerGET/users/{leafUserId}/growers/{id}
Create a growerPOST/users/{leafUserId}/growers
Update a growerPUT/users/{leafUserId}/growers/{id}
Enable preview fields by growerPOST/growers/enableSync

Get all growers

GET /growers Returns a paginated list of growers available to the authenticated API owner. Use leafUserId to narrow the list to one Leaf user.

Parameters

ParameterTypeDescription
leafUserIdstring (UUID)Filter by Leaf user.
providerstringFilter by provider name (JohnDeere, ClimateFieldView, CNHI, Trimble).
namestringFilter by grower name.
providerOrganizationIdstringFilter by the organization ID on the provider side.
providerCompanyIdstringFilter by the company ID on the provider side.
providerGrowerIdstringFilter by the grower ID on the provider side.
pageintegerPage number (default 0).
sizeintegerPage size (default 20, max 100).
sortstringSorting order with optional ,asc or ,desc suffix.
The default page size is 20 when page and size are not set.

Request

curl -X GET \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  'https://api.withleaf.io/services/fields/api/growers?leafUserId=1d3ecb0f-bf3d-42db-aae6-8c45c045d28c'

Response

[
  {
    "id": 873300016,
    "name": "1Grower",
    "leafUserId": "1d3ecb0f-bf3d-42db-aae6-8c45c045d28c",
    "providerName": "JohnDeere",
    "providerId": 2,
    "providerGrowerId": "1Grower",
    "farmIds": [],
    "createdTime": "2023-06-06T03:31:39.966630Z",
    "updatedTime": "2023-06-07T20:01:14.814346Z"
  }
]
For John Deere, growers correspond to John Deere “Clients.” The name property comes directly from the Client name.

Get a grower

GET /users/{leafUserId}/growers/{id} Returns a single grower by ID.

Parameters

ParameterTypeDescription
leafUserIdpath (UUID)The Leaf user ID.
idpath (integer)The grower ID.

Request

curl -X GET \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  'https://api.withleaf.io/services/fields/api/users/1d3ecb0f-bf3d-42db-aae6-8c45c045d28c/growers/873300016'

Response

{
  "id": 873300016,
  "name": "1Grower",
  "leafUserId": "1d3ecb0f-bf3d-42db-aae6-8c45c045d28c",
  "providerName": "JohnDeere",
  "providerId": 2,
  "providerGrowerId": "1Grower",
  "farmIds": [],
  "createdTime": "2023-06-06T03:31:39.966630Z",
  "updatedTime": "2023-06-07T20:01:14.814346Z"
}

Create a grower

POST /users/{leafUserId}/growers Creates a grower for the specified Leaf user. Leaf assigns an auto-generated integer ID.

Parameters

ParameterTypeDescription
leafUserIdpath (UUID)The Leaf user ID.

Request body

{
  "name": "Smith Farms"
}
Only the name field is accepted.

Request

curl -X POST \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"name":"Smith Farms"}' \
  'https://api.withleaf.io/services/fields/api/users/{leafUserId}/growers'

Response

Returns the created grower object.

Update a grower

PUT /users/{leafUserId}/growers/{id} Updates the grower’s name.

Parameters

ParameterTypeDescription
leafUserIdpath (UUID)The Leaf user ID.
idpath (integer)The grower ID.

Request body

{
  "name": "Updated Grower Name"
}

Request

curl -X PUT \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"name":"Updated Grower Name"}' \
  'https://api.withleaf.io/services/fields/api/users/{leafUserId}/growers/{id}'

Response

Returns the updated grower object.

Enable preview fields by grower

POST /growers/enableSync Enables sync for John Deere fields in PREVIEW status under the specified growers. Matching fields are moved to WAITING and queued for sync.
Use this when the customDataSync configuration is enabled. This is faster than enabling fields individually when you want to onboard an entire grower.

Request body

{
  "growerIds": [873300016, 873300017]
}

Request

curl -X POST \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"growerIds":[873300016,873300017]}' \
  'https://api.withleaf.io/services/fields/api/growers/enableSync'

Response

{
  "affectedFieldIds": [
    "field-id-1",
    "field-id-2"
  ]
}
Last modified on March 24, 2026