Search Records Based on Record Values
This API is used to fetch all the records of a form based on the record values.
Request URL:
https://people.zoho.com/api/forms/employee/getRecords?searchParams={searchField:'Employeestatus',searchOperator:'Is',searchText:'Active'}|{searchField:'Role',searchOperator:'Is',searchText:'Team Member'}
Header:
Authorization: Zoho-oauthtoken 1000.8cb99dxxxxxxxx9be93.9b8xxxxxxf
Scope:
ZOHOPEOPLE.forms.READ
Possible Operation Types:
READ - Read form data
Request Parameters:
PARAMETERS | VALUES ALLOWED | DEFAULT VALUE | PARAMETER DESCRIPTION | MANDATORY |
---|---|---|---|---|
slindex | 1 | Starting Index | No | |
limit | 200 | Number of records to be fetched | No | |
searchField | - | Search any column using field label name | No | |
searchOperator | - | Search any record using the operators (Eg- Is, Contains,) | No | |
searchText | - | Search any text that belongs to the record | No |
Additional Info:
The format to search through records is as follows:
searchParams : '|' separated JSONObjects with following keys and values
{
searchField : FieldName based on which search should be performed,
searchText : The value to be searched for,
searchOperator : Based on field type - True|False|Is|Is_Not|Is_Empty|Is_Not_Empty|Starts_With|Ends_With|Like|Contains|Not_Contains
|Lesser_Than|Greater_Than|Lesser_than_or_equal_to|Before|Greater_than_or_equal_to|After| Between|Yesterday|Today|Tomorrow| Last_7_Days|Last_30_Days|Last_60_Days|Last_90_Days|
Last_120_Days|Next_7_Days|Next_30_Days|Next_60_Days|Next_90_Days|Next_120_Days|
Last_Month|This_Month|Next_Month|Current_and_Previous_Month|Current_and_Next_Month|Last_Year|
This_Year|Next_Year|Last_2_Years| Next_2_Years|Current_and_Previous_Year|Current_and_Next_Year
searchCriteria : AND | OR
}
If no searchOperator is specified by default, we assume the search operation to be 'Contains' and similarly if no searchCriteria is specified, we assume it to be 'AND'. For operators like 'Between' which needs two search values to be specified, semi-colon separated values may be given.
Error Codes and Descriptions
ERROR CODE | ERROR DESCRIPTION |
---|---|
7200 | API invocation failed |
7011 | Form name '<formlinkname>' is invalid |
7021 | Maximum record limit 200 is exceeded |
Note: Lookup values of a record contains field name as key and their lookup id's key is fieldname.ID.
Threshold Limit: 400 requests | Lock period: 5 minutes
Threshold Limit - Number of API calls allowed within a minute.
Lock Period - Wait time before consecutive API requests.
Sample Request
Copiedhttps://people.zoho.com/api/forms/employee/getRecords?searchParams={searchField:'Employeestatus',searchOperator:'Is',searchText:'Active'}|{searchField:'Role',searchOperator:'Is',searchText:'Team Member'}
Sample Response
Copied{
"response": {
"result": [
{
"759415000001146009": [
{
"EmailID": "johndoe@example.com",
"Gender": "Male",
"Employeestatus": "Active",
"Role.ID": "759415000000035635",
"Zoho_ID": 759415000001146009,
"Dateofjoining": "28-Mar-2020",
"FirstName": "John",
"AddedTime": "20-Jan-2020 13:41:24",
"AddedBy": "Jane Doe",
"Role": "Team member",
"LastName": "Doe",
"EmployeeID": "HRM02",
"ZUID": "876504960",
"AboutMe": "",
"Employeestatus.type": 1,
}
],
},
{
"759415000001146010": [
{
"EmailID": "alexdoe@example.com",
"Gender": "Male",
"Employeestatus": "Active",
"Role.ID": "759415000000035635",
"Zoho_ID": 759415000001146010,
"Dateofjoining": "01-May-2021",
"FirstName": "Alex",
"AddedTime": "20-Jan-2021 13:41:24",
"AddedBy": "Jane Doe",
"Role": "Team member",
"LastName": "doe",
"EmployeeID": "HRM02",
"ZUID": "876504961",
"AboutMe": "",
"Employeestatus.type": 1,
}
],
}
],
"message": "Data fetched successfully",
"uri": "/api/forms/employee/getRecords",
"status": 0
}
}
CopiedOkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
Request request = new Request.Builder()
.url("https://people.zoho.com/api/forms/employee/getRecords?searchParams=%7BsearchField%3A'Employeestatus'%2CsearchOperator%3A'Is'%2CsearchText%3A'Active'%7D%7C%7BsearchField%3A'Role'%2CsearchOperator%3A'Is'%2CsearchText%3A'Team%20Member'%7D")
.get()
.addHeader("User-Agent", "ZohoPeople/10.13.2")
.addHeader("Authorization", "••••••")
.addHeader("Cookie", "CSRF_TOKEN=790891fd-6d6f-40fd-8381-8e81176e2d2f; _zcsr_tmp=790891fd-6d6f-40fd-8381-8e81176e2d2f; _zpsid=C9B0C2739FAE8B31975D2F7745237EFA; zalb_c7cb34e6ac=15579241ea20d8d7fa5eb5f3fb79c37a")
.build();
Response response = client.newCall(request).execute();
Copiedconst myHeaders = new Headers();
myHeaders.append("User-Agent", "ZohoPeople/10.13.2");
myHeaders.append("Authorization", "••••••");
myHeaders.append("Cookie", "CSRF_TOKEN=790891fd-6d6f-40fd-8381-8e81176e2d2f; _zcsr_tmp=790891fd-6d6f-40fd-8381-8e81176e2d2f; _zpsid=C9B0C2739FAE8B31975D2F7745237EFA; zalb_c7cb34e6ac=15579241ea20d8d7fa5eb5f3fb79c37a");
const requestOptions = {
method: "GET",
headers: myHeaders,
redirect: "follow"
};
fetch("https://people.zoho.com/api/forms/employee/getRecords?searchParams=%7BsearchField%3A'Employeestatus'%2CsearchOperator%3A'Is'%2CsearchText%3A'Active'%7D%7C%7BsearchField%3A'Role'%2CsearchOperator%3A'Is'%2CsearchText%3A'Team%20Member'%7D", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));
Copiedcurl --location 'https://people.zoho.com/api/forms/employee/getRecords?searchParams=%7BsearchField%3A%27Employeestatus%27%2CsearchOperator%3A%27Is%27%2CsearchText%3A%27Active%27%7D%7C%7BsearchField%3A%27Role%27%2CsearchOperator%3A%27Is%27%2CsearchText%3A%27Team%20Member%27%7D' \
--header 'User-Agent: ZohoPeople/10.13.2' \
--header 'Authorization: ••••••' \
--header 'Cookie: CSRF_TOKEN=790891fd-6d6f-40fd-8381-8e81176e2d2f; _zcsr_tmp=790891fd-6d6f-40fd-8381-8e81176e2d2f; _zpsid=C9B0C2739FAE8B31975D2F7745237EFA; zalb_c7cb34e6ac=15579241ea20d8d7fa5eb5f3fb79c37a'
CopiedinputMap = Map();
inputMap.put("searchParams","{searchField:'Employeestatus',searchOperator:'Is',searchText:'Active'}|{searchField:'Role',searchOperator:'Is',searchText:'Team Member'}");
AuthMap = Collection();
AuthMap.insert("Authorization":"••••••");
response = invokeUrl
[
url: "https://people.zoho.com/api/forms/employee/getRecords"
type: GET
parameters: inputMap
headers: AuthMap.toMap()
];
info response;
Copiedimport requests
url = "https://people.zoho.com/api/forms/employee/getRecords?searchParams=%7BsearchField%3A'Employeestatus'%2CsearchOperator%3A'Is'%2CsearchText%3A'Active'%7D%7C%7BsearchField%3A'Role'%2CsearchOperator%3A'Is'%2CsearchText%3A'Team%20Member'%7D"
payload = {}
headers = {
'User-Agent': 'ZohoPeople/10.13.2',
'Authorization': '••••••',
'Cookie': 'CSRF_TOKEN=790891fd-6d6f-40fd-8381-8e81176e2d2f; _zcsr_tmp=790891fd-6d6f-40fd-8381-8e81176e2d2f; _zpsid=C9B0C2739FAE8B31975D2F7745237EFA; zalb_c7cb34e6ac=15579241ea20d8d7fa5eb5f3fb79c37a'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)