Skip to main content
GET
Read compliance information after an ESA check or after an applicator changes selections in the portal. The response combines saved application requirements with current mitigation selections. Every request reads fresh data and returns Cache-Control: no-store.
string
required
Application-event reference returned by an ESA check. Use this UUID, not your submitted application_id.
boolean
default:"false"
Use true to include saved buffer_features and any PULA boundaries included in the last assessment. Only literal true and false are accepted. This does not compute new buffer or treatable-area boundaries.

Response fields

The response contains success, retrieved_at, and application. Group retrieval returns this same application object for each member.

Product PULA limitations

compliance.last_assessment.products[] returns each product’s saved epa_number, product_name, pest, product_status, esa_required, and pulas[]. Each PULA has pula_id, event_name, status, effective_date, codes, and limitations[] with limitation_id, code, limitation text, and mitigation_options. With include_geometry=true, a PULA also includes its saved geometry when the original check requested it. These fields match the ESA check product limitations. Limitations come from the last ESA check; this GET does not search for new or changed PULAs. Resubmit the check to refresh them. An application without a saved assessment has last_assessment: null.

Runoff points and applicability

See Understanding compliance determinations for runoff and drift scoring, setup violations, overall status, and when to refresh a result. Each runoff entry includes mitigation_type, year, required, exempt, required_points, label_required_points, earned_points, gap, status, credited_measures, selected_measures, exemption claims, and issues.
  • required_points is the effective requirement: zero for an accepted EPA runoff exemption, otherwise the saved target. label_required_points retains the saved label/PULA target, including for exempt applications. Null means unresolved; it does not mean zero.
  • earned_points is recalculated from current selections using active definitions, product restrictions, soil eligibility, selection limits, and aggregation caps. credited_measures explains the credits counted. selected_measures also includes selections that did not qualify for credit, with source, implementation date, and notes.
  • gap is the larger of zero and required minus earned points. It is null when required points are unresolved.
  • year comes from application_date. Applications on the same field in the same year share runoff selections, but their product restrictions and required points can differ.
  • status is met, not_met, or indeterminate for runoff within this scope. For non-exempt requirements, a missing soil result, unknown product, incomplete application processing, unresolved requirement, unsupported mitigation type, or unverified non-EPA applicability keeps it indeterminate. An accepted EPA exemption returns met without requiring runoff scoring inputs.
Runoff issues contains code strings: RUNOFF_APPLICABILITY_UNVERIFIED, RUNOFF_REQUIREMENT_UNRESOLVED, SOIL_UNAVAILABLE, UNKNOWN_PRODUCT, APPLICATION_PROCESSING_INCOMPLETE, or UNSUPPORTED_MITIGATION. EPA runoff is required by default, including older unanswered records saved with required: false. An explicit portal exemption (required: false with an evaluation timestamp) returns required: false, exempt: true, status: "met", required_points: 0, and gap: 0. runoff_exemption_claimed_at and runoff_exemption_reasons preserve the selection; timestamped legacy exemptions without reason codes are supported. Choosing “None apply” restores required: true and scoring against the saved target. The requirements[] and runoff[] entries use the same effective requirement. Portal selections appear on the next GET without resubmitting a check. EPA exemptions do not exempt Enlist, other runoff systems, or drift. RUNOFF_APPLICABILITY_UNVERIFIED is no longer emitted for EPA runoff; it can still describe an optional non-EPA runoff requirement. Historical last_assessment values and completed bulk results are unchanged until a new check is run.

Drift configuration and details

compliance.drift.configuration returns the complete saved configuration, or null when none exists. Inspect its version; current V2 checks produce version 4 with:
  • computed_at and summary for wind_directional, omni_directional, and downslope buffers. Summaries separate mitigatable and non_mitigatable distances.
  • requirements[] with source (product or pula_limitation), product_epa, config_label, limitation_id when available, matched method, and raw_distance_ft.
  • Complete buffers_esa for each requirement, including anchor, exclusion categories, mitigation eligibility, methods, distance units, droplet/boom tiers, wind-speed ranges, rate ranges, and mitigation types when configured.
  • Raw and normalized rates, rate resolution, active-ingredient information, and flags indicating conditional wind/rate tiers when available.
reductions[] returns current saved totals and selected mitigations by drift type. Each selection includes its label, definition points and reduction percentage, custom value, and implementation notes. These totals are recorded selections; they are not newly verified buffer reductions. setup includes normalized application method, GPA, droplet size, and boom height. weather includes wind direction, wind speed, temperature, humidity, observation timestamp, and source. Wind direction is where wind comes from, clockwise from north; speed is mph, temperature is °F, and humidity is percent. adjuvant_results contains the saved adjuvant evaluation, or null. last_computation contains the last application-time computation’s timestamp, overall status, separate drift_status, inputs, reductions, manual claims, feature counts/scope, per-edge details, and product breakdown, or null. It can predate current selections or weather. drift_status: "met" means the supplied setup satisfied the configured drift rules when applied within the calculated treatable area, even if a buffer remained. This is a saved result, not a fresh drift assessment. Older computations have a null drift_status until recomputed. With include_geometry=true, buffer_features contains saved portal features, or null; it is separate from that historical computation.

Fresh reads and saved assessments

This GET request does not rerun an ESA check, fetch new soil, refresh product/PULA requirements, or recompute drift placement. There is no new overall compliance.status; read current runoff status separately from last_assessment.status. A current runoff met result does not establish overall application compliance. Missing assessment/configuration data remains null or empty, including while processing is pending or failed. To refresh the saved requirements, resubmit the application to ESA check. To calculate buffers using application-time weather and receive buffer/treatable-area boundaries, use compute drift buffers. No-ESA checks that did not create an application-event reference cannot be retrieved here. An expired or locked portal does not prevent an authorized provider from reading an existing application; archived fields are excluded.
The example uses illustrative product requirements. Use your returned configuration and labels for the actual application.

Errors

An absent or other-provider application, or one on an archived field, returns 404 APPLICATION_NOT_FOUND. A malformed application UUID, invalid query value, or unknown query parameter returns 422 INVALID_REQUEST. All routes can also return authentication, validation, rate-limit, and dependency errors. Keep X-Request-ID when present.