First Mile Supply Chain API

The First Mile Supply Chain API is designed to generate and manage environmental geospatial data for land-based supply chains (agriculture and forestry). It leverages satellite imagery and open data to provide on-demand, spatially-explicit (plot or sourcing area level) and temporally-relevant (from a given baseline date) sustainability metrics.


Core Capabilities

  • Deforestation compliance โ€” Multi-source deforestation and forest loss detection combining satellite change detection with global and national forest datasets. Includes natural forest masks, managed forest exemptions for 35+ countries, and spatio-temporal sieving. Aligned with EUDR requirements.

  • Land Use Change (LUC) Emissions โ€” Plot-level CO2-equivalent emissions from loss of above-ground biomass or conversion from native ecosystems to managed agricultural systems. Below-ground biomass estimated via root-to-shoot ratio. Based on modelled annual biomass density.

  • Non-LUC Emissions โ€” Emissions not driven by land use change, including agricultural practices (tillage, fertiliser, crop residue management) and processing emissions from first-mile aggregation facilities (factories, sawmills, palm oil mills, etc.).

  • Carbon Removals โ€” Long-term monitoring of restoration efforts and landscape-level interventions aiming to sequester carbon in soil or biomass pools. Supported through annual time series.

  • Landscape Biodiversity โ€” Plot-level and supply-shed level assessment of canopy height heterogeneity as a proxy for species diversity.

  • Water Stress โ€” Plot-level and supply-shed level water availability assessment combining precipitation, evapotranspiration, and soil moisture indicators into a composite stress index.

  • Supply Shed Analysis โ€” Travel-time isochrone generation from processing facilities using road network, terrain, and land cover data. Automated commodity plot detection within supply sheds. Per-commodity default travel times calibrated from peer-reviewed sources.

  • EUDR Compliance Workflow โ€” End-to-end pipeline from data upload through deforestation assessment to Due Diligence Statement (DDS) submission to EU TRACES. Article 10 risk assessment covering all 14 regulatory clauses.


How It Works

The API follows an upload โ†’ validate โ†’ process โ†’ retrieve workflow:

  1. Upload โ€” Submit a file of locations (facilities or plots) via POST /ingestions/assets or POST /regulations/eudr.
  2. Validate โ€” The system normalizes coordinates, geocodes addresses, matches against existing records, and validates geometries (15 geometric checks for plots, commodity/infrastructure checks for facilities). Task status progresses to staged.
  3. Process โ€” Trigger metric computation via PUT /ingestions/assets with metrics in the body (deforestation, emissions, biodiversity, water). Computed asynchronously.
  4. Retrieve โ€” Poll GET /ingestions/:id/summary for progress, or subscribe to webhooks for real-time notifications. Fetch results via metrics endpoints (GET /metrics/plots/deforestation, GET /metrics/facilities/emissions, etc.).

For EUDR-specific workflows, use the /regulations/eudr endpoints which streamline the upload-to-DDS-submission flow.


Supported Commodities

Cattle ยท Cocoa ยท Coffee ยท Palm ยท Rubber ยท Soy ยท Timber ยท Shrimp

Aliases oil palm and palm oil are accepted on upload and normalised to palm.


Supported File Formats

Upload endpoints accept the following formats (up to 100 MB):

  • CSV โ€” tabular data with coordinate columns
  • GeoJSON / NDJSON โ€” standard geospatial interchange formats
  • Parquet โ€” columnar format for large datasets
  • GeoPackage โ€” OGC standard for geospatial data
  • Shapefile โ€” classic GIS format (uploaded as a ZIP archive)
  • Excel โ€” .xlsx and .xls spreadsheets with coordinate or address columns

Authentication

The API uses API keys for authentication. Keys are created in the Epoch app under Settings > API Keys. Send the key in the x-api-key header on every request.


Response Format

All JSON responses use a standard envelope:

{
  "meta": { },
  "links": { "self": "/path", "next": "/path?page=2" },
  "data": [ ]
}

Streaming responses (Accept: application/x-ndjson) return one JSON object per line without the envelope.

Browse the guide pages in the sidebar for detailed documentation on methodology, thumbnails, supply sheds, EUDR compliance, and more.