integrations.sh
← all integrations

Climate FieldView Platform APIs

OpenAPI apis-guru open_data

Last Modified: Wed Jan 4 12:47:29 UTC 2023

All endpoints are only accessible via HTTPS.

  • All API endpoints are located at https://platform.climate.com (e.g. https://platform.climate.com/v4/fields).

  • The authorization token endpoint is located at https://api.climate.com/api/oauth/token.

Troubleshooting

X-Http-Request-Id response header will be returned on every call, successful or not. If you experience an issue with our api and need to contact technical support, please supply the value of the X-Http-Request-Id header along with an approximate time of when the request was made.

Request Limits

When you’re onboarded to Climate’s API platform, your x-api-key is assigned a custom usage plan. Usage plans are unique to each partner and have the following key attributes:

  1. Throttling information

    • burstLimit: Maximum rate limit over a period ranging from 1 second to a few seconds
    • rateLimit: A steady-state rate limit
  2. Quota information

    • Limit: The maximum number of requests that can be made in a given month

When the request rate threshold is exceeded, a 429 response code is returned. Optionally, the header may be returned:

Following are examples of rate limit errors:

  1. Rate limit exceeded:


HTTP/1.1 429
Content-Type: application/json
Content-Length: 32

{"message":"Too Many Requests"}

  1. Quota exhausted:


HTTP/1.1 429
Content-Type: application/json
Content-Length: 29

{"message":"Limit Exceeded"}

Pagination

Pagination is performed via headers. Any request which returns a "results" array may be paginated. The following figure shows how query results are laid out with X-Limit=4 and no filter applied.

  • If there are no results, a response code of 304 will be returned.

  • If the response is the last set of results, a response code of 200 or 206 will be returned.

  • If there are more results, a response code of 206 will be returned.

  • If X-Next-Token is provided in the request headers but the token has expired, a response code of 409 will be returned. This is only applicable for some endpoints; see specific endpoint documentation below.

X-Limit

The page size can be controlled with the X-Limit header. Valid values are 1-100 and defaults to 100.

X-Next-Token

If the results are paginated, a response header of X-Next-Token will be returned. Use the associated value in the subsequent request (via the X-Next-Token request header) to retrieve the next page. The following sequence diagram shows how to use X-Next-Token to fetch all the records.

Chunked Uploads

Uploads larger than 5MiB (5242880 bytes) must be done in 5MiB chunks (with the exception of the final chunk). Each chunk request MUST contain a Content-Range header specifying the portion of the upload, and a Content-Type header specifying binary content type (application/octet-stream). Range uploads must be contiguous. The maximum upload size is capped at 500MiB (524288000 bytes).

Chunked Downloads

Downloads larger than 5MiB (5242880 bytes) must be done in 1-5MiB chunks (with the exception of the final chunk, which may be less than 1MiB). Each chunk request MUST contain a Range header specifying the requested portion of the download, and an Accept header specifying binary and json content types (application/octet-stream,application/json) or all content types (*/*).

Drivers

If you need drivers to process agronomic data, download the ADAPT plugin below. We only support the plugin in the Windows environment, minimum is Windows 7 SP1.

For asPlanted, asHarvested and asApplied data:


Release notes can be found .
Download and use of the ADAPT plugin means that you agree to the EULA for use of the ADAPT plugin.
Please review the (last updated on June 6th, 2019) before download and use of the ADAPT plugin.
For more information, please refer to:

Sample Test Data

Sample agronomic data:


To upload the sample data to your account, please follow the instructions in this .

Sample soil data:


Homepage
https://api.apis.guru/v2/specs/climate.com/4.0.11.json
Provider
climate.com
OpenAPI version
3.0.0
Spec (JSON)
https://api.apis.guru/v2/specs/climate.com/4.0.11/openapi.json
Spec (YAML)
https://api.apis.guru/v2/specs/climate.com/4.0.11/openapi.yaml

Tools (28)

Extracted live via the executor SDK.

  • boundaries.fetchBoundaries

    Retrieve multiple Boundaries (up to 10 per request).

  • boundaries.fetchBoundaryById

    Retrieve a Boundary by ID.

  • boundaries.uploadBoundary

    Upload a Boundary entry by passing the geometry of the boundary. This will store the boundary but will not create field in Climate FieldView and will not link to an existing field in Climate FieldView. This is restricted to callers with boundaries:write scope. To upload a field boundary for field creation in Climate FieldView, please use POST /v4/uploads.

  • exports.fetchExportContentsById

    Downloads larger than 5MiB (5242880 bytes) in size must be downloaded in chunks no larger than 5MiB (5242880 bytes) and no smaller than 1MiB (1048576 bytes). The last chunk could be less than 1MiB (1048576 bytes).

  • exports.fetchExportStatusById

    Check the status of an Export by ID.

  • exports.postExport

    Step one in requesting a data product. The method will return an Export ID which the caller will use in subsequent GET requests. The following contentTypes may be requested:

    • application/vnd.climate.acrsi.geojson (Beta) Exports the planting activities accessible by the authenticated user and optionally filtered by resource owner as a .

      The export request definition must contain the following properties:

      • plantingStartDate
      • plantingEndDate
      • resourceOwnerId

      Requires exports:read and plantingActivitySummary:read scope.

    • application/vnd.climate.harvest.geojson Exports the harvesting activities accessible by the authenticated user and optionally filtered by resource owner as a .

      The export request definition must contain the following properties:

      • harvestStartDate
      • harvestEndDate
      • resourceOwnerId

      Requires exports:read and plantingActivitySummary:read scope.

  • farmOrganizations.fetchFarmOrganizationByTypeAndId

    Retrieve a given farm organization by organization type and ID.

  • fields.fetchAllFields

    Retrieve all fields the authenticated user has access to, including fields shared with the authenticated user from other resource owners. Filter the results by field name if the fieldName query parameter is specified. A 409 will be returned if the X-Next-Token has expired. When receiving a 409, the client should discard the X-Next-Token, discard all currently persisted fields for the user, and re-fetch fields from /fields/all.

  • fields.fetchFieldById

    Retrieve a given Field by ID.

  • fields.fetchFields

    Retrieve list of Fields. Filter the results by field name if the fieldName query parameter is specified.

  • layers.getV4LayersAsApplied

    Retrieve a list of application activities. The id in the response is used for GET /v4/layers/asApplied/{activityId}/contents.

  • layers.getV4LayersAsAppliedActivityIdContents

    Retrieve an individual application activity by id. Ids are retrieved via the /layers/asApplied route. Downloads larger than 5MiB (5242880 bytes) in size, must be downloaded in chunks no larger than 5MiB (5242880 bytes) and no smaller than 1MiB (1048576 bytes). The last chunk could be less than 1MiB (1048576 bytes). The data is compressed using .zip format.

  • layers.getV4LayersAsHarvested

    Retrieve a list of harvest activities. The id in the response is used for GET /v4/layers/asHarvested/{activityId}/contents.

  • layers.getV4LayersAsHarvestedActivityIdContents

    Retrieve an individual harvest activity by id. Ids are retrieved via the /layers/asHarvested route. Downloads larger than 5MiB (5242880 bytes) in size, must be downloaded in chunks no larger than 5MiB (5242880 bytes) and no smaller than 1MiB (1048576 bytes). The last chunk could be less than 1MiB (1048576 bytes). The data is compressed using .zip format.

  • layers.getV4LayersAsPlanted

    Retrieve a list of planting activities. The id in the response is used for GET /v4/layers/asPlanted/{activityId}/contents.

  • layers.getV4LayersAsPlantedActivityIdContents

    Retrieve an individual planting activity by id. Ids are retrieved via the /layers/asPlanted route. Downloads larger than 5MiB (5242880 bytes) in size, must be downloaded in chunks no larger than 5MiB (5242880 bytes) and no smaller than 1MiB (1048576 bytes). The last chunk could be less than 1MiB (1048576 bytes). The data is compressed using .zip format.

  • layers.getV4LayersScoutingObservations

    Retrieve a list of scouting observations created or updated by the user identified by the Authorization header.

  • layers.getV4LayersScoutingObservationsScoutingObservationId

    Retrieve an individual scouting observation by id. Ids are retrieved via the /layers/scoutingObservations route.

  • layers.getV4LayersScoutingObservationsScoutingObservationIdAttachments

    Retrieve attachments associated with a given scouting observation. Photos added to scouting notes in the FieldView app are capped to 20MB, and we won’t store photos larger than that in a scouting note.

  • layers.getV4LayersScoutingObservationsScoutingObservationIdAttachmentsAttachmentIdContents

    Photos added to scouting notes in the FieldView app are capped to 20MiB (20971520 bytes), and we won’t store photos larger than that in a scouting note. Downloads larger than 5MiB (5242880 bytes) in size, must be downloaded in chunks no larger than 5MiB (5242880 bytes) and no smaller than 1MiB (1048576 bytes). The last chunk could be less than 1MiB (1048576 bytes).

  • operations.fetchOperations

    Retrieve the operations accessible to the authenticated user. Filter the results by resource owner if the resourceOwnerId query parameter is specified.

  • resourceOwners.getResourceOwner

    Retrieve a resource owner for the given resourceOwnerId.

  • uploads.chunkedUpload

    Send chunked data for an Upload.

  • uploads.fetchUploadStatusById

    Check the status of an Upload by ID.

  • uploads.fetchUploadStatuses

    Check the status of multiple Uploads (up to 100 per request).

  • uploads.postUpload

    Step one in uploading a data product. The method will return an Upload ID which the caller will use in subsequent PUT requests. The following contentTypes may be uploaded:

    image/vnd.climate.thermal.geotiff

    Allows for the upload of a thermal image. The image is a single band geotiff with 64 bit signed floating point values in degrees Celsius. The Coordinate Reference System (CRS) must be UTM with WGS84 datum.
    The following metadata entries are required to be embedded in the geotiff:  * acquisitionStartDate - ISO8601 date  * acquisitionEndDate - ISO8601 date  * isCalibrated - boolean
    The following metadata entries are optional:  * sourceId - uuid referencing the asset in the partner's system  * fieldId - uuid referencing a field in the Climate system  * boundaryId - uuid referencing a boundary in the Climate system  * brandId - uuid referencing a partner's branding in the Climate system  * name - name of the layer. The maximum number of characters that will be accepted as input is 20.
    Requires either imagery:write or platform scope.
    __image/vnd.climate.ndvi.geotiff__
    Allows for the upload of a NDVI image. The image is a single band geotiff with 64 bit signed floating point values in the range of -1 to 1 inclusive. The Coordinate Reference System (CRS) must be UTM with WGS84 datum.
    The following metadata entries are required to be embedded in the geotiff:  * acquisitionStartDate - ISO8601 date  * acquisitionEndDate - ISO8601 date
    The following metadata entries are optional:  * sourceId - uuid referencing the asset in the partner's system  * fieldId - uuid referencing a field in the Climate system  * boundaryId - uuid referencing a boundary in the Climate system  * brandId - uuid referencing a partner's branding in the Climate system  * name - name of the layer. The maximum number of characters that will be accepted as input is 20.
    Requires either imagery:write or platform scope.
    __image/vnd.climate.rgb.geotiff__
    Allows for the upload of a true color image. The image is a multi band geotiff with 24-bit composite values. Each band is 8 bits with values in the range of 0 to 255. The Coordinate Reference System (CRS) must be UTM with WGS84 datum. The geotiff must contain 3 bands in the order Red, Green, Blue.
    The following metadata entries are required to be embedded in the geotiff:  * acquisitionStartDate - ISO8601 date  * acquisitionEndDate - ISO8601 date  * isCalibrated - boolean
    The following metadata entries are optional:  * sourceId - uuid referencing the asset in the partner's system  * fieldId - uuid referencing a field in the Climate system  * boundaryId - uuid referencing a boundary in the Climate system  * brandId - uuid referencing a partner's branding in the Climate system  * reflectanceComputeMethod - either TOA or GROUND  * name - name of the layer. The maximum number of characters that will be accepted as input is 20.
    Requires either imagery:write or platform scope.
    __image/vnd.climate.rgb-nir.geotiff__
    Allows for the upload of a Near Infrared (NIR) image. The Coordinate Reference System (CRS) must be UTM with WGS84 datum.
    The following metadata entries are required to be embedded in the geotiff:  * acquisitionStartDate - ISO8601 date  * acquisitionEndDate - ISO8601 date  * isCalibrated - boolean
    The following metadata entries are optional:  * sourceId - uuid referencing the asset in the partner's system  * fieldId - uuid referencing a field in the Climate system  * boundaryId - uuid referencing a boundary in the Climate system  * brandId - uuid referencing a partner's branding in the Climate system  * reflectanceComputeMethod - either TOA or GROUND  * name - name of the layer. The maximum number of characters that will be accepted as input is 20.
    Requires either imagery:write or platform scope.
    __image/vnd.climate.rgb-cir.geotiff__
    Allows for the upload of a Color Infrared (CIR) image. The Coordinate Reference System (CRS) must be UTM with WGS84 datum.
    The following metadata entries are required to be embedded in the geotiff:  * acquisitionStartDate - ISO8601 date  * acquisitionEndDate - ISO8601 date  * isCalibrated - boolean
    The following metadata entries are optional:  * sourceId - uuid referencing the asset in the partner's system  * fieldId - uuid referencing a field in the Climate system  * boundaryId - uuid referencing a boundary in the Climate system  * brandId - uuid referencing a partner's branding in the Climate system  * reflectanceComputeMethod - either TOA or GROUND  * name - name of the layer. The maximum number of characters that will be accepted as input is 20.
    Requires either imagery:write or platform scope.
    __application/vnd.climate.rx.planting.shp__
    Allows for the upload of a planting prescription in shapefile format.  The upload must be an archive in the zip format.  It should contain one and only one of each of the following file types:  * .shp  * .shx  * .dbf
    All files with the above suffixes must have the same prefix, ie Back40.shp, Back40.shx and Back40.dbf.
    Requires either rx:write or platform scope.
    __application/vnd.climate.prescription.zones.shp__
    Allows for the upload of a zones prescription in shapefile format.  The upload must be an archive in the zip format.  It should contain one and only one of each of the following file types:  * .shp  * .shx  * .dbf
    All files with the above suffixes must have the same prefix, ie Back40.shp, Back40.shx and Back40.dbf.
    The following metadata entries are required:  * fieldId - field identifier for prescription zones.
    Requires either rxZones:write or platform scope.
    __application/vnd.climate.modus.xml__
    Allows for the upload of a soil sampling file in the modus 1.0 format with some restrictions.  The upload must be a single xml file.
    The following elements are required to be present in the modus file.  * EventCode - Max length of 64 bytes  * EventDate - Must be in ISO8601  * SoilSample - Has a maxOccurs of 20k  * Depth - Has a maxOccurs of 50  * LabName - Must be non-empty.  * StartingDepth - 0 to 36 inclusive, default 0  * EndingDepth - 1 - 36 inclusive, default 1  * ColumnDepth  * DepthUnit - must be inches  * Geometry - point in wgs84
    Requires the soil:write scope.
    __application/vnd.climate.stand-count.geojson__
    Allows for the upload of a valid [geojson feature collection](https://tools.ietf.org/html/rfc7946#section-3.3).
    Each feature in the collection must contain the following entry in its properties section:  * StandPPA - A count of the number of plants per acre:
    Additionally, the type field of each feature's geometry field must be:  * Point
    Requires `imagery:write` scope.
    __application/vnd.climate.weed-count.geojson__
    Allows for the upload of a valid [geojson feature collection](https://tools.ietf.org/html/rfc7946#section-3.3).
    Each feature in the collection must contain the following entry in its properties section:  * StandPPA - A count of the number of plants per acre:
    Additionally, the type field of each feature's geometry field must be:  * Point
    Requires `imagery:write` scope.
    __application/vnd.climate.as-applied.zip__
    Allows for the upload of a valid application data [supported formats](https://support.climate.com/kt#/kA02A000000DjvOSAS/en_US).
    The following metadata entries are required:  * fileName - name of the file being uploaded.
    The following metadata entries are optional:  * resourceOwner - the grower's account email, where dealer/partner wants to upload data. As a prerequisite the grower must share their operation with the dealer/partner.
    Requires `asApplied:write` scope.
    __application/vnd.climate.as-planted.zip__
    Allows for the upload of a valid planting data [supported formats](https://support.climate.com/kt#/kA02A000000DjvOSAS/en_US).
    The following metadata entries are required:  * fileName - name of the file being uploaded.
    The following metadata entries are optional:  * resourceOwner - the grower's account email, where dealer/partner wants to upload data. As a prerequisite the grower must share their operation with the dealer/partner.
    Requires `asPlanted:write` scope.
    __application/vnd.climate.as-harvested.zip__
    Allows for the upload of a valid harvest data [supported formats](https://support.climate.com/kt#/kA02A000000DjvOSAS/en_US).
    The following metadata entries are required:  * fileName - name of the file being uploaded.
    The following metadata entries are optional:  * resourceOwner - the grower's account email, where dealer/partner wants to upload data. As a prerequisite the grower must share their operation with the dealer/partner.
    Requires `asHarvested:write` scope.
  • openapi.previewSpec

    Preview an OpenAPI document before adding it as a source

  • openapi.addSource

    Add an OpenAPI source and register its operations as tools