EUDR Geolocation & Due-Diligence API

A defensible, deforestation-free claim tied to plot coordinates — for every EU consignment of coffee, cocoa, soy, oil palm, rubber, cattle and wood.

Reference data & tooling only. Not legal advice. Not the official EU/TRACES system. Verify against the EU Official Journal and the official Information System.

What this is

A free, developer-first API for EU Deforestation Regulation (EUDR) compliance — Regulation (EU) 2023/1115. It answers the one question every consignment needs: for a given plot of land (by coordinates) and commodity, can you make a deforestation-free claim against the 31 December 2020 cut-off? It also serves the reference data you need (country risk benchmarking, in-scope commodities and HS codes) and assembles a TRACES-ready Due Diligence Statement (DDS).

Who it's for: EU importers, ERP and traceability vendors, and commodity traders of coffee, cocoa, soy, oil palm, rubber, cattle and wood who need per-consignment, plot-level checks instead of stitching satellite tiles by hand.

Base URL: https://apis.allanninal.dev/eudr/

Key dates

Static reference API free · no auth

Read-only JSON, versioned under /api/v1/.

curl -s https://apis.allanninal.dev/eudr/api/v1/index.json
curl -s https://apis.allanninal.dev/eudr/api/v1/commodities.json
curl -s https://apis.allanninal.dev/eudr/api/v1/countries/CI.json
curl -s https://apis.allanninal.dev/eudr/api/v1/schemas/dds.schema.json
const meta = await (await fetch('./api/v1/meta.json')).json();
console.log(meta.applicationDates);

Compute API free · rate limited

Open access, protected by per-client rate limiting. Send an API key to get a higher budget once you have one.

curl -X POST https://apis.allanninal.dev/eudr/v1/plots/check \
  -H "content-type: application/json" \
  -d '{"commodity":"cocoa","geometry":{"type":"Point","coordinates":[-5.12,6.20]}}'
MethodPathPurpose
POST/v1/plots/checkSingle-plot deforestation-free verdict
POST/v1/consignments/checkBulk per-plot + aggregate verdict
POST/v1/dds/buildAssemble a TRACES-ready DDS payload
GET/v1/usageAPI key usage & quota

Live DDS validator

Paste a Due Diligence Statement JSON to validate it against the schema and EUDR rules.


    

FAQ

Which commodities does the EUDR cover?

The seven core commodities: cattle, cocoa, coffee, oil palm, rubber, soy and wood — plus derived products identified by HS/CN codes.

Is it the official EU system?

No. This is evidentiary tooling and reference data. Authoritative registration and DDS submission go through the EU Information System (TRACES NT). This service is not legal advice.

How much does it cost?

The reference data is free and open; compute endpoints are free with rate limiting. Code is MIT-licensed, datasets are CC BY 4.0.

Not technical? Here's the whole idea in simple words

Imagine a restaurant 🍽️. You don't march into the kitchen and start cooking. You tell the waiter what you'd like, and a few minutes later your dish arrives. An API is that waiter — but for software. One app asks for something, the API goes and gets it, and hands back a tidy answer. Nobody has to touch the messy kitchen.

1 What an API actually is

API stands for "Application Programming Interface," but you can forget those words. The useful idea is this: it's a polite, reliable messenger that sits between two systems so they can work together without knowing each other's secrets.

🙂You (the app) 🧑‍🍳The API (the waiter) 🍳Kitchen (your data) "I want this" brings it back
Request in, answer out. The app never touches the kitchen — that's the whole trick.

A few everyday things you already use are powered by APIs behind the scenes:

🗺️

Maps in an app

A ride app asks a maps API "where is this address?"

💳

Card payments

A shop asks a payment API "is this card good?"

🌦️

Weather widget

A site asks a weather API "what's it like today?"

🔐

"Log in with…"

One app asks another "is this really them?"

2 Why it matters for your business

Most businesses lose time and money in the gaps between tools — someone exports a spreadsheet here, retypes numbers there, emails a file to a partner, and hopes nobody made a typo. An API closes those gaps.

Save time

Work that took hours by hand happens in a blink, on its own.

Fewer mistakes

No more typos from copying numbers between apps.

Grow easily

Ten customers or ten thousand — it keeps up without extra staff.

New income

You can even sell access — partners pay to use your API.

Always on

It answers day and night, weekends and holidays included.

Better partnerships

Give partners a clean, safe door instead of raw access.

The "before and after" picture

😵 Without an API App A App B 🧍 a person copies & pastes, makes typos, gets tired 😎 With an API App A App B API 🧩 apps talk by themselves, instantly
A good API removes the tired human in the middle. The apps just connect.

3 How I build one for you

You don't need to know any of the words below — but people sometimes like a peek under the hood. A well-built API is really just a few friendly parts working together:

📱your app / partner 🛡️gate + guardkeys, limits 🧠the logicdoes the real work 🗄️memory (database) fast cache
A door to knock on, a guard to keep it safe, a brain to do the work, and a memory to remember. You don't need these words — I take care of them.
🚪

A door

A clear, documented place to ask for things.

🛡️

A guard

Keys and limits so only allowed callers get in.

🧠

A brain

The rules and logic that do the real work.

🗄️

A memory

Where your data safely lives and is looked up.

4 The process, step by step

Working together is calm and predictable. Here's the whole rhythm:

💬talk ✏️plan 🔨build 🧪test 🚀live
Five simple stages — you stay in plain-language land the whole way.

5 What you actually get

Not a pile of code you can't read — a working service plus everything around it that makes it usable and trustworthy:

✅ A live, working API 📖 Plain docs anyone can follow 🔐 Keys & safe access control 🚦 Limits so it can't be abused 🧪 Tests that prove it works 🌐 A demo page to show it off 📦 Everything owned by you

📗 A real example: the EUDR API

Everything above isn't theory — the very page you're on is served by a real API I built. It tackles a genuinely thorny business problem: the EU Deforestation Regulation (EUDR). From 30 December 2026, companies importing coffee, cocoa, soy, palm oil, rubber, cattle or wood into the EU must prove each shipment did not come from land that was deforested after 31 December 2020.

Doing that by hand means stitching together satellite maps, land coordinates and paperwork — slow, and easy to get wrong. The API turns that into a single, simple question and answer:

The question your app asks:

POST /v1/plots/check
{ "commodity": "cocoa",
  "geometry": { "type": "Point", "coordinates": [-5.12, 6.20] } }

The clean answer it hands back: whether that plot is deforestation-free, with the evidence attached — ready to drop into an official Due Diligence Statement.

Manual way
Hours per shipment 😩
With the API
A split second ⚡
Scales to
Thousands of plots 📈

It's the same building blocks described above — a guard, a brain, a memory — pointed at one real problem. The same kit can become an API for your idea.

How this one was actually made

In plain terms, here's the journey a single request takes through the system. Each stage has one simple job, and they hand off to the next like a relay:

🌍a requestfrom the web 🔒front door(safe entry, HTTPS) 🚦traffic control(keys, fair limits) 🧠the API(the brain) 📐the rules: check the plot & build the statement 🗄️memory: keys & usage 🛰️reference data & maps clean answer back 🡐
The request path in general terms: a safe front door, a traffic controller that checks keys and keeps things fair, the API brain that runs the rules, and behind it a memory for keys/usage plus the reference data and maps it consults — then a clean answer travels back the way it came.

It's built from small, well-understood pieces, wrapped in tests so it keeps behaving, and it's packaged to run reliably anywhere — you don't manage any of that; you just get the answer.

👋 Want an API for your idea?

This API was designed and built by Allan Niñal, an AI & software engineer who ships friendly, well-made, developer-first APIs and data products. Tell me the problem in plain words — EUDR, compliance, geospatial, or anything else — and I'll turn it into something that works.