# EUDR Parcel Polygons Austria (`mcalex0902/eudr-parcel-polygons-austria`) Actor

Austrian parcel number (KG + Grundstücksnummer) → EUDR-ready GeoJSON polygon from the official BEV cadastre. With area check, forest share, land use and interior point. Grundstücksnummer zu EUDR-Polygon für Holz und Rinder aus Österreich.

- **URL**: https://apify.com/mcalex0902/eudr-parcel-polygons-austria.md
- **Developed by:** [mcalex0902](https://apify.com/mcalex0902) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $50.00 / 1,000 parcel polygons

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## EUDR Parcel Polygons Austria – Grundstücksnummer → GeoJSON-Polygon für die EUDR-Sorgfaltserklärung

**Aus Katastralgemeinde + Grundstücksnummer wird in Sekunden ein EUDR-taugliches GeoJSON-Polygon – direkt aus dem amtlichen Kataster des BEV.**
Für Sägewerke, Holzhändler, Forstbetriebe, Waldverbände, Rinderhalter und EUDR-Berater in Österreich.

*English summary below.*

***

### Das Problem

Für jede **Sorgfaltserklärung (Due Diligence Statement, DDS)** nach der **EU-Entwaldungsverordnung (EUDR, Verordnung (EU) 2023/1115)** muss die **Geolokalisierung der Erzeugungsfläche** angegeben werden – auch für **Holz und Rinder aus Österreich**:

- **Ab 30. Dezember 2026** für große und mittlere Unternehmen, **ab 30. Juni 2027** für Klein- und Kleinstunternehmen
- Flächen **über 4 ha brauchen ein Polygon**, kleinere einen Punkt
- Koordinaten in **WGS84 mit mindestens 6 Nachkommastellen**, als **GeoJSON** für das EU-Informationssystem (**TRACES**)

Waldbesitzer und Lieferanten kennen aber meist nur die **Grundstücksnummer** vom Grundbuchsauszug oder Einheitswertbescheid – keine GPS-Koordinaten. Polygone von Hand in QGIS oder Google Earth zu zeichnen kostet pro Grundstück 10–30 Minuten und ist fehleranfällig.

### Die Lösung

Sie geben **eine Liste von Grundstücksnummern** ein – der Actor liefert für jedes Grundstück:

- ✅ das **exakte Grundstückspolygon** aus der amtlichen Katastralmappe (BEV), auch bei großen Wald- und Almflächen über viele Kartenblätter
- ✅ **Fläche** amtlich und berechnet, mit **automatischer Qualitätskontrolle**
- ✅ **Nutzungsarten** laut Kataster (Wälder, Forststraßen, Wiesen …), **Waldfläche und Waldanteil**
- ✅ einen **Punkt garantiert innerhalb des Grundstücks** (für Flächen bis 4 ha)
- ✅ die Angabe, ob laut 4-ha-Regel ein **Polygon Pflicht** ist
- ✅ **eine GeoJSON-Datei mit allen Polygonen** – direkt in TRACES, QGIS, geojson.io oder Ihr EUDR-Tool laden

**Ein einzelnes Grundstück dauert wenige Sekunden, auch 100 Grundstücke nur wenige Minuten.**

### Eingabe

Eine Zeile pro Grundstück – Katastralgemeinde (KG-Nummer, 5-stellig) und Grundstücksnummer. Diese Schreibweisen werden alle erkannt:

```
72106-784
72106 89/1
KG72106 784
72106 .77
```

Ein Punkt vor der Nummer (`.77`) bedeutet **Baufläche**. Die KG-Nummer steht auf dem Grundbuchsauszug, im Einheitswertbescheid oder auf [kataster.bev.gv.at](https://kataster.bev.gv.at).

### Ausgabe

Pro Grundstück eine Zeile in der Ergebnistabelle (Export als Excel, CSV, JSON):

| Feld | Inhalt |
|---|---|
| `status` | `OK` · `PRUEFEN` (Fläche weicht mehr als 3 % ab) · `NICHT_GEFUNDEN` · `UNGUELTIGE_EINGABE` · `FEHLER` |
| `geometry` | GeoJSON Polygon/MultiPolygon, WGS84 (EPSG:4326), RFC 7946, 7 Nachkommastellen |
| `areaHa`, `officialAreaM2`, `computedAreaM2`, `areaDeviationPercent` | Fläche amtlich vs. aus dem Polygon berechnet |
| `landUse`, `forestAreaM2`, `forestSharePercent` | Nutzungsarten mit Flächen, Waldfläche, Waldanteil |
| `interiorPoint` | Punkt innerhalb des Grundstücks \[Länge, Breite] |
| `eudrPolygonRequired` | `true` bei mehr als 4 ha |
| `kgName`, `municipality`, `cadastreType` | Katastralgemeinde, Gemeinde, Grenz- oder Grundsteuerkataster |
| `message` | Hinweise, z. B. bei gemischten Grundstücken (Wald + Wiese) |
| `geojsonFeature` | fertiges GeoJSON-Feature |

Zusätzlich liegt **eine GeoJSON-FeatureCollection mit allen Polygonen** im Key-Value-Store unter `EUDR_POLYGONE`.

#### Beispiel

Eingabe `72106 89/1` (KG Ehrenthal):

```json
{
  "status": "OK",
  "kgName": "Ehrenthal",
  "officialAreaM2": 15401,
  "computedAreaM2": 15373.8,
  "areaDeviationPercent": -0.18,
  "eudrPolygonRequired": false,
  "interiorPoint": [14.3..., 46.6...],
  "geometry": { "type": "Polygon", "coordinates": [[[14.3..., 46.6...], "..."]] }
}
```

### Preis

**0,05 $ pro erfolgreich erstelltem Polygon.** Nicht gefundene oder ungültige Grundstücke kosten nichts.
Beispiel: 100 Grundstücke = 5 $. Keine Rechenkosten zusätzlich.

### Genauigkeit – getestet mit echten Grundstücken

Grundlage sind die amtlichen Vektordaten der Katastralmappe (Auflösung im Zentimeterbereich). In Tests mit Waldgrundstücken von 1,8 bis 20 ha in Kärnten und Niederösterreich lag die berechnete Fläche **meist unter 1 % neben der amtlichen Fläche**.

Weicht die Fläche um mehr als 3 % ab, meldet der Actor `PRUEFEN`. Das kommt im **Grundsteuerkataster** vor, wo die gezeichnete Grenze nicht genau zur eingetragenen Fläche passt – das Polygon entspricht dann trotzdem exakt der amtlichen Mappe.

### Häufige Fragen

**Brauche ich Programmierkenntnisse?**
Nein. Grundstücksnummern einfügen, auf „Start“ klicken, Ergebnis als Excel oder GeoJSON herunterladen.

**Kann ich das in meine Software einbinden?**
Ja, über die Apify-API, z. B. synchron:
`POST https://api.apify.com/v2/acts/mcalex0902~eudr-parcel-polygons-austria/run-sync-get-dataset-items?token=IHR_TOKEN` mit `{"parcels": ["72106-784", "72106 89/1"]}`.
Auch über Make, Zapier, n8n und andere Apify-Integrationen.

**Werden Eigentümerdaten ausgegeben?**
Nein. Nur Geometrie, Fläche und Nutzung – keine personenbezogenen Daten.

**Was ist bei gemischten Grundstücken (Wald + Wiese)?**
Der Actor zeigt den Waldanteil und weist darauf hin. Das Polygon umfasst das ganze Grundstück; welche Teilfläche als Erzeugungsfläche gilt, entscheiden Sie.

**Prüft der Actor auch, ob Entwaldung stattgefunden hat?**
Nein – er liefert die Geolokalisierung. Das Polygon kann aber direkt in Entwaldungs-Prüfwerkzeuge (z. B. auf Basis der EU-Waldkarte) übernommen werden.

### Wichtige Hinweise

- Technische Hilfe zur Erstellung der Geolokalisierung, **keine Rechts- oder Compliance-Beratung** und kein Nachweis der Entwaldungsfreiheit. Bitte die aktuellen Vorgaben zu EUDR und TRACES prüfen.
- Die GeoJSON-Eigenschaften (`ProductionPlace`, `ProducerCountry`, `Area`) folgen gängigen EUDR-Vorlagen.

### Datenquelle

Datenquelle: **BEV – Bundesamt für Eich- und Vermessungswesen**, Kataster, Lizenz **CC BY 4.0** (kataster.bev.gv.at). Dieser Actor ist kein Produkt des BEV.

***

### English summary

**Turn Austrian cadastral parcel numbers (Katastralgemeinde + Grundstücksnummer) into EUDR-ready GeoJSON polygons** for your EU Deforestation Regulation (EUDR) due diligence statement (DDS) in TRACES – timber, wood products and cattle from Austria.

- Exact parcel outline from the official Austrian cadastre (BEV), WGS84, 7 decimals, RFC 7946
- Official vs. computed area with automatic quality check, land use, forest area and share
- Interior point for plots up to 4 ha, polygon flag for plots over 4 ha
- One GeoJSON FeatureCollection with all plots, ready for TRACES, QGIS or any EUDR deforestation screening tool
- No personal/owner data
- **$0.05 per successfully created polygon** – parcels not found are free

Input example: `72106-784`, `72106 89/1`, `KG72106 784`. Works via Apify Console, API, Make, Zapier and n8n.

# Actor input Schema

## `parcels` (type: `array`):

Eine Zeile pro Grundstück: Katastralgemeindenummer und Grundstücksnummer, z. B. 72106-116/81 oder 72106 .77 (Punkt = Baufläche). One line per parcel: cadastral municipality number (KG) and parcel number.

## `includeGeoJsonFeature` (type: `boolean`):

Fügt jeder Ergebniszeile ein fertiges GeoJSON-Feature hinzu. Alle Polygone werden zusätzlich gesammelt im Key-Value-Store unter EUDR_POLYGONE gespeichert.

## `coordinatePrecision` (type: `integer`):

Die EUDR verlangt mindestens 6 Nachkommastellen. 7 entspricht ca. 1 cm.

## `maxTilesPerParcel` (type: `integer`):

Schutz vor riesigen Flächen (eine Kachel ≈ 400 × 600 m). Bei sehr großen Alm- oder Forstgrundstücken erhöhen.

## Actor input object example

```json
{
  "parcels": [
    "72106-784",
    "72106-89/1"
  ],
  "includeGeoJsonFeature": true,
  "coordinatePrecision": 7,
  "maxTilesPerParcel": 400
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `geojson` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "parcels": [
        "72106-784",
        "72106-89/1"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("mcalex0902/eudr-parcel-polygons-austria").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "parcels": [
        "72106-784",
        "72106-89/1",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("mcalex0902/eudr-parcel-polygons-austria").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "parcels": [
    "72106-784",
    "72106-89/1"
  ]
}' |
apify call mcalex0902/eudr-parcel-polygons-austria --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,mcalex0902/eudr-parcel-polygons-austria"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/TCNQ6yIdBhkqcsb54/builds/B0nQxJmB1YwFzztZE/openapi.json
