### Service Appointment Blueprint Input with Timesheet Options (JSON) Source: https://www.zoho.com/fsm/developer/help/api/start-work-service-appointment Illustrates the JSON payload for initiating a 'Start Work' blueprint action with optional timesheet details. This includes specifying the service resource, appointment, start time, and associated line items or tasks. ```json //To start the timesheet for a specific service resource, and specific service line item. { "blueprint": [ { "transition_id": "1003000000240063", "data": { "$Time_Sheets": { "Service_Resource": "1003000000208159", "Service_Appointment": "1003000001226523", "Start_Date_Time": "2023-12-22T09:00:53+05:30", "Service_Line_Items": [ "1003000001226503" ], "Service_Tasks_Line_Items": [ "1003000001226508" ] } } } ] } ``` -------------------------------- ### GET /Equipments Source: https://www.zoho.com/fsm/developer/help/api/get-equipments Fetches a list of all available equipment, sorted by creation time in descending order. Supports pagination. ```APIDOC ## GET /Equipments ### Description To fetch the list of all available equipments. The records fetched will be sorted by Created Time in descending order (recent ones first). ### Method GET ### Endpoint https://fsm.zoho.com/fsm/v1/Equipments ### Parameters #### Query Parameters - **page** (Integer) - Optional - The page from which you want to fetch the records. The default value is 1. - **per_page** (Integer) - Optional - The number of records you want to fetch in a page. The default value is 200. ### Request Example ``` curl --location --request GET 'https://fsm.zoho.com/fsm/v1/Equipments' \ --header 'Authorization: Zoho-oauthtoken 1000.b3xxxxxx.xxxxxxxx3' ``` ### Response #### Success Response (200) - **Equipments** (Array) - A list of equipment objects. - **id** (String) - The unique identifier for the equipment. - **name** (String) - The name of the equipment. - **created_time** (String) - The timestamp when the equipment was created. - **modified_time** (String) - The timestamp when the equipment was last modified. #### Response Example ```json { "Equipments": [ { "id": "123456789012345", "name": "Excavator", "created_time": "2023-01-01T10:00:00Z", "modified_time": "2023-01-01T10:00:00Z" } ] } ``` ``` -------------------------------- ### Get Available Service Resources Request (cURL) Source: https://www.zoho.com/fsm/developer/help/api/fetch-available-users This snippet demonstrates how to make a GET request to the Zoho FSM API to find available service resources. It requires the `start_date_time` and `territory_ids` parameters, along with an authorization token. The response will contain a list of available resources or an error message. ```curl curl --request GET 'https://fsm.zoho.com/fsm/v1/serviceResource/getAvailableServiceResources?start_date_time=2025-02-11&territory_ids=1003000000208154' \ --header 'Authorization: Zoho-oauthtoken 1000.xxxx.xxxxxe' ``` -------------------------------- ### GET /fsm/v1/Requests Source: https://www.zoho.com/fsm/developer/help/api/get-requests Fetches a list of all available requests, sorted by Created Time in descending order. ```APIDOC ## List Requests ### Description To fetch the list of all available requests. The records fetched will be sorted by Created Time in descending order (recent ones first). ### Method GET ### Endpoint https://fsm.zoho.com/fsm/v1/Requests ### Query Parameters #### page (optional) - **Type**: Integer - **Description**: The page from which you want to fetch the records. The default value is 1. - **Possible Values**: Positive Integer values only #### per_page (optional) - **Type**: Integer - **Description**: The number of records you want to fetch in a page. The default value is 200. - **Possible Values**: Positive Integer values only ### Request Example ```curl curl --location --request GET 'https://fsm.zoho.com/fsm/v1/Requests' \ --header 'Authorization: Zoho-oauthtoken 1000.b3xxxxxx.xxxxxxxx3' ``` ### Response #### Success Response (200) - **Type**: Array of Request Objects - **Description**: A list of request objects, each containing details of a request. ``` -------------------------------- ### GET /fsm/v1/settings/recordTemplate Source: https://www.zoho.com/fsm/developer/help/api/get-record-templates Fetches a list of all available record templates, sorted by Created Time in descending order. ```APIDOC ## GET /fsm/v1/settings/recordTemplate ### Description To fetch the list of all available record templates. The records fetched will be sorted by Created Time in descending order (recent ones first). ### Method GET ### Endpoint https://fsm.zoho.com/fsm/v1/settings/recordTemplate ### Query Parameters #### page (optional) - **page** (Integer) - Optional - The page from which you want to fetch the records. The default value is 1. Possible Values: Positive Integer values only #### per_page (optional) - **per_page** (Integer) - Optional - The number of records you want to fetch in a page. The default value is 200. Possible Values: Positive Integer values only ### Request Example ```markdown curl --request GET 'https://fsm.zoho.com/fsm/v1/settings/recordTemplate' \ --header 'Authorization: Zoho-oauthtoken 1000.3xxxxxxxxx.xxxxxxxxxxxxx0e' ``` ### Response #### Success Response (200) - **record_template** (Object) - Contains the list of record templates. - **data** (Array) - An array of record template objects. - **Description** (String) - Description of the record template. - **Created_Time** (String) - The creation timestamp of the record template. - **id** (String) - The unique identifier of the record template. - **Created_By** (Object) - Information about the user who created the record template. - **name** (String) - Name of the creator. - **id** (String) - ID of the creator. - **Name** (String) - The name of the record template. - **hasNextPage** (Boolean) - Indicates if there is a next page of results. #### Response Example ```json { "record_template": { "data": [ { "Description": "Debris removal with scrubbing", "Created_Time": "2024-06-26 11:09:59.0", "id": "1003000001684007", "Created_By": { "name": "Marianne Sheehan", "id": "1003000000208001" }, "Name": "Combo Offer I" }, { "Description": "Chrome plating landing gear components", "Created_Time": "2024-06-24 06:48:19.0", "id": "1003000001669025", "Created_By": { "name": "Marianne Sheehan", "id": "1003000000208001" }, "Name": "Chrome plating landing gear" } ], "hasNextPage": false } } ``` ``` -------------------------------- ### GET /Service_Appointments/{record_id}/actions/blueprint/transitions Source: https://www.zoho.com/fsm/developer/help/api/list-service-appointment-transitions Lists all possible transitions that can be performed on a service appointment. For example, if a service appointment is in the 'Dispatched' status, the possible transitions include 'Start Work', 'Terminate', 'Cancel', etc. ```APIDOC ## GET /Service_Appointments/{record_id}/actions/blueprint/transitions ### Description Retrieves a list of all possible transitions for a given service appointment, based on its current status. This helps in understanding the available actions that can be performed on the appointment. ### Method GET ### Endpoint https://fsm.zoho.com/fsm/v1/Service_Appointments//actions/blueprint/transitions ### Parameters #### Path Parameters - **record_id** (string) - Required - The unique ID of the service appointment record. #### Query Parameters - **scope** (string) - Required - Specifies the required scope for the request, e.g., `ZohoFSM.modules.serviceappointments.READ`. ### Request Example ```json { "request": "curl --request GET 'https://fsm.zoho.com/fsm/v1/Service_Appointments/2287000000425290/actions/blueprint/transitions' \ --header 'Authorization: Zoho-oauthtoken 1000.xxxxxx.xxxxxxe'" } ``` ### Response #### Success Response (200) - **code** (string) - The status code of the response, e.g., "SUCCESS". - **process_info** (object) - Information about the current state of the service appointment. - **field_id** (string) - The ID of the status field. - **api_name** (string) - The API name of the status field. - **field_label** (string) - The label of the status field. - **name** (string) - The name of the module (e.g., "Service Appointments"). - **field_value** (string) - The current status of the service appointment (e.g., "Dispatched"). - **transitions** (array) - A list of possible transitions. - **next_field_value** (string or null) - The status the appointment will transition to. - **name** (string) - The name of the transition (e.g., "Start Work"). - **id** (string) - The ID of the transition. - **type** (string) - The type of transition (e.g., "primary"). - **enabled** (boolean) - Indicates if the transition is currently enabled. - **fields** (array, optional) - Fields required for the transition (e.g., for 'Cancel' or 'Terminate' transitions). - **display_label** (string) - Label for the field. - **data_type** (string) - Data type of the field (e.g., "notes"). - **id** (string) - ID of the field. - **transition_sequence** (integer) - Order of the field in the transition. - **mandatory** (boolean) - Whether the field is mandatory. - **status** (string) - The overall status of the API call (e.g., "success"). #### Response Example ```json { "code": "SUCCESS", "process_info": { "field_id": "2287000000115398", "api_name": "Status", "field_label": "Status", "name": "Service Appointments", "field_value": "Dispatched" }, "transitions": [ { "next_field_value": "In Progress", "name": "Start Work", "id": "2287000000169063", "type": "primary", "enabled": true }, { "next_field_value": "Cannot Complete", "name": "Terminate", "id": "2287000000169069", "fields": [ { "display_label": "Notes", "data_type": "notes", "id": "0", "transition_sequence": 1, "mandatory": true } ], "enabled": true }, { "next_field_value": "Cancelled", "name": "Cancel", "id": "2287000000169066", "fields": [ { "display_label": "Notes", "data_type": "notes", "id": "0", "transition_sequence": 1, "mandatory": true } ], "enabled": true }, { "next_field_value": null, "name": "Download", "id": "2287000000410004", "enabled": true }, { "next_field_value": null, "name": "Print", "id": "2287000000410008", "enabled": true } ], "status": "success" } ``` ``` -------------------------------- ### Create Service and Parts - JSON Request Payload Source: https://www.zoho.com/fsm/developer/help/api/create-product Sample JSON input for creating a service with multiple service tasks. Includes service details like name, unit price, type (Service/Goods), tax configuration, and an array of sequential service tasks with duration specifications. ```json { "data": [ { "Name": "Home Painting", "Description": "Covers both interior and exterior painting and is tailored to meet your style preferences, functional needs, and budget.", "Unit": "Hours", "Unit_Price": 100, "Work_Type": null, "Tax": { "Taxable": true, "Tax_Name": null, "Tax_Id": null, "Tax_Exemption_Id": null, "Tax_Exemption_Code": null }, "Type": "Service", "Service_Tasks": [ { "Name": "Clean and prep wall", "Description": null, "Duration": 180, "Sequence": 1 }, { "Name": "Sand or repair surfaces", "Description": null, "Duration": 180, "Sequence": 2 }, { "Name": "Apply primer", "Description": null, "Duration": 180, "Sequence": 3 } ] } ] } ``` -------------------------------- ### Create Equipment using cURL Source: https://www.zoho.com/fsm/developer/help/api/create-equipment This cURL command demonstrates how to send a POST request to the Zoho FSM API to create a new equipment record. It includes the endpoint URL, authorization header, content type, and the path to the input JSON file. ```bash curl --location --request POST 'https://fsm.zoho.com/fsm/v1/Equipments' \ --header 'Authorization: Zoho-oauthtoken 1000.26xxxxxxxxxx.xxxxxxxxxx0' \ --header 'content-type: application/json' -d "@createEquipment.json" ``` -------------------------------- ### GET /fsm/v1/Work_Orders/{record_id}/actions/blueprint/transitions Source: https://www.zoho.com/fsm/developer/help/api/list-work-order-transitions Retrieves a list of all possible transitions (actions) that can be performed on a work order. For example, if a work order is in the 'New' status, the available transitions might include 'Cancel', 'Terminate', etc. ```APIDOC ## GET /fsm/v1/Work_Orders/{record_id}/actions/blueprint/transitions ### Description Lists all possible transitions (actions) that can be performed on a work order. For instance, if a work order is in the 'New' status, the transitions available might be 'Cancel' and 'Terminate'. ### Method GET ### Endpoint https://fsm.zoho.com/fsm/v1/Work_Orders//actions/blueprint/transitions ### Parameters #### Path Parameters - **record_id** (string) - Required - The unique ID of the work order record. #### Query Parameters - **scope** (string) - Required - The scope required for the request, e.g., `ZohoFSM.modules.WorkOrders.READ`. ### Request Example ```curl curl --request GET 'https://fsm.zoho.com/fsm/v1/Work_Orders/4776000000265036/actions/blueprint/transitions' \ --header 'Authorization: Zoho-oauthtoken 1000.xxxxxx.xxxxxxe' ``` ### Response #### Success Response (200) - **code** (string) - Indicates the success status of the operation. - **process_info** (object) - Contains information about the current state of the work order. - **field_id** (string) - The ID of the field representing the work order's status. - **api_name** (string) - The API name of the status field. - **field_label** (string) - The user-friendly label of the status field. - **name** (string) - The name of the module (e.g., 'Work Orders'). - **field_value** (string) - The current status of the work order. - **transitions** (array) - A list of available transitions. - **next_field_value** (string) - The status the work order will transition to. - **name** (string) - The name of the transition action. - **id** (string) - The unique ID of the transition. - **type** (string) - The type of transition (e.g., 'primary'). - **enabled** (boolean) - Indicates if the transition is currently enabled. - **fields** (array, optional) - Fields required for this transition (e.g., Notes). - **display_label** (string) - The label to display for the field. - **data_type** (string) - The data type of the field. - **id** (string) - The ID of the field. - **transition_sequence** (integer) - The order in which the field should be presented. - **mandatory** (boolean) - Whether the field is mandatory for the transition. - **status** (string) - Overall status of the API response (e.g., 'success'). #### Response Example ```json { "code": "SUCCESS", "process_info": { "field_id": "4776000000115510", "api_name": "Status", "field_label": "Status", "name": "Work Orders", "field_value": "New" }, "transitions": [ { "next_field_value": "Scheduled Appointment", "name": "Manage Appointment", "id": "4776000000169075", "type": "primary", "enabled": true }, { "next_field_value": "Cancelled", "name": "Cancel", "id": "4776000000169090", "fields": [ { "display_label": "Notes", "data_type": "notes", "id": "0", "transition_sequence": 1, "mandatory": true } ], "enabled": true }, { "next_field_value": "Cannot Complete", "name": "Terminate", "id": "4776000000169093", "fields": [ { "display_label": "Notes", "data_type": "notes", "id": "0", "transition_sequence": 1, "mandatory": true } ], "enabled": true }, { "next_field_value": null, "name": "Download", "id": "4776000000217003", "enabled": true }, { "next_field_value": null, "name": "Print", "id": "4776000000217007", "enabled": true } ], "status": "success" } ``` ``` -------------------------------- ### GET /fsm/v1/Estimates/{record_id} Source: https://www.zoho.com/fsm/developer/help/api/get-an-estimate Retrieves a specific estimate record using its unique ID. ```APIDOC ## GET /fsm/v1/Estimates/{record_id} ### Description Retrieves a specific estimate record using its unique ID. Requires read scope for Estimates module. ### Method GET ### Endpoint https://fsm.zoho.com/fsm/v1/Estimates/ ### Parameters #### Path Parameters - **record_id** (string) - Required - The unique ID of the estimate record. #### Query Parameters - **scope** (string) - Required - The scope required for the request, e.g., ZohoFSM.modules.Estimates.READ ### Request Example ``` curl --request GET 'https://fsm.zoho.com/fsm/v1/Estimates/4476553000000110073' \ --header 'Authorization: Zoho-oauthtoken 1000.xxxxxx.xxxxxxe' ``` ### Response #### Success Response (200) - **id** (string) - The unique identifier of the estimate. - **estimate_number** (string) - The estimate number. - **subject** (string) - The subject of the estimate. - **description** (string) - A detailed description of the estimate. - **status** (string) - The current status of the estimate (e.g., Draft, Accepted, Rejected). - **created_by** (object) - Information about the user who created the estimate. - **created_time** (string) - The date and time when the estimate was created. - **last_modified_time** (string) - The date and time when the estimate was last modified. #### Response Example ```json { "id": "4476553000000110073", "estimate_number": "EST-00001", "subject": "Website Development Quote", "description": "Quote for developing a new company website.", "status": "Draft", "created_by": { "name": "John Doe", "id": "1234567890" }, "created_time": "2023-10-27T10:00:00Z", "last_modified_time": "2023-10-27T11:30:00Z" } ``` ``` -------------------------------- ### GET /fsm/v1/Service_And_Parts Source: https://www.zoho.com/fsm/developer/help/api/get-products Fetches a list of all services and parts. Records are sorted by Created Time in descending order. ```APIDOC ## GET /fsm/v1/Service_And_Parts ### Description Fetches a list of all services and parts. The records are sorted by Created Time in descending order (most recent first). ### Method GET ### Endpoint https://fsm.zoho.com/fsm/v1/Service_And_Parts ### Scope scope=ZohoFSM.modules.Service_And_Parts.READ ### Query Parameters #### page (optional) - **page** (Integer) - Optional - The page number from which to fetch records. Defaults to 1. #### per_page (optional) - **per_page** (Integer) - Optional - The number of records to fetch per page. Defaults to 200. ### Request Example ``` curl --request GET 'https://fsm.zoho.com/fsm/v1/Service_And_Parts' \ --header 'Authorization: Zoho-oauthtoken 1000.xxxx.xxxxxe' ``` ### Response #### Success Response (200) - **data** (Array) - An array of service and parts objects. - **Owner** (Object) - Information about the owner of the record. - **Modified_Time** (String) - The time the record was last modified. - **Description** (String/null) - Description of the service or part. - **$currency_symbol** (String) - The currency symbol. - **Created_Time** (String) - The time the record was created. - **$editable** (Boolean) - Indicates if the record is editable. - **Tax** (Object) - Tax-related information. - **Work_Type** (String/null) - The work type associated with the service. - **ZBilling_Id** (String/null) - Billing ID. - **Unit** (String/null) - The unit of measurement for the part or service. - **$permissions** (Object) - Permissions for the record. - **Name** (String) - The name of the service or part. - **Type** (String) - The type of record (e.g., 'Goods', 'Service'). - **Modified_By** (Object) - Information about the user who last modified the record. - **Layout** (Object) - Layout information. - **$inactive** (Boolean) - Indicates if the record is inactive. - **id** (String) - The unique identifier of the record. - **Created_By** (Object) - Information about the user who created the record. - **SKU** (String/null) - Stock Keeping Unit. - **Unit_Price** (Number) - The unit price. - **info** (Object) - Pagination information. - **per_page** (Integer) - Number of records per page. - **count** (Integer) - Total number of records. - **page** (Integer) - Current page number. - **more_records** (Boolean) - Indicates if there are more records available. #### Response Example ```json { "data": [ { "Owner": { "name": "Lilly Rush", "id": "2373000000205001", "email": "lucy.robins@zylker.com" }, "Modified_Time": "2023-11-20T02:36:58-08:00", "Description": null, "$currency_symbol": "$", "Created_Time": "2023-11-20T02:36:58-08:00", "$editable": true, "Tax": { "Tax_Exemption_Code": null, "Tax_Id": null, "Tax_Name": null, "Tax_Exemption_Id": null, "Taxable": true }, "Work_Type": null, "ZBilling_Id": null, "Unit": null, "$permissions": { "read": true, "edit": true, "delete": true }, "Name": "2 Ton 5 Star Split AC", "Type": "Goods", "Modified_By": { "name": "Lilly Rush", "id": "2373000000205001", "email": "lucy.robins@zylker.com" }, "Layout": { "name": "Parts_Fsm_Standard", "id": "2373000000149098" }, "$inactive": false, "id": "2373000000471022", "Created_By": { "name": "Lilly Rush", "id": "2373000000205001", "email": "lucy.robins@zylker.com" }, "SKU": null, "Unit_Price": 500 }, { "Owner": { "name": "Lilly Rush", "id": "2373000000205001", "email": "lucy.robins@zylker.com" }, "Modified_Time": "2023-05-26T01:23:14-07:00", "Description": null, "$currency_symbol": "$", "Created_Time": "2023-05-25T23:26:26-07:00", "$editable": true, "Tax": { "Tax_Exemption_Code": "MEDICINES", "Tax_Id": null, "Tax_Name": null, "Tax_Exemption_Id": "3892563000000095018", "Taxable": false }, "Work_Type": null, "ZBilling_Id": "3892563000000094015", "Unit": "Hours", "$permissions": { "read": true, "edit": true, "delete": true }, "Name": "Plumbing", "Type": "Service", "Modified_By": { "name": "Lilly Rush", "id": "2373000000205001", "email": "lucy.robins@zylker.com" }, "Layout": { "name": "Services_Fsm_Standard", "id": "2373000000149106" }, "$inactive": false, "id": "2373000000254199", "Created_By": { "name": "Lilly Rush", "id": "2373000000205001", "email": "lucy.robins@zylker.com" }, "SKU": null, "Unit_Price": 30 } ], "info": { "per_page": 100, "count": 2, "page": 1, "more_records": false } } ``` ``` -------------------------------- ### GET /fsm/v1/Service_And_Parts/{record_id} Source: https://www.zoho.com/fsm/developer/help/api/get-a-product Retrieves a specific Service and Parts record using its unique ID. ```APIDOC ## GET /fsm/v1/Service_And_Parts/{record_id} ### Description Retrieves the details of a specific Service and Parts record based on its unique identifier. ### Method GET ### Endpoint `/fsm/v1/Service_And_Parts/` ### Parameters #### Path Parameters - **record_id** (string) - Required - The unique ID of the Service and Parts record. #### Query Parameters - **scope** (string) - Required - The scope required for the API call, e.g., `ZohoFSM.modules.Service_And_Parts.READ`. ### Request Example ``` curl --request GET 'https://fsm.zoho.com/fsm/v1/Service_And_Parts/195000000095188' \ --header 'Authorization: Zoho-oauthtoken 1000.xxxx.xxxxxe' \ --header 'Content-Type: application/json' ``` ### Response #### Success Response (200) - **data** (array) - An array containing the Service and Parts record(s). - **Owner** (object) - Information about the owner of the record. - **Description** (string) - The description of the Service and Parts. - **$currency_symbol** (string) - The currency symbol. - **$editable** (boolean) - Indicates if the record is editable. - **Tax** (object) - Tax-related information. - **ZBilling_Id** (string) - The Zoho Billing ID. - **Work_Type** (string) - The work type associated with the record. - **Unit** (string) - The unit of measurement. - **Name** (string) - The name of the Service and Parts. - **Type** (string) - The type of the record (e.g., 'Service'). - **Layout** (object) - Information about the layout. - **id** (string) - The unique ID of the Service and Parts record. - **Unit_Price** (number) - The unit price. #### Response Example ```json { "data": [ { "Owner": { "name": "Emily Raymond", "id": "1011000000139301", "email": "lucy.robins@zylker.com" }, "Description": null, "$currency_symbol": "$", "$editable": true, "Tax": { "Tax_Exemption_Code": null, "Tax_Id": "2908070000000135005", "Tax_Name": "County tax", "Tax_Exemption_Id": null, "Taxable": true }, "ZBilling_Id": null, "Work_Type": null, "Unit": "Each", "Name": "Sony Security camera", "Type": "Service", "Layout": { "name": "Services", "id": "1011000000114278" }, "id": "1011000000195225", "Unit_Price": 2500 } ] } ``` ``` -------------------------------- ### Get Service Appointment Transitions - cURL Source: https://www.zoho.com/fsm/developer/help/api/list-service-appointment-transitions This snippet demonstrates how to use cURL to make a GET request to the Zoho FSM API to retrieve all possible transitions for a given service appointment. It requires the service appointment's record ID and an authorization token. ```curl curl --request GET 'https://fsm.zoho.com/fsm/v1/Service_Appointments/2287000000425290/actions/blueprint/transitions' \ --header 'Authorization: Zoho-oauthtoken 1000.xxxxxx.xxxxxxe' ``` -------------------------------- ### POST /fsm/v1/Equipments Source: https://www.zoho.com/fsm/developer/help/api/create-equipment Creates a new equipment record in Zoho FSM. This endpoint accepts equipment details including name, description, type, serial number, model number, warranty status, and purchase information. The equipment is created with a default Active status if not specified. ```APIDOC ## POST /fsm/v1/Equipments ### Description Creates a new equipment record in Zoho Field Service Management. Allows you to add equipment with comprehensive details including name, type, serial number, warranty information, and purchase dates. ### Method POST ### Endpoint https://fsm.zoho.com/fsm/v1/Equipments ### Authentication - **Scope**: ZohoFSM.modules.Equipment.CREATE - **Authorization Header**: Zoho-oauthtoken [access_token] ### Request Headers - **Authorization** (string) - Required - Zoho OAuth token in format: Zoho-oauthtoken [token] - **Content-Type** (string) - Required - application/json ### Request Body - **data** (array) - Required - Array of equipment objects - **Name** (string) - Required - The name of the equipment - **Description** (string) - Optional - A description for the equipment - **Status** (string) - Optional - Status of the equipment. Possible values: Active, Inactive, Out of Service, Under Maintenance. Defaults to Active - **Type** (string) - Optional - Type of the equipment. Possible values: Power Tools, Vehicle, Compactor - **Equipment_Serial_Number** (string) - Optional - The serial number of the equipment (unique per equipment) - **Equipment_Model_Number** (string) - Optional - The model number identifying the equipment category - **Warranty_Status** (string) - Optional - Warranty status. Possible values: Active, Expired. Defaults to Active - **Warranty_Expired_Date** (string) - Optional - Warranty expiry date in format YYYY-MM-DD - **Purchased_Date** (string) - Optional - Purchase date in format YYYY-MM-DD ### Request Example ``` curl --location --request POST 'https://fsm.zoho.com/fsm/v1/Equipments' \ --header 'Authorization: Zoho-oauthtoken 1000.26xxxxxxxxxx.xxxxxxxxxx0' \ --header 'content-type: application/json' \ -d '@createEquipment.json' ``` ### Sample Request Body ```json { "data": [ { "Name": "Demolition 16 Kg Road Hammer Drill Machine", "Description": "Electric model, 230V Single Phase", "Status": "Active", "Type": "Power Tools", "Equipment_Serial_Number": "GBM", "Equipment_Model_Number": "0-2600", "Warranty_Status": "Active", "Warranty_Expired_Date": "2010-04-01", "Purchased_Date": "2025-04-01" } ] } ``` ### Response #### Success Response (200) - **result** (string) - Result status of the operation - **code** (string) - Response code (e.g., SUCCESS) - **status** (string) - Status of the operation - **data** (object) - Response data containing created equipment - **Equipments** (array) - Array of created equipment objects - **UID** (string) - Unique identifier for the equipment record - **id** (string) - Equipment ID - **Created_Time** (string) - Timestamp when equipment was created (ISO 8601 format) - **Created_By** (object) - User who created the equipment - **name** (string) - Name of the creator - **id** (string) - ID of the creator - **Modified_Time** (string) - Timestamp of last modification (ISO 8601 format) - **Modified_By** (object) - User who last modified the equipment - **name** (string) - Name of the modifier - **id** (string) - ID of the modifier - **TabName** (string) - Tab name for the module ### Sample Response ```json { "result": "success", "code": "SUCCESS", "data": { "Equipments": [ { "UID": "Equipments_0", "Modified_Time": "2025-04-01T14:49:14+05:30", "Modified_By": { "name": "Marianne Sheehan", "id": "1003000000208001" }, "Created_Time": "2025-04-01T14:49:14+05:30", "id": "1003000002506040", "Created_By": { "name": "Marianne Sheehan", "id": "1003000000208001" }, "TabName": "Equipments" } ] }, "status": "success" } ``` ``` -------------------------------- ### GET /files Source: https://www.zoho.com/fsm/developer/help/api/download-file Retrieves details of a specific file attachment using its encrypted file ID. ```APIDOC ## GET /files ### Description Retrieves details of a specific file attachment using its encrypted file ID. This endpoint requires appropriate scope for reading files. ### Method GET ### Endpoint /fsm/v1/files ### Parameters #### Query Parameters - **file_id** (String) - Required - The encrypted file ID ($file_id) of the attachment in a note. #### Request Body None ### Request Example ```json { "example": "curl --request GET 'https://fsm.zoho.com/fsm/v1/files?file_id=16806156XXXXXXGwAz1lB' \ --header 'Authorization: Zoho-oauthtoken 1000.xxxx.xxxxxe'" } ``` ### Response #### Success Response (200) - **file_id** (String) - The encrypted file ID of the attachment. - **file_name** (String) - The name of the file. - **content_type** (String) - The MIME type of the file. - **size** (Integer) - The size of the file in bytes. - **created_time** (String) - The timestamp when the file was created. #### Response Example ```json { "example": "{\"file_id\": \"16806156XXXXXXGwAz1lB\", \"file_name\": \"document.pdf\", \"content_type\": \"application/pdf\", \"size\": 102400, \"created_time\": \"2023-10-27T10:30:00Z\"}" } ``` ### Error Handling - **400 Bad Request**: Invalid or missing required parameters. - **401 Unauthorized**: Authentication failed or insufficient scope. - **404 Not Found**: The specified file ID does not exist. - **500 Internal Server Error**: An unexpected error occurred on the server. ``` -------------------------------- ### Sample Success Response for Equipment Creation Source: https://www.zoho.com/fsm/developer/help/api/create-equipment This JSON object shows a successful response from the Zoho FSM API after creating an equipment record. It includes a 'result' and 'status' indicating success, along with 'data' containing details of the newly created equipment, such as its unique ID, modification times, and creator information. ```json { "result": "success", "code": "SUCCESS", "data": { "Equipments": [ { "UID": "Equipments_0", "Modified_Time": "2025-04-01T14:49:14+05:30", "Modified_By": { "name": "Marianne Sheehan", "id": "1003000000208001" }, "Created_Time": "2025-04-01T14:49:14+05:30", "id": "1003000002506040", "Created_By": { "name": "Marianne Sheehan", "id": "1003000000208001" }, "TabName": "Equipments" } ] }, "status": "success" } ``` -------------------------------- ### GET /fsm/v1/Requests/{record_id} Source: https://www.zoho.com/fsm/developer/help/api/get-a-request Retrieves the details of a specific request using its unique identifier. Requires READ scope for ZohoFSM.modules.Requests. ```APIDOC ## GET /fsm/v1/Requests/{record_id} ### Description Retrieves the details of a specific request using its unique identifier. ### Method GET ### Endpoint https://fsm.zoho.com/fsm/v1/Requests/ ### Parameters #### Path Parameters - **record_id** (string) - Required - The unique ID of the record. #### Query Parameters - **scope** (string) - Required - Must be `ZohoFSM.modules.Requests.READ`. #### Request Body None ### Request Example ```curl curl --location --request GET 'https://fsm.zoho.com/fsm/v1/Requests/195000000095181' \ --header 'Authorization: Zoho-oauthtoken 1000.b3xxxxxx.xxxxxxxx3' ``` ### Response #### Success Response (200) - **response** (object) - Contains the details of the request. - **id** (string) - The unique ID of the request. - **subject** (string) - The subject of the request. - **description** (string) - A detailed description of the request. - **status** (string) - The current status of the request. - **priority** (string) - The priority level of the request. - **created_time** (string) - The timestamp when the request was created. - **modified_time** (string) - The timestamp when the request was last modified. - **custom_fields** (object) - Any custom fields associated with the request. #### Response Example ```json { "id": "195000000095181", "subject": "Broken HVAC Unit", "description": "The main HVAC unit in the office building is not functioning.", "status": "Open", "priority": "High", "created_time": "2023-10-27T10:00:00Z", "modified_time": "2023-10-27T11:30:00Z", "custom_fields": { "building_name": "Main Office", "reported_by": "John Doe" } } ``` #### Error Response (400 Bad Request) - **code** (integer) - The error code. - **message** (string) - A description of the error. #### Error Response Example ```json { "code": 4000, "message": "Invalid record ID provided." } ``` #### Error Response (401 Unauthorized) - **code** (integer) - The error code. - **message** (string) - A description of the error. #### Error Response Example ```json { "code": 4001, "message": "Invalid or expired access token." } ``` ``` -------------------------------- ### Fetch Zoho FSM Service and Parts List (cURL) Source: https://www.zoho.com/fsm/developer/help/api/get-products This cURL command demonstrates how to fetch a list of all available services and parts from Zoho FSM. It requires an Authorization header with a Zoho OAuth token and targets the Service_And_Parts API endpoint. The response is sorted by Created Time in descending order. ```bash curl --request GET 'https://fsm.zoho.com/fsm/v1/Service_And_Parts' \ --header 'Authorization: Zoho-oauthtoken 1000.xxxx.xxxxxe' ``` -------------------------------- ### Get Request by ID - cURL API Call Source: https://www.zoho.com/fsm/developer/help/api/get-a-request Retrieve a specific request record from Zoho FSM using the GET HTTP method. This endpoint requires a valid Zoho OAuth token and ZohoFSM.modules.Requests.READ scope authorization. The request_id parameter must be replaced with the actual unique identifier of the request record. ```bash curl --location --request GET 'https://fsm.zoho.com/fsm/v1/Requests/195000000095181' \ --header 'Authorization: Zoho-oauthtoken 1000.b3xxxxxx.xxxxxxxx3' ``` -------------------------------- ### List All Equipments using cURL Source: https://www.zoho.com/fsm/developer/help/api/get-equipments Fetches all available equipments from the Zoho FSM system using a GET request. The response returns equipment records sorted by Created Time in descending order, with support for pagination via page and per_page query parameters. Requires ZohoFSM.modules.Equipment.READ scope and OAuth token authentication. ```bash curl --location --request GET 'https://fsm.zoho.com/fsm/v1/Equipments' \ --header 'Authorization: Zoho-oauthtoken 1000.b3xxxxxx.xxxxxxxx3' ``` -------------------------------- ### Sample Input JSON for Work Order Transition Source: https://www.zoho.com/fsm/developer/help/api/perform-work-order-transition Provides a sample JSON structure for initiating a work order transition. It includes the `transition_id` and an optional `data` object for notes, as required by the Zoho FSM API. ```json { "blueprint": [ { "transition_id": "4776000000169090", "data": { "Notes": "Customer has cancelled the request" } } ] } ``` -------------------------------- ### GET Service and Parts Record (cURL) Source: https://www.zoho.com/fsm/developer/help/api/get-a-product This snippet demonstrates how to retrieve a specific Service and Parts record using its unique ID via a GET request to the Zoho FSM API. It requires an authorization token and specifies the 'ZohoFSM.modules.Service_And_Parts.READ' scope. The response is a JSON object containing the record's details. ```curl curl --request GET 'https://fsm.zoho.com/fsm/v1/Service_And_Parts/195000000095188' \ --header 'Authorization: Zoho-oauthtoken 1000.xxxx.xxxxxe' ```