Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Zoho API integration for Python

Project Description


mfabrik.zoho package provides Python classes for making easy Zoho API calls. They allow you to integrate Zoho web application data into your Python software.


  • Creating Zoho API session a.k.a ticket
  • Extendable API using a base class architecture
  • Logging all incoming and outgoing API traffic with Zoho
  • Support Python 2.4, 2.5 and 2.6 (2.4 needs additional lxml and simplejson libraries installed)
  • Compatible with non-ASCII or Unicode letters
  • Unit tests to guarantee the high quality of the code

mfabrik.zoho is intended to use for machine-to-machine communication and will work with any web framework, like Plone, Django, Google App Engine.

To communicate with Zoho you need username, password and API KEY. For further information, see Setup > Admin > Developer key in your Zoho application.

API support

Currently out of box support includes:

  • CRM apis: insert_records, get_records, delete_lead

You can easily wrap Zoho API calls you need using this library. Please contribute patches to the package.


To install mfabrik.zoho to your system-wide Python do as below.

Example (UNIX):

sudo easy_install mfabrik.zoho

Example (UNIX, Python 2.4):

sudo easy_install mfabrik.zoho lxml simplejson


To learn how to use this library, it is best to study its unit test source code (

Example usage:

# Import CRM connector class
from mfabrik.zoho.crm import CRM
from mfabrik.zoho.core import ZohoException

# Initialize Zoho CRM API connection
# You need valid Zoho credentials and API key for this.
# You get necessary data from Zoho > Setup > Admin > Developer key
crm = CRM(username="myusername", password="foobar", apikey="12312312312312312323")

# Open connection can be used to make as many as possible API calls
# This will raise ZohoException if credentials are incorrect.
# Also IOError or URLError will be raised if you the connection to Zoho servers
# does not work.

# Lead is just a bunch of dictionaried data
# For possible lead parameters see

# Zoho default compulsory fields: Last Name, Company

lead = {
    u"First Name" : u"Mikko",
    u"Last Name" : u"Ohtamaa",
    u"Company" : u"mFabrik Research Oy"

# Insert a new lead to Zoho CRM lead database.
# We support multiple leads per call, so we need to listify our one lead first.
responses = crm.insert_records([lead]) # This will raise ZohoException if lead data is invalid

# list of responses. one response is {'Modified Time': '2010-10-07 13:24:49', 'Created By': 'Developer', 'Modified By': 'Developer', 'Id': '177376000000253053', 'Created Time': '2010-10-07 13:24:49'}
# At least one response is guaranteed, otherwise an exception is raised

lead_id = responses[0]["Id"]

Special field Lead Owner must be the registered email fo Zoho CRM user.


Some calls (e.g. delete) seem to have delay and the changes might not be instantly reflected in the next API call (getRecords).


Python logging module logger Zoho API is used to output API traffic on DEBUG log level.

Commercial development

This package is licensed under open source GPL license. If you wish to use this code in a commercial product, relicense it or you are looking for high quality Zoho/Python support, please contact mFabrik Research. Our top class Python developers are ready to help you with your software development.


mFabrik Research Oy - Python and Plone professionals for hire.


1.0.2 - 1.1

  • Changed protocol to https, as per Zoho API changes [miohtama]

1.0.1 - 1.0.2

  • Return CRM lead insert id results [tco]

1.0 - 1.0.1

  • Fixed file - setuptools was ignoring docs/ by default [miohtama]


  • Initial release
Release History

Release History

This version
History Node


History Node


History Node


History Node


Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date (22.6 kB) Copy SHA256 Checksum SHA256 Source May 11, 2011

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting