{"files":{"SKILL.md":"---\nname: climate-fieldview-platform-apis\ndescription: \"Climate FieldView Platform APIs API skill. Use when working with Climate FieldView Platform APIs for fields, farmOrganizations, operations. Covers 28 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Climate FieldView Platform APIs\nAPI version: 4.0.11\n\n## Auth\nOAuth2 | ApiKey X-Api-Key in header\n\n## Base URL\nhttps://platform.climate.com/\n\n## Setup\n1. Set your API key in the appropriate header\n2. GET /v4/fields -- retrieve list of fields\n3. POST /v4/boundaries/query -- create first query\n\n## Endpoints\n28 endpoints across 8 groups. See references/api-spec.lap for full details.\n\n### Fields\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v4/fields | Retrieve list of Fields |\n| GET | /v4/fields/{fieldId} | Retrieve a specific Field by ID |\n\n### FarmOrganizations\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v4/farmOrganizations/{farmOrganizationType}/{farmOrganizationId} | Retrieve a specific farm organization by organization type and ID |\n\n### Operations\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v4/operations/all | Retrieve the operations accessible to a a given user. |\n\n### ResourceOwners\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v4/resourceOwners/{resourceOwnerId} | Retrieve a resource owner by ID |\n\n### Boundaries\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v4/boundaries/{boundaryId} | Retrieve a Boundary by ID |\n| POST | /v4/boundaries/query | Retrieve Boundaries in batch |\n| POST | /v4/boundaries | Upload a boundary |\n\n### Uploads\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /v4/uploads | Initiate a new upload |\n| PUT | /v4/uploads/{uploadId} | Chunked upload of data |\n| GET | /v4/uploads/{uploadId}/status | Retrieve Upload status |\n| POST | /v4/uploads/status/query | Retrieve Upload statuses in batch |\n\n### Exports\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /v4/exports | Initiate a new export request. |\n| GET | /v4/exports/{exportId}/status | Retrieve the status of an Export. |\n| GET | /v4/exports/{exportId}/contents | Retrieve the binary contents of a processed export request. |\n\n### Layers\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v4/layers/scoutingObservations | Retrieve a list of scouting observations |\n| GET | /v4/layers/scoutingObservations/{scoutingObservationId} | Retrieve individual scouting observation |\n| GET | /v4/layers/scoutingObservations/{scoutingObservationId}/attachments | Retrieve attachments associated with a given scouting observation. |\n| GET | /v4/layers/scoutingObservations/{scoutingObservationId}/attachments/{attachmentId}/contents | Retrieve the binary contents of a scouting observation’s attachment. |\n| GET | /v4/layers/asPlanted | Retrieve a list of planting activities |\n| GET | /v4/layers/asPlanted/{activityId}/contents | Retrieve the raw planting activity |\n| GET | /v4/layers/asPlanted/{activityId} | Retrieve the summary of an activity as planted agronomic data |\n| GET | /v4/layers/asApplied | Retrieve a list of application activities |\n| GET | /v4/layers/asApplied/{activityId}/contents | Retrieve the raw application activity |\n| GET | /v4/layers/asApplied/{activityId} | Retrieve the summary of an activity as applied agronomic data |\n| GET | /v4/layers/asHarvested | Retrieve a list of harvest activities |\n| GET | /v4/layers/asHarvested/{activityId}/contents | Retrieve the raw harvest activity |\n| GET | /v4/layers/asHarvested/{activityId} | Retrieve the summary of an activity as harvested agronomic data |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"List all fields?\" -> GET /v4/fields\n- \"Get field details?\" -> GET /v4/fields/{fieldId}\n- \"Get farmOrganization details?\" -> GET /v4/farmOrganizations/{farmOrganizationType}/{farmOrganizationId}\n- \"List all all?\" -> GET /v4/operations/all\n- \"Get resourceOwner details?\" -> GET /v4/resourceOwners/{resourceOwnerId}\n- \"Get boundary details?\" -> GET /v4/boundaries/{boundaryId}\n- \"Create a query?\" -> POST /v4/boundaries/query\n- \"Create a boundary?\" -> POST /v4/boundaries\n- \"Create a upload?\" -> POST /v4/uploads\n- \"Update a upload?\" -> PUT /v4/uploads/{uploadId}\n- \"List all status?\" -> GET /v4/uploads/{uploadId}/status\n- \"Create a export?\" -> POST /v4/exports\n- \"List all contents?\" -> GET /v4/exports/{exportId}/contents\n- \"List all scoutingObservations?\" -> GET /v4/layers/scoutingObservations\n- \"Get scoutingObservation details?\" -> GET /v4/layers/scoutingObservations/{scoutingObservationId}\n- \"List all attachments?\" -> GET /v4/layers/scoutingObservations/{scoutingObservationId}/attachments\n- \"List all asPlanted?\" -> GET /v4/layers/asPlanted\n- \"Get asPlanted details?\" -> GET /v4/layers/asPlanted/{activityId}\n- \"List all asApplied?\" -> GET /v4/layers/asApplied\n- \"Get asApplied details?\" -> GET /v4/layers/asApplied/{activityId}\n- \"List all asHarvested?\" -> GET /v4/layers/asHarvested\n- \"Get asHarvested details?\" -> GET /v4/layers/asHarvested/{activityId}\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Create/update endpoints return the modified resource on success\n- Error responses include status codes and descriptions in the spec\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Climate FieldView Platform APIs\n@base https://platform.climate.com/\n@version 4.0.11\n@auth OAuth2 | ApiKey X-Api-Key in header\n@endpoints 28\n@hint download_for_search\n@toc fields(2), farmOrganizations(1), operations(1), resourceOwners(1), boundaries(3), uploads(4), exports(3), layers(13)\n\n@group fields\n@endpoint GET /v4/fields\n@desc Retrieve list of Fields\n@optional {X-Next-Token: str # Opaque string which allows for fetching the next batch of results.  Can be used to poll for changes., X-Limit: int(int32) # Max number of results to return per batch.  Must be between 1 and 100 inclusive.  Defaults to 100., fieldName: str # Optional prefix filter for field name. Must be at least 3 characters.}\n@returns(200) {results: [any]} # OK\n@returns(206) {results: [any]} # Partial Result\n@errors {304: Not Modified, 400: Bad Input, 401: Unauthorized, 403: Forbidden, 429: Too Many Requests, 500: Internal Server Error, 503: Server Busy}\n\n@endpoint GET /v4/fields/{fieldId}\n@desc Retrieve a specific Field by ID\n@required {fieldId: str(uuid) # Unique identifier of the Field.}\n@returns(200) {id: str(uuid), name: str, boundaryId: str(uuid), resourceOwnerId: str(uuid), parent: any} # Returns the requested Field.\n@errors {400: Bad Input, 401: Unauthorized, 403: Forbidden, 404: Not Found, 429: Too Many Requests, 500: Internal Server Error, 503: Server Busy}\n\n@endgroup\n\n@group farmOrganizations\n@endpoint GET /v4/farmOrganizations/{farmOrganizationType}/{farmOrganizationId}\n@desc Retrieve a specific farm organization by organization type and ID\n@required {farmOrganizationType: str # Type of the farm organization., farmOrganizationId: str(uuid) # Unique identifier of the farm organization.}\n@returns(200) {id: str(uuid), name: str, type: str} # Returns the requested farm organization.\n@errors {400: Bad Input, 401: Unauthorized, 403: Forbidden, 404: Not Found, 429: Too Many Requests, 500: Internal Server Error, 503: Server Busy}\n\n@endgroup\n\n@group operations\n@endpoint GET /v4/operations/all\n@desc Retrieve the operations accessible to a a given user.\n@optional {resourceOwnerId: str # Optional comma-separated list of resource owner unique identifiers by which to filter results.}\n@returns(200) {results: [map]} # Returns the requested operations.\n@errors {400: Bad Input, 401: Unauthorized, 403: Forbidden, 404: Not Found, 429: Too Many Requests, 500: Internal Server Error, 503: Server Busy}\n\n@endgroup\n\n@group resourceOwners\n@endpoint GET /v4/resourceOwners/{resourceOwnerId}\n@desc Retrieve a resource owner by ID\n@required {resourceOwnerId: str(uuid) # Unique identifier of the resource owner.}\n@returns(200) {id: str(uuid), name: str, email: str} # OK\n@errors {400: Bad Input, 404: Not Found, 500: Internal Server Error}\n\n@endgroup\n\n@group boundaries\n@endpoint GET /v4/boundaries/{boundaryId}\n@desc Retrieve a Boundary by ID\n@required {boundaryId: str(uuid) # Unique identifier of the Boundary}\n@returns(200) {id: str(uuid), type: str, geometry: any, properties: any} # OK\n@errors {400: Bad Input, 401: Unauthorized, 403: Forbidden, 404: Not Found, 429: Too Many Requests, 500: Internal Server Error, 503: Server Busy}\n\n@endpoint POST /v4/boundaries/query\n@desc Retrieve Boundaries in batch\n@required {ids: [str(uuid)]}\n@returns(200) {type: str, features: [any]} # OK\n@errors {400: Bad Input, 401: Unauthorized, 403: Forbidden, 404: Not Found, 429: Too Many Requests, 500: Internal Server Error, 503: Server Busy}\n\n@endpoint POST /v4/boundaries\n@desc Upload a boundary\n@required {geometry: any # GeoJSON}\n@returns(200) {id: str(uuid)} # OK\n@errors {400: Bad Input, 401: Unauthorized, 403: Forbidden, 404: Not Found, 429: Too Many Requests, 500: Internal Server Error, 503: Server Busy}\n\n@endgroup\n\n@group uploads\n@endpoint POST /v4/uploads\n@desc Initiate a new upload\n@required {contentType: str(mime-type)(image/vnd.climate.thermal.geotiff/image/vnd.climate.ndvi.geotiff/image/vnd.climate.rgb.geotiff/image/vnd.climate.rgb-nir.geotiff/image/vnd.climate.rgb-cir.geotiff/image/vnd.climate.waterstress.geotiff/image/vnd.climate.elevation.geotiff/image/vnd.climate.raw.geotiff/application/vnd.climate.field.geojson/application/vnd.climate.rx.planting.shp/application/vnd.climate.prescription.zones.shp/application/vnd.climate.modus.xml/application/vnd.climate.as-applied.zip/application/vnd.climate.as-planted.zip/application/vnd.climate.as-harvested.zip) # Content type representing data being uploaded (e.g. image/vnd.climate.rgb.geotiff), md5: str # Base64 encoded md5 hash of the content, length: int(int64) # Content size in bytes}\n@optional {X-Recipient-Email: str # Email address associated with a Climate account, used when to sending to another user., metadata: map}\n@returns(201) Returns a new upload with ID used to PUT file contents.\n@errors {400: Bad Input, 401: Unauthorized, 403: Forbidden, 429: Too Many Requests, 500: Internal Server Error, 503: Server Busy}\n\n@endpoint PUT /v4/uploads/{uploadId}\n@desc Chunked upload of data\n@required {Content-Range: str # Byte range `bytes start-end/total` (https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.16). e.g. bytes 0-5242880/10242880. 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)., uploadId: str(uuid) # Unique identifier of an Upload., Content-Type: str # Must be `application/octet-stream`}\n@returns(204) No Content\n@errors {400: Bad Input, 401: Unauthorized, 403: Forbidden, 404: Not Found, 429: Too Many Requests, 500: Internal Server Error, 503: Server Busy}\n\n@endpoint GET /v4/uploads/{uploadId}/status\n@desc Retrieve Upload status\n@required {uploadId: str(uuid) # Unique identifier of an Upload.}\n@returns(200) {id: str(uuid), status: str} # OK\n@errors {400: Bad Input, 401: Unauthorized, 403: Forbidden, 404: Not Found, 429: Too Many Requests, 500: Internal Server Error, 503: Server Busy}\n\n@endpoint POST /v4/uploads/status/query\n@desc Retrieve Upload statuses in batch\n@required {ids: [str(uuid)]}\n@returns(200) {results: [map]} # OK\n@errors {400: Bad Input, 401: Unauthorized, 403: Forbidden, 404: Not Found, 429: Too Many Requests, 500: Internal Server Error, 503: Server Busy}\n\n@endgroup\n\n@group exports\n@endpoint POST /v4/exports\n@desc Initiate a new export request.\n@required {contentType: str(mime-type)(application/vnd.climate.acrsi.geojson/application/vnd.climate.harvest.geojson) # Content type representing data being exported (e.g. application/vnd.climate.acrsi.geojson).}\n@optional {definition: map # Additional specifications for a client's data export request, dependent on the content type.}\n@returns(201) {id: str(uuid)} # OK\n@errors {400: Bad Input, 401: Unauthorized, 403: Forbidden, 429: Too Many Requests, 500: Internal Server Error, 503: Server Busy}\n\n@endpoint GET /v4/exports/{exportId}/status\n@desc Retrieve the status of an Export.\n@required {exportId: str(uuid) # Unique identifier of an Export.}\n@returns(200) {status: str, error: str, size: int(int64), checksum: str, xNextToken: str} # OK\n@errors {400: Bad Input, 401: Unauthorized, 403: Forbidden, 404: Not Found, 429: Too Many Requests, 500: Internal Server Error, 503: Server Busy}\n\n@endpoint GET /v4/exports/{exportId}/contents\n@desc Retrieve the binary contents of a processed export request.\n@required {Accept: str # Must be either \\*/* or application/octet-stream,application/json, exportId: str(uuid) # Unique identifier of an Export., Range: str # 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.}\n@returns(204) No Content\n@returns(206) Partial Result\n@errors {304: Not Modified, 400: Bad Input, 401: Unauthorized, 403: Forbidden, 404: Not Found, 409: Conflict (Report generation is still in progress), 410: Gone (Report is expired), 416: Range Not Satisfiable, 429: Too Many Requests, 500: Internal Server Error, 503: Server Busy}\n\n@endgroup\n\n@group layers\n@endpoint GET /v4/layers/scoutingObservations\n@desc Retrieve a list of scouting observations\n@optional {X-Next-Token: str # Opaque string which allows for fetching the next batch of results.  Can be used to poll for changes., X-Limit: int(int32) # Max number of results to return per batch.  Must be between 1 and 100 inclusive.  Defaults to 100., occurredAfter: str(date-time) # 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., occurredBefore: str(date-time) # 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.}\n@returns(200) {results: [map]} # OK\n@returns(206) {results: [map]} # Partial Result\n@errors {304: Not Modified, 400: Bad Input}\n\n@endpoint GET /v4/layers/scoutingObservations/{scoutingObservationId}\n@desc Retrieve individual scouting observation\n@required {scoutingObservationId: str(uuid) # Unique identifier of the Scouting Observation.}\n@returns(200) {id: str(uuid), title: str, note: str, location: any, startTime: str(date-time), endTime: str(date-time), updatedAt: str(date-time), fieldIds: [str], tags: [map], timespan: str, locationDisplayColor: str, status: str} # Returns the requested scouting observation.\n@errors {400: Bad Input, 403: Forbidden, 404: Not Found}\n\n@endpoint GET /v4/layers/scoutingObservations/{scoutingObservationId}/attachments\n@desc Retrieve attachments associated with a given scouting observation.\n@required {scoutingObservationId: str(uuid) # Unique identifier of the Scouting Observation.}\n@optional {X-Next-Token: str # Opaque string which allows for fetching the next batch of results.  Can be used to poll for changes., X-Limit: int(int32) # Max number of results to return per batch.  Must be between 1 and 100 inclusive.  Defaults to 100.}\n@returns(200) {results: [map]} # OK\n@returns(206) {results: [map]} # Partial Result\n@errors {304: Not Modified, 400: Bad Input, 403: Forbidden, 404: Not Found}\n\n@endpoint GET /v4/layers/scoutingObservations/{scoutingObservationId}/attachments/{attachmentId}/contents\n@desc Retrieve the binary contents of a scouting observation’s attachment.\n@required {Accept: str # Must be either \\*/* or application/octet-stream,application/json, scoutingObservationId: str(uuid) # Unique identifier of the Scouting Observation., attachmentId: str(uuid) # Unique identifier of the attachment., Range: str # 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.}\n@returns(200) OK\n@returns(206) Partial Result\n@errors {400: Bad Input, 401: Unauthorized, 403: Forbidden, 404: Not Found, 416: Range Not Satisfiable, 500: Internal Server Error, 503: Server Busy}\n\n@endpoint GET /v4/layers/asPlanted\n@desc Retrieve a list of planting activities\n@required {Accept: str # Must be either \\*/* or application/octet-stream,application/json}\n@optional {X-Next-Token: str # Opaque string which allows for fetching the next batch of results.  Can be used to poll for changes., X-Limit: int(int32) # Max number of results to return per batch.  Must be between 1 and 100 inclusive.  Defaults to 100., resourceOwnerId: str(uuid) # Optional unique identifier of the resource owner.  If resourceOwnerId is not specified, it defaults to the x-authenticated-user-uuid., occurredAfter: str(date-time) # 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., occurredBefore: str(date-time) # 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., updatedAfter: str(date-time) # 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.}\n@returns(200) {results: [map]} # OK\n@returns(206) {results: [map]} # Partial Result\n@errors {304: Not Modified, 400: Bad Input}\n\n@endpoint GET /v4/layers/asPlanted/{activityId}/contents\n@desc Retrieve the raw planting activity\n@required {Accept: str # Must be either \\*/* or application/octet-stream,application/json, activityId: str(uuid) # Unique identifier of the Planting Activity., Range: str # 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.}\n@returns(200) OK\n@returns(206) Partial Result\n@errors {304: Not Modified, 400: Bad Input, 401: Unauthorized, 403: Forbidden, 404: Not Found, 416: Range Not Satisfiable, 500: Internal Server Error, 503: Server Busy}\n\n@endpoint GET /v4/layers/asPlanted/{activityId}\n@desc Retrieve the summary of an activity as planted agronomic data\n@required {Accept: str # Must be either \\*/* or application/octet-stream,application/json, activityId: str(uuid) # Unique identifier of the Planting Activity.}\n@returns(200) {id: str(uuid), fieldId: str(uuid), fileName: str, fileSize: int(int64), indexedAt: str(date-time), lastProcessedAt: str(date-time), originalSrcModified: str(date-time), serialNumber: int(int32), srcLastModified: str(date-time), area: num(float), boundary: str, cropId: int(int64), dataChecksum: str, endTime: str(date-time), machineId: str, processorVersion: str, recordCount: int(int64), seasonCode: str, startTime: str(date-time), moisturePct: num(float), originalCropName: str, actualPopAvg: num(float), speedAvg: num(float), excessDfPct: num(float), goodSpacingPct: num(float), lossGcPct: num(float), newSeeds: int(int64), popUnit: str, singulationPct: num(float), split: bool, targetPopAvg: num(float)} # OK\n@errors {400: Bad Input, 401: Unauthorized, 403: Forbidden, 404: Not Found, 500: Internal Server Error, 503: Server Busy}\n\n@endpoint GET /v4/layers/asApplied\n@desc Retrieve a list of application activities\n@required {Accept: str # Must be either \\*/* or application/octet-stream,application/json}\n@optional {X-Next-Token: str # Opaque string which allows for fetching the next batch of results.  Can be used to poll for changes., X-Limit: int(int32) # Max number of results to return per batch.  Must be between 1 and 100 inclusive.  Defaults to 100., resourceOwnerId: str(uuid) # Optional unique identifier of the resource owner.  If resourceOwnerId is not specified, it defaults to the x-authenticated-user-uuid., occurredAfter: str(date-time) # 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., occurredBefore: str(date-time) # 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., updatedAfter: str(date-time) # 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.}\n@returns(200) {results: [map]} # OK\n@returns(206) {results: [map]} # Partial Result\n@errors {304: Not Modified, 400: Bad Input}\n\n@endpoint GET /v4/layers/asApplied/{activityId}/contents\n@desc Retrieve the raw application activity\n@required {Accept: str # Must be either \\*/* or application/octet-stream,application/json, activityId: str(uuid) # Unique identifier of the Application Activity., Range: str # 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.}\n@returns(200) OK\n@returns(206) Partial Result\n@errors {304: Not Modified, 400: Bad Input, 401: Unauthorized, 403: Forbidden, 404: Not Found, 416: Range Not Satisfiable, 500: Internal Server Error, 503: Server Busy}\n\n@endpoint GET /v4/layers/asApplied/{activityId}\n@desc Retrieve the summary of an activity as applied agronomic data\n@required {Accept: str # Must be either \\*/* or application/octet-stream,application/json, activityId: str(uuid) # Unique identifier of the Application Activity.}\n@returns(200) {id: str(uuid), fieldId: str(uuid), fileName: str, fileSize: int(int64), indexedAt: str(date-time), lastProcessedAt: str(date-time), originalSrcModified: str(date-time), serialNumber: int(int32), srcLastModified: str(date-time), area: num(float), boundary: str, cropId: int(int64), dataChecksum: str, endTime: str(date-time), machineId: str, processorVersion: str, recordCount: int(int64), seasonCode: str, startTime: str(date-time), passName: str} # OK\n@errors {400: Bad Input, 401: Unauthorized, 403: Forbidden, 404: Not Found, 500: Internal Server Error, 503: Server Busy}\n\n@endpoint GET /v4/layers/asHarvested\n@desc Retrieve a list of harvest activities\n@required {Accept: str # Must be either \\*/* or application/octet-stream,application/json}\n@optional {X-Next-Token: str # Opaque string which allows for fetching the next batch of results.  Can be used to poll for changes., X-Limit: int(int32) # Max number of results to return per batch.  Must be between 1 and 100 inclusive.  Defaults to 100., resourceOwnerId: str(uuid) # Optional unique identifier of the resource owner.  If resourceOwnerId is not specified, it defaults to the x-authenticated-user-uuid., occurredAfter: str(date-time) # 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., occurredBefore: str(date-time) # 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., updatedAfter: str(date-time) # 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.}\n@returns(200) {results: [map]} # OK\n@returns(206) {results: [map]} # Partial Result\n@errors {304: Not Modified, 400: Bad Input}\n\n@endpoint GET /v4/layers/asHarvested/{activityId}/contents\n@desc Retrieve the raw harvest activity\n@required {Accept: str # Must be either \\*/* or application/octet-stream,application/json, activityId: str(uuid) # Unique identifier of the Harvest Activity., Range: str # 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.}\n@returns(200) OK\n@returns(206) Partial Result\n@errors {304: Not Modified, 400: Bad Input, 401: Unauthorized, 403: Forbidden, 404: Not Found, 416: Range Not Satisfiable, 500: Internal Server Error, 503: Server Busy}\n\n@endpoint GET /v4/layers/asHarvested/{activityId}\n@desc Retrieve the summary of an activity as harvested agronomic data\n@required {Accept: str # Must be either \\*/* or application/octet-stream,application/json, activityId: str(uuid) # Unique identifier of the Harvest Activity.}\n@returns(200) {id: str(uuid), fieldId: str(uuid), fileName: str, fileSize: int(int64), indexedAt: str(date-time), lastProcessedAt: str(date-time), originalSrcModified: str(date-time), serialNumber: int(int32), srcLastModified: str(date-time), area: num(float), boundary: str, cropId: int(int64), dataChecksum: str, endTime: str(date-time), machineId: str, processorVersion: str, recordCount: int(int64), seasonCode: str, startTime: str(date-time), moisturePct: num(float), originalCropName: str, wetMass: num(float), loadNumber: int(int32)} # OK\n@errors {400: Bad Input, 401: Unauthorized, 403: Forbidden, 404: Not Found, 500: Internal Server Error, 503: Server Busy}\n\n@endgroup\n\n@end\n"}}