generated: '2026-09-13' method: searched source: https://github.com/agrology/public-api-docs/blob/main/README.md api: Agrology Public API v2 note: >- The OpenAPI declares ZERO examples across its 90 operations. Every example below is copied verbatim from the provider's own README, which is where Agrology actually documents its response shapes. Identifiers, coordinates and readings are the provider's own published sample values — no value here was invented, and several bodies are marked by the provider as "intentionally truncated". spec_examples: 0 documented_examples: 7 examples: - id: access-list operation: GET /access url: https://api.agrology.ag/v2/access description: The caller's access-control list — every customer, site and node the credential can reach, with the caller's role per site. provider_truncated: false response: siteAccess: - customer: agrology displayName: Agrology Internal Use sites: abc391cd-b8cd-4e47-b7ab-8e91f9ebbe6e: id: abc391cd-b8cd-4e47-b7ab-8e91f9ebbe6e displayName: Device Data Testing role: admin nodes: - id: dc59edcd-1787-488a-b6f1-5632eb132667 displayName: Control - id: 9f04f006-d3ff-489f-b234-b77510ae13c0 displayName: TL Test Bench - id: 2d58b570-a3b5-47fb-867f-5152ba2be73c displayName: Test Bench - id: geojson-site operation: GET /geojson/site/{siteID} url: https://api.agrology.ag/v2/geojson/site/austin-research-station description: >- Site geometry as a GeoJSON FeatureCollection. Note the templated historicalURL / predictionsURL / syntheticsURL members — the API's only link-following affordance — and the provider's own misspelling of siteClassificaiton. provider_truncated: false response: key: austin-research-station description: Austin Research Station historicalURL: https://api.agrology.ag/v2/historical/ground-truth/{site} predictionsURL: https://api.agrology.ag/v2/predictions/{dataset}/{site} syntheticsURL: https://api.agrology.ag/v2/synthetics/{dataset}/{site} sites: - austin-research-station type: FeatureCollection features: - type: Feature properties: elementType: site siteClassificaiton: lab name: Austin Research Station customer: agrology site: austin-research-station role: admin country: US displayUnits: imperial timezone: America/Los_Angeles geometry: {} - type: Feature properties: elementType: node name: CLAY deviceIDs: - 70B3D57BA000163E - 70B3D57BA00015EA - 383737326F308105 devices: '383737326F308105': make: agrology model: v1_ground lastMessage: 1673603380000 lastPayload: 10274a03a1b00105130b1c053505de01c6034d00000000 isMonitored: true 70B3D57BA00015EA: make: decentlab model: trs12 lastMessage: 1673603779000 lastPayload: 0215ea000355d8805500030b63 isMonitored: true 70B3D57BA000163E: make: decentlab model: trs21 lastMessage: 1673604549000 lastPayload: 02163e00034dab80560b14 isMonitored: true elevationMeters: 53 site: austin-research-station crops: - '' id: 516dbc83-8ee1-4f18-af23-0859259c81be geometry: type: Point coordinates: - -122.602875 - 45.556985 - id: time-series operation: GET /historical/ground-truth/{siteID}/{timeRange} description: >- The standard time-series envelope, shared by all five datasets (historical ground-truth, historical weather, synthetic microclimate, microclimate predictions, weather predictions). Samples are grouped by node; the `d` object is an open map of metric id to value. provider_truncated: false applies_to: - GET /historical/ground-truth/{siteID}/{timeRange} - GET /historical/weather/{siteID}/{timeRange} - GET /synthetics/microclimate/{siteID}/{timeRange} - GET /predictions/microclimate/{siteID}/{timeRange} - GET /predictions/weather/{siteID}/{timeRange} response: status: ok request: requestTime: 1718293623 source: historical/ground-truth siteId: austin-research-station format: json responseVersion: '2.1' sites: austin-research-station: id: austin-research-station name: Austin Research Station devices: 70B3D57BA000163B: deviceType: smp id: 70B3D57BA000163B '383737326F308105': deviceType: gV1 id: '383737326F308105' position: Soil Chamber 70B3D57BA000163C: deviceType: smp id: 70B3D57BA000163C nodes: f5053b4e-3bd3-4acb-956d-9223a038bf5a: name: SILT id: f5053b4e-3bd3-4acb-956d-9223a038bf5a siteId: austin-research-station samples: - ts: 1672531458 dev: 70B3D57BA000163B d: battery: 2.9 soilTemperature: 7.4 waterPotential: -1958.2 516dbc83-8ee1-4f18-af23-0859259c81be: name: CLAY id: 516dbc83-8ee1-4f18-af23-0859259c81be samples: - ts: 1672531628 dev: '383737326F308105' d: battery: 3 barometricPressure: 1010.7 airTemp: 7.9 humidity: 93 totalVOCs: 1.255 soilMoisture: 1335 soilTension: 1500 soilConductivity: 452 soilTemperature: 7.2 vpd: 0.075 dewPoint: 6.88 bc11540e-a33c-40c6-8df7-78d3c320dbdf: name: SAND id: bc11540e-a33c-40c6-8df7-78d3c320dbdf samples: - ts: 1672531909 dev: 70B3D57BA000163C d: battery: 2.9 soilTemperature: 7.4 waterPotential: -10.9 - id: ground-truth-metrics operation: GET /historical/ground-truth/metrics url: https://api.agrology.ag/v2/historical/ground-truth/metrics description: The metric vocabulary for ground-truth telemetry. Ids from this list are the legal values of the ?metrics= filter. provider_truncated: true response: - id: airTemp displayName: Air Temperature units: "˚C" - id: humidity displayName: Humidity units: '%' - id: totalVOCs displayName: Total VOCs - id: weather-metrics operation: GET /historical/weather/metrics url: https://api.agrology.ag/v2/historical/weather/metrics description: The metric vocabulary for Tomorrow.io-sourced historical weather data. provider_truncated: true response: - id: airTemp displayName: Air Temperature units: "˚C" - id: humidity displayName: Humidity units: '%' - id: epaIndex displayName: EPA Index - id: synthetic-microclimate-metrics operation: GET /synthetics/microclimate/metrics url: https://api.agrology.ag/v2/synthetics/microclimate/metrics description: >- The metric vocabulary for ML-synthesized microclimate metrics. Note this list uses `description` where the other metric endpoints use `displayName` — an inconsistency in the provider's own documented shapes. provider_truncated: false response: - id: vwc description: Volumetric Water Content - id: customer-alerts operation: GET /alerts/customer/{customerID} url: https://api.agrology.ag/v2/alerts/customer/{customerID} description: >- Threshold alerts aggregated for one customer. The envelope carries an `aps` block — an Apple Push Notification payload — revealing that this endpoint doubles as the mobile push feed. startTime/updateTime are ISO-8601 here, unlike the epoch integers used elsewhere in the API. provider_truncated: false response: aps: alert: Alerts for Example Vineyards alerts: - id: 6bd40bf2-4e5c-4b54-bdae-921a8738653b insight: temperature startTime: '2023-03-07T13:01:41Z' updateTime: '2023-03-07T13:01:41Z' customer: example-customer sites: - example-site-1 - example-site-2 eventValues: origin: Agrology title: Extreme Cold Temperature Warning headline: Temperature is forecast to drop below 34 °F starting at 5am PST today at Example Vineyard1 and Example Vineyard 2 location: {} points: - - 39.056803 - -123.433543 - - 39.05481 - -123.435506 request_examples: - id: bearer-auth description: Bearer token authentication header, verbatim from the README. header: 'Authorization: Bearer $ACCESS_TOKEN' - id: api-key-auth description: API key authentication header, verbatim from the README. header: 'x-api-key: $API_KEY' - id: filter-by-device-type description: Restrict a time-series response to named device types. query: '?deviceType=vwc,gV1' - id: filter-by-metric description: Restrict a time-series response to named metrics. query: '?metrics=airTemp,humidity' - id: filter-combined description: Combine both filters. query: '?deviceType=co2&metrics=co2Concentration' - id: time-range-epoch-window description: Epoch start to epoch end. path_segment: 1618203722-1618290149 - id: time-range-epoch-open description: Epoch start to now — the trailing hyphen is required. path_segment: 1618203722- - id: time-range-relative-open description: Four hours ago to now. path_segment: 4h- - id: time-range-relative-window description: A two-hour window from six to four hours ago. path_segment: 6h-4h - id: file-download description: Exchange an s3:// location for a pre-signed download URL. The file parameter must be urlencoded. path: /fileserver/customer/{customerID}?file=/path/to/file.txt gaps: - The OpenAPI carries no examples and no response schemas for the telemetry endpoints; all seven response examples exist only in the README. - Three of the seven are marked by the provider as intentionally truncated, so the full metric vocabularies must be fetched live.