--- id: ring-doorbell version: "0.9.14" license: LGPL-3.0-or-later license_treatment: copyleft maintenance: active --- # ring-doorbell — A Python library to communicate with Ring Door Bell (https://ring.com/) License: copyleft · Maintenance: active · Downloads: 84.8K/mo ## What it is and what it does ring-doorbell is a Python library that wraps Ring.com's undocumented API to let you control and monitor Ring doorbells, cameras, and chimes programmatically. It provides both async and sync interfaces (async preferred) plus a command-line tool for common tasks like listing devices, downloading videos, toggling motion detection, and listening for push notifications. The library treats each device as a Python object with methods to query state, adjust settings, and retrieve event history. The package depends on aiohttp for HTTP requests, asyncclick for CLI scaffolding, oauthlib for OAuth2 authentication, websockets for real-time event listening, and firebase-messaging for push notifications. It supports Python 3.9 through 3.12 and is actively maintained, though it explicitly relies on reverse engineering since Ring does not publish an official API. Use it for: - Build a home automation dashboard that displays live Ring camera feeds and motion events across multiple devices. - Automatically download and archive Ring video clips triggered by motion or doorbell presses for security review. - Toggle motion detection or lights on Ring cameras based on time of day or other home automation triggers. - Listen for real-time Ring doorbell events and send custom notifications to a messaging platform. - Query Ring device health, WiFi signal strength, and battery status for monitoring and alerting. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Exposes Ring.com doorbell, camera, and chime devices as Python objects, with async/sync APIs and a CLI for device control, video retrieval, and event monitoring. Yes, if you own Ring devices and want programmatic control. The library is actively maintained, has low install friction, and provides both CLI and async API interfaces. The main caveats are that it relies on reverse engineering (Ring offers no official API) and requires Python 3.9+. No known security vulnerabilities as of 2026-08-14. Copyleft licensing is standard for this use case. ## Install pip install ring-doorbell uv add ring-doorbell poetry add ring-doorbell ## Installing ring-doorbell Before you install: Low install friction with a pure-Python wheel. Actively maintained as of 2026-02-28 with recent activity; 9 runtime dependencies including aiohttp and asyncclick are all standard async/CLI libraries. License in practice: Licensed under LGPL-3.0-or-later (copyleft). You may use and modify the library freely, but any derivative work must also be licensed under LGPL-3.0-or-later and source made available. Quickstart: pip install ring_doorbell import asyncio from ring_doorbell import Auth, Ring async def main(): auth = Auth("YourApp-1.0", None, lambda token: None) ring = Ring(auth) await ring.async_update_data() devices = ring.devices() print(devices) asyncio.run(main()) Requires Python 3.9+. Ring.com authentication credentials needed; library uses reverse-engineered API (not official). Verify before relying: - Whether the reverse-engineered Ring API remains stable or if Ring.com has changed endpoints since last release. - Rate limits or account lockout risks when using the unofficial API. - Whether firebase-messaging dependency requires additional setup (e.g., credentials file). ## Package facts - License: LGPL-3.0-or-later (copyleft) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 84.8K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags ring doorbell api python, ring camera control library, home automation ring devices, ring video download python, ring device management api, home-automation, reverse-engineered-api, async-first [View on SkillFed](https://skillfed.io/packages/ring-doorbell) · [View on PyPI](https://pypi.org/project/ring-doorbell/)