--- id: pyicloud version: "2.6.5" license: MIT license_treatment: permissive maintenance: active --- # pyicloud — PyiCloud is a module which allows pythonistas to interact with iCloud webservices. License: permissive · Maintenance: active · Downloads: 105.3K/mo ## What it is and what it does PyiCloud is a Python client library for Apple's iCloud web services. It authenticates with an Apple ID and provides programmatic access to iCloud features: finding devices, managing calendars and contacts, syncing photos, accessing notes and reminders, and inspecting account details. The library wraps iCloud's web API and handles authentication, including two-factor authentication and security-key challenges via FIDO2. The package includes both a Python API (instantiate PyiCloudService with credentials) and a command-line tool (icloud subcommands for auth, devices, photos, calendar, etc.). Passwords can be stored in the system keyring to avoid repeated prompts. The library depends on requests for HTTP, cryptography and fido2 for security, keyring for credential storage, and pydantic for data validation. Use it for: - Locate or retrieve information about Apple devices registered to an account programmatically. - Sync iCloud photos to a local directory on a schedule or on-demand. - Query or manipulate iCloud calendars, contacts, notes, and reminders from Python scripts. - Build automation workflows that interact with iCloud services without manual web login. - Use the icloud CLI to manage iCloud account operations from shell scripts or cron jobs. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. PyiCloud provides Python access to iCloud web services, including device location, calendars, contacts, photos, and account management, with both a library API and command-line interface. Yes, if you need programmatic access to iCloud services. The library is actively maintained, has low install friction, carries an MIT license, and supports current Python versions (3.10–3.14). No known vulnerabilities. Caveat: Apple's iCloud API is not officially documented, so compatibility may shift; review the terms of use before deploying in production. ## Install pip install pyicloud uv add pyicloud poetry add pyicloud ## Installing pyicloud Before you install: Low install friction with a pure-Python wheel and stable maintenance: last commit 2026-08-10, active status, and 11 runtime dependencies that are all widely-used libraries (requests, cryptography, keyring, protobuf, pydantic). Requires Python 3.10 or later. License in practice: MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute this package freely provided you retain the license notice. Quickstart: pip install pyicloud from pyicloud import PyiCloudService api = PyiCloudService('user@apple.com', 'password') devices = api.devices Requires Python 3.10 or later; Apple ID credentials and may require two-factor authentication setup. Verify before relying: - Whether two-factor authentication is required for all accounts or only some. - Rate limits or throttling imposed by Apple's iCloud API. - Stability and compatibility of the iCloud API endpoints being called. ## Package facts - License: MIT (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 105.3K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags icloud api python, find my iphone programmatic, icloud contacts calendar access, apple id web services client, icloud photos sync download, icloud device location tracking, icloud cli command line, icloud-client, apple-id-auth, cli-tool [View on SkillFed](https://skillfed.io/packages/pyicloud) · [View on PyPI](https://pypi.org/project/pyicloud/)