An open, structured database of 2,618 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).
Why this exists
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 online
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:
- Search — instant full-text search across brand, model, and features
- Filter — narrow by brand, camera type, night vision, resolution, or market
- Sort — click any column header to sort ascending/descending
- Detail drawer — click a row to slide open the full spec sheet (resolution, connectivity, protocols, storage, audio, pricing, source links)
- Pagination — page through all 2,618 cameras, 25 per page
- Stats bar — live counts for total cameras, brands, 4K+, WiFi, and no-subscription models
How this was built
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.
Repository layout
cctv-camera-database/
├── cameras/ # source of truth — one JSON file per camera, grouped by brand
│ ├── hikvision/ # 426 cameras
│ ├── dahua/ # 335 cameras
│ ├── acti/ # 248 cameras
│ ├── bosch/ # 153 cameras
│ ├── abus/ # 142 cameras
│ ├── reolink/ # 127 cameras
│ └── …66 more brands
├── data/ # GENERATED — do not edit by hand
│ ├── cameras.json # all 2,618 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
Quick start
npm install # installs Ajv for schema validation (no runtime deps) npm run build # validates all JSON, writes data/cameras.json + data/cameras.csv
Other scripts: npm run add (interactive add-a-camera wizard) and npm run check-sources [brand] (probes every sources URL for dead/moved links — see docs/check-sources.md; also runs weekly in CI).
Querying the data
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.
Coverage
By the numbers
| Metric | Count |
|---|---|
| Total cameras | 2,618 |
| 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 |
All 72 brands
| Brand | Cameras | Segment |
|---|---|---|
| Hikvision | 426 | Enterprise + consumer, global |
| Dahua | 335 | Enterprise + consumer, global |
| ACTi | 248 | Enterprise IP + analog, NDAA, TW/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 | 81 | Enterprise premium, global |
| Speco | 61 | Professional/commercial (NDAA), US |
| 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 |
| 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 |
| Kasa | 10 | Consumer budget, global |
| Pelco | 10 | Enterprise legacy, NA/global |
| Aqara | 9 | Smart home HomeKit, EU/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 |
| 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 |
Market coverage
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 |
Schema
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.
Contributing
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.
Roadmap
- JSON Schema validation in CI (GitHub Actions)
- Static web frontend — search, filter, compare
- Side-by-side comparison view (2–4 cameras)
- Frigate-compatible config export
- Home Assistant integration template
- API endpoint (read-only, hosted)
Community
| 🐛 Report a data error | Open a correction issue |
| ➕ Add a missing camera | Open a camera submission |
| 🔒 Report a security issue | GitHub Security Advisories |
| 💬 Code of conduct | CODE_OF_CONDUCT.md |
| 📋 Changelog | CHANGELOG.md |
Disclaimer
Specifications are compiled from manufacturer datasheets and reputable retailers and may contain errors or become outdated. Always confirm against the official datasheet (linked in each entry's sources array) before purchasing. Not affiliated with any manufacturer.
License
Data is released under CC0 1.0 (public domain). Trademarks and model names belong to their respective owners.
