Skip to content

ch-bas/cctv-camera-database

CCTV Camera Database

An open, structured database of 1,000 CCTV / IP camera models and their technical specifications, covering 49 brands across every market segment — from budget consumer WiFi cameras to enterprise PTZ domes. Each camera is a validated JSON file, aggregated into a single queryable dataset (JSON + CSV).

cameras brands license


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.


Browse online

Live Demo

CCTV Camera Database — browse, search, filter, and inspect 1,000 cameras

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 1,000 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/        # 139 cameras
│   ├── reolink/          # 121 cameras
│   ├── dahua/            # 101 cameras
│   ├── hanwha/           #  62 cameras
│   ├── axis/             #  58 cameras
│   ├── tapo/             #  56 cameras
│   └── …46 more brands
├── data/                 # GENERATED — do not edit by hand
│   ├── cameras.json      # all 1,000 cameras as one array
│   └── cameras.csv       # flattened, spreadsheet-friendly
├── schema/
│   └── camera.schema.json
├── scripts/
│   └── build.js          # aggregates + validates cameras/ → data/
├── docs/
│   └── glossary.md
├── 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

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 1,000
Brands 49
Form factors 9 (bullet, dome, turret, PTZ, dual-lens, panoramic, covert, box, fisheye)
PoE wired 636
WiFi 349
Battery / wire-free 101
4K / 8MP+ 337
4–5MP 456
1080p–2MP 203

All 49 brands

Brand Cameras Segment
Hikvision 139 Enterprise + consumer, global
Reolink 121 Prosumer, no-subscription, global
Dahua 101 Enterprise + consumer, global
Hanwha 62 Enterprise AI, Korea/global
Axis 58 Enterprise premium, global
Tapo (TP-Link) 56 Consumer budget, global
Eufy (Anker) 26 Consumer no-subscription, global
Avigilon 24 Enterprise NDAA, US/CA
Arlo 23 Consumer premium wire-free, global
Bosch 22 Enterprise, EU/global
EZVIZ (Hikvision) 21 Consumer, global
Ring (Amazon) 21 Consumer ecosystem, US/EU/AU
HiLook (Hikvision) 20 Budget installer, EU/UK/AU
Lupus Electronics 20 Privacy-first, DE/AT/CH
Google Nest 18 Consumer smart home, global
Ubiquiti UniFi 17 Prosumer/SMB, US/global
Uniview 17 Enterprise NDAA, global
Amcrest 16 Prosumer, US
ABUS 15 Consumer/SMB GDPR-first, DE/AT/CH
Annke 15 Prosumer, global
CP Plus 15 India #2 brand, IN
IMOU (Dahua) 15 Consumer, global
Vivotek 15 Enterprise AI, global
Lorex 13 Consumer NVR systems, CA/US
Synology 12 NAS-native cameras, global
Blink (Amazon) 9 Budget battery, US/UK/EU
Mobotix 9 Enterprise GDPR-first, EU
Swann 9 Consumer, AU/US/UK
Intelbras 8 #1 Latin America, BR/AR/LATAM
Wyze 8 Budget consumer, US
Yale 8 Consumer smart home, UK/EU
Netatmo 6 Privacy-first no-subscription, EU
ADT 5 Monitored security, US
Hive (British Gas) 5 Consumer smart home, UK
KBvision 5 Budget installer, VN
Somfy 5 Smart home, FR/EU
Godrej 4 Consumer, IN
Honeywell 4 Enterprise, US/IN
Qubo (Hero) 4 Consumer IoT, IN
SimpliSafe 4 DIY monitored security, US
Zebronics 4 Budget consumer, IN
Aqara 3 Smart home HomeKit, EU/global
i-PRO (Panasonic) 3 Enterprise #1 Japan, JP/global
IDIS 3 Enterprise DirectIP, KR/global
Steinel 3 Outdoor smart light/cam, DE/AT/CH
Verkada 3 Cloud-managed enterprise, US/CA
Ajax 2 Professional alarm, EU/UK
Bosch Smart Home 2 Consumer smart home, DE/AT/CH
Canon 2 Enterprise optical, JP/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
power.method string "PoE (802.3af) / DC 12V"
ip_rating string "IP67"
audio.two_way boolean true
protocols string[] ["onvif", "rtsp"]
markets string[] ["UK", "EU", "DE"]
msrp_usd / msrp_eur / msrp_gbp number 79.99
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)
  • Price history tracking (msrp over time)
  • 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.

Releases

No releases published

Packages

 
 
 

Contributors