Skip to main content

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.


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

Source code

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.

Further reading


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

Project details

Download files

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

Source Distribution (22.6 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page