Access the Zoho Bigin API with managed OAuth authentication. Manage contacts, companies, pipelines, and products with full CRUD operations.
Reference
Modules
Zoho Bigin organizes data into modules. Available modules include:
| Module | API Name | Description |
|---|---|---|
| Contacts | Contacts | Individual people |
| Companies | Accounts | Organizations/businesses |
| Pipelines | Pipelines | Sales opportunities/deals |
| Products | Products | Items you sell |
| Tasks | Tasks | To-do items (requires additional OAuth scope) |
| Events | Events | Calendar appointments (requires additional OAuth scope) |
| Calls | Calls | Phone call logs (requires additional OAuth scope) |
| Notes | Notes | Notes attached to records (requires additional OAuth scope) |
List Records
GET /zoho-bigin/bigin/v2/{module_api_name}?fields={field1},{field2}Query Parameters:
| Parameter | Type | Description |
|---|---|---|
fields | string | Required. Comma-separated field API names to retrieve |
sort_order | string | asc or desc |
sort_by | string | Field API name to sort by |
page | integer | Page number (default: 1) |
per_page | integer | Records per page (default: 200, max: 200) |
cvid | string | Custom view ID for filtered results |
Example - List Contacts:
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/zoho-bigin/bigin/v2/Contacts?fields=First_Name,Last_Name,Email,Phone')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOFResponse:
{
"data": [
{
"First_Name": "Ted",
"Email": "support@bigin.com",
"Last_Name": "Watson",
"id": "7255024000000596045"
}
],
"info": {
"per_page": 200,
"count": 1,
"page": 1,
"more_records": false
}
}Example - List Companies (Accounts):
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/zoho-bigin/bigin/v2/Accounts?fields=Account_Name,Website')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOFGet Record
GET /zoho-bigin/bigin/v2/{module_api_name}/{record_id}Example:
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/zoho-bigin/bigin/v2/Contacts/7255024000000596045')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOFCreate Records
POST /zoho-bigin/bigin/v2/{module_api_name}
Content-Type: application/json
{
"data": [
{
"field_api_name": "value"
}
]
}Mandatory Fields by Module:
| Module | Required Fields |
|---|---|
| Contacts | Last_Name |
| Accounts | Account_Name |
| Pipelines | Pipeline_Name, Stage |
| Products | Product_Name |
Example - Create Contact:
python <<'EOF'
import urllib.request, os, json
data = json.dumps({
"data": [{
"Last_Name": "Smith",
"First_Name": "John",
"Email": "john.smith@example.com",
"Phone": "+1-555-0123"
}]
}).encode()
req = urllib.request.Request('https://api.maton.ai/zoho-bigin/bigin/v2/Contacts', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOFResponse:
{
"data": [
{
"code": "SUCCESS",
"details": {
"Modified_Time": "2026-02-06T00:28:53-08:00",
"Modified_By": {
"name": "User Name",
"id": "7255024000000590001"
},
"Created_Time": "2026-02-06T00:28:53-08:00",
"id": "7255024000000605002",
"Created_By": {
"name": "User Name",
"id": "7255024000000590001"
}
},
"message": "record added",
"status": "success"
}
]
}Example - Create Company (Account):
python <<'EOF'
import urllib.request, os, json
data = json.dumps({
"data": [{
"Account_Name": "Acme Corporation",
"Website": "https://acme.com"
}]
}).encode()
req = urllib.request.Request('https://api.maton.ai/zoho-bigin/bigin/v2/Accounts', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOFUpdate Records
PUT /zoho-bigin/bigin/v2/{module_api_name}
Content-Type: application/json
{
"data": [
{
"id": "record_id",
"field_api_name": "updated_value"
}
]
}Example:
python <<'EOF'
import urllib.request, os, json
data = json.dumps({
"data": [{
"id": "7255024000000605002",
"Phone": "+1-555-9999"
}]
}).encode()
req = urllib.request.Request('https://api.maton.ai/zoho-bigin/bigin/v2/Contacts', data=data, method='PUT')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOFResponse:
{
"data": [
{
"code": "SUCCESS",
"details": {
"Modified_Time": "2026-02-06T00:29:07-08:00",
"id": "7255024000000605002"
},
"message": "record updated",
"status": "success"
}
]
}Delete Records
DELETE /zoho-bigin/bigin/v2/{module_api_name}?ids={record_id1},{record_id2}Query Parameters:
| Parameter | Type | Description |
|---|---|---|
ids | string | Comma-separated record IDs (required, max 100) |
wf_trigger | boolean | Execute workflows (default: true) |
Example:
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/zoho-bigin/bigin/v2/Contacts?ids=7255024000000605002', method='DELETE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOFResponse:
{
"data": [
{
"code": "SUCCESS",
"details": {
"id": "7255024000000605002"
},
"message": "record deleted",
"status": "success"
}
]
}Search Records
GET /zoho-bigin/bigin/v2/{module_api_name}/searchQuery Parameters:
| Parameter | Type | Description |
|---|---|---|
criteria | string | Search criteria (e.g., (Last_Name:equals:Smith)) |
email | string | Search by email address |
phone | string | Search by phone number |
word | string | Global text search |
page | integer | Page number |
per_page | integer | Records per page (max 200) |
Criteria Format: ((field_api_name:operator:value)and/or(...))
Operators: equals, starts_with
Example - Search by email:
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/zoho-bigin/bigin/v2/Contacts/search?email=support@bigin.com')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOFExample - Search by criteria:
python <<'EOF'
import urllib.request, os, json
import urllib.parse
criteria = urllib.parse.quote('(Last_Name:equals:Watson)')
req = urllib.request.Request(f'https://api.maton.ai/zoho-bigin/bigin/v2/Contacts/search?criteria={criteria}')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOFGet Modules
GET /zoho-bigin/bigin/v2/settings/modulesExample:
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/zoho-bigin/bigin/v2/settings/modules')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOFGet Users
GET /zoho-bigin/bigin/v2/usersQuery Parameters:
| Parameter | Type | Description |
|---|---|---|
type | string | AllUsers, ActiveUsers, AdminUsers, CurrentUser |
page | integer | Page number |
per_page | integer | Users per page (max 200) |
Example:
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/zoho-bigin/bigin/v2/users?type=ActiveUsers')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF