Skip to main content
POST
https://esa.acreblitz.com
/
api
/
v1
/
esa-check
ESA Check
curl --request POST \
  --url https://esa.acreblitz.com/api/v1/esa-check \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "account_id": "<string>",
  "provider_id": "<string>",
  "field_name": "<string>",
  "application_id": "<string>",
  "application_method": "<string>",
  "application_date": "<string>",
  "field_boundary": {},
  "products": [
    {}
  ],
  "crop": [
    {}
  ],
  "pest": [
    {}
  ],
  "provider_field_id": "<string>",
  "user_email": "<string>",
  "gpa": 123,
  "include_geometry": true,
  "buffer_distance_miles": 123,
  "droplet_size": "<string>",
  "boom_height": "<string>",
  "include_soil_analysis": true,
  "include_mitigations": true
}
'
{
  "success": true,
  "esa_required": true,
  "account_id": "<string>",
  "provider_id": "<string>",
  "field_id": "<string>",
  "application_event_id": "<string>",
  "mitigations_required": true,
  "mitigation_portal_url": "<string>",
  "expires_at": "<string>",
  "user_email": "<string>",
  "products": [
    {}
  ],
  "summary": {}
}
Check if a field has active Pesticide Use Limitation Areas (PULAs) for the products in your tank mix. Returns detailed limitation data and a white-labeled portal URL for mitigation selection.

Request Body

Required Fields

account_id
string
required
Your customer account identifier. Controls portal access and is displayed in reports.
provider_id
string
required
Your internal provider identifier, assigned by AcreBlitz.
field_name
string
required
Name of the field. Displayed in the portal and on compliance reports.
application_id
string
required
Unique identifier for the application job in your system. Used for idempotency — resubmit with the same application_id to update results rather than create duplicates.
application_method
string
required
Method of application. Use your own terminology (e.g., "Drone", "Ground Boom", "Airblast", "Helicopter") — we automatically map to the correct regulatory categories (aerial, ground, airblast).
application_date
string
required
Application date in ISO 8601 format (YYYY-MM-DD). Used for temporal validation of PULA restrictions.
field_boundary
object
required
GeoJSON Feature with Polygon or MultiPolygon geometry in EPSG:4326 (WGS84).
Example
{
  "type": "Feature",
  "geometry": {
    "type": "Polygon",
    "coordinates": [[
      [-95.284265, 42.263233],
      [-95.284470, 42.254180],
      [-95.267536, 42.254063],
      [-95.267341, 42.263116],
      [-95.284265, 42.263233]
    ]]
  }
}
products
array
required
Products to check. Each product object contains:
FieldTypeRequiredDescription
epa_numberstringNoEPA registration number (nullable for adjuvants)
product_namestringYesProduct name
ratenumberYesApplication rate
rate_unitstringYesRate unit (e.g., "fl oz/acre")
Example
[
  {
    "epa_number": "62719-442",
    "product_name": "INTREPID 2F",
    "rate": 16.0,
    "rate_unit": "fl oz/acre"
  }
]
crop
array
required
Crop names being treated (e.g., ["corn", "soybeans"]).
pest
array
required
Target pest names (e.g., ["aphids", "corn borer"]).

Optional Fields

provider_field_id
string
Your internal field identifier. Used as the key for report download endpoints. If omitted, application_id is used as fallback.
user_email
string
End user email address. Stored for your records.
gpa
number
Gallons per acre. Used for mitigation calculations.
include_geometry
boolean
default:"false"
Include buffered PULA geometries in the response. Useful for rendering PULA boundaries on a map.
buffer_distance_miles
number
default:"1.0"
Buffer distance around the field for PULA geometry inclusion (max 10 miles). Only applies when include_geometry is true.
droplet_size
string
Droplet size category (e.g., "medium", "coarse", "very_coarse").
boom_height
string
Boom height for ground applications ("low" or "high").

Reserved Fields (Coming Soon)

include_soil_analysis
boolean
default:"false"
Include soil analysis data in the response. Not yet implemented — currently ignored.
include_mitigations
boolean
default:"false"
Include mitigation options in the response. Not yet implemented — currently ignored.

Response

success
boolean
required
Whether the ESA check completed successfully.
esa_required
boolean
required
Whether any product in the request has ESA label language. If false, no further action is needed.
account_id
string
required
The account ID from your request.
provider_id
string
required
The provider ID from your request.
field_id
string
Internal AcreBlitz field UUID. Only present when esa_required is true.
application_event_id
string
Internal AcreBlitz application event UUID. Only present when esa_required is true.
mitigations_required
boolean
Whether the user must select mitigation practices. Only present when esa_required is true.
mitigation_portal_url
string
Secure URL to the white-labeled mitigation portal. Valid for 1 year. Only present when esa_required is true.
expires_at
string
ISO 8601 timestamp for when the portal link expires. Only present when esa_required is true.
user_email
string
The user email from your request, if provided.
products
array
required
Array of product results. Each product contains:
FieldTypeDescription
epa_numberstringEPA registration number
product_namestringProduct name
product_statusstring | nullRegistration status ("Active", "Inactive", or null if not found)
esa_requiredboolean | nullWhether this specific product has ESA label language
pulasarrayPULAs affecting this product (empty if no ESA restrictions)
Each PULA in the pulas array contains:
FieldTypeDescription
pula_idintegerPULA identifier
event_namestringRegulatory event name (e.g., "NMFS BiOps 2024")
statusstringPULA status (e.g., "effective")
effective_datestringDate the PULA became effective
codesstringLimitation codes
geometryobject | nullGeoJSON geometry (only if include_geometry=true)
limitationsarraySpecific limitations for this PULA
Each limitation contains:
FieldTypeDescription
limitation_idintegerLimitation identifier
codestringLimitation code (e.g., "RPMDZ")
limitationstringFull limitation text
mitigation_optionsarrayRequired mitigation types (e.g., ["epa_runoff"])
summary
object
required
Summary statistics for the check.
FieldTypeDescription
total_pulasintegerTotal PULAs found affecting the field
total_limitationsintegerTotal limitations across all PULAs
products_checkedintegerNumber of products checked
products_with_limitationsintegerNumber of products with active limitations

Examples

When one or more products have ESA label language and the field intersects active PULAs:
{
  "success": true,
  "esa_required": true,
  "account_id": "acct-98765",
  "provider_id": "your_provider_id",
  "field_id": "f7a1b2c3-d4e5-6789-abcd-ef0123456789",
  "application_event_id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789",
  "mitigations_required": true,
  "mitigation_portal_url": "https://acreblitz.com/esaportal/field?t=a2a73941e3872bdcd6aae3206060f19db3892aec67bfbef27a2d015b1bf98bc7",
  "expires_at": "2026-06-22T23:59:59Z",
  "user_email": null,
  "products": [
    {
      "epa_number": "62719-442",
      "product_name": "INTREPID 2F",
      "product_status": "Active",
      "esa_required": true,
      "pulas": [
        {
          "pula_id": 95,
          "event_name": "NMFS BiOps 2024",
          "status": "effective",
          "effective_date": "2024-04-30",
          "codes": "RPMDZ",
          "limitations": [
            {
              "limitation_id": 201,
              "code": "RPMDZ",
              "limitation": "Do not apply when soil is saturated...",
              "mitigation_options": ["epa_runoff"]
            }
          ]
        }
      ]
    }
  ],
  "summary": {
    "total_pulas": 1,
    "total_limitations": 1,
    "products_checked": 1,
    "products_with_limitations": 1
  }
}
When no products in the tank mix have ESA label language, the API returns early without storing data or creating a portal link:
{
  "success": true,
  "esa_required": false,
  "account_id": "acct-98765",
  "provider_id": "your_provider_id",
  "field_id": null,
  "application_event_id": null,
  "mitigations_required": null,
  "mitigation_portal_url": null,
  "expires_at": null,
  "user_email": null,
  "products": [
    {
      "epa_number": "12345-678",
      "product_name": "GENERIC HERBICIDE",
      "product_status": "Active",
      "esa_required": false,
      "pulas": []
    }
  ],
  "summary": {
    "total_pulas": 0,
    "total_limitations": 0,
    "products_checked": 1,
    "products_with_limitations": 0
  }
}

Notes

Idempotency: The application_id field makes the endpoint idempotent. Resubmitting with the same application_id updates the existing record rather than creating a duplicate. Use this to refresh results when products or application details change.
Provider Field ID Fallback: If you don’t provide provider_field_id, the application_id is used as the field identifier for report download endpoints.
Flexible Application Methods: You can use your own terminology for application_method (e.g., "Drone", "Helicopter", "Ground Boom"). The API automatically maps these to the correct regulatory categories.
GeoJSON Format: The field_boundary must be a GeoJSON Feature with a Polygon or MultiPolygon geometry in EPSG:4326 (WGS84). MultiPolygon is supported for fields with excluded areas or multiple sections.