🔍 ZBE API

Check vehicle routes against Low Emission Zones (ZBE/LEZ) in Spain and Portugal. Real-time polygon intersection detection with DGT environmental badge validation.

API Reference GitHub llms.txt

🚀 API Endpoints

POST/api/zbe/check-route

Check if a vehicle route intersects ZBE polygons. Accepts multiple input formats including GPS points, GeoJSON-style coordinates, and encoded polylines.

curl -X POST https://zbe.transcend.cargoffer.com/api/zbe/check-route \
  -H "x-api-key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "route": [{"lat": 40.4168, "lon": -3.7038}],
    "vehicle": {"euroClass": 5, "fuelType": "diesel"}
  }'

GET/api/zbe/polygons

List all ZBE polygons with optional filters by country, city, bounding box, and restriction status.

curl "https://zbe.transcend.cargoffer.com/api/zbe/polygons?country=ES&city=Madrid" \
  -H "x-api-key: YOUR_KEY"

GET/api/zbe/stats

Get coverage statistics: total ZBEs, breakdown by country, and last update timestamp.

curl "https://zbe.transcend.cargoffer.com/api/zbe/stats" \
  -H "x-api-key: YOUR_KEY"

🇪🇸 Coverage

62 Zonas de Bajas Emisiones across Spain and Portugal with verified GeoJSON polygons.

CountryZBEsKey Cities
Spain46+Madrid, Barcelona, Valencia, Sevilla, Bilbao, Zaragoza, Málaga, Palma, Granada, Murcia, Valladolid, A Coruña, Gijón, Vigo, Santander, Pamplona, San Sebastián, Córdoba, Almería, Huelva, Cádiz, Jaén, León, Salamanca, Toledo, Cuenca, Guadalajara, Ávila, Zamora, Palencia, Lugo, Ourense, Pontevedra, Badajoz, Cáceres, Melilla, Ceuta
Portugal16+Lisboa, Porto, Braga, Coimbra, Aveiro, Faro, Funchal, Setúbal, Leiria, Évora

🏷️ DGT Environmental Badges

BadgeVehiclesEuro Required
0 (Blue)Electric, hydrogen, range extender (40+ km EV)Euro 6+
ECOHybrids, plug-in hybrids, LPG, CNGEuro 4+ / 6+ diesel
C (Green)Modern combustion vehiclesEuro 4+ petrol / 6+ diesel
B (Yellow)Older combustion vehiclesEuro 3+ petrol / 4+ diesel

🔧 SDK & MCP

JavaScript SDK

npm install @cargoffer/zbe-sdk
import { ZbeClient } from '@cargoffer/zbe-sdk';
const client = new ZbeClient({ apiKey: 'YOUR_KEY' });
const result = await client.checkRoute({
  route: [{lat: 40.4168, lon: -3.7038}],
  vehicle: { euroClass: 5, fuelType: 'diesel' }
});

MCP Server

Connect to Claude Desktop, Cline, Cursor, or any MCP-compatible agent.

npx cargoffer-zbe-mcp

Or add to your MCP config:

{
  "mcpServers": {
    "zbe": {
      "command": "npx",
      "args": ["cargoffer-zbe-mcp"]
    }
  }
}

🔑 API Key required: Get your free key at zbe.cargoffer.com/api-key (or transcend.cargoffer.com).