{"id":41311,"date":"2026-06-08T16:27:45","date_gmt":"2026-06-08T14:27:45","guid":{"rendered":"https:\/\/www.graviton.at\/letterswaplibrary\/project-open-database-of-1000-ip-camera-specs-json-csv-cc0-49-brands\/"},"modified":"2026-06-08T16:27:45","modified_gmt":"2026-06-08T14:27:45","slug":"project-open-database-of-1000-ip-camera-specs-json-csv-cc0-49-brands","status":"publish","type":"post","link":"https:\/\/www.graviton.at\/letterswaplibrary\/project-open-database-of-1000-ip-camera-specs-json-csv-cc0-49-brands\/","title":{"rendered":"[Project] Open Database Of 1,000+ IP Camera Specs \u2014 JSON\/CSV, CC0, 49 Brands"},"content":{"rendered":"<p><!-- SC_OFF --><\/p>\n<div class=\"md\">\n<p>I released an open dataset of IP\/CCTV camera specifications under CC0 (public domain).<\/p>\n<p>The problem it solves: camera specs are scattered across vendor PDFs, inconsistent retailer listings, and paywalled databases. There was no single structured open source to query from.<\/p>\n<p><strong>What&#8217;s in it:<\/strong><\/p>\n<p>&#8211; 1,000 cameras across 49 brands (Hikvision, Dahua, Reolink, Axis, Hanwha, Tapo, Ubiquiti, and more)<\/p>\n<p>&#8211; One JSON file per camera under cameras\/&lt;brand&gt;\/&lt;model&gt;.json, aggregated into data\/cameras.json + CSV<\/p>\n<p>&#8211; Fields: resolution, sensor, lens, connectivity (PoE\/WiFi\/battery\/4G), night vision type and range, IP rating, ONVIF\/RTSP support, audio, storage, price, market tags<\/p>\n<p>&#8211; Schema validated on every PR via GitHub Actions<\/p>\n<p>&#8211; CC0 \u2014 no attribution required, do whatever you want with it<\/p>\n<p><strong>Contributing:<\/strong><\/p>\n<p>Non-devs can submit cameras via a GitHub issue form (no cloning needed). Developers can use an interactive CLI wizard (npm run add) that writes the JSON file without needing to know the schema.<\/p>\n<p><strong>Browse it<\/strong>: <a href=\"https:\/\/ch-bas.github.io\/cctv-camera-database\/\">https:\/\/ch-bas.github.io\/cctv-camera-database\/<\/a><\/p>\n<p><strong>Repo<\/strong>: <a href=\"https:\/\/github.com\/ch-bas\/cctv-camera-database\">https:\/\/github.com\/ch-bas\/cctv-camera-database<\/a><\/p>\n<p>Built with Claude Code \u2014 specs sourced from manufacturer datasheets, each entry cites its source URL.<\/p>\n<\/div>\n<p><!-- SC_ON -->   submitted by   <a href=\"https:\/\/www.reddit.com\/user\/CantaloupeHeavy996\"> \/u\/CantaloupeHeavy996 <\/a> <br \/> <span><a href=\"https:\/\/www.reddit.com\/r\/datasets\/comments\/1u098r4\/project_open_database_of_1000_ip_camera_specs\/\">[link]<\/a><\/span>   <span><a href=\"https:\/\/www.reddit.com\/r\/datasets\/comments\/1u098r4\/project_open_database_of_1000_ip_camera_specs\/\">[comments]<\/a><\/span><\/p><div class='watch-action'><div class='watch-position align-right'><div class='action-like'><a class='lbg-style1 like-41311 jlk' href='javascript:void(0)' data-task='like' data-post_id='41311' data-nonce='bc39e8310e' rel='nofollow'><img class='wti-pixel' src='https:\/\/www.graviton.at\/letterswaplibrary\/wp-content\/plugins\/wti-like-post\/images\/pixel.gif' title='Like' \/><span class='lc-41311 lc'>0<\/span><\/a><\/div><\/div> <div class='status-41311 status align-right'><\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>I released an open dataset of IP\/CCTV camera specifications under CC0 (public domain). The problem it solves:&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[85],"tags":[],"class_list":["post-41311","post","type-post","status-publish","format-standard","hentry","category-datatards","wpcat-85-id"],"_links":{"self":[{"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/posts\/41311","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/comments?post=41311"}],"version-history":[{"count":0,"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/posts\/41311\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/media?parent=41311"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/categories?post=41311"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/tags?post=41311"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}