Projects
A project is a series of tasks performed over a period of time, to achieve certain targets. There can be many number of people working on a single project and a project may consist of single or multiple tasks. A project is billed and charged upon a customer whom the project was taken up for.
Attribute
Max-length [100]fixed_cost_for_project, based_on_project_hours, based_on_staff_hours and based_on_task_hoursMax-length [200]Max-length [100]staff, admin and timesheetstaff{
    "project_id": "460000000044019",
    "project_name": "REAL TIME TRAFFIC FLUX",
    "customer_id": "460000000044001",
    "customer_name": "SAF Instruments Inc",
    "currency_code": "USD",
    "description": "A simple algorithm is to be tested with vehicle detection application.",
    "status": "active",
    "billing_type": "fixed_cost_for_project",
    "rate": 5000,
    "budget_type": " ",
    "total_hours": "12:26",
    "total_amount": 500,
    "billed_hours": "12:27",
    "billed_amount": 500,
    "un_billed_hours": "00:00",
    "un_billed_amount": 0,
    "billable_hours": "12:26",
    "billable_amount": 500,
    "non_billable_hours": "0.00",
    "non_billable_amount": 0,
    "cost_budget_amount": "1000.00",
    "is_recurrence_associated": false,
    "recurring_invoices": [
        "string"
    ],
    "created_time": "2013-09-18T18:05:27+0530",
    "show_in_dashboard": true,
    "tasks": [
        {
            "task_id": "460000000044009",
            "task_name": "Distribution Analysis",
            "description": "A simple algorithm is to be tested with vehicle detection application.",
            "rate": 5000,
            "budget_hours": "0",
            "total_hours": "12:26",
            "billed_hours": "12:27",
            "un_billed_hours": "00:00",
            "non_billable_hours": "0.00",
            "status": "active",
            "is_billable": true,
            "task_custom_fields": ""
        }
    ],
    "users": [
        {
            "user_id": "460000000024003",
            "is_current_user": true,
            "user_name": "John David",
            "email": "johndavid@zilliuminc.com",
            "user_role": "admin",
            "status": "active",
            "rate": 5000,
            "budget_hours": "0",
            "total_hours": "12:26",
            "billed_hours": "12:27",
            "un_billed_hours": "00:00",
            "cost_rate": "10.00"
        }
    ]
}
          Create a project
            Create a project.
              
              OAuth Scope : ZohoBooks.projects.CREATE
          
Arguments
Max-length [100]Max-length [500]fixed_cost_for_project, based_on_project_hours, based_on_staff_hours and based_on_task_hourstotal_project_cost, total_project_hours, hours_per_task and hours_per_staffMax-length [100]Max-length [500]Max-length [200]Max-length [100]staff, admin and timesheetstaffQuery Parameters
parameters_data='{"field1":"value1","field2":"value2"}';
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/projects?organization_id=10234695"
type: POST
headers: headers_data
content-type: application/json
parameters: parameters_data
connection: <connection_name>
];
info response;
              OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"field1\":\"value1\",\"field2\":\"value2\"}");
Request request = new Request.Builder()
  .url("https://www.zohoapis.com/books/v3/projects?organization_id=10234695")
  .post(body)
  .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f")
  .addHeader("content-type", "application/json")
  .build();
Response response = client.newCall(request).execute();
              const options = {
  method: 'POST',
  headers: {
    Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f',
    'content-type': 'application/json'
  },
  body: '{"field1":"value1","field2":"value2"}'
};
fetch('https://www.zohoapis.com/books/v3/projects?organization_id=10234695', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
              import http.client
conn = http.client.HTTPSConnection("www.zohoapis.com")
payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}"
headers = {
    'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f",
    'content-type': "application/json"
    }
conn.request("POST", "/books/v3/projects?organization_id=10234695", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
              const http = require("https");
const options = {
  "method": "POST",
  "hostname": "www.zohoapis.com",
  "port": null,
  "path": "/books/v3/projects?organization_id=10234695",
  "headers": {
    "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f",
    "content-type": "application/json"
  }
};
const req = http.request(options, function (res) {
  const chunks = [];
  res.on("data", function (chunk) {
    chunks.push(chunk);
  });
  res.on("end", function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});
req.write(JSON.stringify({field1: 'value1', field2: 'value2'}));
req.end();
              curl --request POST \
  --url 'https://www.zohoapis.com/books/v3/projects?organization_id=10234695' \
  --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \
  --header 'content-type: application/json' \
  --data '{"field1":"value1","field2":"value2"}'
              {
    "project_name": "Network Distribution",
    "customer_id": "460000000044001",
    "currency_id": "460000000098001",
    "description": "Distribution for the system of intermediaries between the producer of goods and/or services and the final user",
    "billing_type": "based_on_task_hours",
    "rate": " ",
    "budget_type": " ",
    "budget_hours": " ",
    "budget_amount": " ",
    "cost_budget_amount": "1000.00",
    "user_id": "INV-00003",
    "tasks": [
        {
            "task_name": "INV-00003",
            "description": "INV-00003",
            "rate": "INV-00003",
            "budget_hours": "INV-00003"
        }
    ],
    "users": [
        {
            "user_id": "INV-00003",
            "is_current_user": true,
            "user_name": "John David",
            "email": "johndavid@zilliuminc.com",
            "user_role": "admin",
            "status": "active",
            "rate": " ",
            "budget_hours": " ",
            "total_hours": "12:26",
            "billed_hours": "12:27",
            "un_billed_hours": "00:00",
            "cost_rate": "10.00"
        }
    ]
}
            {
    "code": 0,
    "message": "The project has been created.",
    "project": {
        "project_id": "460000000044019",
        "project_name": "REAL TIME TRAFFIC FLUX",
        "customer_id": "460000000044001",
        "customer_name": "SAF Instruments Inc",
        "currency_code": "USD",
        "description": "A simple algorithm is to be tested with vehicle detection application.",
        "status": "active",
        "billing_type": "fixed_cost_for_project",
        "rate": 5000,
        "budget_type": " ",
        "total_hours": "12:26",
        "total_amount": 500,
        "billed_hours": "12:27",
        "billed_amount": 500,
        "un_billed_hours": "00:00",
        "un_billed_amount": 0,
        "billable_hours": "12:26",
        "billable_amount": 500,
        "non_billable_hours": "0.00",
        "non_billable_amount": 0,
        "cost_budget_amount": "1000.00",
        "is_recurrence_associated": false,
        "recurring_invoices": [
            "string"
        ],
        "created_time": "2013-09-18T18:05:27+0530",
        "show_in_dashboard": true,
        "tasks": [
            {
                "task_id": "460000000044009",
                "task_name": "Distribution Analysis",
                "description": "A simple algorithm is to be tested with vehicle detection application.",
                "rate": 5000,
                "budget_hours": "0",
                "total_hours": "12:26",
                "billed_hours": "12:27",
                "un_billed_hours": "00:00",
                "non_billable_hours": "0.00",
                "status": "active",
                "is_billable": true,
                "task_custom_fields": ""
            }
        ],
        "users": [
            {
                "user_id": "460000000024003",
                "is_current_user": true,
                "user_name": "John David",
                "email": "johndavid@zilliuminc.com",
                "user_role": "admin",
                "status": "active",
                "rate": 5000,
                "budget_hours": "0",
                "total_hours": "12:26",
                "billed_hours": "12:27",
                "un_billed_hours": "00:00",
                "cost_rate": "10.00"
            }
        ]
    }
}
                Update a project using a custom field's unique value
            A custom field will have unique values if it's configured to not accept duplicate values. Now, you can use that custom field's value to update a project by providing its API name in the X-Unique-Identifier-Key header and its value in the X-Unique-Identifier-Value header. Based on this value, the corresponding project will be retrieved and updated. Additionally, there is an optional X-Upsert header. If the X-Upsert header is true and the custom field's unique value is not found in any of the existing projects, a new project will be created if the necessary payload details are available
              
              OAuth Scope : ZohoBooks.projects.UPDATE
          
Arguments
Max-length [100]Max-length [500]fixed_cost_for_project, based_on_project_hours, based_on_staff_hours and based_on_task_hourstotal_project_cost, total_project_hours, hours_per_task and hours_per_staffMax-length [100]Max-length [500]Max-length [200]Max-length [100]staff, admin and timesheetstaffQuery Parameters
Headers
parameters_data='{"field1":"value1","field2":"value2"}';
headers_data = Map();
headers_data.put("X-Unique-Identifier-Key", "cf_unique_cf");
headers_data.put("X-Unique-Identifier-Value", "unique Value");
headers_data.put("X-Upsert", "true");
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/projects?organization_id=10234695"
type: PUT
headers: headers_data
content-type: application/json
parameters: parameters_data
connection: <connection_name>
];
info response;
              OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"field1\":\"value1\",\"field2\":\"value2\"}");
Request request = new Request.Builder()
  .url("https://www.zohoapis.com/books/v3/projects?organization_id=10234695")
  .put(body)
  .addHeader("X-Unique-Identifier-Key", "cf_unique_cf")
  .addHeader("X-Unique-Identifier-Value", "unique Value")
  .addHeader("X-Upsert", "true")
  .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f")
  .addHeader("content-type", "application/json")
  .build();
Response response = client.newCall(request).execute();
              const options = {
  method: 'PUT',
  headers: {
    'X-Unique-Identifier-Key': 'cf_unique_cf',
    'X-Unique-Identifier-Value': 'unique Value',
    'X-Upsert': 'true',
    Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f',
    'content-type': 'application/json'
  },
  body: '{"field1":"value1","field2":"value2"}'
};
fetch('https://www.zohoapis.com/books/v3/projects?organization_id=10234695', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
              import http.client
conn = http.client.HTTPSConnection("www.zohoapis.com")
payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}"
headers = {
    'X-Unique-Identifier-Key': "cf_unique_cf",
    'X-Unique-Identifier-Value': "unique Value",
    'X-Upsert': "true",
    'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f",
    'content-type': "application/json"
    }
conn.request("PUT", "/books/v3/projects?organization_id=10234695", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
              const http = require("https");
const options = {
  "method": "PUT",
  "hostname": "www.zohoapis.com",
  "port": null,
  "path": "/books/v3/projects?organization_id=10234695",
  "headers": {
    "X-Unique-Identifier-Key": "cf_unique_cf",
    "X-Unique-Identifier-Value": "unique Value",
    "X-Upsert": "true",
    "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f",
    "content-type": "application/json"
  }
};
const req = http.request(options, function (res) {
  const chunks = [];
  res.on("data", function (chunk) {
    chunks.push(chunk);
  });
  res.on("end", function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});
req.write(JSON.stringify({field1: 'value1', field2: 'value2'}));
req.end();
              curl --request PUT \
  --url 'https://www.zohoapis.com/books/v3/projects?organization_id=10234695' \
  --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \
  --header 'X-Unique-Identifier-Key: cf_unique_cf' \
  --header 'X-Unique-Identifier-Value: unique Value' \
  --header 'X-Upsert: true' \
  --header 'content-type: application/json' \
  --data '{"field1":"value1","field2":"value2"}'
              {
    "project_name": "Network Distribution",
    "customer_id": "460000000044001",
    "currency_id": "460000000098001",
    "description": "Distribution for the system of intermediaries between the producer of goods and/or services and the final user",
    "billing_type": "based_on_task_hours",
    "rate": " ",
    "budget_type": " ",
    "budget_hours": " ",
    "budget_amount": " ",
    "cost_budget_amount": "1000.00",
    "user_id": "INV-00003",
    "tasks": [
        {
            "task_name": "INV-00003",
            "description": "INV-00003",
            "rate": "INV-00003",
            "budget_hours": "INV-00003"
        }
    ],
    "users": [
        {
            "user_id": "INV-00003",
            "is_current_user": true,
            "user_name": "John David",
            "email": "johndavid@zilliuminc.com",
            "user_role": "admin",
            "status": "active",
            "rate": " ",
            "budget_hours": " ",
            "total_hours": "12:26",
            "billed_hours": "12:27",
            "un_billed_hours": "00:00",
            "cost_rate": "10.00"
        }
    ]
}
            {
    "code": 0,
    "message": "The project information has been updated.",
    "project": {
        "project_id": "460000000044019",
        "project_name": "REAL TIME TRAFFIC FLUX",
        "customer_id": "460000000044001",
        "customer_name": "SAF Instruments Inc",
        "currency_code": "USD",
        "description": "A simple algorithm is to be tested with vehicle detection application.",
        "status": "active",
        "billing_type": "fixed_cost_for_project",
        "rate": 5000,
        "budget_type": " ",
        "total_hours": "12:26",
        "total_amount": 500,
        "billed_hours": "12:27",
        "billed_amount": 500,
        "un_billed_hours": "00:00",
        "un_billed_amount": 0,
        "billable_hours": "12:26",
        "billable_amount": 500,
        "non_billable_hours": "0.00",
        "non_billable_amount": 0,
        "cost_budget_amount": "1000.00",
        "is_recurrence_associated": false,
        "recurring_invoices": [
            "string"
        ],
        "created_time": "2013-09-18T18:05:27+0530",
        "show_in_dashboard": true,
        "tasks": [
            {
                "task_id": "460000000044009",
                "task_name": "Distribution Analysis",
                "description": "A simple algorithm is to be tested with vehicle detection application.",
                "rate": 5000,
                "budget_hours": "0",
                "total_hours": "12:26",
                "billed_hours": "12:27",
                "un_billed_hours": "00:00",
                "non_billable_hours": "0.00",
                "status": "active",
                "is_billable": true,
                "task_custom_fields": ""
            }
        ],
        "users": [
            {
                "user_id": "460000000024003",
                "is_current_user": true,
                "user_name": "John David",
                "email": "johndavid@zilliuminc.com",
                "user_role": "admin",
                "status": "active",
                "rate": 5000,
                "budget_hours": "0",
                "total_hours": "12:26",
                "billed_hours": "12:27",
                "un_billed_hours": "00:00",
                "cost_rate": "10.00"
            }
        ]
    }
}
                List projects
            List all projects with pagination.
              
              OAuth Scope : ZohoBooks.projects.READ
          
Query Parameters
Status.All, Status.Active and Status.Inactiveproject_name, customer_name, rate and created_timeheaders_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/projects?organization_id=10234695"
type: GET
headers: headers_data
connection: <connection_name>
];
info response;
              OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("https://www.zohoapis.com/books/v3/projects?organization_id=10234695")
  .get()
  .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f")
  .build();
Response response = client.newCall(request).execute();
              const options = {
  method: 'GET',
  headers: {
    Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
  }
};
fetch('https://www.zohoapis.com/books/v3/projects?organization_id=10234695', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
              import http.client
conn = http.client.HTTPSConnection("www.zohoapis.com")
headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" }
conn.request("GET", "/books/v3/projects?organization_id=10234695", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
              const http = require("https");
const options = {
  "method": "GET",
  "hostname": "www.zohoapis.com",
  "port": null,
  "path": "/books/v3/projects?organization_id=10234695",
  "headers": {
    "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"
  }
};
const req = http.request(options, function (res) {
  const chunks = [];
  res.on("data", function (chunk) {
    chunks.push(chunk);
  });
  res.on("end", function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});
req.end();
              curl --request GET \
  --url 'https://www.zohoapis.com/books/v3/projects?organization_id=10234695' \
  --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
              {
    "code": 0,
    "message": "success",
    "projects": [
        {
            "project_id": "460000000044019",
            "project_name": "REAL TIME TRAFFIC FLUX",
            "customer_id": "460000000044001",
            "customer_name": "SAF Instruments Inc",
            "description": "A simple algorithm is to be tested with vehicle detection application.",
            "status": "active",
            "billing_type": "fixed_cost_for_project",
            "rate": 5000,
            "created_time": "2013-09-18T18:05:27+0530",
            "has_attachment": false,
            "total_hours": "12:26",
            "billable_hours": "12:26"
        },
        {...},
        {...}
    ],
    "page_context": [
        {
            "page": 10,
            "per_page": 450,
            "report_name": "Projects",
            "has_more_page": false,
            "sort_order": "D",
            "sort_column": "created_time"
        }
    ]
}
                Update project
            Update details of a project.
              
              OAuth Scope : ZohoBooks.projects.UPDATE
          
Arguments
Max-length [100]Max-length [500]fixed_cost_for_project, based_on_project_hours, based_on_staff_hours and based_on_task_hourstotal_project_cost, total_project_hours, hours_per_task and hours_per_staffMax-length [100]Max-length [500]Max-length [200]Max-length [100]staff, admin and timesheetstaffPath Parameters
Query Parameters
parameters_data='{"field1":"value1","field2":"value2"}';
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/projects/460000000044019?organization_id=10234695"
type: PUT
headers: headers_data
content-type: application/json
parameters: parameters_data
connection: <connection_name>
];
info response;
              OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"field1\":\"value1\",\"field2\":\"value2\"}");
Request request = new Request.Builder()
  .url("https://www.zohoapis.com/books/v3/projects/460000000044019?organization_id=10234695")
  .put(body)
  .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f")
  .addHeader("content-type", "application/json")
  .build();
Response response = client.newCall(request).execute();
              const options = {
  method: 'PUT',
  headers: {
    Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f',
    'content-type': 'application/json'
  },
  body: '{"field1":"value1","field2":"value2"}'
};
fetch('https://www.zohoapis.com/books/v3/projects/460000000044019?organization_id=10234695', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
              import http.client
conn = http.client.HTTPSConnection("www.zohoapis.com")
payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}"
headers = {
    'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f",
    'content-type': "application/json"
    }
conn.request("PUT", "/books/v3/projects/460000000044019?organization_id=10234695", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
              const http = require("https");
const options = {
  "method": "PUT",
  "hostname": "www.zohoapis.com",
  "port": null,
  "path": "/books/v3/projects/460000000044019?organization_id=10234695",
  "headers": {
    "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f",
    "content-type": "application/json"
  }
};
const req = http.request(options, function (res) {
  const chunks = [];
  res.on("data", function (chunk) {
    chunks.push(chunk);
  });
  res.on("end", function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});
req.write(JSON.stringify({field1: 'value1', field2: 'value2'}));
req.end();
              curl --request PUT \
  --url 'https://www.zohoapis.com/books/v3/projects/460000000044019?organization_id=10234695' \
  --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \
  --header 'content-type: application/json' \
  --data '{"field1":"value1","field2":"value2"}'
              {
    "project_name": "Network Distribution",
    "customer_id": "460000000044001",
    "currency_id": "460000000098001",
    "description": "Distribution for the system of intermediaries between the producer of goods and/or services and the final user",
    "billing_type": "based_on_task_hours",
    "rate": " ",
    "budget_type": " ",
    "budget_hours": " ",
    "budget_amount": " ",
    "cost_budget_amount": "1000.00",
    "user_id": "INV-00003",
    "tasks": [
        {
            "task_name": "INV-00003",
            "description": "INV-00003",
            "rate": "INV-00003",
            "budget_hours": "INV-00003"
        }
    ],
    "users": [
        {
            "user_id": "INV-00003",
            "is_current_user": true,
            "user_name": "John David",
            "email": "johndavid@zilliuminc.com",
            "user_role": "admin",
            "status": "active",
            "rate": " ",
            "budget_hours": " ",
            "total_hours": "12:26",
            "billed_hours": "12:27",
            "un_billed_hours": "00:00",
            "cost_rate": "10.00"
        }
    ]
}
            {
    "code": 0,
    "message": "The project information has been updated.",
    "project": {
        "project_id": "460000000044019",
        "project_name": "REAL TIME TRAFFIC FLUX",
        "customer_id": "460000000044001",
        "customer_name": "SAF Instruments Inc",
        "currency_code": "USD",
        "description": "A simple algorithm is to be tested with vehicle detection application.",
        "status": "active",
        "billing_type": "fixed_cost_for_project",
        "rate": 5000,
        "budget_type": " ",
        "total_hours": "12:26",
        "total_amount": 500,
        "billed_hours": "12:27",
        "billed_amount": 500,
        "un_billed_hours": "00:00",
        "un_billed_amount": 0,
        "billable_hours": "12:26",
        "billable_amount": 500,
        "non_billable_hours": "0.00",
        "non_billable_amount": 0,
        "cost_budget_amount": "1000.00",
        "is_recurrence_associated": false,
        "recurring_invoices": [
            "string"
        ],
        "created_time": "2013-09-18T18:05:27+0530",
        "show_in_dashboard": true,
        "tasks": [
            {
                "task_id": "460000000044009",
                "task_name": "Distribution Analysis",
                "description": "A simple algorithm is to be tested with vehicle detection application.",
                "rate": 5000,
                "budget_hours": "0",
                "total_hours": "12:26",
                "billed_hours": "12:27",
                "un_billed_hours": "00:00",
                "non_billable_hours": "0.00",
                "status": "active",
                "is_billable": true,
                "task_custom_fields": ""
            }
        ],
        "users": [
            {
                "user_id": "460000000024003",
                "is_current_user": true,
                "user_name": "John David",
                "email": "johndavid@zilliuminc.com",
                "user_role": "admin",
                "status": "active",
                "rate": 5000,
                "budget_hours": "0",
                "total_hours": "12:26",
                "billed_hours": "12:27",
                "un_billed_hours": "00:00",
                "cost_rate": "10.00"
            }
        ]
    }
}
                Get a project
            Get the details of a project.
              
              OAuth Scope : ZohoBooks.projects.READ
          
Path Parameters
Query Parameters
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/projects/460000000044019?organization_id=10234695"
type: GET
headers: headers_data
connection: <connection_name>
];
info response;
              OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("https://www.zohoapis.com/books/v3/projects/460000000044019?organization_id=10234695")
  .get()
  .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f")
  .build();
Response response = client.newCall(request).execute();
              const options = {
  method: 'GET',
  headers: {
    Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
  }
};
fetch('https://www.zohoapis.com/books/v3/projects/460000000044019?organization_id=10234695', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
              import http.client
conn = http.client.HTTPSConnection("www.zohoapis.com")
headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" }
conn.request("GET", "/books/v3/projects/460000000044019?organization_id=10234695", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
              const http = require("https");
const options = {
  "method": "GET",
  "hostname": "www.zohoapis.com",
  "port": null,
  "path": "/books/v3/projects/460000000044019?organization_id=10234695",
  "headers": {
    "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"
  }
};
const req = http.request(options, function (res) {
  const chunks = [];
  res.on("data", function (chunk) {
    chunks.push(chunk);
  });
  res.on("end", function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});
req.end();
              curl --request GET \
  --url 'https://www.zohoapis.com/books/v3/projects/460000000044019?organization_id=10234695' \
  --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
              {
    "code": 0,
    "message": "success",
    "project": {
        "project_id": "460000000044019",
        "project_name": "REAL TIME TRAFFIC FLUX",
        "customer_id": "460000000044001",
        "customer_name": "SAF Instruments Inc",
        "currency_code": "USD",
        "description": "A simple algorithm is to be tested with vehicle detection application.",
        "status": "active",
        "billing_type": "fixed_cost_for_project",
        "rate": 5000,
        "budget_type": " ",
        "total_hours": "12:26",
        "total_amount": 500,
        "billed_hours": "12:27",
        "billed_amount": 500,
        "un_billed_hours": "00:00",
        "un_billed_amount": 0,
        "billable_hours": "12:26",
        "billable_amount": 500,
        "non_billable_hours": "0.00",
        "non_billable_amount": 0,
        "cost_budget_amount": "1000.00",
        "is_recurrence_associated": false,
        "recurring_invoices": [
            "string"
        ],
        "created_time": "2013-09-18T18:05:27+0530",
        "show_in_dashboard": true,
        "tasks": [
            {
                "task_id": "460000000044009",
                "task_name": "Distribution Analysis",
                "description": "A simple algorithm is to be tested with vehicle detection application.",
                "rate": 5000,
                "budget_hours": "0",
                "total_hours": "12:26",
                "billed_hours": "12:27",
                "un_billed_hours": "00:00",
                "non_billable_hours": "0.00",
                "status": "active",
                "is_billable": true,
                "task_custom_fields": ""
            }
        ]
    }
}
                Delete project
            Deleting a existing project.
              
              OAuth Scope : ZohoBooks.projects.DELETE
          
Path Parameters
Query Parameters
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/projects/460000000044019?organization_id=10234695"
type: DELETE
headers: headers_data
connection: <connection_name>
];
info response;
              OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("https://www.zohoapis.com/books/v3/projects/460000000044019?organization_id=10234695")
  .delete(null)
  .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f")
  .build();
Response response = client.newCall(request).execute();
              const options = {
  method: 'DELETE',
  headers: {
    Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
  }
};
fetch('https://www.zohoapis.com/books/v3/projects/460000000044019?organization_id=10234695', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
              import http.client
conn = http.client.HTTPSConnection("www.zohoapis.com")
headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" }
conn.request("DELETE", "/books/v3/projects/460000000044019?organization_id=10234695", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
              const http = require("https");
const options = {
  "method": "DELETE",
  "hostname": "www.zohoapis.com",
  "port": null,
  "path": "/books/v3/projects/460000000044019?organization_id=10234695",
  "headers": {
    "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"
  }
};
const req = http.request(options, function (res) {
  const chunks = [];
  res.on("data", function (chunk) {
    chunks.push(chunk);
  });
  res.on("end", function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});
req.end();
              curl --request DELETE \
  --url 'https://www.zohoapis.com/books/v3/projects/460000000044019?organization_id=10234695' \
  --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
              {
    "code": 0,
    "message": "The project has been deleted."
}
                Activate project
            Mark project as active.
              
              OAuth Scope : ZohoBooks.projects.CREATE
          
Path Parameters
Query Parameters
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/projects/460000000044019/active?organization_id=10234695"
type: POST
headers: headers_data
connection: <connection_name>
];
info response;
              OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("https://www.zohoapis.com/books/v3/projects/460000000044019/active?organization_id=10234695")
  .post(null)
  .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f")
  .build();
Response response = client.newCall(request).execute();
              const options = {
  method: 'POST',
  headers: {
    Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
  }
};
fetch('https://www.zohoapis.com/books/v3/projects/460000000044019/active?organization_id=10234695', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
              import http.client
conn = http.client.HTTPSConnection("www.zohoapis.com")
headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" }
conn.request("POST", "/books/v3/projects/460000000044019/active?organization_id=10234695", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
              const http = require("https");
const options = {
  "method": "POST",
  "hostname": "www.zohoapis.com",
  "port": null,
  "path": "/books/v3/projects/460000000044019/active?organization_id=10234695",
  "headers": {
    "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"
  }
};
const req = http.request(options, function (res) {
  const chunks = [];
  res.on("data", function (chunk) {
    chunks.push(chunk);
  });
  res.on("end", function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});
req.end();
              curl --request POST \
  --url 'https://www.zohoapis.com/books/v3/projects/460000000044019/active?organization_id=10234695' \
  --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
              {
    "code": 0,
    "message": "The selected Projects have been marked as active."
}
                Inactivate a project
            Marking a project as inactive.
              
              OAuth Scope : ZohoBooks.projects.CREATE
          
Path Parameters
Query Parameters
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/projects/460000000044019/inactive?organization_id=10234695"
type: POST
headers: headers_data
connection: <connection_name>
];
info response;
              OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("https://www.zohoapis.com/books/v3/projects/460000000044019/inactive?organization_id=10234695")
  .post(null)
  .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f")
  .build();
Response response = client.newCall(request).execute();
              const options = {
  method: 'POST',
  headers: {
    Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
  }
};
fetch('https://www.zohoapis.com/books/v3/projects/460000000044019/inactive?organization_id=10234695', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
              import http.client
conn = http.client.HTTPSConnection("www.zohoapis.com")
headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" }
conn.request("POST", "/books/v3/projects/460000000044019/inactive?organization_id=10234695", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
              const http = require("https");
const options = {
  "method": "POST",
  "hostname": "www.zohoapis.com",
  "port": null,
  "path": "/books/v3/projects/460000000044019/inactive?organization_id=10234695",
  "headers": {
    "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"
  }
};
const req = http.request(options, function (res) {
  const chunks = [];
  res.on("data", function (chunk) {
    chunks.push(chunk);
  });
  res.on("end", function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});
req.end();
              curl --request POST \
  --url 'https://www.zohoapis.com/books/v3/projects/460000000044019/inactive?organization_id=10234695' \
  --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
              {
    "code": 0,
    "message": "The selected projects have been marked as inactive."
}
                Clone project
            Cloning a project.
              
              OAuth Scope : ZohoBooks.projects.CREATE
          
Arguments
Max-length [100]Max-length [500]Path Parameters
Query Parameters
parameters_data='{"field1":"value1","field2":"value2"}';
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/projects/460000000044019/clone?organization_id=10234695"
type: POST
headers: headers_data
content-type: application/json
parameters: parameters_data
connection: <connection_name>
];
info response;
              OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"field1\":\"value1\",\"field2\":\"value2\"}");
Request request = new Request.Builder()
  .url("https://www.zohoapis.com/books/v3/projects/460000000044019/clone?organization_id=10234695")
  .post(body)
  .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f")
  .addHeader("content-type", "application/json")
  .build();
Response response = client.newCall(request).execute();
              const options = {
  method: 'POST',
  headers: {
    Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f',
    'content-type': 'application/json'
  },
  body: '{"field1":"value1","field2":"value2"}'
};
fetch('https://www.zohoapis.com/books/v3/projects/460000000044019/clone?organization_id=10234695', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
              import http.client
conn = http.client.HTTPSConnection("www.zohoapis.com")
payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}"
headers = {
    'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f",
    'content-type': "application/json"
    }
conn.request("POST", "/books/v3/projects/460000000044019/clone?organization_id=10234695", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
              const http = require("https");
const options = {
  "method": "POST",
  "hostname": "www.zohoapis.com",
  "port": null,
  "path": "/books/v3/projects/460000000044019/clone?organization_id=10234695",
  "headers": {
    "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f",
    "content-type": "application/json"
  }
};
const req = http.request(options, function (res) {
  const chunks = [];
  res.on("data", function (chunk) {
    chunks.push(chunk);
  });
  res.on("end", function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});
req.write(JSON.stringify({field1: 'value1', field2: 'value2'}));
req.end();
              curl --request POST \
  --url 'https://www.zohoapis.com/books/v3/projects/460000000044019/clone?organization_id=10234695' \
  --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \
  --header 'content-type: application/json' \
  --data '{"field1":"value1","field2":"value2"}'
              {
    "project_name": "Network Distribution",
    "description": "Distribution for the system of intermediaries between the producer of goods and/or services and the final user"
}
            {
    "code": 0,
    "message": "Project has been cloned successfully.",
    "project": {
        "project_id": "460000000044019",
        "project_name": "REAL TIME TRAFFIC FLUX",
        "customer_id": "460000000044001",
        "customer_name": "SAF Instruments Inc",
        "currency_code": "USD",
        "description": "A simple algorithm is to be tested with vehicle detection application.",
        "status": "active",
        "billing_type": "fixed_cost_for_project",
        "rate": 5000,
        "budget_type": " ",
        "total_hours": "12:26",
        "total_amount": 500,
        "billed_hours": "12:27",
        "billed_amount": 500,
        "un_billed_hours": "00:00",
        "un_billed_amount": 0,
        "billable_hours": "12:26",
        "billable_amount": 500,
        "cost_budget_amount": "1000.00",
        "non_billable_hours": "0.00",
        "non_billable_amount": 0,
        "is_recurrence_associated": false,
        "recurring_invoices": [
            "string"
        ],
        "created_time": "2013-09-18T18:05:27+0530",
        "show_in_dashboard": true,
        "tasks": [
            {
                "task_id": "460000000044009",
                "task_name": "Distribution Analysis",
                "description": "A simple algorithm is to be tested with vehicle detection application.",
                "rate": 5000,
                "budget_hours": "0",
                "total_hours": "12:26",
                "billed_hours": "12:27",
                "un_billed_hours": "00:00",
                "non_billable_hours": "0.00",
                "status": "active",
                "is_billable": true,
                "task_custom_fields": ""
            }
        ],
        "users": [
            {
                "user_id": "460000000024003",
                "is_current_user": true,
                "user_name": "John David",
                "email": "johndavid@zilliuminc.com",
                "user_role": "admin",
                "status": "active",
                "rate": 5000,
                "budget_hours": "0",
                "total_hours": "12:26",
                "billed_hours": "12:27",
                "un_billed_hours": "00:00",
                "cost_rate": "10.00"
            }
        ]
    }
}
                Assign users
            Assign a users to a project.
              
              OAuth Scope : ZohoBooks.projects.CREATE
          
Arguments
Path Parameters
Query Parameters
parameters_data='{"field1":"value1","field2":"value2"}';
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/projects/460000000044019/users?organization_id=10234695"
type: POST
headers: headers_data
content-type: application/json
parameters: parameters_data
connection: <connection_name>
];
info response;
              OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"field1\":\"value1\",\"field2\":\"value2\"}");
Request request = new Request.Builder()
  .url("https://www.zohoapis.com/books/v3/projects/460000000044019/users?organization_id=10234695")
  .post(body)
  .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f")
  .addHeader("content-type", "application/json")
  .build();
Response response = client.newCall(request).execute();
              const options = {
  method: 'POST',
  headers: {
    Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f',
    'content-type': 'application/json'
  },
  body: '{"field1":"value1","field2":"value2"}'
};
fetch('https://www.zohoapis.com/books/v3/projects/460000000044019/users?organization_id=10234695', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
              import http.client
conn = http.client.HTTPSConnection("www.zohoapis.com")
payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}"
headers = {
    'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f",
    'content-type': "application/json"
    }
conn.request("POST", "/books/v3/projects/460000000044019/users?organization_id=10234695", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
              const http = require("https");
const options = {
  "method": "POST",
  "hostname": "www.zohoapis.com",
  "port": null,
  "path": "/books/v3/projects/460000000044019/users?organization_id=10234695",
  "headers": {
    "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f",
    "content-type": "application/json"
  }
};
const req = http.request(options, function (res) {
  const chunks = [];
  res.on("data", function (chunk) {
    chunks.push(chunk);
  });
  res.on("end", function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});
req.write(JSON.stringify({field1: 'value1', field2: 'value2'}));
req.end();
              curl --request POST \
  --url 'https://www.zohoapis.com/books/v3/projects/460000000044019/users?organization_id=10234695' \
  --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \
  --header 'content-type: application/json' \
  --data '{"field1":"value1","field2":"value2"}'
              {
    "users": [
        {
            "user_id": "460000000024003"
        }
    ],
    "cost_rate": "10.00"
}
            {
    "code": 0,
    "message": "Users added",
    "users": [
        {
            "user_id": "460000000024003",
            "is_current_user": true,
            "user_name": "John David",
            "email": "johndavid@zilliuminc.com",
            "user_role": "admin",
            "status": "active",
            "rate": 5000,
            "budget_hours": "0",
            "cost_rate": "10.00"
        },
        {...},
        {...}
    ]
}
                List Users
            Get list of users associated with a project.
              
              OAuth Scope : ZohoBooks.projects.READ
          
Path Parameters
Query Parameters
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/projects/460000000044019/users?organization_id=10234695"
type: GET
headers: headers_data
connection: <connection_name>
];
info response;
              OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("https://www.zohoapis.com/books/v3/projects/460000000044019/users?organization_id=10234695")
  .get()
  .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f")
  .build();
Response response = client.newCall(request).execute();
              const options = {
  method: 'GET',
  headers: {
    Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
  }
};
fetch('https://www.zohoapis.com/books/v3/projects/460000000044019/users?organization_id=10234695', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
              import http.client
conn = http.client.HTTPSConnection("www.zohoapis.com")
headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" }
conn.request("GET", "/books/v3/projects/460000000044019/users?organization_id=10234695", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
              const http = require("https");
const options = {
  "method": "GET",
  "hostname": "www.zohoapis.com",
  "port": null,
  "path": "/books/v3/projects/460000000044019/users?organization_id=10234695",
  "headers": {
    "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"
  }
};
const req = http.request(options, function (res) {
  const chunks = [];
  res.on("data", function (chunk) {
    chunks.push(chunk);
  });
  res.on("end", function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});
req.end();
              curl --request GET \
  --url 'https://www.zohoapis.com/books/v3/projects/460000000044019/users?organization_id=10234695' \
  --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
              {
    "code": 0,
    "message": "success",
    "users": [
        {
            "user_id": "460000000024003",
            "is_current_user": true,
            "user_name": "John David",
            "email": "johndavid@zilliuminc.com",
            "user_role": "admin",
            "status": "active",
            "rate": 5000,
            "budget_hours": "0",
            "cost_rate": "10.00"
        },
        {...},
        {...}
    ]
}
                Invite user
            Invite and user to the project.
              
              OAuth Scope : ZohoBooks.projects.CREATE
          
Arguments
Max-length [200]Max-length [100]staff, admin and timesheetstaffPath Parameters
Query Parameters
parameters_data='{"field1":"value1","field2":"value2"}';
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/projects/460000000044019/users/invite?organization_id=10234695"
type: POST
headers: headers_data
content-type: application/json
parameters: parameters_data
connection: <connection_name>
];
info response;
              OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"field1\":\"value1\",\"field2\":\"value2\"}");
Request request = new Request.Builder()
  .url("https://www.zohoapis.com/books/v3/projects/460000000044019/users/invite?organization_id=10234695")
  .post(body)
  .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f")
  .addHeader("content-type", "application/json")
  .build();
Response response = client.newCall(request).execute();
              const options = {
  method: 'POST',
  headers: {
    Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f',
    'content-type': 'application/json'
  },
  body: '{"field1":"value1","field2":"value2"}'
};
fetch('https://www.zohoapis.com/books/v3/projects/460000000044019/users/invite?organization_id=10234695', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
              import http.client
conn = http.client.HTTPSConnection("www.zohoapis.com")
payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}"
headers = {
    'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f",
    'content-type': "application/json"
    }
conn.request("POST", "/books/v3/projects/460000000044019/users/invite?organization_id=10234695", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
              const http = require("https");
const options = {
  "method": "POST",
  "hostname": "www.zohoapis.com",
  "port": null,
  "path": "/books/v3/projects/460000000044019/users/invite?organization_id=10234695",
  "headers": {
    "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f",
    "content-type": "application/json"
  }
};
const req = http.request(options, function (res) {
  const chunks = [];
  res.on("data", function (chunk) {
    chunks.push(chunk);
  });
  res.on("end", function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});
req.write(JSON.stringify({field1: 'value1', field2: 'value2'}));
req.end();
              curl --request POST \
  --url 'https://www.zohoapis.com/books/v3/projects/460000000044019/users/invite?organization_id=10234695' \
  --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \
  --header 'content-type: application/json' \
  --data '{"field1":"value1","field2":"value2"}'
              {
    "user_name": "John David",
    "email": "johndavid@zilliuminc.com",
    "user_role": "admin",
    "rate": " ",
    "budget_hours": "0",
    "cost_rate": "10.00"
}
            {
    "code": 0,
    "message": "The staff has been added.",
    "users": [
        {
            "user_id": "460000000024003",
            "user_name": "John David",
            "email": "johndavid@zilliuminc.com",
            "user_role": "admin",
            "is_current_user": true,
            "cost_rate": "10.00"
        },
        {...},
        {...}
    ]
}
                Update user
            Update details of a user.
              
              OAuth Scope : ZohoBooks.projects.UPDATE
          
Arguments
Max-length [200]staff, admin and timesheetstaffPath Parameters
Query Parameters
parameters_data='{"field1":"value1","field2":"value2"}';
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/projects/460000000044019/users/460000000024003?organization_id=10234695"
type: PUT
headers: headers_data
content-type: application/json
parameters: parameters_data
connection: <connection_name>
];
info response;
              OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"field1\":\"value1\",\"field2\":\"value2\"}");
Request request = new Request.Builder()
  .url("https://www.zohoapis.com/books/v3/projects/460000000044019/users/460000000024003?organization_id=10234695")
  .put(body)
  .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f")
  .addHeader("content-type", "application/json")
  .build();
Response response = client.newCall(request).execute();
              const options = {
  method: 'PUT',
  headers: {
    Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f',
    'content-type': 'application/json'
  },
  body: '{"field1":"value1","field2":"value2"}'
};
fetch('https://www.zohoapis.com/books/v3/projects/460000000044019/users/460000000024003?organization_id=10234695', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
              import http.client
conn = http.client.HTTPSConnection("www.zohoapis.com")
payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}"
headers = {
    'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f",
    'content-type': "application/json"
    }
conn.request("PUT", "/books/v3/projects/460000000044019/users/460000000024003?organization_id=10234695", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
              const http = require("https");
const options = {
  "method": "PUT",
  "hostname": "www.zohoapis.com",
  "port": null,
  "path": "/books/v3/projects/460000000044019/users/460000000024003?organization_id=10234695",
  "headers": {
    "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f",
    "content-type": "application/json"
  }
};
const req = http.request(options, function (res) {
  const chunks = [];
  res.on("data", function (chunk) {
    chunks.push(chunk);
  });
  res.on("end", function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});
req.write(JSON.stringify({field1: 'value1', field2: 'value2'}));
req.end();
              curl --request PUT \
  --url 'https://www.zohoapis.com/books/v3/projects/460000000044019/users/460000000024003?organization_id=10234695' \
  --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \
  --header 'content-type: application/json' \
  --data '{"field1":"value1","field2":"value2"}'
              {
    "user_name": "John David",
    "user_role": "admin",
    "rate": 5000,
    "budget_hours": "0",
    "cost_rate": "10.00"
}
            {
    "code": 0,
    "message": "The staff information has been updated.",
    "users": [
        {
            "user_id": "460000000024003",
            "user_name": "John David",
            "email": "johndavid@zilliuminc.com",
            "user_role": "admin",
            "is_current_user": true,
            "cost_rate": "10.00"
        },
        {...},
        {...}
    ]
}
                Get a Project User
            Get details of a user in project.
              
              OAuth Scope : ZohoBooks.projects.READ
          
Path Parameters
Query Parameters
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/projects/460000000044019/users/460000000024003?organization_id=10234695"
type: GET
headers: headers_data
connection: <connection_name>
];
info response;
              OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("https://www.zohoapis.com/books/v3/projects/460000000044019/users/460000000024003?organization_id=10234695")
  .get()
  .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f")
  .build();
Response response = client.newCall(request).execute();
              const options = {
  method: 'GET',
  headers: {
    Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
  }
};
fetch('https://www.zohoapis.com/books/v3/projects/460000000044019/users/460000000024003?organization_id=10234695', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
              import http.client
conn = http.client.HTTPSConnection("www.zohoapis.com")
headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" }
conn.request("GET", "/books/v3/projects/460000000044019/users/460000000024003?organization_id=10234695", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
              const http = require("https");
const options = {
  "method": "GET",
  "hostname": "www.zohoapis.com",
  "port": null,
  "path": "/books/v3/projects/460000000044019/users/460000000024003?organization_id=10234695",
  "headers": {
    "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"
  }
};
const req = http.request(options, function (res) {
  const chunks = [];
  res.on("data", function (chunk) {
    chunks.push(chunk);
  });
  res.on("end", function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});
req.end();
              curl --request GET \
  --url 'https://www.zohoapis.com/books/v3/projects/460000000044019/users/460000000024003?organization_id=10234695' \
  --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
              {
    "code": 0,
    "message": "success",
    "user": {
        "user_id": "460000000024003",
        "is_current_user": true,
        "user_name": "John David",
        "email": "johndavid@zilliuminc.com",
        "user_role": "admin",
        "cost_rate": "10.00"
    }
}
                Delete user
            Remove user from a project.
              
              OAuth Scope : ZohoBooks.projects.DELETE
          
Path Parameters
Query Parameters
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/projects/460000000044019/users/460000000024003?organization_id=10234695"
type: DELETE
headers: headers_data
connection: <connection_name>
];
info response;
              OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("https://www.zohoapis.com/books/v3/projects/460000000044019/users/460000000024003?organization_id=10234695")
  .delete(null)
  .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f")
  .build();
Response response = client.newCall(request).execute();
              const options = {
  method: 'DELETE',
  headers: {
    Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
  }
};
fetch('https://www.zohoapis.com/books/v3/projects/460000000044019/users/460000000024003?organization_id=10234695', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
              import http.client
conn = http.client.HTTPSConnection("www.zohoapis.com")
headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" }
conn.request("DELETE", "/books/v3/projects/460000000044019/users/460000000024003?organization_id=10234695", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
              const http = require("https");
const options = {
  "method": "DELETE",
  "hostname": "www.zohoapis.com",
  "port": null,
  "path": "/books/v3/projects/460000000044019/users/460000000024003?organization_id=10234695",
  "headers": {
    "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"
  }
};
const req = http.request(options, function (res) {
  const chunks = [];
  res.on("data", function (chunk) {
    chunks.push(chunk);
  });
  res.on("end", function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});
req.end();
              curl --request DELETE \
  --url 'https://www.zohoapis.com/books/v3/projects/460000000044019/users/460000000024003?organization_id=10234695' \
  --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
              {
    "code": 0,
    "message": "The staff has been removed"
}
                Post comment
            Post comment to a project.
              
              OAuth Scope : ZohoBooks.projects.CREATE
          
Arguments
Max-length [500]Path Parameters
Query Parameters
parameters_data='{"field1":"value1","field2":"value2"}';
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/projects/460000000044019/comments?organization_id=10234695"
type: POST
headers: headers_data
content-type: application/json
parameters: parameters_data
connection: <connection_name>
];
info response;
              OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"field1\":\"value1\",\"field2\":\"value2\"}");
Request request = new Request.Builder()
  .url("https://www.zohoapis.com/books/v3/projects/460000000044019/comments?organization_id=10234695")
  .post(body)
  .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f")
  .addHeader("content-type", "application/json")
  .build();
Response response = client.newCall(request).execute();
              const options = {
  method: 'POST',
  headers: {
    Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f',
    'content-type': 'application/json'
  },
  body: '{"field1":"value1","field2":"value2"}'
};
fetch('https://www.zohoapis.com/books/v3/projects/460000000044019/comments?organization_id=10234695', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
              import http.client
conn = http.client.HTTPSConnection("www.zohoapis.com")
payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}"
headers = {
    'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f",
    'content-type': "application/json"
    }
conn.request("POST", "/books/v3/projects/460000000044019/comments?organization_id=10234695", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
              const http = require("https");
const options = {
  "method": "POST",
  "hostname": "www.zohoapis.com",
  "port": null,
  "path": "/books/v3/projects/460000000044019/comments?organization_id=10234695",
  "headers": {
    "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f",
    "content-type": "application/json"
  }
};
const req = http.request(options, function (res) {
  const chunks = [];
  res.on("data", function (chunk) {
    chunks.push(chunk);
  });
  res.on("end", function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});
req.write(JSON.stringify({field1: 'value1', field2: 'value2'}));
req.end();
              curl --request POST \
  --url 'https://www.zohoapis.com/books/v3/projects/460000000044019/comments?organization_id=10234695' \
  --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \
  --header 'content-type: application/json' \
  --data '{"field1":"value1","field2":"value2"}'
              {
    "description": "Billing based on task hours"
}
            List comments
            Get comments for a project.
              
              OAuth Scope : ZohoBooks.projects.READ
          
Path Parameters
Query Parameters
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/projects/460000000044019/comments?organization_id=10234695"
type: GET
headers: headers_data
connection: <connection_name>
];
info response;
              OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("https://www.zohoapis.com/books/v3/projects/460000000044019/comments?organization_id=10234695")
  .get()
  .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f")
  .build();
Response response = client.newCall(request).execute();
              const options = {
  method: 'GET',
  headers: {
    Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
  }
};
fetch('https://www.zohoapis.com/books/v3/projects/460000000044019/comments?organization_id=10234695', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
              import http.client
conn = http.client.HTTPSConnection("www.zohoapis.com")
headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" }
conn.request("GET", "/books/v3/projects/460000000044019/comments?organization_id=10234695", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
              const http = require("https");
const options = {
  "method": "GET",
  "hostname": "www.zohoapis.com",
  "port": null,
  "path": "/books/v3/projects/460000000044019/comments?organization_id=10234695",
  "headers": {
    "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"
  }
};
const req = http.request(options, function (res) {
  const chunks = [];
  res.on("data", function (chunk) {
    chunks.push(chunk);
  });
  res.on("end", function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});
req.end();
              curl --request GET \
  --url 'https://www.zohoapis.com/books/v3/projects/460000000044019/comments?organization_id=10234695' \
  --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
              {
    "code": 0,
    "message": "success",
    "comments": [
        {
            "comment_id": "460000000044027",
            "project_id": "460000000044019",
            "description": "A simple algorithm is to be tested with vehicle detection application.",
            "commented_by_id": "460000000024003",
            "commented_by": "John David",
            "is_current_user": true,
            "date": "6:52 PM",
            "date_description": "19 days ago",
            "time": "6:52 PM"
        },
        {...},
        {...}
    ]
}
                Delete comment
            Deleting a comment.
              
              OAuth Scope : ZohoBooks.projects.DELETE
          
Path Parameters
Query Parameters
headers_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/projects/460000000044019/comments/460000000044027?organization_id=10234695"
type: DELETE
headers: headers_data
connection: <connection_name>
];
info response;
              OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("https://www.zohoapis.com/books/v3/projects/460000000044019/comments/460000000044027?organization_id=10234695")
  .delete(null)
  .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f")
  .build();
Response response = client.newCall(request).execute();
              const options = {
  method: 'DELETE',
  headers: {
    Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
  }
};
fetch('https://www.zohoapis.com/books/v3/projects/460000000044019/comments/460000000044027?organization_id=10234695', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
              import http.client
conn = http.client.HTTPSConnection("www.zohoapis.com")
headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" }
conn.request("DELETE", "/books/v3/projects/460000000044019/comments/460000000044027?organization_id=10234695", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
              const http = require("https");
const options = {
  "method": "DELETE",
  "hostname": "www.zohoapis.com",
  "port": null,
  "path": "/books/v3/projects/460000000044019/comments/460000000044027?organization_id=10234695",
  "headers": {
    "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"
  }
};
const req = http.request(options, function (res) {
  const chunks = [];
  res.on("data", function (chunk) {
    chunks.push(chunk);
  });
  res.on("end", function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});
req.end();
              curl --request DELETE \
  --url 'https://www.zohoapis.com/books/v3/projects/460000000044019/comments/460000000044027?organization_id=10234695' \
  --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
              {
    "code": 0,
    "message": "The comment has been deleted."
}
                List invoices
            Lists invoices created for this project.
              
              OAuth Scope : ZohoBooks.projects.READ
          
Path Parameters
Query Parameters
invoice_number, date, total, balance and created_timeheaders_data = Map();
headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f");
response = invokeUrl
[
url: "https://www.zohoapis.com/books/v3/projects/460000000044019/invoices?organization_id=10234695"
type: GET
headers: headers_data
connection: <connection_name>
];
info response;
              OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("https://www.zohoapis.com/books/v3/projects/460000000044019/invoices?organization_id=10234695")
  .get()
  .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f")
  .build();
Response response = client.newCall(request).execute();
              const options = {
  method: 'GET',
  headers: {
    Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
  }
};
fetch('https://www.zohoapis.com/books/v3/projects/460000000044019/invoices?organization_id=10234695', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
              import http.client
conn = http.client.HTTPSConnection("www.zohoapis.com")
headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" }
conn.request("GET", "/books/v3/projects/460000000044019/invoices?organization_id=10234695", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
              const http = require("https");
const options = {
  "method": "GET",
  "hostname": "www.zohoapis.com",
  "port": null,
  "path": "/books/v3/projects/460000000044019/invoices?organization_id=10234695",
  "headers": {
    "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"
  }
};
const req = http.request(options, function (res) {
  const chunks = [];
  res.on("data", function (chunk) {
    chunks.push(chunk);
  });
  res.on("end", function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});
req.end();
              curl --request GET \
  --url 'https://www.zohoapis.com/books/v3/projects/460000000044019/invoices?organization_id=10234695' \
  --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'
              {
    "code": 0,
    "message": "success",
    "invoices": [
        {
            "invoice_id": "460000000044001",
            "customer_name": "SAF Instruments Inc",
            "status": "active",
            "invoice_number": "INV-00004",
            "reference_number": " ",
            "date": "6:52 PM",
            "due_date": "6:52 PM",
            "total": "310.75",
            "balance": "48.75",
            "created_time": "2013-09-18T18:05:27+0530"
        },
        {...},
        {...}
    ],
    "page_context": {
        "page": 10,
        "per_page": 450,
        "report_name": "Projects",
        "has_more_page": false,
        "sort_order": "D",
        "sort_column": "created_time"
    }
}
                
{ "code": 0, "message": "Comments added.", "comments": [ { "project_id": "460000000044019", "comment_id": "460000000044027", "description": "A simple algorithm is to be tested with vehicle detection application.", "commented_by_id": "460000000024003", "commented_by": "John David", "date": "6:52 PM", "date_description": "19 days ago", "time": "6:52 PM" }, {...}, {...} ] }