Leaf connects to Trimble Agriculture using OAuth 2.0. Once connected, Leaf syncs growers, farms, fields, machine files, and field operations for the Leaf user.
Prerequisites
- A Trimble Agriculture developer account. Register here.
- Your application’s
clientId and clientSecret from Trimble.
- A grower’s
refreshToken obtained through the Trimble OAuth 2.0 consent flow.
Setup steps
- Complete the Trimble OAuth 2.0 flow to obtain a
refreshToken for the grower’s account.
- POST the credentials to Leaf:
curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"clientId": "your-client-id",
"clientSecret": "your-client-secret",
"refreshToken": "grower-refresh-token"
}' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/trimble-credentials'
- Leaf validates the token and begins syncing. Check credential status with
GET /users/{leafUserId}/trimble-credentials.
Credentials schema
Create request body:
| Field | Type | Required | Description |
|---|
clientId | string | Yes | Your application’s client ID from Trimble |
clientSecret | string | Yes | Your application’s client secret |
refreshToken | string | Yes | The grower’s OAuth refresh token |
Response:
{
"id": "uuid",
"status": "str",
"createdTime": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"tokenMetadata": {"scopes": ["str"]},
"clientId": "str",
"clientSecret": "str",
"accessToken": "str",
"refreshToken": "str"
}
Endpoints
Base URL: https://api.withleaf.io/services/usermanagement/api
| Action | Method | Path |
|---|
| Get credentials | GET | /users/{leafUserId}/trimble-credentials |
| Create credentials | POST | /users/{leafUserId}/trimble-credentials |
| Delete credentials | DELETE | /users/{leafUserId}/trimble-credentials |
| Get credential events | GET | /users/{leafUserId}/trimble-credentials/events |
Troubleshooting
Use the events endpoint to inspect credential health:
curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/trimble-credentials/events'
Event logs are retained for 30 days. Once the credential is deleted or disassociated from the Leaf user, the logs are no longer available.
Common issues:
- Status changes to invalid: The grower may have revoked access or the refresh token expired. Have the grower re-authorize through Trimble’s OAuth flow.
What to do next