Grounded in available product and source data
An open, structured database of 2,330 CCTV / IP camera models and their technical specifications, covering 72 brands across every market segment — from budget consumer WiFi cameras to enterprise PTZ domes and thermal imaging systems. Each camera is a validated JSON file, aggregated into a single queryable dataset (JSON + CSV).
Camera spec sheets are scattered across vendor PDFs, retailer pages, and paywalled databases (IPVM, etc.) in inconsistent formats. This repo normalises them into one machine-readable structure so they can be compared, filtered, and reused.
The dataset is CC0 and always will be — free to use, copy, and redistribute with no restrictions. The website is just a convenient viewer; the data here is the source of truth.
Browse the database → cctv-database.com
Prefer to self-host or browse offline? A standalone demo (just demo.html + cameras.json, no build step) is included — serve the docs/ folder locally with any static server, e.g. python3 -m http.server inside docs/, then open it.
What you see above:
The database was assembled with the help of Claude Code.
Specs are sourced from manufacturer datasheets and reputable retailer listings —
each entry includes a sources array with URLs. As with any compiled dataset,
errors are possible; always verify against the official datasheet before purchasing
or deploying.
The demo video was produced with hve-spielberg, a Claude Code skill for AI-powered video production built on Remotion.
cctv-camera-database/
├── cameras/ # source of truth — one JSON file per camera, grouped by brand
│ ├── hikvision/ # 403 cameras
│ ├── acti/ # 248 cameras
│ ├── dahua/ # 189 cameras
│ ├── bosch/ # 153 cameras
│ ├── abus/ # 142 cameras
│ ├── reolink/ # 127 cameras
│ └── …66 more brands
├── data/ # GENERATED — do not edit by hand
│ ├── cameras.json # all 2,394 cameras as one array
│ └── cameras.csv # flattened, spreadsheet-friendly
├── schema/
│ └── camera.schema.json
├── scripts/
│ └── build.js # aggregates + validates cameras/ → data/
├── docs/
│ ├── glossary.md # field reference (source — edit when adding fields)
│ ├── cameras.json # GENERATED — aggregate copy for the demo/Pages API
│ └── cameras/ # GENERATED — one browsable .md spec sheet per camera
├── CONTRIBUTING.md
└── LICENSE
npm install # installs Ajv for schema validation (no runtime deps) npm run build # validates all JSON, writes data/cameras.json + data/cameras.csv
const cameras = require('./data/cameras.json'); // All 4K PoE outdoor cameras
const poe4k = cameras.filter(c => c.connectivity?.includes('poe') && c.resolution.megapixels >= 8
); // All cameras with color night vision
const colorNight = cameras.filter(c => c.night_vision?.type === 'color'
); // All cameras for the UK market
const uk = cameras.filter(c => c.markets?.includes('UK')
); // All cameras with no subscription fee
const noSub = cameras.filter(c => c.features?.some(f => f.toLowerCase().includes('no subscription'))
);
Or open data/cameras.csv in any spreadsheet for a quick browse.
| Metric | Count |
|---|---|
| Total cameras | 2,394 |
| Brands | 72 |
| Form factors | 11 (bullet, dome, turret, PTZ, dual-lens, panoramic, covert, box, fisheye, floodlight, doorbell) |
| PoE wired | 1,669 |
| WiFi | 544 |
| Battery / wire-free | 190 |
| 4K / 8MP+ | 639 |
| 4–5MP | 885 |
| 1080p–2MP | 588 |
| With integration configs (Frigate / Home Assistant) | 1,912 |
| Brand | Cameras | Segment |
|---|---|---|
| Hikvision | 403 | Enterprise + consumer, global |
| ACTi | 248 | Enterprise IP + analog, NDAA, TW/global |
| Dahua | 189 | Enterprise + consumer, global |
| Bosch | 153 | Enterprise + thermal, EU/global |
| ABUS | 142 | Consumer + professional, GDPR-first, DE/AT/CH |
| Reolink | 127 | Prosumer, no-subscription, global |
| EZVIZ (Hikvision) | 87 | Consumer, global |
| Axis | 72 | Enterprise premium, global |
| Hi-Focus | 60 | Made-in-India, BIS certified, IN |
| Kedacom | 58 | Enterprise, CN/global |
| IMOU (Dahua) | 56 | Consumer + prosumer, global |
| Tapo (TP-Link) | 54 | Consumer budget, global |
| Eufy (Anker) | 46 | Consumer no-subscription, global |
| Hanwha | 45 | Enterprise AI, Korea/global |
| Annke | 43 | Prosumer, global |
| Lorex | 40 | Consumer NVR systems, CA/US |
| Speco | 31 | Professional/commercial (NDAA), US |
| CP Plus | 26 | India #2 brand, IN |
| Xiaomi | 26 | Consumer smart home, CN/global |
| Arlo | 25 | Consumer premium wire-free, global |
| Ubiquiti UniFi | 25 | Prosumer/SMB, US/global |
| VIGI (TP-Link) | 25 | Business/SMB PoE, global |
| HiLook (Hikvision) | 23 | Budget installer, EU/UK/AU |
| Ajax | 22 | Professional alarm + wired PoE cameras, EU/UK |
| Foscam | 22 | Consumer WiFi/PoE, global |
| Ring (Amazon) | 21 | Consumer ecosystem, global |
| Avigilon | 18 | Enterprise NDAA, global |
| SV3C | 17 | Budget consumer, CN/US |
| Amcrest | 16 | Prosumer, global |
| Wyze | 14 | Budget consumer, US |
| Blink (Amazon) | 12 | Budget battery, US/UK/EU |
| GeoVision | 12 | Enterprise, TW/Asia/global |
| Google Nest | 12 | Consumer smart home, global |
| Instar | 12 | Privacy-first prosumer, DE/EU |
| Milesight | 12 | Prosumer/Enterprise IoT, global |
| Swann | 12 | Consumer, AU/US/UK |
| Tiandy | 11 | Enterprise + prosumer, CN/ME/Africa |
| Vivotek | 11 | Enterprise AI, global |
| Costar | 10 | Enterprise (Arecont successor), US |
| FLIR (Teledyne) | 10 | Thermal imaging, NA/EU |
| Pelco | 10 | Enterprise legacy, NA/global |
| Lupus Electronics | 9 | Privacy-first, DE/AT/CH |
| TVT | 9 | Prosumer budget, CN/IN/SE Asia |
| Intelbras | 8 | #1 Latin America, BR/AR/LATAM |
| Luma | 8 | Custom-install (SnapAV), US |
| Mobotix | 8 | Enterprise GDPR-first, EU |
| LTS | 7 | Prosumer/installer, US |
| Uniview | 7 | Enterprise NDAA, global |
| Yale | 7 | Consumer smart home, UK/EU |
| LaView | 6 | Consumer WiFi/solar/4G, US |
| Uniarch (Uniview) | 6 | Budget NDAA sub-brand, global |
| Camius | 4 | Consumer direct, US |
| Canon | 4 | Enterprise optical, JP/global |
| Godrej | 4 | Consumer, IN |
| Longse | 4 | OEM/budget, CN/global |
| March Networks | 4 | Enterprise retail/banking, NA |
| Netatmo | 4 | Privacy-first no-subscription, EU |
| Qubo | 4 | Consumer, IN |
| SimpliSafe | 4 | DIY monitored security, US |
| Synology | 4 | NAS-native cameras, global |
| ADT | 3 | Monitored security, US |
| i-PRO | 3 | Enterprise AI (ex-Panasonic), JP/global |
| Somfy | 3 | Smart home, FR/EU |
| Verkada | 3 | Cloud-managed enterprise, US/CA |
| Aqara | 2 | Smart home HomeKit, EU/global |
| Hive | 2 | Smart home, UK |
| Honeywell | 2 | Enterprise, US/IN |
| NetCamCenter | 2 | System integrator (Bosch OEM), DE |
| Steinel | 2 | Outdoor smart light/cam, DE/AT/CH |
| Bosch Smart Home | 1 | Consumer smart home, DE/AT/CH |
| IDIS | 1 | Enterprise DirectIP, KR/global |
| Kasa | 1 | Consumer budget, global |
Cameras are tagged with markets[] where relevant:
| Market | Tagged cameras | Key brands |
|---|---|---|
| EU | 88 | ABUS, Netatmo, Aqara, Somfy, Axis |
| DE | 58 | ABUS, Lupus, Steinel, Bosch Smart Home |
| AT / CH | 40 each | ABUS, Lupus, Aqara, Netatmo |
| UK | 39 | Yale, Hive, Ajax, Ring, HiLook |
| global | 37 | Hikvision, Axis, Hanwha, i-PRO |
| IN | 32 | CP Plus, Qubo, Godrej, Zebronics |
| US | 28 | Wyze, Blink, Verkada, SimpliSafe, ADT |
| FR | 25 | Somfy, Netatmo, EZVIZ |
| AE / SA / MENA | 22 each | Hikvision, Dahua, Tapo, EZVIZ |
| VN | 9 | KBvision, Hikvision, Dahua, EZVIZ |
| JP | 6 | i-PRO, Canon, Tapo |
| KR | 5 | Hanwha, IDIS |
| AU | 13 | Swann, Reolink, Ring, Arlo, Eufy |
| CA | 13 | Lorex, Avigilon, Ring, Reolink |
| AR / BR / CL / LATAM | 10 each | Intelbras, Hikvision, Dahua, EZVIZ |
Each camera JSON follows schema/camera.schema.json. Required fields:
{ "id": "reolink-rlc-823a", "brand": "Reolink", "model": "RLC-823A", "type": "bullet", "resolution": { "megapixels": 8, "label": "4K UHD" }
}
Common optional fields:
| Field | Type | Example |
|---|---|---|
connectivity |
string[] |
["poe", "wifi", "ethernet"] |
night_vision.type |
string |
"color" / "ir" / "none" |
night_vision.range_m |
number |
30 |
night_vision.min_lux_color |
number |
0.01 |
power.method |
string |
"PoE (802.3af) / DC 12V" |
ip_rating |
string |
"IP67" |
ik_rating |
string |
"IK10" |
audio.two_way |
boolean |
true |
protocols |
string[] |
["onvif", "rtsp"] |
markets |
string[] |
["UK", "EU", "DE"] |
features |
string[] |
["no subscription", "IP67"] |
sources |
string[] |
datasheet / retailer URLs |
See CONTRIBUTING.md for the full field reference and naming conventions.
Three paths — pick the one that fits you:
| Path | Best for | |
|---|---|---|
| 🌐 | Open a GitHub issue | Anyone — fill a web form, no cloning needed |
| 🧙 | npm run add — interactive CLI wizard |
Regular contributors — guided questions, writes JSON for you |
| 🛠 | Edit JSON directly | Developers — see CONTRIBUTING.md |
The wizard flow:
git clone https://github.com/YOUR_USERNAME/cctv-camera-database.git cd cctv-camera-database && npm install npm run add # asks questions, writes the JSON file npm run build # validates everything
See CONTRIBUTING.md for the full field reference, naming conventions, and what makes a good entry.
