Getting Started:
Precision Tech
Below you will find information on creating a John Deere user account or
developer application, sandbox and testing guidelines, as well as our
process for moving your application to production.
Create a John Deere User Account
A John Deere user account is required to log into https://developer.deere.com to create a developer application and connect with our APIs. If you already have a John Deere user account and an Operations Center organization, you may skip to the user account creation process and proceed to the Create Developer Application steps.
If you do not have a John Deere user account, you may create one here.
During the user creation process, you will be required to create an Operations Center organization. This organization can be used to test some Precision Tech APIs directly with your own user API token.
Create a Developer Application
A developer application is required to connect to our John Deere API platform or access our offline ADAPT SDK installation files. Creating a developer application provides you and your development team with an application ID and secret which is required to begin user authentication. This application and its details are also important for your customers to understand who you are and what this application does.
Who should create this application?
Anyone with a John Deere user account can create an API application. However, before creating the application, you should check within your own organization if someone else has already created a developer application with us, as multiple users can be added to one application to share application credentials for a single integration project. Business owners of your application as well as developers should be a part of your application’s team. We use the Team Member email addresses to communicate with your team regarding updates and changes to our API platform.
Creating the application is typically completed by a developer starting the integration with our system, so in most cases detailed business-related information about the application is not entered when created. We encourage your team to meet and discuss what information should be added to your application details prior to creating this developer application. The information can also be updated later after the creation of the application, but it can only be edited by Team Members with Edit rights to the application.
How do I create this application?
Sign into https://developer.deere.com with your John Deere user account. See prior steps on creating a John Deere user account if you do not have one.
Navigate to My Applications in the header menu and then click on the Create Application button
Review and Accept the API Development License Agreement.The acceptance of this click-through agreement is required to create a developer application with us, and you will sign a more formal production contract (link to API production contract file) in the later steps of moving your application to production (link to Go To Production section).
Enter your application details.
Please use your company and/or product legal name as your Application Name. Do not use names like 'test' or 'test app'. Also, the purpose of the application is explained in the short description below so the application name should not contain words that describe the application’s function.
Enter a Short Description, which your users will see when they connect their Operations Center organizations with your application. This should quickly explain the purpose of the application. A long description can be entered later in the Marketing section of your application details.
A Redirect URI is required during the creation of your application as our public APIs utilize standard OAuth 2, which requires a redirect/callback URL for authorization. You may use the example given in the application creation workflow if you do not have one when creating the application, but this should be temporary until you create one specific to your application domain address.
You may add an Application Logo during application creation, but it is not required. This will be required when your application moves to production.
Click the Next button in the bottom right corner of the window, this action will create the developer application and give you the option of selecting APIs to request access to.
It is NOT required initially to request access to APIs during the application creation process, so if you are not sure what to select, or you have not read the Dev Docs documentation for the APIs please select the “Skip this step” option at the bottom of the screen.
If you choose to request access to APIs, please select only the few APIs that represent the data you are interested in. Requesting all APIs available is not the intended purpose of this workflow as no one application will need access to every API we offer.
Once you finish the steps above, you will be redirected back to the My Applications section. You can click on the application View Details option to review the application details, including the Security section which will contain your application Id and Secret which is required for Authenticating users. You may also use this opportunity to fill out the Marketing section to add more application details for your customers to see. More details on the Marketing section can be found here.
Once you have created your application, the next step is to make some test API calls. Please use this guide to understand our Sandbox testing procedures and requirements. You will have six months to test and refine your integration with us.
Once you have developed your application and tested it with our Sandbox URLs, you can request access to the Production URLs and make your application available for public use. Please refer to this guide for help in moving your application to production.
Sandbox and Testing
For access to APIs, please go to the My Applications section and select the “View Details” option for your application, then select the “Access” tab and “Request Access”. There you can select the APIs needed to send and receive data to/from John Deere. You may also request API access when creating your application.
For the Operations Center APIs, you must request and receive access to at least one API to begin your integration testing. Along with the APIs you are granted, you will also receive access to another API endpoint automatically, which is Organizations. We provide access to this Organizations API by default to enable your application to create a Connection to a John Deere organization. For help with Connections, please see this guide. Each Operations Center API Dev Dec provides Security information for these APIs.
For the ISO 15143-3 API, the Organizations API mentioned above it not needed. Once you have requested and receive access to this ISO API, you will only be able to call this /Fleet API using the Sandbox URL to start which will help enable your application to create a Connection to a John Deere organization. Please see the Dev Docs Security section of this API for information on getting started using this.
For the Pro Dispatch API, making Operations Center organization connections is not required today. Once you request and receive access to this API, you will only be able to call this API using the Sandbox URL to start. Please see the Dev Docs Security section of this API for information on getting started using this.
What is Sandbox?
Sandbox is merely an API URL listed in our public documentation which your client application can use to test out API interactions with John Deere APIs using real production data. We do not have a sandbox environment for any APIs that will provide comprehensive sample responses with anonymized data. Creating your application and making API calls to the Sandbox URL is self-serve but does require API licensing for most APIs. Our Support team is ready to assist you with that licensing if needed, and any questions you may have. You can message us using the Support button.
Connecting to customers in Sandbox
Before your application is moved to production status on our side, you will need to develop a process to obtain an API token from a user of our system, and store and maintain that API token for testing purposes.
Since your developer application Team Members may not have data within their own John Deere test organization (or may not have one), you may need to connect your development team with real John Deere Operations Center or Pro Dispatch application users.
To make this connection, our suggestion is to find and work directly with a John Deere dealer or customer interested in the type of application you are developing. Once you have identified a John Deere customer, you will have to authorize a staff member of their Operations Center or Pro Dispatch organization to initiate an API connection.
See our Postman instructions in the Security section of our API Dev Docs for an example on how to obtain an OAuth user token for your application team members (if they have an Operations Center or Pro Dispatch organization), or your test customers.
Redirect the user to Connections before making API calls
For your application to make calls using the Operations Center APIs or ISO 15143-3 API, you must first redirect the API token user to our Connections application to turn on organization access to your application after obtaining an OAuth 2 token. With the first API call to GET /organizations or GET /Fleet/1, a “connections” link will be returned in the response. Redirecting the API token user to this link in a browser will allow them to enable specific organizations for the API application. Please see the respective Dev Doc Security section for more information on this process.
Protecting customer data
Once you are connected to data belonging to our John Deere customers, please ensure that you protect that data in accordance with our API Development License Agreement that you accepted when first logging into developer.deere.com. As part of our review of your application prior to moving to production, we will be reviewing and approving your use of customer data and also require you to sign our Production API Agreement, referenced in the Go To Production section.
Please visit this link to view our John Deere Data Services & Subscriptions Statement
Sample Data
If you are interested in loading agronomic test data into your own John Deere Operations Center organization, you may utilize the files found here. You will need to download these files to your computer and then upload them to the Operations Center using the Files Manager tool. As stated above, the best option is to authorize a real John Deere customer with real data to test your integration properly.
Sample data related to John Deere machines cannot be fabricated for use by applications, and we currently do not offer a sample data test set. The best option for testing with machine data is to connect to a customer organization as stated above.
Guidelines for Sandbox Usage
While your application is in the sandbox environment, you must adhere to each of the guidelines below. If your application is outside of these guidelines, your sandbox access and organization connections may be removed.
Application owners should only have one test account in Operations Center. (not applicable for Pro Dispatch API)
Application must not be connected to more than five organizations. (not applicable to Pro Dispatch API)
Application must not be making more than 150,000 API calls a month.
Application must not be in the sandbox environment for over 6 months.
If you wish to continue to be connected to more than one organization, make more than 150,000 API calls a month, or if you have been in the sandbox environment for over 6 months, please request your application to move into the production environment. To learn about how to move to the production environment, please click here.
If your application access has been revoked due to falling outside of the guidelines above, or if you need to continue in the sandbox environment outside of these guidelines, please fill out a sandbox exception request. Your request will be reviewed by the API Integrations team and either approved or denied. Please submit the form to JohnDeereIntegrations@JohnDeere.com. Once approved, the integrations team will communicate with the API support team to renew access or grant the extension.
Moving your application to Production
You will have 6 months to develop your application and test it with our Sandbox URLs. Once your testing is finished, you can request access to the Production URLs. You will then be able to make your app available for public authentication and use (if desired). You can kick this process off by opening a Support ticket asking to move your application to production.
The API Support team will work with you through the following steps when you are ready to move to production:
The first step is to update your Application details: For your application to be listed in our Connections application you will need to fill out all application detail sections. The API Support team will make your application available to all users on our connections.deere.com website only upon request. By default, your application details will only be shown to connected organizations within connections.deere.com.
*** Note: Pro Dispatch applications are not required to complete organization connections, so these applications will not be shown in connections.deere.com by default. It is still important to fill out your application details for future use in connections.deere.com.
Once you have updated your application details:
Institute an OAuth 2 flow:
To obtain user access tokens with our Production URL, your application will need to institute an OAuth 2 authorization code flow for John Deere customers. Please see the applicable OAuth 2 guide below:
Run API call tests:
Please run a final API call test with your application as would be done when in Production. If your tests will cause substantial load, please let us know in advance. See the tips below on running these tests.
Test validation & approval:
Please contact Support with the exact date and time of your test start/end. The API Support team will review and validate the test logs. We may provide feedback at this time that could require further development of your application before production approval.
Business validation & approval:
Once the API test is complete and passed, our Support team will CC the API Integrations team on your production request support ticket for further questions and validation of your application’s usage of John Deere data.
Sign a license agreement:
An API Agreement will be provided to you by the API Integrations team via DocuSign.
Change your code:
Once the agreement is signed, we will ask you to update your API calls to our Production URL.
Monitor your app’s usage:
We may provide basic logging within the Logs section of your application details on https://developer.deere.com , but you are also responsible for logging your API calls and responses for troubleshooting and monitoring purposes.
Below are some tips for passing the API log review during your production request:
Operations Center APIs:
API Calling Pattern:
All API calls (for most of the Precision Tech API endpoints) should start with the API Catalog (https://sandboxapi.deere.com/platform/). The API Catalog will return the /organizations link. You will be able to discover other APIs and data by following the returned links in the /organizations API response (HATEOS). Please note that not all of the links returned in the “links” array in an API response will be available to your application.
If you receive the 'connections' link for an organization (and no other ’rel’ links), you must redirect the user to the Connections application in order to grant access to the organization first.
Pagination:
Our API responses are paginated with a default page size of 10. If the response is large, it will be chunked into multiple pages, please follow the ’nextPage’ link (example given below) within the response to retrieve the full result set. Page sizes up to 100 are supported by MyJohnDeere API. Please see this guide to Pagination.
Avoid Redundant Calls:
[Example] You can avoid making calls to both farms and clients. Both calls are often redundant, and they do not give additional information beyond what is possible using embeds. You can make a call to the fields API with both client and farms embedded in the URL: GET /organizations/{orgId}/fields?embed=clients,farms. Your application can get all the fields with related clients and farms metadata in one go. Please see the fields documentation that will explain the embeds in this example.
Following Returned Links:
[Example] To retrieve fields for a partner’s organization, please make a call to GET /organizations/{orgId}/fields. You can follow the links returned in the API response, rather than hard coding the links. Please see the Links section in this guide.
Using eTags:
You can also take advantage of processing only the changes to the API response since the last API call. Deere eTags can help you with this. Please see the eTags documentation for help with this. We also have developed a webhook called Data Subscription Service to help your application be alerted to changes in certain data. Please see the documentation here that discusses this service.
ISO API:
API Calling Pattern: All API calls should follow the standard AEMP API call format
(https://sandboxaemp.deere.com/Fleet/{pageNumber}If you receive the 'connections' link in the response, you must redirect the user to the Connections application to grant access to the organization first.
Pagination: Our API responses are paginated with a default page size of 100. You should not be adding any pagination parameters to the AEMP API calls.
Connections Guide
Our customers love learning about the software companies that are connected to our platform!
Our Connections application (https://connections.deere.com) allows customers and dealers to easily find and manage the right software to complement their Operations Center experience. This is your opportunity to showcase to John Deere customers how your software application fits with their complete technology solution.
There are three easy steps you need to do to create the best connection experience for customers:
Complete your application profile within the My Applications section on https://developer.deere.com
Ensure you have the right API licenses in the Access section of your application details. Not too few and not too many, just the right amount to represent that data you access!
Implement OAuth 2.0 & the organization selection URI re-direct.
Step 1: Complete your application profile
For Precision Tech applications, this means completing the Marketing section within the application details page. Here you will find sections such as a long description, category tags, pricing structure, supported languages and countries and support contact information which will help our users understand who you are and what your application is capable of. This information will be presented to a user if they discover your application in our Connections (link to https://connections.deere.com) application, or once the application is connected to their organization. The Connections Link in this Marketing section will also configure the “Connect” button which Operations Center users will select to be redirected to your application from our Connections application. This Connect button should direct the user to the correct place in your application where they can initiate the authorization handshake with our system and set up their connection.
Step 2: Confirm your API licenses
Helping customers understand data flow starts with keeping the information as simple as possible. Customers will see which data your software application has access to within our Connections application based on your approved API licenses. If you have an API license that you aren’t really using, take this time to fill out a Support ticket to request a clean-up of those licenses before moving your application to production. You can verify what licenses your application has access to when viewing the application’s details in the Access section. In addition, if you want to expand your features and functionality, you may need additional access. Using the Support button, you can request removal of API licenses and request additional licenses.
Step 3: Implement OAuth 2.0 & the organization selection URI re-direct
For all of you developers, here are the details you need to ensure a successful connection experience that takes data transparency and control to a whole new level. For detailed technical information on this process, please see the Security section of each API in its respective Dev Doc.
Obtain a user token. When customers grant consent to your application by accepting scopes, an OAuth token will be given to your application. This allows your application to call the APIs you have access to. Here is the consent screen the user will see when granting application access.
Obtain organization access. The user is in control of which organization’s data your application can access. After you get a user token, verify you can make an API call to GET /organizations or GET /Fleet/1 (for the ISO API) and parse the “connections” URL returned in the response and redirect the user to our Connections applications. Note, that in the same connections URI you can also provide a redirect back to your application. The redirect URI that is provided must match one of the Callback URLs (Redirect URI) listed in your application profile. Once the organization selection is complete, the user is or can be re-directed back to your software application.
Check which organizations need to be enabled, or that you have access to. Make an API call to GET /organizations or GET /Fleet/1 (for the ISO API) at any time. If the ’connections’ link is returned in an organization’s associated links, then you do not have access to the associated organization’s data. You can send the user to the connections URI at any time to update organization access for your application.
Sample Response [JSON]
[ { "@type": "Organization", "name": "Test Organization", "type": "customer", "member": true, "internal": false, "id": "283480", "links": [ { "@type": "Link", "rel": "self", "uri": "https://sandboxapi.deere.com/platform/organizations/283480" }, { "@type": "Link", "rel": "connections", "uri": "https://connections.deere.com/connections/0oad6ahyg46dNFZIE5d9/select-organizations" } ] } ]
Note, the ISO API will only return a ‘connections’ link if any organization the user has access to has not been enabled for the calling application. If the user does not have access to any organizations, or all organizations they have access to have been enabled, the ‘connections’ link will not be in the response.
If instead the ’manage_connection’ link is returned, then do not redirect the user. The ’manage_connection’ link can be used at any time to redirect the user into Connections to manage any permissions that the application has to their organizations data.
Sample Response [JSON]
[ { "@type": "Organization", "name": "Test Organization", "type": "customer", "member": true, "internal": false, "id": "283480", "links": [ { "@type": "Link", "rel": "self", "uri": "https://sandboxapi.deere.com/platform/organizations/283480" }, { "@type": "Link", "rel": "manage_connection", "uri": "https://connections.deere.com/connections/0oad6ahyg46dNFZIE5d9/select-organizations" } ] } ]
If you have any questions about your applications integration or card in Connections click on the Support option to send us a message. We are happy to help!