Modern, async-ready Python client for Zoho APIs (Books, Inventory, and more)
Project description
ZohoPy
Modern, async-ready Python client for Zoho APIs — complete Zoho Books v3 coverage.
Highlights
- 716 API methods (358 sync + 358 async) across 57 resource types) across 43 resource types
- CLI —
zohopycommand with--jsonon every command - Multi-currency + exchange rates on all transactions
- Landed cost support on bills
- 10+ typed exceptions mapped from Zoho error codes
- Structured logging (JSON/console via structlog)
- Docker ready — Dockerfile + docker-compose
- OAuth setup wizard —
python -m zohopyorzohopy setup
Install
pip install zohopy
Quick Start
# Setup (interactive — generates .env)
zohopy setup
# CLI
zohopy contacts list --json
zohopy invoices create '{"customer_id":"...","line_items":[{"item_id":"...","quantity":1}]}' --json
zohopy raw get /books/v3/items --json
# Python SDK
from zohopy import ZohoConfig, SyncZohoClient
from zohopy.products.books import ZohoBooks
with SyncZohoClient(ZohoConfig()) as client:
books = ZohoBooks(client)
books.contacts.list()
books.invoices.create({"customer_id": "...", "line_items": [...]})
books.invoices.mark_sent("invoice_id")
Products
| Product | Status | Coverage |
|---|---|---|
| Zoho Books | ✅ v3 | 57 resources, 358 methods |
| Zoho Inventory | 🔜 Coming soon | — |
| Zoho CRM | 🔜 Coming soon | — |
| Zoho Payroll | 🔜 Planned | — |
| Zoho People | 🔜 Planned | — |
Documentation
| Document | Description |
|---|---|
| AGENT.md | Agent/LLM reference — CLI commands, SDK quick ref, error codes |
| docs/api.md | Full API reference — all 43 resources and their methods |
| docs/errors.md | Error handling guide — exception hierarchy + Zoho error codes |
| docs/setup.md | Setup guide — OAuth flows, .env, Docker, programmatic config |
| CHANGELOG.md | Release history |
Contributing
git clone https://github.com/talas9/zohopy.git && cd zohopy
pip install -e ".[dev]"
pytest && ruff check src/ && mypy src/
Branch strategy: dev → PR → main. Tags trigger PyPI release.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zohopy-0.2.0.tar.gz.
File metadata
- Download URL: zohopy-0.2.0.tar.gz
- Upload date:
- Size: 56.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cce10abc43ac614328caaf5327495b5a244c2bb61ee6dd13d80bcc2cf4e49d23
|
|
| MD5 |
7f6526774d96554b9194878dd57087a9
|
|
| BLAKE2b-256 |
ecde5820023671784f2e2614162a394d4c5331acee730eabbdc47169c7d6c2a0
|
Provenance
The following attestation bundles were made for zohopy-0.2.0.tar.gz:
Publisher:
release.yml on talas9/zohopy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
zohopy-0.2.0.tar.gz -
Subject digest:
cce10abc43ac614328caaf5327495b5a244c2bb61ee6dd13d80bcc2cf4e49d23 - Sigstore transparency entry: 1233093491
- Sigstore integration time:
-
Permalink:
talas9/zohopy@a4f7932a8a7e52a03799905a4fc7780d969a1dbb -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/talas9
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4f7932a8a7e52a03799905a4fc7780d969a1dbb -
Trigger Event:
push
-
Statement type:
File details
Details for the file zohopy-0.2.0-py3-none-any.whl.
File metadata
- Download URL: zohopy-0.2.0-py3-none-any.whl
- Upload date:
- Size: 68.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40f6a206ecbd00c8fd4f6c9929568fe4e5de476b7e1a13ec4a6af5fc3f1a9f48
|
|
| MD5 |
c92836eb9cbed9463ee445b638af7470
|
|
| BLAKE2b-256 |
4fedc934cae0204343dce2f7938838c56e9ff755358d9ca732caf3ffe677943b
|
Provenance
The following attestation bundles were made for zohopy-0.2.0-py3-none-any.whl:
Publisher:
release.yml on talas9/zohopy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
zohopy-0.2.0-py3-none-any.whl -
Subject digest:
40f6a206ecbd00c8fd4f6c9929568fe4e5de476b7e1a13ec4a6af5fc3f1a9f48 - Sigstore transparency entry: 1233093538
- Sigstore integration time:
-
Permalink:
talas9/zohopy@a4f7932a8a7e52a03799905a4fc7780d969a1dbb -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/talas9
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4f7932a8a7e52a03799905a4fc7780d969a1dbb -
Trigger Event:
push
-
Statement type: