Introduction to Catalyst API
Overview
Catalyst API offers a wide range of functionalities that enable an application developer to work with the Catalyst components remotely in their application. You can build and manage your Catalyst application using the APIs, as well as perform remote operations on it, similar to working with it using the Catalyst web console.
For example, you can perform operations such as inserting data in a table in the Data Store, obtaining details of a folder in the File Store, or executing a function using the respective APIs.
Catalyst implements REST API standards, and supports HTTP requests and responses for accessing its resources. Catalyst resources are exposed through their endpoint URLs, and the HTTP clients can access these endpoints using their specific APIs.
Catalyst implements the following basic REST API principles:
- The endpoint URL of each instance of a Catalyst resource is unique.
- The HTTP method in the request dictates the operation to be performed on the resource.
- Additional payload information is passed as parameters in the request. They contain the details of the operation to be performed.
- Each request initiates a response from Catalyst.
You can refer to the request format and response format sections for details and examples.
Prerequisites
Before you begin working with Catalyst API, you must ensure that the following prerequisites are satisfied:
- A valid Zoho user account: Ensure that you have a valid Zoho login email address and password. You can sign up for a Zoho account here.
- An authentication token: You must obtain a valid OAuth access_token to access Catalyst API.
The help pages in OAuth 2.0 Authentication section will guide you in the process of understanding and obtaining authentication tokens.
All Catalyst APIs will be accessible to a Catalyst user in the App Administrator role, (Catalyst application developer) after they obtain their access_token. All the collaborators of a particular project will also be able to execute all Catalyst APIs using their access_token.
However, only certain operations are accessible for the users in the App User role, i.e., the end users of a Catalyst application with a Catalyst user authentication. The end user can only perform operations related to accessing specific application data, and not operations that modify the application. Each API help page will provide you with information on the execution permissions defined for it.
Note:
-
If you want to execute Catalyst operations without generating any authentication tokens, you can use Catalyst SDK instead
-
Catalyst currently does not support a separate API authentication process for end users of Catalyst applications. If you implement Catalyst SDK in your application code, the authentication is automatically handled as an App Administrator authentication. To use Catalyst API independently, you must follow the steps described in th OAuth 2.0 Authentication section to generate OAuth authentication tokens.
Multi-DC Support
Overview
Catalyst is currently hosted in three data centers. The base API URI to access all Catalyst APIs and the Zoho Accounts Server URI will be different based on the data center you are accessing Catalyst from.
You must use the appropriate domain based on your location while sending an API request in Catalyst. This prevents conflicts with your browser and enables a smooth integration with your current session.
The four data centers and their respective base API URIs supported by Catalyst for all APIs are:
- US: https://api.catalyst.zoho.com
- EU: https://api.catalyst.zoho.eu
- IN: https://api.catalyst.zoho.in
- AU: https://api.catalyst.zoho.au
The corresponding Zoho Accounts Server URI for the four data centers that you must use while implementing OAuth 2.0 authentication are:
- US: https://accounts.zoho.com
- EU: https://accounts.zoho.eu
- IN: https://accounts.zoho.in
- AU: https://accounts.zoho.au
Usage
You must ensure you perform the following actions to make use of Catalyst’s multi-DC support:
- You must use the appropriate Zoho Accounts Server URI in all the steps while implementing OAuth 2.0 authentication,
such as while making an authorization request to generate the grant token, access token, or refresh token.
For example, you can make this request to generate the grant token using a redirect method for the EU data center:
copy
A response with the grant token will be returned after redirecting to the redirect URI, which will contain a location parameter as shown below:
This location parameter specifies the domain of your account. In this case, the location is returned as eu.
- You can enable multi-DC support after you register your client in Zoho’s API console. This lets you provide access to your application to users of a specific domain alone. For example, you can disable access to your application for the IN users and enable it for the other users. Refer to Register a New Client section for details.
- As mentioned earlier, you must use the appropriate base API URI while sending an API request. For example, to fetch all rows in a table in your Data Store, you must execute the following request URL for the EU data center:
https://api.catalyst.zoho.eu/baas/v1/project/{project_id}/table/{tableIdentifier}/row
Multi-Org Support
Overview
Catalyst allows you to create and manage multiple organizations within your Catalyst account. A unique Org ID will be generated for every organization you create. You can create individual projects in each organization and also assign access permissions to people contributing to the project.
You can only have one organization in your account as the default one. The organization marked as default will be logged in automatically when you sign in to your Catalyst account every time.
While you execute an API from Catalyst, it will be executed for the default organization automatically. For instance, when you pass the project ID in your API request, Catalyst will automatically look for a project with the same ID in your default organization. However, you can execute an API for other organizations that are not the default by exclusively passing the unique Org ID of those organizations in your requests.
Usage
You can pass the Org ID as a header in an API request to access a project in that organization in this format:
Sample API Header Formatcopy
-H CATALYST-ORG: 15090237
You can check a complete sample request from the Request Format section.
Request Format
Request Methods
Catalyst API follows the REST standards and supports the following HTTP methods for client requests for the described purposes:
- GET : To fetch records from a Catalyst resource
- POST : To insert new records in a Catalyst resource
- PUT : To update existing records in a Catalyst resource
- DELETE : To delete existing records in a Catalyst resource
You must specify the request method for the operation while executing a Catalyst API request.
Request URL
The API requests are sent in the CURL format. A typical request URL is of the format:
https://api.catalyst.zoho.com/baas/v1/project/{project_id}
/{resource_name}/{additional_resource_details}
The common parameters passed in the request URL include the Project ID of the Catalyst project and the resource ID of the specific resource instance that is being accessed.
Request Headers
Mandatory header passed in the cURL request includes the following:
- Authorization header: OAuth token i.e., the access_token
Recommended headers passed in the cURL request can include the following:
- Content-Type: A REST API standard that indicates the original media type of the resource passed. It is highly recommended to pass this header when the API requests include JSON payload or form data, for example.
Optional headers passed in the cURL request can include the following:
- Org ID: The Org ID of an organization that is not the default. You can obtain the Org ID from the multi-org portal in the Catalyst console.
- Environment: The environmental header to specify the environment the request must be executed for. You can indicate if the API request should be executed for the development or production environment of the project.
Request Body
Based on the purpose of the request, you can pass additional data in the body of the request in an API call, such as the column name and value for updating the column of a table, or the folder name for creating a folder.
The particulars of the request to be sent, such as the headers and JSON attributes to be passed in the request, are specified in each API help page for the specific request.
Sample API Requestcopy
curl “https://api.catalyst.zoho.com/baas/v1/project/4000000006007/segment/4000000006023/cache" -X POST -d ‘{“cache_name”:“City”,“cache_value”:“London”}’ -H “CATALYST-ORG: 15090237” -H “Environment:Development” -H “Content-Type:application/json” -H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57"”
Response Format
Overview
All Catalyst API responses will be in the JSON format. The response is sent after a request is processed by the Catalyst server.
A typical response contains the status of the request processing, which can be success or failure, and a set of data based on the request made. For example, if the request was made to delete a record in a resource, the data will contain the details of the record that was deleted. The response details of each API are specified in its help page in detail.
If the request was not processed successfully, the response will contain an appropriate error code to specify the error that occurred. The next section contains the error codes recognized by Catalyst and their descriptions.
Sample API Responsecopy
{ "status": "success", "data": { "cache_name": "City", "cache_value": "London", "project_details": { "id": 56000000087108, "project_name": "ShipmentTracking" }, "segment_details": { "id": 56000000112489, "segment_name": "CustomerLocation" }, "expires_in": "Mar 28, 2019 02:03 AM", "expiry_in_hours": 7 } }
Error Codes
When the server encounters an error while processing a client request, it sends an appropriate HTTP Status Code in the response back to the client. The following errors are recognized by Catalyst:
HTTP Status Code | Error Code | Description |
---|---|---|
403 | API_LIMIT_REACHED | You have reached the upper limits for API calls in your account. Upgrade your license plan. |
409 | CONFLICT | Contradicts with the existing value. Try giving another value. |
409 | DUPLICATE_ENTRY | The email ID you have entered already exists. Please provide a different email ID. |
409 | DUPLICATE_ENTRY | The domain name already exists. Please provide a different value. |
409 | DUPLICATE_OPERATION | The requested operation is already under progress. Please wait until it is completed. |
409 | DUPLICATE_VALUE | The value you have entered already exists. Please provide a different value. |
500 | EMAIL_ERROR | Email sending process failed. Try again after some time. |
410 | EXPIRED | The requested resource has expired. Please try creating it again. |
410 | EXPIRED_LOG | The response log you are trying to download is expired. |
202 | FUNCTION_ERROR | Encountered an internal server error. |
500 | INTERNAL_SERVER_ERROR | Encountered an internal server error. |
403 | INVALID_CONTENT | The given input is not in an acceptable format. |
404 | INVALID_ID | The resource ID you have provided does not exist. |
400 | INVALID_INPUT | The table name you have provided does not exist. |
400 | INVALID_INPUT | The column name you have provided does not exist. |
400 | INVALID_INPUT | The foreign key you have provided doesn't match with the ROWID of the parent table. |
400 | INVALID_INPUT | The input you have provided is not valid. |
404 | INVALID_NAME | The email ID you have provided does not exist. |
404 | INVALID_NAME | The table name you have provided does not exist. |
403 | INVALID_OPERATION | The requested operation is invalid. |
405 | INVALID_REQUEST_METHOD | The requested method is not accepted. |
400 | MISMATCH | The value provided does not match with the expected one. |
400 | MISSING_FUNCTION | The function ID you have provided does not exists. |
400 | MISSING_VALUE | The expected input is missing. |
401 | NO_ACCESS | You don't have privileges to perform this action |
204 | NO_CONTENT_AVAILABLE | The request returned an empty response. |
401 | UNAUTHORISED | You are not authorized to perform this action. |
403 | VERIFICATION_NEEDED | Your email address needs to be verified. |
400 | ZCQL_QUERY_ERROR | The format of your query is invalid. |
429 | TOO_MANY_REQUESTS | Concurrency limits reached for function, web client, or a Catalyst component execution. |
OAuth 2.0 Authentication
Overview
OAuth 2.0 is an industry-standard protocol for authentication and authorization. The framework enables a host of third-party client applications to gain secure and delegated access to protected resources in Zoho through APIs.
Some common characteristics of OAuth 2.0 are:
- Clients are not required to support password authentication or store user credentials. API calls can be made to access resources without having to provide user credentials for each call.
- Clients will only have access to resources authenticated by the user.
- Users can revoke the client’s delegated access at any time.
- OAuth2.0 access tokens expire after a set time, which provides strong security.
Terminology
Before you learn about the steps involved in implementing OAuth 2.0, you must understand the following terms related to OAuth 2.0 in the Catalyst context:
Key Words | Description |
---|---|
Protected Resource | A Catalyst resource such as Cache, Cron, Table, or Folder |
Resource Server | The Catalyst server that hosts the Catalyst protected resources |
Client | An application that sends requests to the resource server to access the protected resources on behalf of the end-user |
client_id | The unique key generated for a registered client |
client_secret | The secret value generated for a specific registered client's client_id. When you register your Catalyst application in the Zoho API Console, a client_id and client_secret will be generated for it. |
Authentication Server | The Catalyst authorization server that provides the necessary credentials to a client, such as the access_tokenor refresh_token |
Grant Token or code | Catalyst authorization server generates a temporary token and sends it to the client via the browser. The client will send this code back to the authorization server to obtain the access and refresh tokens. |
access_token | A temporary token that is sent to the resource server to access the protected resources of the user. Clients use the access_token to make requests to the associated application using the APIs. Each access_token will be valid for a set time period and can only be used to perform operations described in the scope. |
refresh_token | A token that can be used to obtain new access tokens. This token has an unlimited lifetime until it is revoked by the end-user. |
Scopes | Scopes control the type of resources that the client application can access. Each token is usually created with selected scopes for better security. For example, you can generate an access_token with a scope to only read the data in the Data Store or File Store.The standard format to define a scope is scope=service_name.scope_name.operation_type. The next section lists the scopes available in Catalyst. |
List of Scopes Available in Catalyst
Scope Name | Available Scopes |
---|---|
projects | ZohoCatalyst.projects.READ, ZohoCatalyst.projects.CREATE, ZohoCatalyst.projects.UPDATE, ZohoCatalyst.projects.DELETE, ZohoCatalyst.projects.users.READ, ZohoCatalyst.projects.users.CREATE |
tables | ZohoCatalyst.tables.READ, ZohoCatalyst.tables.rows.READ, ZohoCatalyst.tables.rows.CREATE, ZohoCatalyst.tables.rows.UPDATE, ZohoCatalyst.tables.rows.DELETE, ZohoCatalyst.tables.columns.READ |
folders | ZohoCatalyst.folders.READ, ZohoCatalyst.folders.CREATE, ZohoCatalyst.folders.UPDATE, ZohoCatalyst.folders.DELETE |
files | ZohoCatalyst.files.READ, ZohoCatalyst.files.CREATE, ZohoCatalyst.files.DELETE |
cache | ZohoCatalyst.cache.READ, ZohoCatalyst.cache.CREATE |
cron | ZohoCatalyst.cron.READ, ZohoCatalyst.cron.CREATE, ZohoCatalyst.cron.UPDATE, ZohoCatalyst.cron.DELETE |
zcql | ZohoCatalyst.zcql.CREATE |
functions | ZohoCatalyst.functions.EXECUTE |
circuits | ZohoCatalyst.circuits.EXECUTE |
search | ZohoCatalyst.search.READ |
ZohoCatalyst.email.CREATE | |
notifications | ZohoCatalyst.notifications.web, ZohoCatalyst.notifications.mobile.register, ZohoCatalyst.notifications.mobile |
mlkit | ZohoCatalyst.mlkit.READ |
quickml | QuickML.deployment.READ |
smartbrowz | ZohoCatalyst.pdfshot.execute, ZohoCatalyst.dataverse.execute |
Step 1: Register a New Client
Register the Client
The first step towards obtaining an OAuth authentication token is to register your application with Zoho’s API console and obtain your client_id and client_secret.
-
To register your application, visit the Zoho API Console and click Get Started.
-
Select a client type for your application.
You can refer to Zoho’s OAuth documentation for more details.
-
Provide the required details to register your application for the client type you chose.
- Client Name: The name of your application you want to register with Zoho
- Homepage URL: The URL of your client’s homepage
- Authorized Redirect URIs: A valid URL of your application that Zoho Accounts redirects you to with the grant token after a successful authentication
-
Click Create.
After the registration is successful, Zoho will provide you a set of OAuth 2.0 credentials: the client_id and client_secret, which are known to both Zoho and your application.
Enable Multi DC for the Client
As mentioned in the Multi-DC Support section, you can enable multi-DC support for your client from the Settings tab in the API console after you register it. This is available for all client types, except the Self Client type as it is used only for testing.
This feature lets you provide access to your application to users of a specific domain alone. As mentioned earlier, Catalyst is currently available in the US, EU, AU, and IN domains. So you can disable access to your application for specific DC users if you need.
To access the multi-DC configurations for your client:
-
Open your client from the API console and click Settings.
-
Enable or disable the client access for the data centers you need
When you enable it for the EU, AU, or IN DC, the console will generate a different client_secret for them by default. You can access it by clicking Show Code for the respective DC. The client_id will remain the same for all DCs.
You can choose to have the same client_secret for all DCs by checking the Use the same OAuth credentials for all data centers checkbox. You must then click OK in the confirmation pop-up.
You can again unselect the checkbox to have a different client_secret, and confirm the action similarly.
Step 2: Generate Grant Token
After you generate the client_id and client_secret, you must generate a Grant Token or code for your application.
For Self Client Applications
If you previously selected the Self Client type, you must generate the Grant Token (code) in the following way:
-
After registering your application, select Self Client from the Applications list in the API console and click Generate Code.
-
Enter a valid scope. You can check the list of scopes available in Catalyst from this section.
-
Choose a time duration from the dropdown list. The Grant Token generated in this step will expire after this time period.
- Enter a description for the scope.
- Click Generate.
The API console will display the generated Grant Token or code value for your Self Client application.
For Other Applications
If you previously selected client types other than the Self Client type, you must generate the Grant Token using a redirect method:
- Send a request to the following URI with the params given below, to generate the Grant Token (code):
https://accounts.zoho.com/oauth/v2/auth?
Parameter | Description |
---|---|
scope* | The scope the Grant Token is to be generated for. You can provide multiple scopes by separating them using commas. You can check the list of scopes available in Catalyst from [this section](/en/api/oauth2/scopes/#Scopes). |
client_id* | The Client ID that was generated during the client registration |
state | An opaque string that is round-tripped in the protocol, i.e., whatever value you provide here will be passed back to you |
response_type* | code(Provide this literal string as the value) |
redirect_uri* | One of the Authorized Redirect URIs you provided while registering the client in the previous step. You must not provide an unregistered redirect URI. |
access_type | The allowed values are offline and online. The online access_type only provides the Access Token for your application, which is valid for one hour. The offline access_type provides an Access Token as well as a Refresh Token for your application. The default value is considered to be online. |
prompt | Consent (Provide this literal string as the value) Prompts for user consent every time your app tries to access user credentials. If you don't specify this parameter, the user will only be prompted for credentials the first time your app requests access. |
Note:
-
Fields marked with * are mandatory.
-
You can pass the parameters in the body of your request as form-data, for increased security.
Request Example
copy
- If you send the prompt parameter in this request, a user consent page will open.
After you click Accept, Zoho will redirect you to the redirect_uri with the Grant Token in the code parameter. Save the code value for the next steps.
Based on your login details, the system automatically detects your domain and uses the domain-specific authentication URL to generate the Grant Token. The state parameter is also passed in the URL.
If you click Reject, the browser redirects to the redirect URI with the parameter error=access_denied.
Step 3: Generate Access Token and Refresh Token
Request Execution
After you obtain the Grant Token, send a POST request to the following URL with the params given below to generate the access_token:
https://accounts.zoho.com/oauth/v2/token?
Parameter | Description |
---|---|
code* | The Grant Token or the value of code obtained in the previous step. |
client_id* | The Client ID that was generated during the client registration |
client_secret* | The Client Secret that was generated during the client registration |
grant_type* | authorization_code (Provide this literal string as the value) |
redirect_uri | One of the Authorized Redirect URIs you provided while registering the client in the previous step. You must not provide an unregistered redirect URI. |
scope |
The scope the access_token is to be generated
for. You can provide multiple scopes by separating them using commas. You can check the list of scopes available in Catalyst from [this section](/en/api/oauth2/scopes/). |
state | An opaque string that is round-tripped in the protocol. In other words, whatever value you provide here will be passed back to you. |
Note:
- Fields marked with * are mandatory.
- You can pass the parameters in the body of your request as form-data, for increased security.
- The access_token will expire after the time period (in seconds) mentioned in the expires_in parameter.
- However, the refresh_token is permanent and can be used to regenerate a new access_token if the current one expires.
- You can use the domain specified in api_domain in your requests to make API calls to Catalyst.
- The “Bearer” value in the token_type indicates this is an access_token.
This completes the authentication process. Once you obtain the access_token for your application, you can use it in the authorization header of your HTTP requests to access Catalyst APIs. You can refer to the Request Format section for an example.
Sample Requestcopy
Sample Responsecopy
{ "access_token": "{access_token}", "refresh_token": "{refresh_token}", "api_domain": "https://www.zohoapis.com", "token_type": "Bearer", "expires_in": 3600 }
Step 4: Refresh Access Token
Request Execution
When an access_token expires, you must use the refresh_token to generate a new access_token for your application.
To do so, send a POST request to the following URL with the params given below:
https://accounts.zoho.com/oauth/v2/token?
Note: You must access the https://accounts.zoho.eu/ domain for the EU data center, https://accounts.zoho.au/ domain for the AU data center, and https://accounts.zoho.in/ domain for the IN data center.
Parameter Description refresh_token* The refresh_token obtained in the previous step client_id* The Client ID that was generated during the client registration client_secret* The Client Secret that was generated during the client registration grant_type* refresh_token (Provide this literal string as the value) redirect_uri* One of the Authorized Redirect URIs you provided while registering the client in the previous step. You must not provide an unregistered redirect URI. Note: Fields marked with * are mandatory.Sample Requestcopy
Sample Responsecopy
{ "access_token": "{new_access_token}", "expires_in": 3600, "api_domain": "https://www.zohoapis.com", "token_type": "Bearer" }
Step 5: Revoke Refresh Token
Request Execution
You may choose to manually revoke a refresh_token, when you no longer need access for a particular scope.
To revoke a refresh_token, send a POST request to the following URL with the refresh_token to be revoked as a parameter.
https://accounts.zoho.com/oauth/v2/token/revoke?
Note: You must access the https://accounts.zoho.eu/ domain for the EU data center, https://accounts.zoho.au/ domain for the AU data center, and https://accounts.zoho.in/ domain for the IN data center.Your refresh token now will become invalid.
Sample Requestcopy
Catalyst Projects
The Project APIs enable you to create, update, delete, and obtain details of a Catalyst project. You can perform these actions from the Catalyst console as well. Catalyst CLI also enables you to create a project remotely and initialize resources in it.
Create a New Project
Description
This API enables you to create a new Catalyst project in your Catalyst account. You must pass the required project name in the request.
Note: You can create upto 50 projects in your account in the development environment. You can request Catalyst for an increase in this limit by contacting our support at support@zohocatalyst.com. We will address each request on a case-by-case basis. There are no upper limits for project creation in the production environment.Request Details
Request URL
POST{api-domain}/baas/v1/project
copy
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Content-Type: application/jsonOptional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZOHOCATALYST.projects.CREATE
Request JSON Properties
project_name string mandatoryUnique name of the project
Max Size: 50 charactersResponse Details
The response will contain the details of the project that was created including the project domain details such as the project_domain_id and project_domain_name, and the details of the user such as their email_id and user_id.
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”
-H “Content-Type: application/json”
-d ‘{ “project_name”:“BillingDesk” }’Sample Responsecopy
{ "status": "success", "data": { "project_name": "BillingDesk", "created_by": { "zuid": 3000000006001, "is_confirmed": true, "email_id": "amelia.burrows@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_id": 671930455 }, "created_time": "Jan 29, 2020 11:59 AM", "redirect_url": "", "project_domain_details": { "project_domain_id": 10018095112, "project_domain_name": "billingdesk-697215025.development", "project_domain": "billingdesk-697215025.development.zohocatalyst.com", "user_auth": {}, "mobile_auth": {} }, "db_type": "SINGLE_DB", "id": 3000000005090, "project_type": "Live", "timezone": "Asia/Kolkata" } }
Get the Details of a Specific Project
Description
This API enables you to fetch the details of a specific project that the Catalyst user, such as the developer or a collaborator, logged in currently has created from their Catalyst account. The project is referred to by its project_id. The project details fetched are of the same Catalyst account the API is being executed from.
Request Details
Request URL
GET{api-domain}/baas/v1/project/{project_id}
copy
project_idNumericalThe unique ID of the project
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
scope=ZOHOCATALYST.projects.Read
Response Details
The response will contain the details of the project including the project domain details such as the project_domain_id and project_domain_name, and the details of the user that created it, such as their email_id and user_id.
Sample Requestcopy
curl -X GET
https://api.catalyst.zoho.com/baas/v1/project/4000000006007
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”Sample Responsecopy
{ "status": "success", "data": { "platforms": [], "project_name": "BillingDesk", "created_by": { "zuid": 780776954, "is_confirmed": false, "email_id": "amelia-burrows@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_type": "Admin", "user_id": 11811000000003003 }, "created_time": "Jun 04, 2023 04:19 PM", "redirect_url": "", "project_domain_details": { "project_domain_id": 10060895541, "project_domain_name": "billingdesk-781316834.development", "project_domain": "https://billingdesk-781316834.development.catalystserverless.com", "user_auth": { "userAuth": {}, "createdTime": null, "createdBy": null }, "mobile_auth": {} }, "db_type": "SINGLE_DB", "id": 11811000000315013, "project_type": "Live", "env_details": [ { "id": 11811000000315049, "env_name": "Development", "env_type": 3, "env_status": "Active", "project_details": { "project_name": "BillingDesk", "id": 11811000000315013, "project_type": "Live" }, "is_default": true, "env_zgid": "781316834", "action_required": false } ], "timezone": "Asia/Kolkata" }
}
Get the Details of All Projects
Description
This API enables you to fetch the details of all the projects in the remote console of the Catalyst user, such as the developer or a collaborator, logged in currently. The project details fetched are of the same Catalyst account the API is being executed from.
Request Details
Request URL
GET{api-domain}/baas/v1/project
copy
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZOHOCATALYST.projects.Read
Response Details
The response will contain the details of all the projects the user created in their remote console, including the project domain details such as the project_domain_id and project_domain_name, and the details of the user that created it, such as their email_id and user_id of each project.
Sample Requestcopy
curl -X GET
https://api.catalyst.zoho.com/baas/v1/project
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”Sample Responsecopy
{ "status": "success", "data": [ { "platforms": [], "project_name": "BillingDesk", "created_by": { "zuid": 780776954, "is_confirmed": false, "email_id": "amelia.burrows@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_type": "Admin", "user_id": 11811000000003003 }, "created_time": "Jun 04, 2023 04:19 PM", "redirect_url": "", "project_domain_details": { "project_domain_id": 10060895541, "project_domain_name": "billingdesk-781316834.development", "project_domain": "https://billingdesk-781316834.development.catalystserverless.com", "user_auth": { "userAuth": {}, "createdTime": null, "createdBy": null }, "mobile_auth": {} }, "db_type": "SINGLE_DB", "id": 11811000000315013, "project_type": "Live", "env_details": [ { "id": 11811000000315049, "env_name": "Development", "env_type": 3, "env_status": "Active", "project_details": { "project_name": "BillingDesk", "id": 11811000000315013, "project_type": "Live" }, "is_default": true, "env_zgid": "781316834", "action_required": false } ], "timezone": "Asia/Kolkata" }, { "platforms": [], "project_name": "Zia", "created_by": { "zuid": 780776954, "is_confirmed": false, "email_id": "amelia.burrows@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_type": "Admin", "user_id": 11811000000003003 }, "created_time": "Jun 02, 2023 11:55 AM", "redirect_url": "", "project_domain_details": { "project_domain_id": 10060816047, "project_domain_name": "zia-781316834.development", "project_domain": "https://zia-781316834.development.catalystserverless.com", "user_auth": { "userAuth": {}, "createdTime": null, "createdBy": null }, "mobile_auth": {} }, "db_type": "SINGLE_DB", "id": 11811000000314001, "project_type": "Live", "env_details": [ { "id": 11811000000314037, "env_name": "Development", "env_type": 3, "env_status": "Active", "project_details": { "project_name": "Zia", "id": 11811000000314001, "project_type": "Live" }, "is_default": true, "env_zgid": "781316834", "action_required": false } ], "timezone": "Asia/Kolkata" }
Delete Project
Description
This API enables you to delete a particular project, by referring to its Project ID.
Request Details
Request URL
DELETE{api-domain}/baas/v1/project/{project_id}
copy
project_idNumericalThe unique ID of the project
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Content-Type: application/jsonOptional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZOHOCATALYST.projects.Delete
Request JSON Properties
project_name string mandatoryNew unique name of the project
Max Size: 50 charactersSample Requestcopy
curl -X DELETE
https://api.catalyst.zoho.com/baas/v1/project/4000000006007
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”
-H “Content-Type: application/json” \Sample Responsecopy
{ "status": "success", "data": { "id": 4000000006007 } }
Authentication
Catalyst Authentication features enable you to add end-users to your Catalyst serverless applications, configure their user accounts and roles, and manage user sign-in and authentication of your application.
Add a New User
Description
This API enables you to add a new end-user to the Catalyst application for a specific platform. When the user has signed up, unique identification values such as ZUID, userID are created for them.
Note: You will be able to add only 25 users in your application in the development environment. After you deploy your application to production, you can include any number of end-users in it.Request Details
Request URL
POST{api-domain}/baas/v1/project/{project_id}/project-user/signup
copy
project_idNumericalThe unique ID of the project
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Content-Type: application/jsonOptional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.projects.users.CREATE
Note: Passing the role_id of the role that the user must be assigned to, is optional. If you pass the role_id in the API, authentication becomes mandatory. If you skip passing the role_id, Catalyst does not authenticate the request and you need not specify the scope.Request JSON Properties
platform_type string mandatoryAccepted values: web, android, iosredirect_url string optionalThe URL to be redirected to, after the user signs up for the application
Max Size: 200user_details json mandatoryThe JSON that contains the details of the user
first_name string optionalFirst name of the user
Max Size: 100
last_name string mandatoryLast name of the user
Max Size: 100
email_id string mandatoryEmail address of the user
role_id string optionalUnique identification of the role the user must be assigned to
Response Details
The response will contain the details of the user added in the data key, including the metadata and identification values such as zaid, user_id, and org_id that were generated.
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/3000000002001/project-user/signup
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”
-H “Content-Type: application/json”
-H “PROJECT_ID: 1010309726”
-d ‘{ “user_details”:{ “first_name”:“Rowena”, “last_name”:“Simmons”, “email_id”:“r.simmons@zylker.com”, “role_id”:“1256000000288012”
}, “platform_type”:“web”, “redirect_url”:“https://logistics.zylker.com/app/index.html" }’Sample Responsecopy
{ "status": "success", "data": { "zaid": 1010309726, "user_details": { "user_id": 671930455, "user_type": "App Administrator", "zuid": 3000000006001, "zaaid": 1011520995, "status": "ACTIVE", "is_confirmed": true, "email_id": "r.simmons@zylker.com", "first_name": "Rowena", "last_name": "Simmons", "created_time": "May 13, 2019 09:16 PM", "modified_time": "May 13, 2019 09:16 PM", "invited_time": "May 13, 2019 09:16 PM", "role_details": { "role_id": 1256000000288012, "role_name": "App Administrator" } }, "redirect_url": "https://logistics.zylker.com/app/index.html", "platform_type": "web", "org_id": 1011520995 "locale": "us|en_us|America/Los_Angeles" "time_zone": "America/Los_Angeles" } }
Add a New User to an Exsiting Organization
Description
This API enables you to add a new end-user to an existing organization without creating a new organization for them. This can be done by providing the ZAAID of the organization that the user must be added to. The organization of a user cannot be changed later, once it is associated with their account.
When the user has signed up, unique identification values such as ZUID and User ID are created for them.
Request Details
Request URL
POST{api-domain}/baas/v1/project/{project_id}/project-user
copy
project_idNumericalThe unique ID of the project
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Content-Type: application/jsonOptional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.projects.users.CREATE
Request JSON Properties
platform_type string mandatoryAccepted values: web, android, iosredirect_url string optionalThe URL to be redirected to, after the user signs up for the application
Max Size: 200user_details json mandatoryThe JSON that contains the details of the user
first_name string optionalFirst name of the user
Max Size: 100
last_name string mandatoryLast name of the user
Max Size: 100
email_id string mandatoryEmail address of the user
ZAAID string mandatoryUnique identification of the organization that the user belongs to
Response Details
The response will contain the details of the user added in the data key, including the metadata and identification values such as zaid, user_id, and org_id that were generated.
Sample Requestcopy
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/3000000002001/project-user
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”
-H “Content-Type: application/json”
-d ‘{ “user_details”:{ “first_name”:“John”, “last_name”:“Winchester”, “email_id”:“john.w@zylker.com”, “zaaid”:4567899 }, “redirect_url”: “https://logistics.zylker.com/app/index.html", “platform_type”:“web” }’Sample Responsecopy
{ "status": "success", "data": { "zaid": 1011481670, "user_details": { "user_id": 671930400, "user_type": "App User", "zuid": 3000000006001, "zaaid": 1011520995, "status": "ACTIVE", "is_confirmed": true, "email_id": "john.w@zylker.com", "first_name": "John", "last_name": "Winchester", "created_time": "May 13, 2019 09:16 PM", "modified_time": "May 13, 2019 09:16 PM", "invited_time": "May 13, 2019 09:16 PM", "role_id": 3000000005015 }, "redirect_url": "https://logistics.zylker.com/app/index.html", "platform_type": "web", "org_id": 1011520995 "locale": "us|en_us|America/Los_Angeles" "time_zone": "America/Los_Angeles" } }
Get the Details of the Current User
Description
This API enables you to fetch the details of the current user logged into the Catalyst application, on whose scope the function is being executed.
Request Details
Request URL
GET{api-domain}/baas/v1/project/{project_id}/project-user/current
copy
project_idNumericalThe unique ID of the project
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.projects.users.READ
Note: This operation can also be executed with Catalyst user authentication permissions using Catalyst SDKs. However, the user can only obtain their own user details. Refer to the Catalyst API Prerequisites section for details.Response Details
The response will contain the details of the current user including their identification values such as zaid, user_id, email_id, and their role details.
Sample Requestcopy
curl -X GET
https://api.catalyst.zoho.com/baas/v1/project/3000000005007/project-user/current
-H “Authorization: Zoho-oauthtoken 1000.910*************************6.2f*************************57”Sample Responsecopy
{ "status": "success", "data": { "zuid": 3000000006111, "zaaid": 1019540153, "status": "ACTIVE", "user_id": 671930409, "user_type": "App Administrator", "is_confirmed": true, "email_id": "p.boyle@zylker.com", "first_name": "Patricia", "last_name": "Boyle", "created_time": "Jul 09, 2019 04:11 PM", "modified_time": "Jul 09, 2019 04:11 PM", "invited_time": "Jul 09, 2019 04:11 PM", "role_details": { "role_id": 3000000005090, "role_name": "App Administrator" } "org_id":1019540153 "locale": "us|en_us|America/Los_Angeles" "time_zone": "America/Los_Angeles" } }
SDK Documentation
Get the Details of a Specific User
Description
This API enables you to obtain the details of a specific Catalyst application user, by passing their user_ID in the request.
Request Details
Request URL
GET{api-domain}/baas/v1/project/{project_id}/project-user/{user_id}
copy
project_idNumericalThe unique ID of the project
user_idNumericalThe unique ID of the user
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.projects.users.READ
Response Details
The response will contain the details of the specific user including their identification values such as zuid, user_id, email_id, and their role details.
Sample Requestcopy
curl -X GET
https://api.catalyst.zoho.com/baas/v1/project/3000000005007/project-user/671930409
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”Sample Responsecopy
{ "status": "success", "data": { "zuid": 3171930400, "zaaid": 1019540153, "status": "ACTIVE", "user_id": 671930409, "user_type": "App User", "is_confirmed": true, "email_id": "john.w@zylker.com", "first_name": "John", "last_name": "Winchester", "created_time": "Jul 09, 2019 04:11 PM", "modified_time": "Jul 09, 2019 04:11 PM", "invited_time": "Jul 09, 2019 04:11 PM", "role_details": { "role_id": 3000000005015, "role_name": "App User" } "org_id":1019540153 "locale": "us|en_us|America/Los_Angeles" "time_zone": "America/Los_Angeles" } }
SDK Documentation
Get the Details of All Users
Description
This API enables you to fetch the details of all Catalyst applications users of a particular application through Pagination. Pagination allows you to retrieve the user list in pages through an iteration of API calls.
For example, if you require user records to be fetched in batches of 200 as individual pages, you must include a start and an end parameter in your request. You can set the start index as 0 using the start parameter, and specify the maximum number of users to be fetched as 200 using the end parameter. To fetch the next set of user records, you can execute another API call by setting the start index as 200, and specifying the number of user records in that page using the end parameter accordingly.
Request Details
Request URL
GET{api-domain}/baas/v1/project/{project_id}/project-user?start={start_index}&end={number_of_users}
copy
project_idNumericalThe unique ID of the project
startNumericalThe start index to fetch the user records from
endNumericalNumber of user records to return in a single page through pagination
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.projects.users.READ
Response Details
The response will contain the details of all application users including their identification values such as zuid, user_id, email_id, and their role details.
Sample Requestcopy
curl -X GET
https://api.catalyst.zoho.com/baas/v1/project/3000000005007/project-user?start=100&end=3
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”Sample Responsecopy
{ "status": "success", "data": [ { "zuid": 3171930121, "zaaid": 1019540153, "status": "ACTIVE", "user_id": 671930409, "user_type": "App User", "is_confirmed": true, "email_id": "ron.grisham@zylker.com", "first_name": "Ronald", "last_name": "Grisham", "created_time": "Jul 09, 2019 04:11 PM", "modified_time": "Jul 09, 2019 04:11 PM", "invited_time": "Jul 09, 2019 04:11 PM", "role_details": { "role_id": 3000000005015, "role_name": "App User" } "org_id":1019540153 "locale": "us|en_us|America/Los_Angeles" "time_zone": "America/Los_Angeles" }, { "zuid": 3171930089, "zaaid": 1019543293, "status": "ACTIVE", "user_id": 671930121, "user_type": "App User", "is_confirmed": true, "email_id": "Lucy.p@zylker.com", "first_name": "Lucy", "last_name": "Pettigrew", "created_time": "Jul 09, 2019 04:26 PM", "modified_time": "Jul 09, 2019 04:26 PM", "invited_time": "Jul 09, 2019 04:26 PM", "role_details": { "role_id": 3000000005015, "role_name": "App User" } "org_id":1019540153 "locale": "us|en_us|America/Los_Angeles" "time_zone": "America/Los_Angeles" }, { "zuid": 3171937685, "zaaid": 1019540091, "status": "ACTIVE", "user_id": 671930888, "user_type": "App User", "is_confirmed": true, "email_id": "zayn.ahmed@zylker.com", "first_name": "Zayn", "last_name": "Ahmed", "created_time": "Jul 09, 2019 04:26 PM", "modified_time": "Jul 09, 2019 04:26 PM", "invited_time": "Jul 09, 2019 04:26 PM", "role_details": { "role_id": 3000000005015, "role_name": "App User" } "org_id":1019540153 "locale": "us|en_us|America/Los_Angeles" "time_zone": "America/Los_Angeles" } ] }
SDK Documentation
Reset User Password
Description
This API enables you to reset the password of a user of your Catalyst application. When this API is called, an email will be sent to the user’s email address with a password reset link. The user can configure a new password for your application and save it, upon clicking the link.
Request Details
Request URL
POST{api-domain}/baas/v1/project/{project_id}/project-user/forgotpassword
copy
project_idNumericalThe unique ID of the project
Request Headers
Content-Type: application/json
PROJECT_ID: {project_id}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Note: Catalyst does not authenticate this API request. Therefore, you need not pass an OAuth token or specify any scopes.Request JSON Properties
platform_type string mandatoryAccepted values: web, android, ios
Max Size: N/Aredirect_url string optionalThe URL to be redirected to, after the user resets the password
Max Size: 200user_details json mandatoryThe JSON that contains the details of the user
first_nameStringFirst name of the user
Mandatory: No
Max Size: 100
last_nameStringLast name of the user
Mandatory: No
Max Size: 100
email_idStringEmail address of the user
Mandatory: Yes
Max Size: N/A
Response Details
The response will contain the status of the reset password action.
Sample Requestcopy
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/3000000002001/project-user/forgotpassword
-H “Content-Type: application/json”
-H “PROJECT_ID: 1010309726”
-d ‘{ “user_details”:{ “email_id”:“p.boyle@zylker.com” }, “platform_type”:“web” }’Sample Responsecopy
{ "status": "success", "data": "Reset link sent to your p.boyle@zylker.com email address. Please check your email :)" }
Sign Out User
Description
A Catalyst application user can log out from their current active session in the application using this API request. Catalyst will not send any response back for this API request.
Request Details
Request URL
GET{application_domain}/baas/logout?logout=true&PROJECT_ID={project_id}
copy
project_idNumericalThe unique ID of the project
application_domainStringThe domain address of the Catalyst application
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Note: Catalyst does not authenticate this API request. Therefore, you need not pass an OAuth token or specify any scopes.Sample Requestcopy
Data Store
Catalyst Data Store is a cloud-based relational database management system which stores the persistent data of your application in the form of tables.
Data Store APIs enable you to insert and manage records in the tables of your project’s Data Store, obtain table and column details, and even perform bulk read and bulk write actions. However, you can create a table and its schema only from the Catalyst console.
Insert a New Row In a Table
Description
This API enables you to insert a new row of data or a record in a table in the Data Store, by referring to the table’s unique ID or name.
You must pass the column names and their corresponding values for the record in a JSON format in the request as described below.
Note:
The table and the columns in it must already be created. You can create a table and the columns for it from the console.
You will be able to insert upto 5000 records in each table per project in the development environment. You can create upto 25,000 records overall in each project in the development environment. There are no upper limits for record creation in the production environment.
Request Details
Request URL
POST{api-domain}/baas/v1/project/{project_id}/table/{tableIdentifier}/row
copy
project_idNumericalThe unique ID of the project
tableIdentifierNumericalThe unique ID of the table or table name
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Content-Type: application/jsonOptional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.tables.rows.CREATE
Note: This operation can also be executed with Catalyst user authentication permissions using Catalyst SDKs. Refer to the Catalyst API Prerequisites section for details.Request JSON Format
You must send the column names and their corresponding values in a JSON format like this:
copy
{ "column1_name": "column1_value", "column2_name": "column2_value", "column3_name": "column3_value", . . }
where column_name is the name of a unique column in the table, and column_value is its corresponding value in the record.
Note: You must send at least one column name and value pair to insert in the record.Response Details
The response will contain the metadata of the row that was created such as its ROWID and CREATEDTIME, and the column key names and values that were inserted.
curl -X POST \ https://api.catalyst.zoho.com/baas/v1/project/4000000006007/table/EmpDetails/row
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”
-H “Content-Type:application/json”
-d ‘[ { “Department_ID”:“IT678”, “Department_Name”:“Marketing”, “Employee_Name”:“Robert Page” } ]’Sample Responsecopy
{ "status": "success", "data": [ { "CREATORID": "12096000000003003", "MODIFIEDTIME": "2023-06-05 11:35:14:332", "Department_ID": null, "Employee_Name": "Robert Page", "Department_Name": "Marketing", "CREATEDTIME": "2023-06-05 11:35:14:332", "ROWID": 12096000000642928 } ]
}
Get All Rows In a Table
Description
This API enables you to fetch all the rows from a particular table in the Data Store. You can refer to the table by its ID or name. The API incorporates pagination for fetching all rows. Pagination allows you to retrieve the records in pages through an iteration of API calls.
For example, if you require the rows to be fetched in batches of 100 as individual pages, you must include a max_rows parameter in your request, that specifies the maximum rows to be fetched in each page as 100.
Additionally, every API response will contain a token that you can pass in the next API call, to fetch the next page of rows. This token authorizes the subsequent fetching of data. You must pass the token string obtained in the response of the previous API call through the next_token parameter in the request. You need not pass the next_token parameter for the first API call. You can execute an API call for each iteration in this manner and fetch all rows in pages.
Request Details
Request URL
GET{api-domain}/baas/v1/project/{project_id}/table/{tableIdentifier}/row?next_token={token_string}&max_rows={number_of_rows}
copy
project_idNumericalThe unique ID of the project
tableIdentifierNumericalThe unique ID of the table or table name
next_tokenNumerical(not required for the first API call) The token value obtained from the previous API call to be passed for fetching the next set of rows through pagination
max_rowsNumerical(optional) The maximum number of rows that must be returned in a single page through pagination. The API will return 200 rows in a single page by default if this value is not specified.
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.tables.rows.READ
Note: This operation can also be executed with Catalyst user authentication permissions using Catalyst SDKs. Refer to the Catalyst API Prerequisites section for details.Response Details
The response will return the rows that are fetched through the API call in pages based on the max_rows value you specify. If there are rows available more than the requested count or the max_rows count, the response will also contain the token that you must pass to fetch the next set of rows as next_token. If there are no more records to be fetched, the response will not contain a token.
curl -X GET
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/table/CustomerDetails/row?max_rows=4&next_token=*************
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”Sample Response (If more records available)copy
{ "status": "success", "data": [ { "CREATORID": 56000000002003, "MODIFIEDTIME": "2019-03-06 10:16:41", "Department_ID": "IT148", "Department_Name": "Admin", "Employee_Name": "Eric Hyde", "CREATEDTIME": "2019-03-06 10:16:41", "ROWID": 56000000342025, "doubleDataType": null }, { "CREATORID": 56000000002003, "MODIFIEDTIME": "2019-03-06 10:18:56", "Department_ID": "IT170", "Department_Name": "Sales", "Employee_Name": "Steven Kelso", "CREATEDTIME": "2019-03-06 10:18:56", "ROWID": 56000000342026, "doubleDataType": null }, { "CREATORID": 56000000002003, "MODIFIEDTIME": "2019-03-06 10:19:00", "Department_ID": "IT190", "Department_Name": "Marketing", "Employee_Name": "Micheal Forman", "CREATEDTIME": "2019-03-06 10:18:58", "ROWID": 56000000342027, "doubleDataType": null }, { "CREATORID": 56000000002003, "MODIFIEDTIME": "2019-03-06 10:45:11", "Department_ID": "IT111", "Department_Name": "Support", "Employee_Name": "Madeline Burkhart", "CREATEDTIME": "2019-03-06 10:18:34", "ROWID": 56000000342028, "doubleDataType": null }, ], "more_records" : true, "next_token" : "{{token}}" }
Sample Response (If no more records available)copy
{ "status": "success", "data": [ { "CREATORID": 56000000002003, "MODIFIEDTIME": "2019-03-06 10:16:41", "Department_ID": "IT148", "Department_Name": "Admin", "Employee_Name": "Eric Hyde", "CREATEDTIME": "2019-03-06 10:16:41", "ROWID": 56000000342025, "doubleDataType": null }, { "CREATORID": 56000000002003, "MODIFIEDTIME": "2019-03-06 10:18:56", "Department_ID": "IT170", "Department_Name": "Sales", "Employee_Name": "Steven Kelso", "CREATEDTIME": "2019-03-06 10:18:56", "ROWID": 56000000342026, "doubleDataType": null }, { "CREATORID": 56000000002003, "MODIFIEDTIME": "2019-03-06 10:19:00", "Department_ID": "IT190", "Department_Name": "Marketing", "Employee_Name": "Micheal Forman", "CREATEDTIME": "2019-03-06 10:18:58", "ROWID": 56000000342027, "doubleDataType": null }, { "CREATORID": 56000000002003, "MODIFIEDTIME": "2019-03-06 10:45:11", "Department_ID": "IT111", "Department_Name": "Support", "Employee_Name": "Madeline Burkhart", "CREATEDTIME": "2019-03-06 10:18:34", "ROWID": 56000000342028, "doubleDataType": null }, ], "more_records" : false }
Update a Row in a Table
Description
This API enables you to update a particular row in a table in the Catalyst Data Store, by referring to its table ID or the table name. You must send the data to be updated in the record in the request JSON as described below.
Request Details
Request URL
PUT{api-domain}/baas/v1/project/{project_id}/table/{tableIdentifier}/row
copy
project_idNumericalThe unique ID of the project
tableIdentifierNumericalThe unique ID of the table or table name
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Content-Type: application/jsonOptional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.tables.rows.UPDATE
Note: This operation can also be executed with Catalyst user authentication permissions using Catalyst SDKs. Refer to the Catalyst API Prerequisites section for details.Request JSON Format
You must send the names of the columns and their corresponding values to be updated in the request, along with the ROWID of the record, in a JSON format like this:
copy
{ “column1_name”: “column1_value”, “column2_name”: “column2_value”, “column3_name”: “column3_value”, . . “ROWID”:{row_id of the record} }
Request JSON Properties
column_name string mandatorySpecifies the column name of the specified tablecolumn_value string mandatorySpecifies the value for the columnROWID bigint mandatoryThe ROWID of the record to be updatedResponse Details
The response will contain the metadata of the row that was updated such as its ROWID and CREATEDTIME, and the updated column key names and values.
curl -X PUT
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/table/EmpDetails/row
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”
-H “Content-Type:application/json”
-d ‘[ { “Department_Name”:“Finance”, “Employee_Name”:“Morgan Jones”, “ROWID”:3376000000170191 } ]’Sample Responsecopy
{ "status": "success", "data": [ { "CREATORID": 3376000000002099, "MODIFIEDTIME": "2019-02-26 11:18:49", "Department_ID":"IT245", "Department_Name":"Finance", "Employee_Name": "Morgan Jones", "CREATEDTIME": "2019-02-26 11:18:49", "ROWID": 3376000000170191 } ] }
Delete a Row in a Table
Description
This API enables you to delete a particular record or a row of a table in the Data Store, by referring to the table’s unique ID or name. The row is referred by its ROWID.
Request Details
Request URL
DELETE{api-domain}/baas/v1/project/{project_id}/table/{tableIdentifier}/row/{row_id}
copy
project_idNumericalThe unique ID of the project
tableIdentifierNumericalThe unique ID of the table or table name
row_idNumericalThe unique ID of the row
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.tables.rows.DELETE
Note: This operation can also be executed with Catalyst user authentication permissions using Catalyst SDKs. Refer to the Catalyst API Prerequisites section for details.Response Details
The response will contain the metadata of the row that was deleted such as its ROWID and CREATEDTIME, and the column key names and values in the row.
curl -X DELETE
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/table/EmpDetails/row/3376000000171021
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”Sample Responsecopy
{ "status": "success", "data": { "CREATORID": 56000000002003, "MODIFIEDTIME": "2019-02-26 11:18:49", "Department_ID": "IT809" "Department_Name": "Accounting", "Customer_Name": "Jason Pierre", "CREATEDTIME": "2019-02-26 11:18:49", "ROWID": 3376000000171021, "doubleDataType": null } }
Get the Metadata of a Specific Table
Description
This API enables you to retrieve the metadata of a specific table from the Data Store, by referring to the table’s unique ID or name.
Request Details
Request URL
GET{api-domain}/baas/v1/project/{project_id}/table/{tableIdentifier}
copy
project_idNumericalThe unique ID of the project
tableIdentifierNumericalThe unique ID of the table or table name
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.tables.READ
Response Details
The response will return the metadata of the table which will include the table details such as the table_id and table_name, and the metadata of all the columns in it such as the column_id, column_name, and data_type of each column.
curl -X GET
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/table/EmpDetails
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”Sample Responsecopy
{ "status": "success", "data": { "table_id": 56000000111778, "project_id": { "id": 4000000006007, "project_name": "HRApp" }, "table_name": "EmpDetails", "modified_by": { "is_confirmed":true, "zuid": 1019540152, "user_id": 671930455, "email_id": "emma@zylker.com", "first_name": "Amelia", "last_name": "Burrows" }, "modified_time": "2019-02-19T02:45:16+05:30", "column_details": [ { "table_id": 56000000111778, "column_sequence": 1, "column_id": 23400091030, "column_name": "ROWID", "category": 1, "data_type": "bigint", "is_read_only": false, "max_length": 50, "is_mandatory": false, "default_value": "250", "decimal_digits": 2, "is_unique": false, "search_index_enabled": false }, { "table_id": 56000000111778, "column_sequence": 1, "column_id": 23400091031, "column_name": "CREATORID", "category": 1, "data_type": "bigint", "is_read_only": false, "max_length": 50, "is_mandatory": false, "default_value": "250", "decimal_digits": 2, "is_unique": false, "search_index_enabled": true }, { "table_id": 56000000111778, "column_sequence": 1, "column_id": 23400091032, "column_name": "CREATEDTIME", "category": 1, "data_type": "datetime", "is_read_only": false, "max_length": 50, "is_mandatory": false, "default_value": "250", "decimal_digits": 2, "is_unique": false, "search_index_enabled": true }, { "table_id": 56000000111778, "column_sequence": 1, "column_id": 23400091033, "column_name": "MODIFIEDTIME", "category": 1, "data_type": "datetime", "is_read_only": false, "max_length": 50, "is_mandatory": false, "default_value": "250", "decimal_digits": 2, "is_unique": false, "search_index_enabled": true } { "table_id": 56000000111778, "column_sequence": 1, "column_id": 23400091034, "column_name": "EmpID", "category": 1, "data_type": "varchar", "is_read_only": false, "max_length": 6, "is_mandatory": true, "default_value": "", "decimal_digits": , "is_unique": true, "search_index_enabled": true } { "table_id": 56000000111778, "column_sequence": 1, "column_id": 23400091035, "column_name": "EmpName", "category": 1, "data_type": "varchar", "is_read_only": false, "max_length": 30, "is_mandatory": true, "default_value": "", "decimal_digits": , "is_unique": false, "search_index_enabled": false } { "table_id": 56000000111778, "column_sequence": 1, "column_id": 23400091036, "column_name": "DeptName", "category": 1, "data_type": "varchar", "is_read_only": false, "max_length": 30, "is_mandatory": true, "default_value": "", "decimal_digits": , "is_unique": false, "search_index_enabled": false } ], "table_scope": "ORG" } }
Get the Metadata of All Tables
Description
This API enables you to retrieve the metadata of all the tables in your project from the Data Store.
Request Details
Request URL
GET{api-domain}/baas/v1/project/{project_id}/table
copy
project_idNumericalThe unique ID of the project
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.tables.READ
Response Details
The response will return the metadata of all the tables which will include the table details such as the table_id and table_name of each table, and the details of the user that last modified the tables.
curl -X GET
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/table
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”Sample Responsecopy
{ "status":"success", "data":[ { "project_id":{ "project_name":"ShipmentTracking", "id":4000000006007 }, "table_name":"CustomerInfo", "modified_by":{ "zuid":1019540152, "is_confirmed":true, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_id":671930111 }, "modified_time":"Apr 11, 2020 10:33 PM", "table_id":3376000000081234 }, { "project_id":{ "project_name":"ShipmentTracking", "id":3376000000061190 }, "table_name":"EmpInfo", "modified_by":{ "zuid":1019540232, "is_confirmed":true, "email_id":"p.boyle@zylker.com", "first_name":"Patricia", "last_name":"Boyle", "user_id":671930455 }, "modified_time":"Mar 09, 2020 03:16 AM", "table_id":3376000000017896 } ] }
Get the Metadata of a Specific Column
Description
This API enables you to retrieve the metadata of a specific column in a table in the Data Store. The table is referred by its unique ID or name, and the column is referred by the column ID.
Request Details
Request URL
GET{api-domain}/baas/v1/project/{project_id}/table/{tableIdentifier}/column/{column_id}
copy
project_idNumericalThe unique ID of the project
tableIdentifierNumericalThe unique ID of the table or table name
column_idNumericalThe unique ID of the column
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.tables.columns.READ
Response Details
The response will return the metadata of the specific column such as its column_id, column_name, and data_type.
curl -X GET
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/table/EmpDetails/column/4000000042018
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”Sample Responsecopy
{ "status": "success", "data": { "table_id": 56000000118, "column_sequence": 3, "column_id": 4000000042018, "column_name": "Department", "category": 2, "data_type": "text", "is_read_only": false, "max_length": 100, "is_mandatory": true, "default_value": "Admin", "is_unique": false, "search_index_enabled": false } }
Get the Metadata of All Columns
Description
This API enables you to retrieve the metadata of all the columns in a table in the Data Store, by referring to the table’s unique ID or name.
Request Details
Request URL
GET{api-domain}/baas/v1/project/{project_id}/table/{tableIdentifier}/column
copy
project_idNumericalThe unique ID of the project
tableIdentifierNumericalThe unique ID of the table or table name
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.tables.columns.READ
Response Details
The response will return the metadata of all columns such as the column_id, column_name, and data_type of each column.
curl -X GET
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/table/EmpDetails/column
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”Sample Responsecopy
{ "status":"success", "data":[ { "table_id":829000000037723, "column_sequence":1, "column_name":"ROWID", "category":1, "data_type":"bigint", "is_read_only":false, "max_length":50, "is_mandatory":false, "decimal_digits":2, "is_unique":false, "search_index_enabled":false, "column_id":829000000037726 }, { "table_id":829000000037723, "column_sequence":2, "column_name":"CREATORID", "category":1, "data_type":"bigint", "is_read_only":false, "max_length":50, "is_mandatory":false, "decimal_digits":2, "is_unique":false, "search_index_enabled":true, "column_id":829000000037728 }, { "table_id":829000000037723, "column_sequence":3, "column_name":"CREATEDTIME", "category":1, "data_type":"datetime", "is_read_only":false, "max_length":50, "is_mandatory":false, "decimal_digits":2, "is_unique":false, "search_index_enabled":true, "column_id":829000000037730 }, { "table_id":829000000037723, "column_sequence":4, "column_name":"MODIFIEDTIME", "category":1, "data_type":"datetime", "is_read_only":false, "max_length":50, "is_mandatory":false, "decimal_digits":2, "is_unique":false, "search_index_enabled":true, "column_id":829000000037732 }, { "table_id":829000000037723, "column_sequence":5, "column_name":"EmpID", "category":2, "data_type":"bigint", "is_read_only":false, "max_length":15, "is_mandatory":true, "decimal_digits":2, "is_unique":true, "search_index_enabled":false, "column_id":829000000038445 }, { "table_id":829000000037723, "column_sequence":6, "column_name":"EmpName", "category":2, "data_type":"text", "is_read_only":false, "max_length":50, "is_mandatory":true, "decimal_digits":2, "is_unique":false, "search_index_enabled":false, "column_id":829000000038450 } ] }
Truncate a Table
Description
This API enables you to truncate a specific table in the Data Store, by referring to the table’s unique ID or name.
The truncate operation deletes all the records in the table, while retaining its schema. The columns of the table and the table’s metadata will still be available, after the operation has ended.
You will receive notifications in your Catalyst console about the updates of the operation.
Request Details
Request URL
DELETE{api-domain}/baas/v1/project/{project_id}/table/{tableIdentifier}/truncate
copy
project_idNumericalThe unique ID of the project
tableIdentifierNumericalThe unique ID of the table or table name
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.tables.rows.DELETE
Response Details
The response will return the status of the truncate operation.
curl -X DELETE
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/table/NewsHeadlines/truncate
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”Sample Responsecopy
{ "status": "success", "data": "The table will be truncated Shortly. Kindly Check Notification bar for updates" }
Bulk Read Records
The Bulk Read operation can read thousands of records from a specific table in the Data Store and generate a CSV file containing the results of the read operation, if the job is successful. This data-intense operation can be performed in a single API execution.
Catalyst supports three APIs for the bulk read operation: a Create Bulk Read API, a Check Bulk Read Status API to check the status of the job execution manually, and a Download Bulk Read Result API to download the results. You can also configure a callback URL to enable the automatic posting of the job status responses in it.
Note: You can also perform Bulk Read operation using the Catalyst CLI. Refer to Data Store Import and Export CLI documentation.Create a Bulk Read Job
Description
This API triggers the bulk read operation to obtain the records from the table in the Data Store, that match the criteria you specify in the input JSON. The table is referred to using its unique table ID or the table name.
Request Details
Request URL
POST{api-domain}/baas/v1/project/{projectId}/bulk/read
copy
project_idNumericalThe unique ID of the project
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.tables.bulk.READ
Request JSON Properties
The input for the Bulk Read API request must be sent in a JSON format. The request parameters are explained below.
table_identifier string mandatoryThe unique ID of the table or the table name. You can obtain the table ID from Data Store or from the URL when the table is opened in the console.query json optionalThe section where you can define the conditions and criteria for the bulk read job
page numerical optionalThe CSV file generated as the result of the bulk read process contains two hundred thousand/two lakh records in one page.
Page value ‘1’ indicates that the first two lakh records matching your query will get exported. You can fetch subsequent records by increasing the page value.
For example, if you want to fetch records from the range 2,00,001 to 4,00,000, then you must specify the page value as ‘2’.
Default value: 1
select_columns array optionalSpecific columns in the records that need to be fetched from the table. If you do not specify the columns, all columns will be selected and fetched.
You can include multiple columns in an array. Refer to the sample request code window.
criteria json optionalA set of conditions based on which the records will be fetched
group_operator string mandatory (if specifying criteria)The operator that will bind the criteria groups together.
Supported Operators: AND, OR
If you define two or more criteria groups, you can use the AND or the OR operator in your request. For example, you can specify a criteria like “column1 equal value 1 AND column2 contains value 2” in the format specified in the previous section.
Note: You will not be able to use combinations of both the operators in a single API request. You can either use AND or OR in one request.
group json mandatory (if specifying criteria)You can include upto 25 criteria sets in this section. The example shows 3 criteria sets.
Note: You can include only one overall group with one group operator in a single API request.column_name string mandatory (if specifying criteria)Name of the specific column from the table that the criteria should be defined for
comparator string mandatory (if specifying criteria)The comparison operator that matches the column name with the criteria value
Supported Comparators: equal, not_equal, greater_than, greater_equal, less_than, less_equal, starts_with, ends_with, contains, not_contains, in, not_in, between, not_between
Note:
You can specify multiple values for in and not_in comparators, separated by commas.
Catalyst supports only the equal comparator for an encrypted column. You will not be able to use other comparators as the criteria for an encrypted column.
value string mandatory (if specifying criteria)The value for the specific column in the record that you require to be defined as a criteria
callback json optionalThe section where you can define the properties of the callback URL, where automatic JSON responses of the job statuses will be sent to
url string mandatory (if specifying callback)The URL where the automatic responses will be sent to using the HTTP POST method, each time the job status changes. Information about the job details will be contained in the body of the JSON response.
If you don’t configure a callback URL, you must manually check the status of the job processing when you need, using the Check Bulk Read Status API.
headers string optionalHeaders that you require to be passed in the JSON response to the callback URL.
You must specify the headers as:
{
"{header_name_1}" : “{header_value_1}”,
"{header_name_2}" : “{header_value_2}”
}
and so on. Refer to the sample request code.
params string optionalParameters that you require to be require to be appended to the callback URL
You must specify the parameters as:
{
"{param_name_1}" : “{param_value_1}”,
"{param_name_2}" : “{param_value_2}”
}
and so on. Refer to the sample request code.
Response Details
There are three job processing states which will generate three different responses:
In-Progress: When you execute the API, Catalyst will immediately and automatically send you a response indicating that the job execution in progress. If you have configured a callback URL in the request, the response will also be posted to the URL in the format defined by you.
The response will contain a job_id parameter which you can use to check the status of the job execution for subsequent responses, if you have not configured a callback URL.
Success: The success state response will contain a download URL, where you can download a CSV file that contains the records matching your query. If you have not configured a callback URL, this response will not be sent by Catalyst automatically.
Failed: The failed state response will contain a description of the error occurred and the details. If you have not configured a callback URL, this response will not be sent by Catalyst automatically.
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/bulk/read
-H “Authorization: Zoho-oauthtoken 1000.91016.2f*57”
-d ‘{ “table_identifier”: “EmpDetails”, “query” : { “page” : “1”, “select_columns” : [ “EmpID”, “EmpName”, “Department” ], “criteria”: { “group_operator”: “or”, “group”: [ { “column_name”: “Department”, “comparator”: “equal”, “value”: “Marketing” } , { “column_name”: “EmpID”, “comparator”: “greater_than”, “value”: “1000” } , { “column_name”: “EmpName”, “comparator”: “starts_with”, “value”: “S” } ] } }, “callback” : { “url” : “https://hr.zylker.com/en/EmpRecords/_callback.php", “headers” : { “src” : “ZCatalyst”, “operation” : “bulkreadAPI” }, “params” : { “project_name” : “EmployeeDatabase” } } }’Sample Response: Job in Progresscopy
{ "status": "success", "data": { "job_id": 2000000118004, "status": "In-Progress", "operation": "read", "project_details": { "project_name": "ShipmentTracking", "id": 4000000006007 }, "query": [ { "table_id": 3376000000165541, "details": { "page": "1" } } ], "callback": { "url": "https://hr.zylker.com/en/EmpRecords/_callback.php", "headers": { "src" : "ZCatalyst", "operation" : "bulkreadAPI" }, "params": { "project_name" : "EmployeeDatabase" } }, "created_by": { "zuid": 1019540152, "is_confirmed": true, "email_id": "emma@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_id": 671930409 }, "created_time": "Oct 06, 2020 07:06 PM" }
}
Sample Response: Job Successfulcopy
{ "status": "success", "data": { "job_id": 2000000118004, "status": "In-Progress", "operation": "read", "project_details": { "project_name": "ShipmentTracking", "id": 4000000006007 }, "query": [ { "table_id": 3376000000165541, "details": { "page": "1" } } ], "callback": { "url": "https://hr.zylker.com/en/EmpRecords/_callback.php", "headers": { "src" : "ZCatalyst", "operation" : "bulkreadAPI" }, "params": { "project_name" : "EmployeeDatabase" } }, "created_by": { "zuid": 1019540152, "is_confirmed": true, "email_id": "emma@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_id": 671930409 }, "created_time": "Oct 06, 2020 07:06 PM" }
}
Sample Response: Job Failedcopy
{ "status": "success", "data": { "job_id": 2000000117007, "status": "Failed", "operation": "read", "project_details": { "project_name": "ShipmentTracking", "id": 4000000006007 }, "query": [ { "table_id": 3376000000165541, "details": { "page": "1" } } ], "callback": { "url": "https://hr.zylker.com/en/EmpRecords/_callback.php", "headers": { "src" : "ZCatalyst", "operation" : "bulkreadAPI" }, "params": { "project_name" : "EmployeeDatabase" } }, "created_by": { "zuid": 1019540152, "is_confirmed": true, "email_id": "emma@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_id": 671930409 }, "created_time": "Oct 06, 2020 07:00 PM", "results": { "description": "The column ID in select_columns is invalid", } }
}
Check Bulk Read Status
Description
You can execute this API to manually check the status of the bulk read job that you initiated previously.
If you had not configured a callback URL in your JSON request, you must check the job status yourself by executing this API. You must use the job_id that is sent to you in the automatic in-progress response when you initiate the bulk read operation, to check the job status subsequently.
Request Details
Request URL
GET{api-domain}/baas/v1/project/{project_id}/bulk/read/{job_id}
copy
project_idNumericalThe unique ID of the project
job_idNumericalThe unique ID of the job that was sent in the initial in-progress status response after the Bulk Read API was executed
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.tables.bulk.READ
Response Details
The JSON response for the success state will contain the details of the executed job, along with a download URL where you can download a CSV file that will contain a list of records matching your bulk read job query.
The JSON response for the failed state will contain the details of the executed job, along with a description of the error the occurred in the job processing, and its details, such as the rows that were skipped from being read and the reasons.
curl -X GET
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/bulk/read/2000000118004
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”Sample Response: Job in Progresscopy
{ "status": "success", "data": { "job_id": 2000000118004, "status": "In-Progress", "operation": "read", "project_details": { "project_name": "EmployeeDatabase", "id": 4000000006007 }, "query": [ { "table_id": 3376000000165541, "details": { "page": "1" } } ], "callback": { "url": "https://hr.zylker.com/en/EmpRecords/_callback.php", "headers": { "src" : "ZCatalyst", "operation" : "bulkreadAPI" }, "params": { "project_name" : "EmployeeDatabase" } }, "created_by": { "zuid": 1019540152, "is_confirmed": true, "email_id": "emma@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_id": 671930409 }, "created_time": "Oct 06, 2020 07:06 PM" }
}
Sample Response: Job Successfulcopy
{ "status": "success", "data": { "job_id": 2000000118004, "status": "Completed", "operation": "read", "project_details": { "project_name": "EmployeeDatabase", "id": 4000000006007 }, "query": [ { "table_id": 3376000000165541, "details": { "page": "1" } } ], "callback": { "url": "https://hr.zylker.com/en/EmpRecords/_callback.php", "headers": { "src" : "ZCatalyst", "operation" : "bulkreadAPI" }, "params": { "project_name" : "EmployeeDatabase" } }, "created_by": { "zuid": 1019540152, "is_confirmed": true, "email_id": "emma@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_id": 671930409 }, "created_time": "Oct 06, 2020 07:06 PM", "results": { "download_url": "https://api.catalyst.zoho.com/baas/v1/bulk/read/2000000117007/download", "description": "Bulk READ job 2000000117007 completed.", "details": [ { "table_id": 3376000000165541, "records_processed": 21, "more_records": false } ] } }
}
Sample Response: Job Failedcopy
{ "status": "success", "data": { "job_id": 2000000117007, "status": "Failed", "operation": "read", "project_details": { "project_name": "EmployeeDatabase", "id": 4000000006007 }, "query": [ { "table_id": 3376000000165541, "details": { "page": "1" } } ], "callback": { "url": "https://hr.zylker.com/en/EmpRecords/_callback.php", "headers": { "src" : "ZCatalyst", "operation" : "bulkreadAPI" }, "params": { "project_name" : "EmployeeDatabase" } }, "created_by": { "zuid": 1019540152, "is_confirmed": true, "email_id": "emma@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_id": 671930409 }, "created_time": "Oct 06, 2020 07:00 PM", "results": { "description": "The column ID in select_columns is invalid", } }
}
Download Bulk Read Result
Description
You can execute this API to download the result of a successful bulk read job that you initiated. This URL will also be sent in JSON response for the success state.
The downloaded CSV result file will contain a list of all the records matching your bulk read job query.
Note: The download URL will be valid for 1 day since its generation. The link will expire after that time period, and you will not be able to obtain the CSV result file containing the job details.Request Details
Request URL
GET{api-domain}/baas/v1/project/{project_id}/bulk/read/{job_id}/download
copy
project_idNumericalThe unique ID of the project
job_idNumericalThe unique ID of the job that was sent in the initial in-progress status response after the Bulk Read API was executed
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.tables.bulk.READ
Response Details
The bulk read result file will be automatically downloaded to the configured directory in your system after you execute this API.
File format: ZIP file containing the CSV result file
Sample result file showing the details of a bulk read job:
curl -X GET
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/bulk/read/2000000118004/download
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”
Bulk Write Records
The Bulk Write operation can fetch thousands of records from a CSV file uploaded in the File Store and insert them in a specific table in the Data Store. This data intense operation can be performed in a single API execution.
After the bulk write operation has executed successfully, a CSV report file containing the details of the job execution will be generated at a download URL.
Catalyst supports three APIs for the bulk write operation: a Create Bulk Write API, a Check Bulk Write Status API to check the status of the job execution manually, and a Download Bulk Write Result API to download the results. You can also configure a callback URL to enable automatic posting of the job status responses in it.
Note: You can also perform Bulk Write operation using the Catalyst CLI. Refer to Data Store Import and Export CLI documentation.Create a Bulk Write Job
Description
This API triggers the bulk write operation to obtain the records from a CSV file in the File Store and export them to a table in the Data Store, based on the criteria you specify in the input JSON. The CSV file is referred to using its File ID in the File Store, and the table is referred to using its unique table ID or the table name.
Note:
You must upload the CSV file containing the data in the File Store, before you begin executing this operation.
The CSV file’s first row must be the header row i.e., the column names must be present as the header row.
The CSV file must contain data in the format that adheres to CSV file standards. If the file is not in the standard format, the data written to the table might be corrupted.
You can insert 5000 records in each table per project in the development environment using this API. If the CSV file contains records more than that, the first 5000 records will be written to the table. The others will be skipped in the development environment. There are no table limits for insertion in the production environment. However, the Bulk Write API can insert upto 100000 records in a single API call from a CSV file even in the production environment. If you require more records to be written, you can do so in batches of 100000 records by sending multiple Bulk Write API requests accordingly.
There are three operations that can be performed using this API:
- Insert: Inserts new rows of data into the table from the CSV file
- Update: Updates existing rows of data in the table. The records are identified either using a unique column in the table, or using their ROWIDs generated in the Data Store.
- Upsert: Enables both insert and update operations at the same time. If the record already exists, the row is updated. If the record does not exist, a new row with the data is inserted.
Request Details
Request URL
POST{api-domain}/baas/v1/project/{projectId}/bulk/write
copy
project_idNumericalThe unique ID of the project
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.tables.bulk.CREATE
Request JSON Properties
The input for the Bulk Write API request must be sent in a JSON format. The request parameters are explained below.
table_identifier string mandatoryThe unique ID of the table or the table name. You can obtain the table ID from Data Store or from the URL when the table is opened in the console.operation string optionalSpecifies the operation to be executed using the API.
Allowed values: insert, update, upsert
Default operation: insert
file_id numerical mandatoryThe unique ID of the CSV file in the File Store which contains the records to be written.find_by string mandatory (update, upsert), optional (insert)The unique column using which the records are identified.
For example, if you specify a unique column called ‘EmployeeID’ as the find_by value, Catalyst will search the records in the Data Store table using the EmployeeID value. For the update operation, Catalyst will update the rows that match the EmployeeID from the CSV file. For the upsert operation, Catalyst will update existing rows, and insert new rows if there are no records with matching EmployeeID values.
Update: This can be a column with unique values as configured in the Data Store, or the ROWID generated by Catalyst for the records.
Upsert: You can only specify a column with unique values as configured in the Data Store. You will not be able to specify the ROWID as the find_by value. This is because, upsert will insert new rows if matching ones are not found, and the ROWID values will not be available for rows not existing in the Data Store.
Insert: If you specify a find_by column for an insert operation, any records matching the column values from the CSV file will be skipped and not inserted into the Data Store table. This is because, insert cannot update if a given record already exists.
fk_mapping json optionalForeign key mapping for the columns that are primary keys in other tables. This is specified if any columns imported from the CSV file should be configured as foreign keys.
You must map foreign keys in the following format:
{
“local_column” : “local_column_name_1”,
“reference_column” : “reference_column_name_1”
}where local_column is the name of the column in the table where the bulk write operation is processed, and reference_column is the name of the column in the table in which it is a primary key.
Refer to the sample request code.
callback json optionalThe section where you can define the properties of the callback URL, where automatic JSON responses of the job statuses will be sent to
url string mandatory (if specifying callback)The URL where the automatic responses will be sent to using the HTTP POST method, each time the job status changes. Information about the job details will be contained in the body of the JSON response.
If you don’t configure a callback URL, you must manually check the status of the job processing when you need, using the Check Bulk Write Status API.
headers string optionalHeaders that you require to be passed in the JSON response to the callback URL
You must specify the headers as:
{
"{header_name_1}" : “{header_value_1}”,
"{header_name_2}" : “{header_value_2}”
}and so on. Refer to the sample request code.
params string optionalParameters that you require to be require to be appended to the callback URL
You must specify the parameters as:
{
"{param_name_1}" : “{param_value_1}”,
"{param_name_2}" : “{param_value_2}”
}and so on. Refer to the sample request code.
Response Details
There are three job processing states which will generate three different responses:
In-Progress: When you execute the API, Catalyst will immediately and automatically send you a response indicating that the job execution in progress. If you have configured a callback URL in the request, the response will also be posted to the URL in the format defined by you.
The response will contain a job_id parameter which you can use to check the status of the job execution for subsequent responses, if you have not configured a callback URL.
Success: The success state response will contain a download URL, where you can download a CSV report file that contains the details of the job execution. It will list all the records that were skipped from being written along with the reasons. If you have not configured a callback URL, this response will not be sent by Catalyst automatically.
Failed: The failed state response will contain a description of the error occurred and the details. If you have not configured a callback URL, this response will not be sent by Catalyst automatically.
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/bulk/write
-H “Authorization: Zoho-oauthtoken 1000.91016.2f*57”
-d ‘{ “table_identifier”: “3376000000165511”, “operation” : “insert”, “file_id” : 3376000000363098, “callback” : { “url” : “https://hr.zylker.com/en/EmpRecords/_callback.php", “headers” : { “src” : “ZCatalyst”, “operation” : “bulkwriteAPI” }, “params” : { “project_name” : “EmployeeDatabase” } }, “find_by” : “EmpID”, “fk_mapping” : [ { “local_column” : “EmployeeID”, “reference_column” : “EmpID” }, { “local_column” : “DepartmentID”, “reference_column” : “DeptID” } ] }’Sample Response: Job in Progresscopy
{ "status": "success", "data": { "job_id": 2000000110044, "status": "In-Progress", "operation": "insert", "project_details": { "project_name": "ShipmentTracking", "id": 4000000006007 }, "query": [ { "table_id": 3376000000165511, "details": { "file_id": 3376000000363098 } } ], "callback": { "url": "https://hr.zylker.com/en/EmpRecords/_callback.php", "headers": { "src": "ZCatalyst", "operation": "bulkwriteAPI" }, "params": { "project_name": "EmployeeDatabase" } }, "created_by": { "zuid": 3000000006111, "is_confirmed": true, "email_id": "emma@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_id": 671930409 }, "created_time": "Oct 05, 2020 07:33 PM" } }
Sample Response: Job Successfulcopy
{ "status": "success", "data": { "job_id": 2000000110044, "status": "Completed", "operation": "insert", "project_details": { "project_name": "ShipmentTracking", "id": 4000000006007 }, "query": [ { "table_id": 3376000000165511, "details": { "file_id": 3376000000363098 } } ], "callback": { "url": "https://hr.zylker.com/en/EmpRecords/_callback.php", "headers": { "src": "ZCatalyst", "operation": "bulkwriteAPI" }, "params": { "project_name": "EmployeeDatabase" } }, "created_by": { "zuid": 3000000006111, "is_confirmed": true, "email_id": "emma@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_id": 671930409 }, "created_time": "Oct 05, 2020 07:25 PM", "results": { "download_url": "https://api.catalyst.zoho.com/baas/v1/bulk/write/2000000110013/download", "description": "Bulk WRITE job completed. ", "details": [ { "table_id": 3376000000165511, "records_processed": 176 } ] } } }
Sample Response: Job Failedcopy
{ "status": "success", "data": { "job_id": 2000000110044, "status": "Failed", "operation": "insert", "project_details": { "project_name": "ShipmentTracking", "id": 4000000006007 }, "query": [ { "table_id": 3376000000165511, "details": { "file_id": 3376000000363098 } } ], "callback": { "url": "https://hr.zylker.com/en/EmpRecords/_callback.php", "headers": { "src": "ZCatalyst", "operation": "bulkwriteAPI" }, "params": { "project_name": "EmployeeDatabase" } } "created_by": { "zuid": 3000000006111, "is_confirmed": true, "email_id": "emma@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_id": 671930409 }, "created_time": "Oct 05, 2020 07:25 PM", "results": { "description": "The reference_column 'DeptID' in fk_mapping of table 3376000000165511 is not a unique column", "details": [ ] } } }
Check Bulk Write Status
Description
You can execute this API to manually check the status of the bulk write job that you initiated previously.
If you had not configured a callback URL in your JSON request, you must check the job status yourself by executing this API. You must use the job_id that is sent to you in the automatic in-progress response when you initiated the bulk write operation, to check the job status subsequently.
Request Details
Request URL
GET{api-domain}/baas/v1/project/{project_id}/bulk/write/{job_id}
copy
project_idNumericalThe unique ID of the project
job_idNumericalThe unique ID of the job that was sent in the initial [in-progress status response](/en/api/introduction/overview-and-prerequisites/#response-details) after the Bulk Write API was executed
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.tables.bulk.CREATE
Response Details
The JSON response for the success state will contain the details of the executed job, along with a download URL, where you can download a CSV report file that will contain the details of the job execution. It will list all the records that were skipped from being written along with the reasons.
The JSON response for the failed state will contain the details of the executed job, along with a description of the error occurred in the job processing, and its details.
curl -X GET
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/bulk/write/2000000110044
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”Sample Response: Job in Progresscopy
{ "status": "success", "data": { "job_id": 2000000110044, "status": "In-Progress", "operation": "insert", "project_details": { "project_name": "EmployeeDatabase", "id": 4000000006007 } "query": [ { "table_id": 3376000000165511, "details": { "file_id": 3376000000363098 } } ], "callback": { "url": "https://hr.zylker.com/en/EmpRecords/_callback.php", "headers": { "src": "ZCatalyst", "operation": "bulkwriteAPI" }, "params": { "project_name": "EmployeeDatabase" } }, "created_by": { "zuid": 3000000006111, "is_confirmed": true, "email_id": "emma@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_id": 671930409 }, "created_time": "Oct 05, 2020 07:33 PM" } }
Sample Response: Job Successfulcopy
{ "status": "success", "data": { "job_id": 2000000110044, "status": "Completed", "operation": "insert", "project_details": { "project_name": "EmployeeDatabase", "id": 4000000006007 } "query": [ { "table_id": 3376000000165511, "details": { "file_id": 3376000000363098 } } ], "callback": { "url": "https://hr.zylker.com/en/EmpRecords/_callback.php", "headers": { "src": "ZCatalyst", "operation": "bulkwriteAPI" }, "params": { "project_name": "EmployeeDatabase" } }, "created_by": { "zuid": 3000000006111, "is_confirmed": true, "email_id": "emma@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_id": 671930409 }, "created_time": "Oct 05, 2020 07:25 PM", "results": { "download_url": "https://api.catalyst.zoho.com/baas/v1/bulk/write/2000000110013/download", "description": "Bulk WRITE job completed. ", "details": [ { "table_id": 3376000000165511, "records_processed": 176 } ] } } }
Sample Response: Job Failedcopy
{ "status": "success", "data": { "job_id": 2000000110044, "status": "Failed", "operation": "insert", "project_details": { "project_name": "EmployeeDatabase", "id": 4000000006007 } "query": [ { "table_id": 3376000000165511, "details": { "file_id": 3376000000363098 } } ], "callback": { "url": "https://hr.zylker.com/en/EmpRecords/_callback.php", "headers": { "src": "ZCatalyst", "operation": "bulkwriteAPI" }, "params": { "project_name": "EmployeeDatabase" } }, "created_by": { "zuid": 3000000006111, "is_confirmed": true, "email_id": "emma@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_id": 671930409 }, "created_time": "Oct 05, 2020 07:25 PM", "results": { "description": "The reference_column 'DeptID' in fk_mapping of table 3376000000165511 is not a unique column", "details": [ ] } } }
Download Bulk Write Result
Description
You can execute this API to download the result of a successful bulk write job that you initiated. This URL will also be sent in JSON response for the success state.
The downloaded CSV file will contain the details of the job execution. It will list all the records that were skipped from being written along with the reasons.
Note: The download URL will be valid for 1 day since its generation. The link will expire after that time period, and you will not be able to obtain the CSV result file containing the job details.Request Details
Request URL
GET{api-domain}/baas/v1/project/{project_id}/bulk/write/{job_id}/download
copy
project_idNumericalThe unique ID of the project
job_idNumericalThe unique ID of the job that was sent in the initial [in-progress status response](/en/api/introduction/overview-and-prerequisites/#response-details) after the Bulk Write API was executed
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.tables.bulk.CREATE
Response Details
The bulk write result file will be automatically downloaded to the configured directory in your system after you execute this API.
File format: ZIP file containing the CSV result file
Sample result file showing the details of a bulk write job:
curl -X GET
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/bulk/write/2000000110044/download
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”
Bulk Delete Rows in a Table
Description
This API enables you to delete records or rows of data in bulk from a specific table in the Data Store. The table is referred by its unique ID or name.
The bulk delete operation can delete a maximum of 200 rows in a single API call. You can choose the rows to be deleted by passing the unique ROWIDs of those rows as params in the request URL, as shown in the sample request.
You must include at least one ROWID, and can include upto 200 ROWIDs, in the request.
Request Details
Request URL
DELETE{api-domain}/baas/v1/project/{project_id}/table/{tableIdentifier}/row?ids={rowID_1},{rowID_2},{rowID_3}
copy
project_idNumericalThe unique ID of the project
tableIdentifierNumericalThe unique ID of the table or table name
idsNumericalThe Row IDs of the records to be deleted as params. Multiple Row IDs must be separated by commas. The parameter key name must be ids
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.tables.rows.DELETE
Response Details
The response contains the data of all the rows that were deleted through the operation, including their metadata like theROWID and CREATEDTIME, and the column key names and values in each row.
curl -X DELETE
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/table/EmpDetails/row?ids=1028000000171815,1028000000171810,1028000000171805,1028000000171617
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”Sample Responsecopy
{ "status": "success", "data": [ { "CREATORID": "1444000000003001", "MODIFIEDTIME": "2020-11-19 15:20:21:830", "Department_ID":"IT245", "Department_Name":"Finance", "Employee_Name": "Morgan Jones", "CREATEDTIME": "2020-11-19 15:20:21:830", "ROWID": "1028000000171815" }, { "CREATORID": "1444000000003001", "MODIFIEDTIME": "2020-11-19 15:20:34:503", "Department_ID":"IT121", "Department_Name":"HR", "Employee_Name": "Leena Medley", "CREATEDTIME": "2020-11-19 15:20:34:503", "ROWID": "1028000000171810" }, { "CREATORID": "1444000000003001", "MODIFIEDTIME": "2020-11-19 15:20:42:314", "Department_ID":"IT783", "Department_Name":"Marketing", "Employee_Name": "Tamira Shah", "CREATEDTIME": "2020-11-19 15:20:42:314", "ROWID": "1028000000171805" }, { "CREATORID": "1444000000003001", "MODIFIEDTIME": "2020-11-19 15:20:42:314", "Department_ID":"IT098", "Department_Name":"Sales", "Employee_Name": "Julia McGregor", "CREATEDTIME": "2020-11-19 15:20:42:314", "ROWID": "1028000000171617" } ]
}
SDK Documentation
File Store
Catalyst File Store provides cloud storage solutions to store, manage, and organize your application files and user data files such as images, videos, CSV files, spreadsheets, and more in folders.
Get the Details of a Specific Folder
Description
This API enables you to retrieve the details of a specific folder in the File Store, along with the details of all the files in the folder. The folder is referred by its unique Folder ID.
Request Details
Request URL
GET{api-domain}/baas/v1/project/{project_id}/folder/{folder_id}
copy
project_idNumericalThe unique ID of the project
folder_idNumericalThe unique ID of the folder
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.folders.READ
Response Details
The JSON response returns the metadata of the particular folder such as the folder_name, the details of the user who created and last modified it, along with the metadata of all the files in the folder, such as the file_id, file_name, file_size of each file.
curl -X GET
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/folder/3376000000427654
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”Sample Responsecopy
{ "status":"success", "data":{ "folder_name":"PricingInfo", "created_time":"Apr 01, 2020 11:11 AM", "created_by":{ "zuid":1019540152, "is_confirmed":true, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_id":671930455 }, "modified_time":"Apr 11, 2020 10:41 PM", "modified_by":{ "zuid":1019540876, "is_confirmed":true, "email_id":"p.boyle@zylker.com", "first_name":"Patricia", "last_name":"Boyle", "user_id":671930321 }, "project_details":{ "project_name":"ShipmentTracking", "id":4000000006007 }, "file_details":[ { "id":337600000030123, "file_location":null, "file_name":"PO1898908GT.pdf", "file_size":10, "created_by":{ "zuid":1019540199, "is_confirmed":true, "email_id":"jane.simmons@zylker.com", "first_name":"Jane", "last_name":"Simmons", "user_id":671930000 }, "created_time":"Feb 21, 2020 01:11 PM", "modified_by":{ "zuid":1019540152, "is_confirmed":true, "email_id":"p.boyle@zylker.com", "first_name":"Patricia", "last_name":"Boyle", "user_id":671930321 }, "modified_time":"Jan 13, 2020 08:00 PM", "project_details":{ "project_name":"ShipmentTracking", "id":4000000006007 }, "folder_details": 3376000000427654 }, { "id":337600000030121, "file_location":null, "file_name":"ST1898190CR.pdf", "file_size":9, "created_by":{ "zuid":1019540152, "is_confirmed":true, "email_id":"p.boyle@zylker.com", "first_name":"Patricia", "last_name":"Boyle", "user_id":671930321 }, "created_time":"Jan 01, 2020 09:09 PM", "modified_by":{ "zuid":1019540152, "is_confirmed":true, "email_id":"p.boyle@zylker.com", "first_name":"Patricia", "last_name":"Boyle", "user_id":671930321 }, "modified_time":"Mar 11, 2020 07:09 AM", "project_details":{ "project_name":"ShipmentTracking", "id":4000000006007 }, "folder_details":3376000000427654 } ], "audit_consent": false, "id":829000000038455 }
}
Get the Details of All Folders
Description
This API enables you to retrieve the details of all the folders in your project from the File Store.
Request Details
Request URL
GET{api-domain}/baas/v1/project/{project_id}/folder
copy
project_idNumericalThe unique ID of the project
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.folders.READ
Response Details
The JSON response returns the metadata of all the folders such as the folder_name, the details of the user who created and last modified it, and the project details.
curl -X GET
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/folder
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”Sample Responsecopy
{ "status":"success", "data":[ { "folder_name":"ShipmentOrderForms", "created_time":"Oct 22, 2019 11:01 AM", "created_by":{ "zuid":1019540152, "is_confirmed":true, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type": "Admin", "user_id":671930455 }, "modified_time": "Jun 05, 2023 12:26 AM", "modified_by": { "zuid": 671930455, "is_confirmed": false, "email_id": "emma@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_type": "Admin", "user_id": 671930455 }, "project_details":{ "project_name":"ShipmentTracking", "id":4000000006007 }, "audit_consent": false, "id":105000000121098 } { "folder_name":"PricingInfo", "created_time":"Sep 01, 2019 03:33 PM", "created_by":{ "zuid":1019540152, "is_confirmed":true, "email_id":"p.boyle@zylker.com", "first_name":"Patricia", "last_name":"Boyle", "user_type": "Admin", "user_id":671930765 }, "modified_time": "Jun 05, 2023 12:26 AM", "modified_by": { "zuid": 671930455, "is_confirmed": false, "email_id": "p.boyle@zylker.com", "first_name": "Patricia", "last_name": "Boyle", "user_type": "Admin", "user_id": 671930765 }, "project_details":{ "project_name":"ShipmentTracking", "id":4000000006007 }, "audit_consent": false, "id":105000000145678 } ]
}
Upload a File In a Folder
Description
This API enables you to upload a file from your local system to an existing folder in the File Store, by referring to the folder’s unique ID. You can upload an image, text document, CSV, or any type of file you need. The maximum size of a file that you can upload is 100 MB.
You must specify the file path and the file name in the API request, as shown in the sample request.
Note: Catalyst provides 1 GB of File Store space for each project in the development environment. There are no upper limits for storage in the production environment.Request Details
Request URL
POST{api-domain}/baas/v1/project/{project_id}/folder/{folder_id}/file
copy
project_idNumericalThe unique ID of the project
folder_idNumericalThe unique ID of the folder
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Content-Type: multipart/form-data; boundary=—-WebKitFormBoundary7MA4YWxkTrZu0gWOptional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.files.CREATE
Note: This operation can also be executed with Catalyst user authentication permissions using Catalyst SDKs. Refer to the Catalyst API Prerequisites section for details.Request JSON Properties
code file mandatoryPath of the file to be uploaded in your computer
Maximum file size allowed: 100 MB
file_name string mandatoryName of the file to be uploadedResponse Details
The JSON response returns the metadata of the file that was uploaded, such as the file_name, file_size, and the details of the user who uploaded the file.
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/folder/105000000121098/file
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”
-H “content-type: multipart/form-data; boundary=—-WebKitFormBoundary7MA4YWxkTrZu0gW”
-F code=@/Desktop/EmployeeInfo.csv
-F file_name=EmployeeInfoSample Responsecopy
{ "status": "success", "data": { "id": 56000000368030, "file_location": null, "file_name": "EmployeeInfo", "file_size": 264328, "created_by": { "zuid": 1019540152, "is_confirmed": false, "email_id": "emma@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_type": "Admin", "user_id": 64635102 }, "created_time": "Jun 05, 2023 12:40 AM", "modified_by": { "zuid": 1019540152, "is_confirmed": false, "email_id": "emma@zylker.com", "first_name": "Amelia", "last_name": "Burrows", "user_type": "Admin", "user_id": 64635102 }, "modified_time": "Jun 05, 2023 12:40 AM", "project_details": { "project_name": "EmployeePortal", "id": 3376000001796044, "project_type": "Live" }, "folder_details": 3376000001925212 }
}
Download a File From a Folder
Description
This API enables you to download a file from an existing folder in the File Store, by referring to the unique IDs of the folder and file.
The file will be automatically downloaded to the configured directory in your system after you execute this API. Catalyst will not send any response back for this request.
Request Details
Request URL
GET{api-domain}/baas/v1/project/{project_id}/folder/{folder_id}/file/{file_id}/download
copy
project_idNumericalThe unique ID of the project
folder_idNumericalThe unique ID of the folder
file_idNumericalThe unique ID of the file
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Content-Type: application/jsonOptional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.files.READ
Note: This operation can also be executed with Catalyst user authentication permissions using Catalyst SDKs. Refer to the Catalyst API Prerequisites section for details.
curl -X GET
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/folder/105000000121098/file/332000000044009/download
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”
-H “Content-Type: application/json”
Get the Details of a Specific File
Description
This API enables you to retrieve the details of a specific file in a folder in the File Store. The folder and the file are referred by their unique IDs.
Request Details
Request URL
GET{api-domain}/baas/v1/project/{project_id}/folder/{folder_id}/file/{file_id}
copy
project_idNumericalThe unique ID of the project
folder_idNumericalThe unique ID of the folder
file_idNumericalThe unique ID of the file
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.files.READ
Note: This operation can also be executed with Catalyst user authentication permissions using Catalyst SDKs. Refer to the Catalyst API Prerequisites section for details.Response Details
The response will return the metadata and details of the particular file including its file_name, file_size, and the details of the user who created and last modified the file.
curl -X GET
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/folder/105000000121098/file/332000000044009
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”Sample Responsecopy
{ "status":"success", "data":{ "id": 332000000044009, "file_location":null, "file_name":"Sales2019.csv", "file_size":264328, "created_by":{ "zuid":1019540152, "is_confirmed":true, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type": "Admin", "user_id":671930111 }, "created_time":"Apr 09, 2020 01:10 AM", "modified_by":{ "zuid":1019540009, "is_confirmed":true, "email_id":"p.boyle@zylker.com", "first_name":"Patricia", "last_name":"Boyle", "user_type": "Admin", "user_id":671930989 }, "modified_time":"Mar 01, 2020 06:18 PM", "project_details":{ "project_name":"ShipmentTracking", "id":4000000006007, "project_type": "Live" }, "folder_details":105000000121098 } }
Get the Details of Multiple Files
Description
This API enables you to retrieve the details of multiple files in a particular folder in the File Store. The folder is referred by its unique Folder ID.
This API request can retrieve the details of a maximum number of 200 files in the folder in one call. Therefore, if a folder has 300 files, you can execute a second API call to retrieve the details of files 201 to 300. This can be done by specifying the start and end values in the query params in the request as depicted below. The first 200 files are retrieved by default, if the query params are not specified.
Request Details
Request URL
GET{api-domain}/baas/v1/project/{project_id}/folder/{folder_id}/file?start={start_index}&end={number_of_files}
copy
project_idNumericalThe unique ID of the project
folder_idNumericalThe unique ID of the folder
startNumericalStart value of the current bundle
endNumericalNumber of files to be retrieved. The maximum value allowed is 200.
For example, to retrieve the details of files 201 to 300, specify the start as ‘201’ and the end as ‘100’.
Note: The start value must always be greater than 0.Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.files.READ
Note: This operation can also be executed with Catalyst user authentication permissions using Catalyst SDKs. Refer to the Catalyst API Prerequisites section for details.Response Details
The response will return the metadata and details of all the files that are returned, including their file_name, file_size, and the details of the user who created and last modified the file.
curl -X GET
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/folder/3376000000301993/file?start=201&end=2
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”Sample Responsecopy
{ "status":"success", "data": [ { "id":3376000000301234, "file_location":null, "file_name":"AuditLog.csv", "file_size":1621, "created_by": { "zuid":10016873924, "is_confirmed":true, "email_id":"emma@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "user_type": "Admin", "user_id":671930400 }, "created_time":"Apr 27, 2020 07:37 PM", "modified_by": { "zuid":10016873924, "is_confirmed":true, "email_id":"p.boyle@zylker.com", "first_name":"Patricia", "last_name":"Boyle", "user_type": "Admin", "user_id":671938657 }, "modified_time":"Apr 27, 2020 07:37 PM", "project_details": { "project_name":"ShipmentTracking", "id": 4000000006007, "project_type": "Live" }, "folder_details":3376000000301993 }, { "id":3376000000300987, "file_location":null, "file_name":"ZohoCatalyst-Pricing.pdf", "file_size":346466, "created_by": { "zuid":10016873924, "is_confirmed":true, "email_id":"emma@zylker.com", "first_name":"Ameila", "last_name":"Burrows", "user_type": "Admin", "user_id":671930400 }, "created_time":"Apr 27, 2020 07:36 PM", "modified_by": { "zuid":10016873924, "is_confirmed":true, "email_id":"p.boyle@zylker.com", "first_name":"Patricia", "last_name":"Boyle", "user_type": "Admin", "user_id":671938657 }, "modified_time":"Apr 27, 2020 07:36 PM", "project_details": { "project_name":"ShipmentTracking", "id":3376000000168765, "project_type": "Live" }, "folder_details":3376000000301993 } ] }
Delete a File
Description
This API is used to delete an existing file from a folder in the File Store, by referring to the Folder ID and File ID.
Request Details
Request URL
DELETE{api-domain}/baas/v1/project/{project_id}/folder/{folder_id}/file/{file_id}
copy
project_idNumericalThe unique ID of the project
folder_idNumericalThe unique ID of the folder
file_idNumericalThe unique ID of the file
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Content-Type: application/jsonOptional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.files.DELETE
Note: This operation can also be executed with Catalyst user authentication permissions using Catalyst SDKs. Refer to the Catalyst API Prerequisites section for details.Response Details
The response will return the metadata and details of the file that was deleted including its file_name, file_size, and the details of the user who created and last modified the file.
curl -X DELETE
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/folder/105000000121098/file/4000000044001
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”
-H “Content-Type: application/json”Sample Responsecopy
{ "status": "success", "data": { "id": 4000000044001, "file_location": null, "file_name": "bookingsSept2019.pdf", "file_size": 458186, "created_by": { "zuid": 671787990, "is_confirmed":true, "user_type": "Admin", "user_id": 671930400, "email_id": "emma@zylker.com", "first_name": "Amelia", "last_name": "Burrows" }, "created_time": "2019-03-14T12:35:18+05:30", "modified_by": { "zuid": 671787990, "is_confirmed":true, "user_type": "Admin", "user_id": 671930400, "email_id": "emma@zylker.com", "first_name": "Amelia", "last_name": "Burrows" }, "modified_time": "2019-03-14T12:35:18+05:30", "project_details": { "id": 4000000006007, "project_name": "ShipmentTracking", "project_type": "Live" }, "folder_details": 105000000121098 } }
Cache
Catalyst Cache is a small in-memory storage component that enables you to store data that is frequently accessed by your Catalyst application.
Catalyst cache is divided into partitions or cache units called segments. Each segment stores cache items in the form of key-value pairs.
Insert a Key-Value Pair In a Cache Segment
Description
This API enables you to insert a key-value pair as the cache item in a cache segment. The segment is referred by its unique ID. The key represents the attribute and the value is the data of the cache item.
You can also optionally specify the expiry time of the cache item. The default and maximum validity of a cache item is two days.
Note:The cache segment must already be created. You can create a segment from the Catalyst console or use the default segment.Request Details
Request URL
POST{api-domain}/baas/v1/project/{project_id}/segment/{segment_id}/cache
copy
project_idNumericalThe unique ID of the project
segment_idNumericalThe unique ID of the cache segment
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Content-Type: application/jsonOptional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.cache.CREATE
Request JSON Properties
cache_name string mandatoryKey name of the cache segment
Max Size: 50 characterscache_value string mandatoryData value the key represents
Max Size: 16000 charactersexpiry_in_hours long optionalDuration of expiry in hours
Max Size: 48Response Details
The response will return the details of the cache item such as the cache_name, cache_value and expires_in, along with the details of the segment it was inserted into.
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/segment/3376000000425030/cache
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”
-H “Content-Type:application/json”
-d ‘{ “cache_name”:“counter”, “cache_value”:“125”, “expiry_in_hours”:24 }’Sample Responsecopy
{ "status": "success", "data": { "cache_name": "counter", "cache_value": "125", "project_details": { "id": 4000000006007, "project_name": "ShipmentTracking", "project_type": "Live" }, "segment_details": { "id": 3376000000425030, "segment_name": "CustomerLocation" }, "expires_in": "Mar 28, 2019 02:03 AM", "expiry_in_hours": 24, "ttl_in_milliseconds": 86400000 } }
Get the Value of a Cache Key
Description
This API enables you to retrieve the value of a cache item from a segment in the cache. The segment is referred by its unique segment ID, and you must pass the key of the cache item in the request.
This API enables you to insert a key-value pair as the cache item in a cache segment. The segment is referred by its unique ID. The key represents the attribute and the value is the data of the cache item.
You can also optionally specify the expiry time of the cache item. The default and maximum validity of a cache item is two days.
Request Details
Request URL
GET{api-domain}/baas/v1/project/{project_id}/segment/{segment_id}/cache?cacheKey={cache_key}
copy
project_idNumericalThe unique ID of the project
segment_idNumericalThe unique ID of the cache segment
cache_keyNumericalThe unique key in a segment whose value needs to be retrieved
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.cache.READ
Response Details
The response will return the details of the cache item such as the cache_name, cache_value and expires_in, along with the details of its segment.
curl -X GET
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/segment/31000000006023/cache?cacheKey=counter
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”Sample Responsecopy
{ "status": "success", "data": { "cache_name": "counter", "cache_value": "1344", "project_details": { "id": 4000000006007, "project_name": "ShipmentTracking", "project_type": "Live" }, "segment_details": { "id": 31000000006023, "segment_name": "MailCounters" }, "expires_in": "2019-03-13T18:36:02+05:30", "expiry_in_hours": 3, "ttl_in_milliseconds": 81187000 }
}
Update a Key-Value Pair
Description
This API enables you to update a key-value pair in a cache segment. The segment is referred by its unique ID. The key represents the attribute and the value is the data of the cache item.
You can update the key, value, or the time of expiry of the cache item. The default and maximum validity of a cache item is two days.
Request Details
Request URL
PUT{api-domain}/baas/v1/project/{project_id}/segment/{segment_id}/cache
copy
project_idNumericalThe unique ID of the project
segment_idNumericalThe unique ID of the cache segment
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.cache.CREATE
Request JSON Properties
cache_name string mandatoryKey name of the cache segment
Max Size: 50 characterscache_value string mandatoryData value the key represents
Max Size: 16000 charactersexpiry_in_hours long optionalDuration of expiry in hours
Max Size: 48Response Details
The response will return the details of the updated cache item such as the cache_name, cache_value and expires_in, along with the details of its segment.
curl -X PUT
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/segment/3376000000425030/cache
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”
-H “Content-Type:application/json”
-d ‘{ “cache_name”:“counter”, “cache_value”:“1472” }’Sample Responsecopy
{ "status": "success", "data": { "cache_name": "counter", "cache_value": "1472", "project_details": { "id": 4000000006007, "project_name": "ShipmentTracking", "project_type": "Live" }, "segment_details": { "id": 3376000000425030, "segment_name": "CounterValues" }, "expires_in": "Mar 28, 2019 02:03 AM", "expiry_in_hours": 7, "ttl_in_milliseconds": 172800000 }
}
ZCQL
ZCQL is Catalyst’s own query language that enables you to perform data retrieval, insertion, updating, and deletion operations on the tables in the Catalyst Data Store.
You can execute a variety of DML queries using ZCQL to obtain or manipulate data, and use various clauses and statements such as the SQL Join clauses, Groupby and OrderBy statements, and built-in SQL functions.
Execute a ZCQL Query
Description
This API enables you to execute a ZCQL query to retrieve, insert, update, or delete data from the tables in the Data Store. You can execute this API by passing a ZCQL query in the JSON request, as shown in the sample requests.
Note: The API request format is the same for all ZCQL query execution operations.Request Details
Request URL
POST{api-domain}/baas/v1/project/{project_id}/query
copy
project_idNumericalThe unique ID of the project
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Content-Type: application/jsonOptional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.zcql.CREATE
Note: This operation can also be executed with Catalyst user authentication permissions using Catalyst SDKs. Refer to the Catalyst API Prerequisites section for details.Request JSON Properties
query string mandatoryThe ZCQL query to be executedResponse Details
Data Retrieval Operations: The API returns the records that were fetched as a result of the query execution as the response.
Data Insertion and Updating Operations: The API returns the records that were inserted or updated through the query as the response.
Data Deletion Operations: The API returns the deleted row count.
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/query
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”
-H “Content-Type: application/json”
-d ‘{ “query”:“SELECT EmpID, EmpName, Department, Address from EmpDetails ORDER BY EmpID ASC LIMIT 1000,5” }’Sample Response: Data Retrievalcopy
{ "status": "success", "data": [ { "EmpDetails": { "CREATORID": "3376000000002003", "MODIFIEDTIME": "2023-06-05 15:09:33:881", "CREATEDTIME": "2023-06-05 15:09:33:881", "ROWID": "3376000001924975", "EmpID": "1001", "EmpName": "Allison Powell", "Department":"Marketing", "Address": "13, Winter Avenue, Philadelphia, PY" } }, { "EmpDetails": { "CREATORID": "3376000000002003", "MODIFIEDTIME": "2023-06-05 15:09:33:881", "CREATEDTIME": "2023-06-05 15:09:33:881", "ROWID": "3376000001927682", "EmpID": "1002", "EmpName": "James Cortez", "Department":"HR", "Address": "25, Blossom Street, Austin, TX" } }, { "EmpDetails": { "CREATORID": "3376000000002003", "MODIFIEDTIME": "2023-06-02 21:04:11:111", "CREATEDTIME": "2023-06-02 15:05:21:001", "ROWID": "3376000001224112", "EmpID": "1003", "EmpName": "Han Chan", "Department":"Sales", "Address": "112, St.Patrick's Road, Louisville, KY" } }, { "EmpDetails": { "CREATORID": "337600000003111", "MODIFIEDTIME": "2023-06-02 21:04:11:111", "CREATEDTIME": "2023-06-02 15:05:21:001", "ROWID": "3376000001242012", "EmpID": "1004", "EmpName": "Rubella Miguel", "Department":"Accounts", "Address": "333, Marine Bay, Salt Lake City, UT" } }, { "EmpDetails": { "CREATORID": "3376000000115254", "MODIFIEDTIME": "2023-04-12 21:04:10:521", "CREATEDTIME": "2023-06-11 15:05:02:541", "ROWID": "3376000001241341", "EmpID": "1005", "EmpName": "Ronwick Boseman", "Department":"Support", "Address": "61, Gringott's Avenue, Herfordshire, CO" } } ]
}
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/query
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57
-H “Content-Type: application/json”
-d ‘{ “query”:“INSERT INTO EmpDetails VALUES (1007,‘Randy Marsh’,‘Sales’,‘42, Tenth Street, Jacksonville, FL’, ‘14 MAR 2017’)” }’Sample Response: Data Insertioncopy
{ "status": "success", "data": [ { "EmpDetails": { "CREATORID": "3813000000002003", "EmpID": "1007", "EmpName": "Randy Marsh", "Department":"Sales", "Address": "42, Tenth Street, Jacksonville, FL", "DOJ": "14 MAR 2017", "MODIFIEDTIME": "2021-08-04 09:10:14:752", "CREATEDTIME": "2021-08-04 09:10:14:752", "ROWID": "3813000000214001" } } ]
}
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/query
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57
-H “Content-Type: application/json”
-d ‘{ “query”:“UPDATE EmpDetails SET Department=‘Operations’ WHERE EmpID=1007” }’Sample Response: Data Updatingcopy
{ "status": "success", "data": [ { "EmpDetails": { "CREATORID": "3813000000002003", "EmpID": "1007", "EmpName": "Randy Marsh", "Department":"Operations", "Address": "42, Tenth Street, Jacksonville, FL", "DOJ": "14 MAR 2017", "MODIFIEDTIME": "2021-08-04 09:11:54:318", "CREATEDTIME": "2021-08-04 09:10:14:752", "ROWID": "3813000000214001" } } ]
}
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/query
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57
-H “Content-Type: application/json”
-d ‘{ “query”:“DELETE FROM EmpDetails WHERE EmpID=1007” }’Sample Response: Data Deletioncopy
{ "status": "success", "data": [ { "EmpDetails": { "DELETED_ROWS_COUNT": 1 } } ]
}
Search
Catalyst Search enables data searching in the indexed columns of the tables in your Catalyst Data Store. When you integrate Search in your application, the end users will be able to perform powerful searches through volumes of data in your Data Store with a single search query.
Execute Search Query
Description
This API enables you to execute a search operation in the indexed columns of all the tables in the Data Store. You can pass the search parameters in the request JSON. The records that match the search query are fetched as the response.
Request Details
Request URL
POST{api-domain}/baas/v1/project/{project_id}/search
copy
project_idNumericalThe unique ID of the project
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Content-Type: application/jsonOptional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.search.READ
Note: This operation can also be executed with Catalyst user authentication permissions using Catalyst SDKs. Refer to the Catalyst API Prerequisites section for details.Request JSON Properties
search string mandatorySearch pattern that contains the keywords to search for
You can provide multiple keywords separated by commas.
search_table_columns json mandatoryThe indexed columns to be searched in a table
You must provide this in the following format:
{“table_name_1”: [“column_name_1”, “column_name_2”, “column_name_3”..], “table_name_2”: [“column_name_1”, “column_name_2”, “column_name_3”..]..}
select_table_columns json optionalThe columns to be selected and displayed based on the search
You must provide this in the following format:
{“table_name_1”: [“column_name_1”, “column_name_2”, “column_name_3”..], “table_name_2”: [“column_name_1”, “column_name_2”, “column_name_3”..]..}
order_by json optionalSorts the records fetched in the search results either in an ascending or descending manner
Allowed Values: ASC, DESC
start integer optionalStarting index of a row where the search must begin
Default value: 0
end integer optionalThe offset value of a row where search must end
Default value: 500
Response Details
The response returns the records that match the search query. The details of the rows including their metadata such as CREATORID and CREATEDTIME, and the column key names and values are returned.
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/search
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”
-H “Content-Type: application/json”
-d ‘{ “search” : “Mary”, “search_table_columns” : { “CustomerInfo”: [ “CustomerName”, “TrainerName” ] }, “start”:1000, “end”:200 }’Sample Responsecopy
{ "status": "success", "data": { "CustomerInfo": [ { "CREATORID": "56000000002003", "MODIFIEDTIME": "2019-02-08 13:13:44", "CustomerName": "Mary Johnson", "TrainerName": "Helena Stewart", "CustomerID":"PL1213234", "CREATEDTIME": "2019-02-08 13:13:44" }, { "CREATORID": "56000000002003", "MODIFIEDTIME": "2019-02-08 20:11:10", "CustomerName": "Mary Palmer", "TrainerName": "Ronald Wazlib", "CustomerID":"SY091834", "CREATEDTIME": "2019-02-08 20:11:10" }, { "CREATORID": "56000000002003", "MODIFIEDTIME": "2019-11-09 10:00:12", "CustomerName": "Herbert Spielberg", "TrainerName": "Mary Amber Rogers", "CustomerID":"AL987627", "CREATEDTIME": "2019-11-08 00:12:40" } ] } }
Catalyst Mail enables you to add the email addresses of your business that will be used to send emails to the end-users from your Catalyst application. You can configure email addresses of public domains or of your organization’s own domains. You can also use an external email client of your choice and configure its SMTP settings with Catalyst, instead of using the built-in Catalyst email client. You can perform these configurations from the console.
Send Email
Description
This API enables you to send emails from a verified email address to the recipients you specify, from your Catalyst application.
Catalyst enables you to set multiple email addresses as the receivers, and to CC, BCC, and reply to through a single send mail operation. You can also attach files in your email. The maximum supported limits for email recipients and file attachments in a single send mail operation are specified below:
- To address: 10
- CC: 10
- BCC: 5
- Reply to: 5
- Number of file attachments: 5
- Size of file attachments: 15 MB (through a single file or multiple files upto 5 files)
You must pass the sender and receiver email addresses, the subject, content, and the attachments of the email as form-data in your API request. The keys to be passed as form-data, along with sample values are specified Form-Data Properties section below.
Note: You must have configured and verified the sender’s email address in the Catalyst console to be able to send emails. If the sender’s email is hosted on a private domain or if you choose to use a third-party email client, you must configure them before sending emails as well.Request Details
Request URL
POST{api-domain}/baas/v1/project/{project_id}/email/send
copy
project_idNumericalThe unique ID of the project
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Content-Type: multipart/form-data; boundary=—-WebKitFormBoundary7MA4YWxkTrZu0gWOptional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.email.CREATE
Form-Data Properties
from_email mandatoryThe sender’s email address that is configured in Catalyst Mailto_email atleast one recipient mandatoryEmail addresses of the recipientscc optionalEmail addresses to carbon copy (cc)bcc optionalEmail addresses to blind carbon copy (bcc)reply_to optionalEmail addresses to reply toattachments optionalThe files to be attached in the emailsubject mandatoryThe subject of the emailcontent optionalThe body of the email. You can pass the content in a HTML format by setting the html_mode as “True”.html_mode optionalSpecifies if the email content is in a HTML format. You must pass true or false as the value. If the value is false, the email content is in a regular text format.display_name optionalThe display name of the senderResponse Details
The response returns the details of the email that was sent such as the status of the sent email, the project details, from_email, to_email, and content.
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/email/send
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”
-H “Content-Type: multipart/form-data; boundary=—-WebKitFormBoundary7MA4YWxkTrZu0gW” \-F from_email=emma@zylker.com \ -F to_email=vanessa.hyde@zoho.com,r.owens@zoho.com,chang.lee@zoho.com
-F cc=p.boyle@zylker.com,robert.plant@zylker.com
-F bcc=ham.gunn@zylker.com,rover.jenkins@zylker.com
-F reply_to=peter.d@zoho.com,arnold.h@zoho.com
-F attachments=kycform.pdf
-F subject=“Greetings from Zylker Corp!”
-F content="Hello,
We’re glad to welcome you at Zylker Corp. To begin your journey with us, please download the attached KYC form and fill in your details. You can send us the completed form to this same email address. We cannot wait to get started!
Cheers!
Team Zylker
"
-F html_mode=true
-F display_name=“Amelia Burrows” \Sample Responsecopy
{ "status": "success", "data": { "isAsync": false, "project_details": { "project_name": "Onboarding", "id": 2648000000235047, "project_type": "Live" }, "display_name": "Amelia Burrows", "from_email": "emma@zylker.com", "to_email": [ "vanessa.hyde@zoho.com", "r.owens@zoho.com", "chang.lee@zoho.com" ], "cc": [ "p.boyle@zylker.com", "robert.plant@zylker.com" ], "bcc": [ "ham.gunn@zylker.com", "rover.jenkins@zylker.com" ], "html_mode": true, "subject": "Greetings from Zylker Corp!", "content": "<p>Hello,</p><p>We're glad to welcome you at Zylker Corp. To begin your journey with us, please download thattached KYC form and fill in your details. You can send us the completed form to this same email address. We cannowait to get started!<p>Cheers!</p><p>Team Zylker </p>", "reply_to": [ "peter.d@zoho.com", "arnold.h@zoho.com" ] } }
Web Push Notifications
Push notifications are remote notifications that an application provider can send to the users of their application, even when the application is not actively running on the user device. Catalyst provides you with an easy way to integrate push notifications into your web and iOS applications. You can enable push notifications in your app by invoking this function call. You can then send notifications through this API.
Note: Catalyst Push Notifications feature is not available to Catalyst users accessing from the EU, AU, and IN data centers.Enable Push Notifications
Description
This is a function call to enable push notifications in your web app when the user allows it.
catalyst.notification.enableNotification().then( resp=>{ catalyst.notification.messageHandler = msg => { //write your own action } });
Send Notifications
Description
This API is used to send textual push notifications to the users of your web application for testing, after you enable the feature. You can pass the notification message and a list of the recipients in your request as shown in the sample request.
Request Details
Request URL
POST{api-domain}/baas/v1/project/{project_id}/project-user/notify
copy
project_idNumericalThe unique ID of the project
Request Headers
Content-Type: application/json
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Note: Catalyst does not authenticate this API request. Therefore, you need not pass an OAuth token.Scope
ZohoCatalyst.notifications.web
Request JSON Properties
recipients string mandatoryThe email address or the user ID of the users that the push notification must be sent tomessage string mandatoryThe message content of the push notification in the text formatResponse Details
The response returns the status of the sent notification as success or failed.
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/3000000002001/project-user/notify
-H “Content-Type: application/json”
-d ‘{ “recipients”:[“rhonda.wilkins@zylker.com”,“isabella.j@zylker.com”,“harry.sandman@zylker.com”], “message”:“Attention, new employees! Update your profile information in Zylker team app” }’Sample Responsecopy
{ "status": "success", "data": true }
iOS Push Notifications
Push notifications are remote notifications that an application provider can send to the users of their application, even when the application is not actively running on the user device. Catalyst provides you with an easy way to integrate push notifications into your web and iOS applications. Before you send push notifications for your iOS app, you must register your app and obtain an APNs certificate. You can learn more from this help section. You can then send notifications through this API.
Note: Catalyst Push Notifications feature is not available to Catalyst users accessing from the EU, AU, IN data centers.Enable iOS Push Notifications
Description
This is a function call to enable push notifications in your iOS app when the user allows your permission request.
Request Details
Request URL
POSThttp://api.catalyst.zoho.com/baas/v1/project/{project_id}/push-notification/{app_id}/register
copy
project_idNumericalThe unique ID of the project
app_idNumericalThe unique ID of the app. You can obtain this after registering your app with Apple.
Scope
ZohoCatalyst.notifications.mobile.register
Request JSON Properties
app_bundle_id string mandatoryDenotes the unique ID of the app that you provided when you downloaded Catalyst iOS SDKdevice_token string mandatoryDenotes the unique ID of the app-device combination provided in the APNs certificatetest_device boolean optionalSpecifies if it is a test device. If the value is not provided, it is considered to be a production device.os_version string mandatoryDenoted the OS version of the deviceinstallation_id string mandatoryDenotes the installation ID
PushNotificationHandler().registerNotification(token: tokenData, appID: applicationID)
Send Notifications
Description
This API is used to send push notifications to the user devices for your iOS app for testing, after you configure and enroll for the service. You can pass the notification message and a list of the recipients along with other details in your request as shown in the sample request.
Request Details
Request URL
POST{api-domain}/baas/v1/project/{project_id}/push-notification/{app_id}/project-user/notify
copy
project_idNumericalThe unique ID of the project
app_idNumericalThe unique ID of the app. You can obtain this after registering your app with Apple.
Request Headers
Content-Type: application/json
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Note: Catalyst does not authenticate this API request. Therefore, you need not pass an OAuth token.Scope
ZohoCatalyst.notifications.mobile
Request JSON Properties
recipients string mandatoryThe email address of the users that the push notification must be sent topush_details json mandatoryThe JSON that contains the details of the push notification content and metadata
message string mandatoryThe text content of the push notification
Max Size: 100 characters
additional_info json optionalAny additional information that you need to send in the form of “sample_key” : “sample_value”
Max Size: 100 characters
badge_count integer optionalThe count to be displayed over the app’s icon
reference_id string optionalThe ID for reference
expiry_time integer optionalThe time of expiry of the notification in hours
Response Details
The response returns the status of the sent notification as success or failed, and the data that was passed including message and expiry_time.
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/204000000024010/push-notification/204000000036005/project-user/notify
-H “Content-Type: application/json”
-d ‘{ “recipients”:[“amanda.boyle@zylker.com”,“henry.mj@zylker.com”], “push_details”:{ “message”:“Welcome to Zylker App!”, “badge_count”:10, “expiry_time”:12, “additional_info”:{ “sample_key” : “sample_value” } } }’Sample Responsecopy
{ "status": "success", "data": { "recipients": ["amanda.boyle@zylker.com","henry.mj@zylker.com"], "push_details": { "message": "Welcome to Zylker App!", "additional_info": { "sample_key": "sample_value" }, "badge_count": 10, "reference_id": null, "expiry_time": 12 } } }
Disable iOS Push Notifications
Description
This is a function call to disable push notifications in your iOS app when the user denies your permission request.
Request Details
Request URL
POSThttp://api.catalyst.zoho.com/baas/v1/project/{project_id}/push-notification/{app_id}/unregister
copy
project_idNumericalThe unique ID of the project
app_idNumericalThe unique ID of the app. You can obtain this after registering your app with Apple.
Scope
ZohoCatalyst.notifications.mobile.register
Request JSON Properties
app_bundle_id string mandatoryDenotes the unique ID of the app that you provided when you downloaded Catalyst iOS SDKdevice_token string mandatoryDenotes the unique ID of the app-device combination provided in the APNs certificatetest_device boolean optionalSpecifies if it is a test device. If the value is not provided, it is considered to be a production device.os_version string mandatoryDenoted the OS version of the deviceinstallation_id string mandatoryDenotes the installation IDFunctions
Catalyst Functions enable you to build custom functionalities in your application, and seamlessly integrate it with other Catalyst components to provide a powerful backend for it. You can automate tasks, perform memory-intensive computations, or integrate with third-party services using functions.
Catalyst offers support to develop server-side functions in Java, Node.js and Python programming environments.
Note: You can create six types of functions in Catalyst: Basic I/O, Advanced I/O, Cron, Event, Integration, and Browser Logic functions. However, you can only execute Basic I/O functions using this API.Execute a Function
Description
This API enables you to execute a Basic I/O function by referring to its unique function ID. Basic I/O functions are used to perform basic input and output operations, computations, and simple HTTP operations.
Input parameters can passed to the function in the API request either as a query string or in the request body. A query string is preferred over the request body to pass the function parameters in. The response will contain the function output.
Note: The function must already be available in the remote console. You can create a function in the console directly, or create it in your local system and deploy it to the console.Request Details
Request URL
MULTIPLE{api-domain}/baas/v1/project/{project_id}/function/{function_id}/execute
copy
project_idNumericalThe unique ID of the project
function_idNumericalThe unique ID of the function
Request Methods
GETPOSTPUTDELETERequest Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.functions.EXECUTE
Note: This operation can also be executed with Catalyst user authentication permissions using Catalyst SDKs. Refer to the Catalyst API Prerequisites section for details.Response Details
The response contains the output of the processed function. A Basic I/O function returns response in the JSON format. The key output contains the output generated by the function you execute.
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/function/4000000045004/execute?name=Raymond%20McGregor
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”Sample Responsecopy
{ "output": "Hello Raymond McGregor" }
Circuits
Catalyst Circuits enable you to systematically define and organize a sequence of tasks to be carried out automatically in Catalyst. You can orchestrate tasks and automate workflows, and additionally include conditions, data, and paths in the workflow, to define a repeatable pattern of activities that achieves a business outcome using Circuits.
Catalyst offers support for automating the execution of Basic I/O functions of your application using a circuit.
Note: The Circuits feature is not available to Catalyst users accessing from the EU, AU, and IN data centers.Execute a Circuit
Description
This API enables you to execute a Catalyst circuit configured in the console by referring to its unique Circuit ID. You can pass the input to the circuit in the request JSON as described below.
Note: You can create, configure, and test a circuit from the Catalyst console.Request Details
Request URL
POST{api-domain}/baas/v1/project/{project_id}/circuit/{circuit_id}/execute
copy
project_idNumericalThe unique ID of the project
circuit_idNumericalThe unique ID of the circuit
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Optional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.circuits.EXECUTE
Request JSON Format
You must send the input to the circuit as key-value pairs in the JSON format like this:
copy
{ “key_1”: “value_1”, “key_2”: “value_2”, “key_3”: “value_3”, . . }
Note: The circuit input is not mandatory. You can skip the input or pass it based on your circuit’s purpose and logic.Response Details
The response contains the result and the details of the executed circuit, such as the circuit_name, the start_time and end_time of the execution, the instance_id, along with the details of the input that was passed to the circuit and the output generated from the circuit’s execution.
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/circuit/105000000180234/execute
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”
-d ‘[ { “email”:“j.parker@zylker.com”, “count”:“20”, “traveller_type”:“Single”, “rating”:“5”, “location”:“New York”, “suite”:“Executive” } ]’Sample Responsecopy
{ "status": "success", "data": { "id": "b3c91799-5c18-4626-9983-a2d6af237e20", "name": "Case 1", "start_time": "Aug 24, 2020 02:24 PM", "end_time": "Aug 24, 2020 02:24 PM", "status": "success", "status_code": 6, "execution_meta": {}, "circuit_details": { "name": "StayFinder", "ref_name": "StayFinder", "description": "", "instance_id": "ef9644a5-123a-438c-94d9-01b1bade8817" }, "input": { "email":"j.parker@zylker.com", "count":"20", "traveller_type":"Single", "rating":"5", "location":"New York", "suite":"Executive" }, "output": { "result": { "stay_list":{ "message":"Email has been sent successfully to j.parker@zylker.com", "status":"success" } } } } }
Automation Testing
Automation Testing is an API testing tool that automates the testing process of the APIs in your application. You can test the Basic I/O and Advanced I/O functions in your application, or any third-party URL, and obtain responses. You can write test cases based on your requirements, schedule tests to be executed automatically, and manage the entire process of API testing with minimal manual intervention.
Execute a Test Plan
Description
A test plan enables the automated execution of one or more test suites in Automation Testing. This API enables you to trigger the execution of a test plan that is already configured in the remote console in your project. This is equivalent to the instant run option available for a test plan in the console.
Request Details
Request URL
POST{api-domain}/baas/v1/project/{project_id}/automation-testing/{test_plan_id}/execute
copy
project_idNumericalThe unique ID of the project
test_plan_idNumericalThe unique ID created for a test plan.
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
Environment: DevelopmentOptional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.automationtesting.execute
Response Details
The response contains the status of the test plan execution, along with details such as the unique Run ID that will be generated for each automated or instant test plan execution, the Test Plan ID that was passed, and the is_schedule_started parameter that contains the status of the execution initiation as true or false.
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/3359000000016812/automation-testing/537000000022025/execute
-H “Authorization: Zoho-oauthtoken 1000.25*************************e.3e*************************3” \Sample Responsecopy
{ "status": "success", "data": { "id": 537000000034053, "test_plan_id": 537000000022025, "is_schedule_started": true } }
Optical Character Recognition
Zia Optical Character Recognition electronically detects textual characters in images or digital documents, and converts them into machine-encoded text. Zia OCR can recognize text in 10 major languages.
Note: Catalyst does not store any of the files you upload in its systems. The files you upload are used for one-time processing only. They are not used for ML model training purposes either. Catalyst components are fully compliant with all applicable data protection and privacy laws.Execute OCR
Description
This API is used to detect textual characters in images and documents, and deliver the recognized text as a JSON response. The response also contains a confidence score, which defines the accuracy of the detection.
You must specify the path to the image or document file in the API request, as shown in the sample request. You can optionally specify the languages present in the text, for quicker processing. OCR supports 9 international languages and 10 Indian languages, that are mentioned in the tables below. The language is automatically detected and the text is processed, if it is not specified.
Request Details
Request URL
POST{api-domain}/baas/v1/project/{project_id}/ml/ocr
copy
project_idNumericalThe unique ID of the project
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
content-type: multipart/form-data; boundary=—-WebKitFormBoundary7MA4YWxkTrZu0gWOptional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.mlkit.READ
Request JSON Properties
image file mandatoryThe input file to be processed. You must provide the path to it in your local system.
Allowed formats: .jpg, .jpeg, .png, .bmp, .tiff, .pdf
File size limit: 20 MB
language string optionalThe language code of the text to be identified. Refer the tables below for the language codes.International Languages Supported by OCR
Language Language Codes Arabic ara Chinese chi_sim French fra Italian ita Japanese jpn Portuguese por Romanian ron Spanish spa Indian Languages Supported by OCR
Language Language Codes English eng Hindi hin Bengali ben Marathi mar Telugu tel Tamil tam Gujarati guj Urdu urd Kannada kan Malayalam mal Sanskrit san Response Details
The response returns the data of the OCR processing, which includes the text that was recognized from the input in the text key and the confidence score of the recognition in the confidence key.
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/ml/ocr -H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”
-H “Content-Type: multipart/form-data; boundary=—-WebKitFormBoundary7MA4YWxkTrZu0gW”
-F “image=/Desktop/HelplineCard.jpg”
-F “language=eng,spa”Sample Responsecopy
{ "status":"success", "data": { "confidence":79.71514892578125, "text":"Whenever you\nneed to talk,\nwe‘re open\n\n[—] text eseses\n[J] KidsHelpPhone.ca\n\n(@, call 1—800—663—6868 Kids Help Phone ©" } }
AutoML
Zia AutoML enables you to train models and analyze a set of training data to predict the outcome of a subset of that data. You can build and train Binary Classification, Multi-Class Classification, and Regression Models, and obtain insightful evaluation reports.
Execute AutoML
Description
This API is used to pass input for an AutoML model’s prediction as key-value pairs. You must pass the data in a JSON format in the request as described below.
Note:
- The AutoML model must already be created. You can create and configure a model from the console.
- You can specify the target column, or the column in the dataset whose value needs to be predicted, while configuring the model from the console.
Request Details
Request URL
POST{api-domain}/baas/v1/project/{project_id}/ml/automl/model/{model_id}
copy
project_idNumericalThe unique ID of the project
model_idNumericalThe unique ID of the model
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
content-type: application/jsonOptional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.mlkit.READ
Request JSON Format
You must send the column names and the corresponding column values in a JSON format like this:
copy
{ “column1_name”: “column1_value”, “column2_name”: “column2_value”, “column3_name”: “column3_value” }
where column_name is a key in the dataset required for predicting the target, and column_value is the data you provide for the corresponding column.
Note:
If you enter a value in a format that does not match the data type of the column, such as a numerical value for the date type, the value will not be parsed. Ensure that you provide the data in the right format.
You must provide the value for atleast one valid column while testing the prediction.
If you don’t enter the value for an input field, a default value will be entered for the column by Zia automatically. However, this will affect the accuracy of the prediction.
Response Details
The response returns the data of the OCR processing, which includes the text that was recognized from the input in the text key and the confidence score of the recognition in the confidence key.
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/ml/automl/model/105000000124001 -H “Authorization: Zoho-oauthtoken 1000.8cb99d**********************9be93.9b8***********************f”
-H “Content-Type: application/json”
-d ‘{ “country”: “Armenia”, “year”: “2016”, “sex”: “female”, “age”: “25-34”, “population”: “277452”, “GDP_for_year”: “10,546,135,160” }’Sample Response: Regression Modelcopy
{ "status":"success", "data":{ "regression_result":3.41 }
}
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/ml/automl/model/105000000124001
-H “Authorization: Zoho-oauthtoken 1000.8cb99d********************9be93.9b8********************f”
-H “Content-Type: application/json”
-d ‘{ “year_film”: “2019”, “year_award”: “2020”, “ceremony”: “77”, “category”: “Best Director - Motion Picture”, “nominee”: “Todd Phillips”, “film”: “Joker” }’Sample Response: Binary-class classification modelcopy
{ "status":"success", "data":{ "classification_result": { "True":20, "False":80 } } }
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/ml/automl/model/105000000124001
-H “Authorization: Zoho-oauthtoken 1000.8cb99d******************9be93.9b8******************f”
-H “Content-Type: application/json”
-d ‘{ “Transaction_date”: “1/2/09 4:53”, “Product”: “RAM”, “Price”: “120”, “City”: “Parkville”, “State”: “MO”, “Country”: “United States”, “Account_Created”: “12/4/08 4:42”, “Last_Login”: “1/2/09 7:49” }’Sample Response: Multi-class classification modelcopy
{ "status":"success", "data":{ "classification_result": { "Amex":10, "Diner":20, "Mastercard": 30, "Visa":40 } }
}
Face Analytics
Zia Face Analytics performs facial detection in images, and analyzes the facial features to provide information such as the gender, age, and emotion of the detected faces.
Face Analytics also provides the confidence levels of each attribute prediction that enables you to make informed decisions. It can detect up to 10 faces in an image, and it provides predictions of the attributes for each detected face.
Execute Face Analytics
Description
You can use this API to perform facial detection and analytics in an image file, and specify the path to it in the API request as shown in the sample request.
You can optionally specify an analysis mode which determines the number of facial landmarks to be detected in a face. You can also enable or disable the attributes to be predicted, such as the emotion, age, and gender.
This API is used to pass input for an AutoML model’s prediction as key-value pairs. You must pass the data in a JSON format in the request as described below.
Request Details
Request URL
POST{api-domain}/baas/v1/project/{project_id}/ml/faceanalytics
copy
project_idNumericalThe unique ID of the project
Request Headers
Authorization: Zoho-oauthtoken {oauth_token}
content-type: multipart/form-data; boundary=—-WebKitFormBoundary7MA4YWxkTrZu0gWOptional Headers
CATALYST-ORG: {org_id}
Environment: Development
Scope
ZohoCatalyst.mlkit.READ
Request JSON Properties
image file mandatoryThe input file to be processed. You must provide the path to it in your local system.
Allowed formats: .jpg, .jpeg, .png
File size limit: 10 MBmode string optionalDenotes the number of facial landmarks to be detected in a face
Allowed values: basic, moderate, advanced
Default value: advanced
- basic: 0-point landmark detector that detects the boundary of the face alone
- moderate: 5-point landmark detector that detects- Eyes: The center of both eyes, Nose: Nose tip, Lips: The center of both lips
- advanced: 68-point landmark detector that detects- Jawline: Face boundary, Eyebrows: Left and right eyebrow, Eyes: Left and right eye, Nose bridge, Nostril line, Upper lips: Upper and lower edge, Lower lips: Upper and lower edge
emotion boolean optionalAllowed values:
false: Emotion will not be detected
true: Emotion will be detectedDefault value: true
age boolean optionalAllowed values:
false: Age will not be detected
true: Age will be detectedDefault value: true
gender boolean optionalAllowed values:
false: Gender will not be detected
true: Gender will be detectedDefault value: true
Response Details
The response returns the details of the facial landmarks of the detected faces, and the predictions for emotion, age, and gender, based on the parameters and mode set in the API request in the data key.
The overall probability of the co-ordinates of the facial landmark detection, and the probability of the predictions made for the emotion, age, and gender parameters will be returned as confidence scores.
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/ml/faceanalytics
-H “Authorization: Zoho-oauthtoken 1000.910*************************16.2f*************************57”
-H “Content-Type: multipart/form-data; boundary=—-WebKitFormBoundary7MA4YWxkTrZu0gW”
-F “image=/Desktop/SampleImage.jpg”
-d ‘{ “mode”: “basic”, “emotion”: “true”, “age”: “true”, “gender”: “true” }’Sample Response: Basiccopy
{ "status": "success", "data": { "faces": [ { "confidence": 1.0, "id": 0, "co_ordinates": [ 267, 39, 153, 227 ], "emotion": { "prediction": "not_smiling", "confidence": { "smiling": "0.0", "not_smiling": "1.0" } }, "age": { "prediction": "3-9", "confidence": { "0-2": "0.005", "10-19": "0.33", "20-29": "0.12", "3-9": "0.509", "30-39": "0.032", "40-49": "0.003", "50-59": "0.0", "60-69": "0.0", ">70": "0.0" } }, "gender": { "prediction": "female", "confidence": { "female": "0.92", "male": "0.08" } } } ] }
}