https://github.com/jezza34000/py-petkit-api
Petkit client API library
https://github.com/jezza34000/py-petkit-api
api client-api petkit smartdevices
Last synced: 10 months ago
JSON representation
Petkit client API library
- Host: GitHub
- URL: https://github.com/jezza34000/py-petkit-api
- Owner: Jezza34000
- License: mit
- Created: 2024-12-08T20:24:55.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-08T15:27:18.000Z (10 months ago)
- Last Synced: 2025-04-15T06:36:24.406Z (10 months ago)
- Topics: api, client-api, petkit, smartdevices
- Language: Python
- Homepage:
- Size: 295 KB
- Stars: 6
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Petkit API Client
---
[](https://github.com/Jezza34000/py-petkit-api/)
[][python version] [](https://github.com/Jezza34000/py-petkit-api/actions)
[][pypi_] [](https://pepy.tech/projects/pypetkitapi)
---
[](https://sonarcloud.io/summary/new_code?id=Jezza34000_py-petkit-api) [](https://sonarcloud.io/summary/new_code?id=Jezza34000_py-petkit-api) [](https://sonarcloud.io/summary/new_code?id=Jezza34000_py-petkit-api)
[](https://sonarcloud.io/summary/new_code?id=Jezza34000_py-petkit-api)
[](https://sonarcloud.io/summary/new_code?id=Jezza34000_py-petkit-api)
[](https://sonarcloud.io/summary/new_code?id=Jezza34000_py-petkit-api)
[](https://sonarcloud.io/summary/new_code?id=Jezza34000_py-petkit-api)
[](https://sonarcloud.io/summary/new_code?id=Jezza34000_py-petkit-api)
[](https://sonarcloud.io/summary/new_code?id=Jezza34000_py-petkit-api)
[](https://sonarcloud.io/summary/new_code?id=Jezza34000_py-petkit-api)
[][pre-commit]
[][black]
[](https://mypy.readthedocs.io/en/stable/)
[](https://github.com/astral-sh/ruff)
---
[pypi_]: https://pypi.org/project/pypetkitapi/
[python version]: https://pypi.org/project/pypetkitapi
[pre-commit]: https://github.com/pre-commit/pre-commit
[black]: https://github.com/psf/black
### Enjoying this library?
[![Sponsor Jezza34000][github-sponsor-shield]][github-sponsor] [![Static Badge][buymeacoffee-shield]][buymeacoffee]
---
## Overview
PetKit Client is a Python library for interacting with the PetKit API. It allows you to manage your PetKit devices, retrieve account data, and control devices through the API.
## Features
- Login and session management
- Fetch account and device data
- Control PetKit devices (Feeder, Litter Box, Water Fountain, Purifiers)
- Fetch images & videos produced by devices
> Pictures are available **with or without** Care+ subscription, Videos are only available **with** Care+ subscription
## Installation
Install the library using pip:
```bash
pip install pypetkitapi
```
## Usage Example:
Here is a simple example of how to use the library to interact with the PetKit API \
This example is not an exhaustive list of all the features available in the library.
```python
import asyncio
import logging
import aiohttp
from pypetkitapi.client import PetKitClient
from pypetkitapi.command import DeviceCommand, FeederCommand, LBCommand, DeviceAction, LitterCommand
logging.basicConfig(level=logging.DEBUG)
async def main():
async with aiohttp.ClientSession() as session:
client = PetKitClient(
username="username", # Your PetKit account username or id
password="password", # Your PetKit account password
region="FR", # Your region or country code (e.g. FR, US,CN etc.)
timezone="Europe/Paris", # Your timezone(e.g. "Asia/Shanghai")
session=session,
)
await client.get_devices_data()
# Lists all devices and pet from account
for key, value in client.petkit_entities.items():
print(f"{key}: {type(value).__name__} - {value.name}")
# Select a device
device_id = key
# Read devices or pet information
print(client.petkit_entities[device_id])
# Send command to the devices
### Example 1 : Turn on the indicator light
### Device_ID, Command, Payload
await client.send_api_request(device_id, DeviceCommand.UPDATE_SETTING, {"lightMode": 1})
### Example 2 : Feed the pet
### Device_ID, Command, Payload
# simple hopper :
await client.send_api_request(device_id, FeederCommand.MANUAL_FEED, {"amount": 1})
# dual hopper :
await client.send_api_request(device_id, FeederCommand.MANUAL_FEED, {"amount1": 2})
# or
await client.send_api_request(device_id, FeederCommand.MANUAL_FEED, {"amount2": 2})
### Example 3 : Start the cleaning process
### Device_ID, Command, Payload
await client.send_api_request(device_id, LitterCommand.CONTROL_DEVICE, {DeviceAction.START: LBCommand.CLEANING})
if __name__ == "__main__":
asyncio.run(main())
```
## More example usage
Check at the usage in the Home Assistant integration : [here](https://github.com/Jezza34000/homeassistant_petkit)
## Help and Support
Developers? Want to help? Join us on our Discord channel dedicated to developers and contributors.
[![Discord][discord-shield]][discord]
## Contributing
Contributions are welcome!\
Please open an issue or submit a pull request.
## License
This project is licensed under the MIT License. See the LICENSE file for details.
---
[homeassistant_petkit]: https://github.com/Jezza34000/py-petkit-api
[commits-shield]: https://img.shields.io/github/commit-activity/y/Jezza34000/py-petkit-api.svg?style=flat
[commits]: https://github.com/Jezza34000/py-petkit-api/commits/main
[discord]: https://discord.gg/Va8DrmtweP
[discord-shield]: https://img.shields.io/discord/1318098700379361362.svg?style=for-the-badge&label=Discord&logo=discord&color=5865F2
[forum-shield]: https://img.shields.io/badge/community-forum-brightgreen.svg?style=for-the-badge&label=Home%20Assistant%20Community&logo=homeassistant&color=18bcf2
[forum]: https://community.home-assistant.io/t/petkit-integration/834431
[license-shield]: https://img.shields.io/github/license/Jezza34000/py-petkit-api.svg??style=flat
[maintenance-shield]: https://img.shields.io/badge/maintainer-Jezza34000-blue.svg?style=flat
[releases-shield]: https://img.shields.io/github/release/Jezza34000/py-petkit-api.svg?style=for-the-badge&color=41BDF5
[releases]: https://github.com/Jezza34000/py-petkit-api/releases
[github-sponsor-shield]: https://img.shields.io/badge/sponsor-Jezza34000-blue.svg?style=for-the-badge&logo=githubsponsors&color=EA4AAA
[github-sponsor]: https://github.com/sponsors/Jezza34000
[buymeacoffee-shield]: https://img.shields.io/badge/Donate-buy_me_a_coffee-yellow.svg?style=for-the-badge&logo=buy-me-a-coffee
[buymeacoffee]: https://www.buymeacoffee.com/jezza