New Features of API version 2.0
- OAuth2.0
- REST APIs
- JSON Only
- Dedicated Domain for Zoho Recruit v2 APIs and Multi DC Handling
- Endpoint Changes
- API Names
- Limits and Throttling
- Pagination
- Date/Time Format
OAuth 2.0
The v2 APIs use the OAuth2.0 protocol for authentication. They use the Authorization Code Grant Type to obtain an access token. This grant type allows you to share specific data with any application while keeping your usernames and passwords private.
This protocol also lets you use selected scopes to control the type of resource that a client application can access. Refer OAuth 2.0 for v2 APIs-An Overview, for more information.
REST APIs
All v2 APIs follow REST standards, i.e, they use the HTTP request methods GET, POST, PUT, DELETE, etc.
GET - Fetch the records
POST - Insert new records
PUT - Update the existing records
DELETE - Delete the records
All inputs and responses are in JSON format.
All responses will have an HTTP Status Code.
JSON Only
All v2 API inputs and responses are only in the JSON format, whereas the v1 APIs supported both XML and JSON.
Some of the advantages of using JSON are:
Less verbose: JSON does not have tags like XML and hence, requires fewer characters to represent data.
Faster: Since JSON uses less data, it is easy to read, and parse data thus increases the parsing speed.
Readable: JSON is data is very straightforward and easy to read.
Dedicated Recruit Domain and Multi DC Handling
The Zoho Recruit v2 APIs have a dedicated domain https://recruit.zoho.com/ (US)
This is helpful in serving CORS requests.
The other supported domains are:
Europe - https://recruit.zoho.eu/
China - https://recruit.zoho.com.cn/
India - https://recruit.zoho.in/
Japan - https://recruit.zoho.jp/
For more information, refer to Multi DC Support.
Note:
The default domain for the Recruit account is the US
Endpoint Changes
v2 APIs have the endpoint https://recruit.zoho.com/recruit/v2/ where
https://recruit.zoho.com is the domain name and
/recruit/v2/ is the endpoint for the Recruit v2 APIs
For instance, the request URL to get the list of Candidates in Recruit is
https://recruit.zoho.com/recruit/v2/Candidates
Note:
When you generate the grant token(authorization code) on the browser, the resulting URL is
{redirect_uri}?code={grant_token}&location=us&accounts-server=https%3A%2F%2Faccounts.zoho.com
The "location=us" parameter contains the domain of your account. Use this domain in all API endpoints.
For instance, the URL to fetch all Recruit Candidates in
EU domain: "https://recruit.zoho.eu/recruit/v2/Candidates"
CN domain: "https://recruit.zoho.com.cn/recruit/v2/Candidates"
API Names
Zoho Recruit v2 APIs use API names generated internally while creating a custom module, field, or related list label. The system uses this key "api_name" in the JSON data while accessing the Recruit APIs. This ensures that the label name changes in custom modules or fields won't affect your existing integrations.
For instance, Candidates for the candidates module, Currency for the currency field, and Notes for the notes-related list. The v1 APIs made use of display labels.
Limits and Throttling
The Zoho Recruit v2 APIs use a credit system to provide a rate limit to your application.
The maximum credit limit for the Enterprise edition of Zoho Recruit is now 500,000 and for the Ultimate edition, it is one million. The API call limit has a rolling window of 24 hours, from the start of the call as opposed to the credit limit being reset at 00:00 AM PST in v1 APIs.
Zoho Recruit also uses a concurrency system, to calculate API Limits based on the number of concurrent calls made per user per app in Zoho Recruit. These concurrency limits specify the maximum number of API calls that can be simultaneously active at a given time for a user per app.
For more information, refer API Limits.
Pagination
All v2 API GET responses have the following "info" JSON object.
"info": {
"per_page": 200,
"count": 1,
"page": 1,
"more_records": false
}
"per_page": Use this parameter to set the number of records you want to fetch per page. The default value is 200.
"page": Use this parameter to fetch the records on that page. The default value is 1.
"more_records": This parameter indicates if there are more records in that module. Values are true or false.
Date/Time Format
The v2 APIs follow the ISO 8601 date-time format that includes the time zone, whereas the v1 APIs followed the format yyyy-MM-dd HH:mm:ss. For instance:
v2: 2018-03-28T10:32:45+05:30
v1: 2013-06-26 10:37:48