The Climate Corporation Layers API

General data retrieval endpoints.

Operations 13

GET /v4/layers/scoutingObservations Retrieve a list of scouting observations
GET /v4/layers/scoutingObservations/{scoutingObservationId} Retrieve individual scouting observation
GET /v4/layers/scoutingObservations/{scoutingObservationId}/attachments Retrieve attachments associated with a given scouting observation.
GET /v4/layers/scoutingObservations/{scoutingObservationId}/attachments/{attachmentId}/contents Retrieve the binary contents of a scouting observation’s attachment.
GET /v4/layers/asPlanted Retrieve a list of planting activities
GET /v4/layers/asPlanted/{activityId}/contents Retrieve the raw planting activity
GET /v4/layers/asPlanted/{activityId} Retrieve the summary of an activity as planted agronomic data
GET /v4/layers/asApplied Retrieve a list of application activities
GET /v4/layers/asApplied/{activityId}/contents Retrieve the raw application activity
GET /v4/layers/asApplied/{activityId} Retrieve the summary of an activity as applied agronomic data
GET /v4/layers/asHarvested Retrieve a list of harvest activities
GET /v4/layers/asHarvested/{activityId}/contents Retrieve the raw harvest activity
GET /v4/layers/asHarvested/{activityId} Retrieve the summary of an activity as harvested agronomic data

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/the-climate-corporation-layers-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

the-climate-corporation-layers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Climate FieldView Platform APIs Boundaries Layers API
  description: "**Last Modified**: Mon Dec  8 16:27:39 UTC 2025\n\n\nAll endpoints are only accessible via HTTPS.\n\n* All API endpoints are located at `https://platform.climate.com` (e.g.\n`https://platform.climate.com/v4/fields`).\n\n* The authorization token endpoint is located at\n`https://api.climate.com/api/oauth/token`.\n\n## Troubleshooting\n\n`X-Http-Request-Id` response header will be returned on every call,\nsuccessful or not. If you experience an issue with our api and need\nto contact technical support, please supply the value of the `X-Http-Request-Id`\nheader along with an approximate time of when the request was made.\n\n## Request Limits\n\nWhen 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: \n\n1. Throttling information\n    * burstLimit: Maximum rate limit over a period ranging from 1 second to a few seconds\n    * rateLimit: A steady-state rate limit\n\n2. Quota information\n    * Limit: The maximum number of requests that can be made in a given month\n\nWhen the request rate threshold is exceeded, a `429` response code is returned. Optionally, the [`Retry-After`](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.37) header may be returned: \n\nFollowing are examples of rate limit errors:\n\n1. Rate limit exceeded:\n\n<br>HTTP/1.1 429 \n<br>Content-Type: application/json\n<br>Content-Length: 32\n\n   {\"message\":\"Too Many Requests\"}\n\n2. Quota exhausted:\n<br>HTTP/1.1 429 \n<br>Content-Type: application/json\n<br>Content-Length: 29\n\n    {\"message\":\"Limit Exceeded\"}\n\n## Pagination\n\nPagination is performed via headers. Any request which returns a `\"results\"`\narray may be paginated. The following figure shows how query results are laid out with\nX-Limit=4 and no filter applied.\n\n<img style=\"width:70%;height:auto;\" src=\"https://s3-us-west-2.amazonaws.com/climate-com/images/svg_upload_tests/paging.png\">\n\n* If there are no results, a response code of `304` will be returned.\n\n* If the response is the last set of results, a response code of `200` or\n`206` will be returned.\n\n* If there are more results, a response code of `206` will be returned.\n\n* If `X-Next-Token` is provided in the request headers but the token has\nexpired, a response code of `409` will be returned. This is only applicable\nfor some endpoints; see specific endpoint documentation below.\n\n#### X-Limit\n\nThe page size can be controlled with the `X-Limit` header. Valid values are\n`1-100` and defaults to `100`.\n\n#### X-Next-Token\n\nIf the results are paginated, a response header of `X-Next-Token` will be\nreturned. Use the associated value in the subsequent request (via the `X-Next-Token`\nrequest header) to retrieve the next page. The following sequence diagram shows how to\nuse `X-Next-Token` to fetch all the records.\n\n<img src=\"https://s3-us-west-2.amazonaws.com/climate-com/images/svg_upload_tests/x-next-token.svg\">\n\n\n## Chunked Uploads\n\nUploads larger than `5MiB` (`5242880 bytes`) must be done in `5MiB` chunks\n(with the exception of the final chunk). Each chunk request MUST contain a\n`Content-Range` header specifying the portion of the upload, and a `Content-Type`\nheader specifying binary content type (`application/octet-stream`). Range\nuploads must be contiguous. The maximum upload size is capped at `500MiB` (`524288000 bytes`).\n\n## Chunked Downloads\n\nDownloads larger than `5MiB` (`5242880 bytes`) must be done in `1-5MiB`\nchunks (with the exception of the final chunk, which may be less than `1MiB`).\nEach chunk request MUST contain a `Range` header specifying the requested portion of the download,\nand an `Accept` header specifying binary and json content types  (`application/octet-stream,application/json`)\nor all content types (`*/*`).\n\n## Drivers\n\nIf 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.\n\nFor asPlanted, asHarvested and asApplied data:\n* [ADAPT Plugin](https://dev.fieldview.com/drivers/ClimateADAPTPlugin_latest.exe)\n<br>Release notes can be found [here](https://dev.fieldview.com/drivers/adapt-release-notes.txt).\n<br>Download and use of the ADAPT plugin means that you agree to the EULA for use of the ADAPT plugin. \n<br>Please review the [EULA](https://dev.fieldview.com/EULA/ADAPT%20Plugin%20EULA-06-19.pdf) (last updated on June 6th, 2019) before download and use of the ADAPT plugin.\n<br>For more information, please refer to:\n  * [ADAPT Resources](https://adaptframework.org/)\n  * [ADAPT Overview](https://aggateway.atlassian.net/wiki/spaces/ADM/overview)\n  * [ADAPT FAQ](https://aggateway.atlassian.net/wiki/spaces/ADM/pages/165942474/ADAPT+Frequently-Asked+Questions+FAQ)\n  * [ADAPT Videos](https://adaptframework.org/adapt-videos/)\n\n## Sample Test Data\n\nSample agronomic data:\n* [asPlanted and asHarvested data](https://dev.fieldview.com/sample-agronomic-data/Planting_Harvesting_data_04_18_2018_21_46_18.zip)\n* [asApplied data set 1](https://dev.fieldview.com/sample-agronomic-data/as-applied-data1.zip)\n* [asApplied data set 2](https://dev.fieldview.com/sample-agronomic-data/as-applied-data2.zip)\n<br>To upload the sample data to your account, please follow the instructions in this [link](https://support.climate.com/kt#/kA02A000000AaxzSAC/en_US).\n\nSample soil data:\n* [Sample soil data](https://dev.fieldview.com/sample-soil-data/soil-sample.xml)\n---\n"
  contact:
    name: Climate FieldView Support
    email: developer@climate.com
  version: 4.0.11
servers:
- url: https://platform.climate.com/
tags:
- name: Layers
  description: General data retrieval endpoints.
paths:
  /v4/layers/scoutingObservations:
    get:
      summary: Retrieve a list of scouting observations
      description: Retrieve a list of scouting observations created or updated by the user identified by the Authorization header.
      tags:
      - Layers
      security:
      - api_key: []
      - oauth2_authorization_code:
        - platform
        - scouting:read
      parameters:
      - $ref: '#/components/parameters/X-Next-Token'
      - $ref: '#/components/parameters/X-Limit'
      - $ref: '#/components/parameters/OccurredAfter'
      - $ref: '#/components/parameters/OccurredBefore'
      responses:
        '200':
          $ref: '#/components/responses/FetchScoutingObservationsOk'
        '206':
          $ref: '#/components/responses/FetchScoutingObservationsPartial'
        '304':
          $ref: '#/components/responses/304'
        '400':
          $ref: '#/components/responses/400'
  /v4/layers/scoutingObservations/{scoutingObservationId}:
    get:
      summary: Retrieve individual scouting observation
      description: Retrieve an individual scouting observation by id.  Ids are retrieved via the /layers/scoutingObservations route.
      tags:
      - Layers
      security:
      - api_key: []
      - oauth2_authorization_code:
        - platform
        - scouting:read
      parameters:
      - $ref: '#/components/parameters/ScoutingObservationId'
      responses:
        '200':
          $ref: '#/components/responses/FetchScoutingObservationByIdOk'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /v4/layers/scoutingObservations/{scoutingObservationId}/attachments:
    get:
      summary: Retrieve attachments associated with a given scouting observation.
      description: 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.
      tags:
      - Layers
      security:
      - api_key: []
      - oauth2_authorization_code:
        - platform
        - scouting:read
      parameters:
      - $ref: '#/components/parameters/ScoutingObservationId'
      - $ref: '#/components/parameters/X-Next-Token'
      - $ref: '#/components/parameters/X-Limit'
      responses:
        '200':
          $ref: '#/components/responses/FetchScoutingObservationAttachmentsOk'
        '206':
          $ref: '#/components/responses/FetchScoutingObservationAttachmentsPartial'
        '304':
          $ref: '#/components/responses/304'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /v4/layers/scoutingObservations/{scoutingObservationId}/attachments/{attachmentId}/contents:
    get:
      summary: Retrieve the binary contents of a scouting observation’s attachment.
      description: 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`).
      tags:
      - Layers
      security:
      - api_key: []
      - oauth2_authorization_code:
        - platform
        - scouting:read
      parameters:
      - $ref: '#/components/parameters/Accept'
      - $ref: '#/components/parameters/ScoutingObservationId'
      - $ref: '#/components/parameters/ScoutingObservationAttachmentId'
      - $ref: '#/components/parameters/Range'
      responses:
        '200':
          $ref: '#/components/responses/FetchScoutingObservationAttachmentContentsOk'
        '206':
          $ref: '#/components/responses/FetchScoutingObservationAttachmentContentsPartial'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '416':
          $ref: '#/components/responses/416'
        '500':
          $ref: '#/components/responses/500'
        '503':
          $ref: '#/components/responses/503'
  /v4/layers/asPlanted:
    get:
      summary: Retrieve a list of planting activities
      description: Retrieve a list of planting activities. The id in the response is used for  GET /v4/layers/asPlanted/{activityId}/contents.
      tags:
      - Layers
      security:
      - api_key: []
      - oauth2_authorization_code:
        - platform
        - asPlanted:read
      parameters:
      - $ref: '#/components/parameters/Accept'
      - $ref: '#/components/parameters/X-Next-Token'
      - $ref: '#/components/parameters/X-Limit'
      - $ref: '#/components/parameters/OptionalResourceOwnerId'
      - $ref: '#/components/parameters/OccurredAfter'
      - $ref: '#/components/parameters/OccurredBefore'
      - $ref: '#/components/parameters/UpdatedAfter'
      responses:
        '200':
          $ref: '#/components/responses/FetchPlantingActivitiesOk'
        '206':
          $ref: '#/components/responses/FetchPlantingActivitiesPartial'
        '304':
          $ref: '#/components/responses/304'
        '400':
          $ref: '#/components/responses/400'
  /v4/layers/asPlanted/{activityId}/contents:
    get:
      summary: Retrieve the raw planting activity
      description: 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.
      tags:
      - Layers
      security:
      - api_key: []
      - oauth2_authorization_code:
        - asPlanted:read
      parameters:
      - $ref: '#/components/parameters/Accept'
      - $ref: '#/components/parameters/PlantingActivityId'
      - $ref: '#/components/parameters/Range'
      responses:
        '200':
          $ref: '#/components/responses/FetchPlantingActivityOk'
        '206':
          $ref: '#/components/responses/FetchPlantingActivityPartial'
        '304':
          $ref: '#/components/responses/304'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '416':
          $ref: '#/components/responses/416'
        '500':
          $ref: '#/components/responses/500'
        '503':
          $ref: '#/components/responses/503'
  /v4/layers/asPlanted/{activityId}:
    get:
      summary: Retrieve the summary of an activity as planted agronomic data
      description: Retrieve an individual planting activity summary by id. Ids are retrieved via the /layers/asPlanted route.
      tags:
      - Layers
      security:
      - api_key: []
      - oauth2_authorization_code:
        - asPlanted:read
      parameters:
      - $ref: '#/components/parameters/Accept'
      - $ref: '#/components/parameters/PlantingActivityId'
      responses:
        '200':
          $ref: '#/components/responses/FetchPlantingActivitySummaryOk'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
        '503':
          $ref: '#/components/responses/503'
  /v4/layers/asApplied:
    get:
      summary: Retrieve a list of application activities
      description: Retrieve a list of application activities. The id in the response is used for  GET /v4/layers/asApplied/{activityId}/contents.
      tags:
      - Layers
      security:
      - api_key: []
      - oauth2_authorization_code:
        - platform
        - asApplied:read
      parameters:
      - $ref: '#/components/parameters/Accept'
      - $ref: '#/components/parameters/X-Next-Token'
      - $ref: '#/components/parameters/X-Limit'
      - $ref: '#/components/parameters/OptionalResourceOwnerId'
      - $ref: '#/components/parameters/OccurredAfter'
      - $ref: '#/components/parameters/OccurredBefore'
      - $ref: '#/components/parameters/UpdatedAfter'
      responses:
        '200':
          $ref: '#/components/responses/FetchApplicationActivitiesOk'
        '206':
          $ref: '#/components/responses/FetchApplicationActivitiesPartial'
        '304':
          $ref: '#/components/responses/304'
        '400':
          $ref: '#/components/responses/400'
  /v4/layers/asApplied/{activityId}/contents:
    get:
      summary: Retrieve the raw application activity
      description: 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.
      tags:
      - Layers
      security:
      - api_key: []
      - oauth2_authorization_code:
        - asApplied:read
      parameters:
      - $ref: '#/components/parameters/Accept'
      - $ref: '#/components/parameters/ApplicationActivityId'
      - $ref: '#/components/parameters/Range'
      responses:
        '200':
          $ref: '#/components/responses/FetchApplicationActivityOk'
        '206':
          $ref: '#/components/responses/FetchApplicationActivityPartial'
        '304':
          $ref: '#/components/responses/304'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '416':
          $ref: '#/components/responses/416'
        '500':
          $ref: '#/components/responses/500'
        '503':
          $ref: '#/components/responses/503'
  /v4/layers/asApplied/{activityId}:
    get:
      summary: Retrieve the summary of an activity as applied agronomic data
      description: Retrieve an individual application activity summary by id. Ids are retrieved via the /layers/asApplied route.
      tags:
      - Layers
      security:
      - api_key: []
      - oauth2_authorization_code:
        - asApplied:read
      parameters:
      - $ref: '#/components/parameters/Accept'
      - $ref: '#/components/parameters/ApplicationActivityId'
      responses:
        '200':
          $ref: '#/components/responses/FetchApplicationActivitySummaryOk'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
        '503':
          $ref: '#/components/responses/503'
  /v4/layers/asHarvested:
    get:
      summary: Retrieve a list of harvest activities
      description: Retrieve a list of harvest activities. The id in the response is used for  GET /v4/layers/asHarvested/{activityId}/contents.
      tags:
      - Layers
      security:
      - api_key: []
      - oauth2_authorization_code:
        - platform
        - asHarvested:read
      parameters:
      - $ref: '#/components/parameters/Accept'
      - $ref: '#/components/parameters/X-Next-Token'
      - $ref: '#/components/parameters/X-Limit'
      - $ref: '#/components/parameters/OptionalResourceOwnerId'
      - $ref: '#/components/parameters/OccurredAfter'
      - $ref: '#/components/parameters/OccurredBefore'
      - $ref: '#/components/parameters/UpdatedAfter'
      responses:
        '200':
          $ref: '#/components/responses/FetchHarvestActivitiesOk'
        '206':
          $ref: '#/components/responses/FetchHarvestActivitiesPartial'
        '304':
          $ref: '#/components/responses/304'
        '400':
          $ref: '#/components/responses/400'
  /v4/layers/asHarvested/{activityId}/contents:
    get:
      summary: Retrieve the raw harvest activity
      description: 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.
      tags:
      - Layers
      security:
      - api_key: []
      - oauth2_authorization_code:
        - asHarvested:read
      parameters:
      - $ref: '#/components/parameters/Accept'
      - $ref: '#/components/parameters/HarvestActivityId'
      - $ref: '#/components/parameters/Range'
      responses:
        '200':
          $ref: '#/components/responses/FetchHarvestActivityOk'
        '206':
          $ref: '#/components/responses/FetchHarvestActivityPartial'
        '304':
          $ref: '#/components/responses/304'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '416':
          $ref: '#/components/responses/416'
        '500':
          $ref: '#/components/responses/500'
        '503':
          $ref: '#/components/responses/503'
  /v4/layers/asHarvested/{activityId}:
    get:
      summary: Retrieve the summary of an activity as harvested agronomic data
      description: Retrieve an individual harvest activity summary by id. Ids are retrieved via the /layers/asHarvested route.
      tags:
      - Layers
      security:
      - api_key: []
      - oauth2_authorization_code:
        - asHarvested:read
      parameters:
      - $ref: '#/components/parameters/Accept'
      - $ref: '#/components/parameters/HarvestActivityId'
      responses:
        '200':
          $ref: '#/components/responses/FetchHarvestActivitySummaryOk'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
        '503':
          $ref: '#/components/responses/503'
components:
  parameters:
    OccurredAfter:
      in: query
      description: Optional start time by which to filter layer results. Time must be in ISO 8601 format with time zone, e.g. 2016-05-13T00:00:00Z (https://tools.ietf.org/html/rfc3339). Layers with an end time at or after (inclusive) the specified time will match this filter. If both occurredAfter and occurredBefore are populated, occurredAfter must be <= occurredBefore.
      name: occurredAfter
      required: false
      schema:
        type: string
        format: date-time
    ScoutingObservationId:
      in: path
      description: Unique identifier of the Scouting Observation.
      name: scoutingObservationId
      required: true
      schema:
        type: string
        format: uuid
    OptionalResourceOwnerId:
      in: query
      description: Optional unique identifier of the resource owner.  If resourceOwnerId is not specified, it defaults to the x-authenticated-user-uuid.
      name: resourceOwnerId
      required: false
      schema:
        type: string
        format: uuid
    X-Next-Token:
      name: X-Next-Token
      in: header
      description: Opaque string which allows for fetching the next batch of results.  Can be used to poll for changes.
      required: false
      schema:
        type: string
    PlantingActivityId:
      in: path
      description: Unique identifier of the Planting Activity.
      name: activityId
      required: true
      schema:
        type: string
        format: uuid
    X-Limit:
      in: header
      name: X-Limit
      description: Max number of results to return per batch.  Must be between 1 and 100 inclusive.  Defaults to 100.
      required: false
      schema:
        type: integer
        format: int32
        minimum: 1
        maximum: 100
    HarvestActivityId:
      in: path
      description: Unique identifier of the Harvest Activity.
      name: activityId
      required: true
      schema:
        type: string
        format: uuid
    ScoutingObservationAttachmentId:
      in: path
      description: Unique identifier of the attachment.
      name: attachmentId
      required: true
      schema:
        type: string
        format: uuid
    Range:
      in: header
      name: Range
      description: Byte range `bytes=start-end` (https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.1). e.g. bytes=0-1048576. Currently only single range value is supported. Both start and end need to be specified, end value should be greater than start and end - start should not be greater than 5MiB.
      required: true
      schema:
        type: string
    OccurredBefore:
      in: query
      description: Optional end time by which to filter layer results. Time must be in ISO 8601 format with time zone, e.g. 2016-05-13T00:00:00Z (https://tools.ietf.org/html/rfc3339). Layers with a start time at or before (inclusive) the specified time. If both occurredAfter and occurredBefore are populated, occurredAfter must be <= occurredBefore.
      name: occurredBefore
      required: false
      schema:
        type: string
        format: date-time
    UpdatedAfter:
      in: query
      description: Optional updated time by which to filter layer results. Time must be in ISO 8601 format with time zone, e.g. 2016-05-13T00:00:00Z (https://tools.ietf.org/html/rfc3339). Layers with a modification time at or after (inclusive) the specified time.
      name: updatedAfter
      required: false
      schema:
        type: string
        format: date-time
    ApplicationActivityId:
      in: path
      description: Unique identifier of the Application Activity.
      name: activityId
      required: true
      schema:
        type: string
        format: uuid
    Accept:
      in: header
      name: Accept
      required: true
      description: Must be either \*/* or application/octet-stream,application/json
      schema:
        type: string
  schemas:
    Empty:
      type: object
    PlantingActivitySummaryResponse:
      type: object
      required:
      - id
      - fieldId
      - fileName
      - fileSize
      - indexedAt
      - lastProcessedAt
      - originalSrcModified
      - serialNumber
      - srcLastModified
      - area
      - boundary
      - cropId
      - dataChecksum¿
      - endTime
      - machineId
      - processorVersion
      - recordCount
      - seasonCode
      - startTime
      - originalCropName
      - actualPopAvg
      - excessDfPct
      - goodSpacingPct
      - newSeeds
      - popUnit
      - singulationPct
      - split
      - targetPopAvg
      properties:
        id:
          description: The id of a planting activity.
          type: string
          format: uuid
        fieldId:
          description: The id of a planting activity field.
          type: string
          format: uuid
        fileName:
          description: File's name
          type: string
        fileSize:
          description: File's size.
          type: integer
          format: int64
        indexedAt:
          description: The time the planting activity was indexed.
          type: string
          format: date-time
        lastProcessedAt:
          description: The time the planting activity was last processed.
          type: string
          format: date-time
        originalSrcModified:
          description: The time the planting activity original src was last modified.
          type: string
          format: date-time
        serialNumber:
          description: Serial number.
          type: integer
          format: int32
        srcLastModified:
          description: The time the planting activity src was last modified.
          type: string
          format: date-time
        area:
          description: The area of a planting activity.
          type: number
          format: float
        boundary:
          description: The boundary of a planting activity.
          type: string
        cropId:
          description: The crop of a planting activity.
          type: integer
          format: int64
        dataChecksum:
          description: The data checksum of a planting activity.
          type: string
        endTime:
          description: The time the planting activity was ended.
          type: string
          format: date-time
        machineId:
          description: The machineId of a planting activity.
          type: string
        processorVersion:
          description: The processor version of a planting activity.
          type: string
        recordCount:
          description: The record count of a planting activity.
          type: integer
          format: int64
        seasonCode:
          description: The season code of a planting activity.
          type: string
        startTime:
          description: The time the planting activity was started.
          type: string
          format: date-time
        moisturePct:
          description: The moisture percentage of a harvest activity.
          type: number
          format: float
        originalCropName:
          description: The original crop name of a harvest activity.
          type: string
        actualPopAvg:
          description: The actual pop. average of a planting activity.
          type: number
          format: float
        speedAvg:
          description: The speed average of a planting activity.
          type: number
          format: float
        excessDfPct:
          description: The excess df. percentage of a planting activity.
          type: number
          format: float
        goodSpacingPct:
          description: The good spacing percentage of a planting activity.
          type: number
          format: float
        lossGcPct:
          description: The loss gc. percentage of a planting activity.
          type: number
          format: float
        newSeeds:
          description: The new seeds of a planting activity.
          type: integer
          format: int64
        popUnit:
          description: The pop unit of a planting activity.
          type: string
        singulationPct:
          description: The singulation percentage of a planting activity.
          type: number
          format: float
        split:
          description: The split of a planting activity.
          type: boolean
        targetPopAvg:
          description: The target pop average of a planting activity.
          type: number
          format: float
    ApplicationActivitySummary:
      type: object
      required:
      - id
      - startTime
      - endTime
      - createdAt
      - updatedAt
      - length
      - fieldIds
      properties:
        id:
          description: The id of an application activity.
          type: string
          format: uuid
        startTime:
          description: The start time of the application activity. Time in ISO 8601 format with UTC timezone, 3 fractional seconds (https://tools.ietf.org/html/rfc3339).
          type: string
          format: date-time
        endTime:
          description: The start time of the application activity. Time in ISO 8601 format with UTC timezone, 3 fractional seconds (https://tools.ietf.org/html/rfc3339).
          type: string
          format: date-time
        createdAt:
          description: The time the application activity was created. Time in ISO 8601 format with UTC timezone, 3 fractional seconds. (https://tools.ietf.org/html/rfc3339).
          type: string
          format: date-time
        updatedAt:
          description: The time the application activity was last updated. Time in ISO 8601 format with UTC timezone, 3 fractional seconds. (https://tools.ietf.org/html/rfc3339).
          type: string
          format: date-time
        length:
          description: The size in bytes of the raw application activity file.
          type: integer
          format: int64
        fieldIds:
          description: Array of field ids associated the application activity.
          type: array
          items:
            type: string
    Geometry:
      description: GeoJSON
      required:
      - type
      - coordinates
      properties:
        type:
          type: string
          enum:
          - Point
          - Polygon
          - MultiPolygon
        coordinates:
          type: array
          items:
            type: string
      example:
        type: Point
        coordinates:
        - 0
        - 0
    ScoutingObservationAttachments:
      description: A batch of scouting attachments
      required:
      - results
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/ScoutingObservationAttachment'
    ScoutingObservationAttachment:
      type: object
      required:
      - id
      - updatedAt
      - contentType
      - length
      - status
      properties:
        id:
          description: id of the attachment
          type: string
          format: uuid
        updatedAt:
          description: 'The time the attachment was last updated.

            Time in ISO 8601 format with UTC timezone, 3 fractional seconds.

            (https://tools.ietf.org/html/rfc3339)

            '
          type: string
          format: date-time
        contentType:
          description: The content type of the attachment, e.g. image/png.
          type: string
        length:
          description: The number of bytes in the attachment.
          type: integer
          format: int64
        status:
          description: 'The status of the attachment. For example : ACTIVE, DELETED'
          type: string
          enum:
          - ACTIVE
          - DELETED
    ScoutingTag:
      type: object
      required:
      - code
      properties:
        code:
          type: string
    HarvestActivitySummary:
      type: object
      required:
      - id
      - startTime
      - endTime
      - createdAt
      - updatedAt
      

# --- truncated at 32 KB (63 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/the-climate-corporation/refs/heads/main/openapi/the-climate-corporation-layers-api-openapi.yml