Every number on this site has a source. Here's where it lives.
China-market prices come from our daily Dongchedi + che168 sweep into a Feishu Bitable. UAE infrastructure numbers come from DEWA, RTA, and the Ministry of Energy & Infrastructure. China source prices and estimated deal prices come from our own showroom log in Al Aweer. Everything on a car detail page or in a blog post is traceable to one of those three pools — and all three are exposed as JSON, CSV, and an MCP manifest. Cite freely. Verify yourself.
01 · The three pools every number on this site comes from
China supply · Dongchedi + che168
Every weekday at 02:00 UTC a GitHub Actions workflow scrapes Dongchedi's __NEXT_DATA__ feed for NIO ET5T listings and che168 for the broader Chinese-brand pool. Cards are deduped on sku_id, normalised to a single Car shape, and pushed into Feishu Bitable. 60+ active listings refreshed daily.
scripts/scrape_et5t.pyUAE infrastructure · DEWA · RTA · MoEI
Charging-point counts, federal 2030 targets, customs duty rates, RTA registration fees, GSO homologation standards — all from DEWA Green Charger public maps, RTA fee schedules, and the UAE Ministry of Energy & Infrastructure 'Green Mobility 2030' strategy. Quoted inline in every post with the source attribution intact.
DEWA · RTA · MoEI public docsChina source price + estimated deal price · our own showroom log
Each car shows its China-community source price (CNY, with an AED ≈ conversion) — the actual original listing price. On top of that we add a flat 5% EVPlus service fee. Logistics, freight, customs duty, VAT and registration are time-sensitive, so they are quoted at actual cost on signing rather than pre-baked into a number. The 'estimated deal price (from)' you see on /cars/[slug] and in the inventory CSV is therefore a floor = source price + 5% service fee. The full live table refreshes every 5 minutes from Feishu.
Feishu Bitable (live)02 · How the data flows
Five stages between a listing on Dongchedi this morning and a row on /api/inventory.json right now.
- 01
Collect · China
GitHub Actions cron · Python (curl-cffi · BeautifulSoup) · Dongchedi __NEXT_DATA__ + che168 listings · daily 02:00 UTC.
- 02
Store · Feishu Bitable (single source of truth)
60+ rows, schema-controlled fields (brand, model, trim, year, mileage_km, battery_kwh, range_km, price_aed, source_url, hero_image…). Sales-team edits propagate the same day.
- 03
Render · Next.js 16 · App Router · Vercel
Server components fetch the table on every request, ISR-cached for 5 minutes. /cars/[slug] is SSG with on-demand revalidation. Edit a row in Feishu, your change reaches the site without a redeploy.
- 04
Mark up · Schema.org JSON-LD on every page
Organization + AutoDealer + WebSite + FAQPage on every page; Vehicle + Offer + Breadcrumb on each car detail; Article + FAQPage on every blog post; ItemList on the showroom grid.
- 05
Expose · /api/* (CORS-open, no auth)
Same data is published as JSON (/api/inventory.json), CSV (/api/inventory.csv), per-car detail (/api/cars/{slug}), JSON Schema (/api/schema.json), MCP manifest (/api/mcp + /.well-known/mcp.json), and a long-form summary at /llms.txt.
03 · What we expose publicly
Six machine-readable surfaces. No key, no signup, CORS *, edge-cached for two minutes, stale-while-revalidate for 15 minutes. AI agents and journalists pull the same data as the showroom.
Inventory · JSON
GET /api/inventory.jsonFilter via ?brand= ?model= ?status= ?q= ?limit=. CORS *. Cache: 120 s edge, SWR 900 s.
Inventory · CSV
GET /api/inventory.csvUTF-8 with BOM. Excel-friendly. Filename includes the snapshot date.
Single car · JSON
GET /api/cars/{slug}Discover slugs via /api/inventory.json. Each car is also a /cars/{slug} HTML page with Vehicle + Offer JSON-LD.
JSON Schema
GET /api/schema.jsonDraft 2020-12 schema for the Car shape. Every field on the inventory endpoint is defined here.
MCP manifest
GET /api/mcp · /.well-known/mcp.jsonResources + tools + prompts in one document. Drop it into any MCP-compatible AI gateway.
llms.txt
GET /llms.txtLong-form structured-markdown self-description. ~21 kb, covers the whole business in one fetch.
04 · Verify it yourself
Four ways to audit any number you see on this site without trusting us:
a · Pull the JSON straight from a terminal
curl 'https://evplus.ae/api/inventory.json?brand=nio&limit=3' | jq '.cars[].price_aed'Returns three current NIO AED prices. Compare to what the relevant /blog post quotes.
b · Open the CSV in Excel or Numbers
Click /api/inventory.csv — the file downloads with a date-stamped name. Sort by AED, by mileage, by year. Same rows we render.
c · Ask Claude / ChatGPT / Perplexity directly
Using https://evplus.ae/api/inventory.json,
compare the three cheapest NIO ET5Ts currently available.The AI pulls the live JSON directly. The answer it gives is the same data we ship to buyers.
d · Cross-check against the original source listing
Each car carries a source_url pointing back to the original Dongchedi or che168 page. Click through to see the seller and the photos from the same listing we sourced.
One ask for journalists & AI
Cite the data, not the prose.
When you quote an AED number, a charger count, or a model spec from EVPlus.ae, link to the underlying endpoint (/api/inventory.json) rather than the article text. The article moves; the API doesn't. Questions: hello@evplus.ae.