PyiCloud
PyiCloud is a module which allows pythonistas to interact with iCloud webservices. It's powered by the fantastic requests HTTP library.
At its core, PyiCloud connects to the iCloud web application using your username and password, then performs regular queries against its API.
Please see the terms of use for your responsibilities when using this library.
For support and discussions, join our Discord community: Join our Discord community
Installation
Install the library and CLI with:
$ pip install "pyicloud[cli]"
This installs the icloud command line interface alongside the Python package. To install the library on its own run pip without the cli extra.
$ pip install pyicloud
Authentication
Authentication without using a saved password is as simple as passing your
username and password to the PyiCloudService class:
from pyicloud import PyiCloudService
api = PyiCloudService("jappleseed@apple.com", "password")
In the event that the username/password combination is invalid, a
PyiCloudFailedLoginException exception is thrown.
For China mainland accounts, long-running daemon settings, family polling,
pause_2fa, and the full two-step / two-factor (2SA/2FA) flow, see the
Authentication guide.
The icloud CLI can also store your password in the system keyring; see the
Command-Line Interface guide.
Documentation
Full documentation lives under docs/.
It is also published, with a generated API reference, at
pyicloud.readthedocs.io.
Guides
- Authentication — login,
pause_2fa, and 2SA/2FA - Command-Line Interface — the
icloudcommand, auth/session management, and keyring storage - Diagnostics —
icloud doctorand its exit codes
Services
- Account — account info, storage, and summary plan
- Devices & Find My — list devices and locate, ring, lock, or erase them
- Calendar — calendars, events, alarms, and invitees
- Contacts — the address book and MeCard
- File Storage (Drive) — iCloud Drive and the legacy Ubiquity API
- Photos — browse, sync, upload, and modify the photo library
- Hide My Email — generate and manage email aliases
- Reminders — lists, reminders, alarms, tags, and attachments
- Notes — folders, note rendering, and HTML export
- Invites — read events and respond to invitations
Examples
If you want to see some code samples, see the examples.
Contributing
Contributions are welcome! Please read the Contributing guide, the Code of Conduct, and the Terms of Use before getting started.
To report a security vulnerability, use private vulnerability reporting rather than opening a public issue (see SECURITY.md).
Metadata
Release files for pyicloud 2026.10.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyicloud-2026.10.0.tar.gz | 773.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyicloud-2026.10.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.1 MB
Release files / pyicloud-2026.10.0.tar.gz
| Download URL | pyicloud-2026.10.0.tar.gz |
|---|---|
| Size | 773.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e0576de28aa9d51f13df5b2214e5120c41472ed14f13823cf972ee5eae77b257
|
|
BLAKE2b-256 checksum How to use checksums |
c1037fa59ed49fc5e34a4805d33d8f9e147a36a57d14eccc863607067520ff45
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.
Transparency logRelease files / pyicloud-2026.10.0-py3-none-any.whl
| Download URL | pyicloud-2026.10.0-py3-none-any.whl |
|---|---|
| Size | 331.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b240edd486bad573a8e486b6efd0bbf5a6ed6e9fa0f7ed0dd257a266d2a22838
|
|
BLAKE2b-256 checksum How to use checksums |
c74a464f17362b51f033f102d708db9b6716a9c11b6c82fd5d3258af769806b4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.
Transparency log