Add project user
curl --request POST \
--url https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <x-api-key>' \
--data '
{
"project_user": {
"user_id": "5a2de667-243b-4da3-b090-b698a03d98da",
"role": "regular_user",
"hourly_rate": 75.5
},
"email": "john@example.com"
}
'import requests
url = "https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users"
payload = {
"project_user": {
"user_id": "5a2de667-243b-4da3-b090-b698a03d98da",
"role": "regular_user",
"hourly_rate": 75.5
},
"email": "john@example.com"
}
headers = {
"X-Api-Key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
project_user: {
user_id: '5a2de667-243b-4da3-b090-b698a03d98da',
role: 'regular_user',
hourly_rate: 75.5
},
email: 'john@example.com'
})
};
fetch('https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'project_user' => [
'user_id' => '5a2de667-243b-4da3-b090-b698a03d98da',
'role' => 'regular_user',
'hourly_rate' => 75.5
],
'email' => 'john@example.com'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users"
payload := strings.NewReader("{\n \"project_user\": {\n \"user_id\": \"5a2de667-243b-4da3-b090-b698a03d98da\",\n \"role\": \"regular_user\",\n \"hourly_rate\": 75.5\n },\n \"email\": \"john@example.com\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<x-api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users")
.header("X-Api-Key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"project_user\": {\n \"user_id\": \"5a2de667-243b-4da3-b090-b698a03d98da\",\n \"role\": \"regular_user\",\n \"hourly_rate\": 75.5\n },\n \"email\": \"john@example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<x-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"project_user\": {\n \"user_id\": \"5a2de667-243b-4da3-b090-b698a03d98da\",\n \"role\": \"regular_user\",\n \"hourly_rate\": 75.5\n },\n \"email\": \"john@example.com\"\n}"
response = http.request(request)
puts response.read_body{
"project_user": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"role": "<string>",
"hourly_rate": 123,
"name": "<string>",
"email": "jsmith@example.com",
"time_zone": "<string>"
}
}Project Users (v1)
Add project user
Add a user to a project.
POST
/
projects
/
{project_id}
/
project_users
Add project user
curl --request POST \
--url https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <x-api-key>' \
--data '
{
"project_user": {
"user_id": "5a2de667-243b-4da3-b090-b698a03d98da",
"role": "regular_user",
"hourly_rate": 75.5
},
"email": "john@example.com"
}
'import requests
url = "https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users"
payload = {
"project_user": {
"user_id": "5a2de667-243b-4da3-b090-b698a03d98da",
"role": "regular_user",
"hourly_rate": 75.5
},
"email": "john@example.com"
}
headers = {
"X-Api-Key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
project_user: {
user_id: '5a2de667-243b-4da3-b090-b698a03d98da',
role: 'regular_user',
hourly_rate: 75.5
},
email: 'john@example.com'
})
};
fetch('https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'project_user' => [
'user_id' => '5a2de667-243b-4da3-b090-b698a03d98da',
'role' => 'regular_user',
'hourly_rate' => 75.5
],
'email' => 'john@example.com'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users"
payload := strings.NewReader("{\n \"project_user\": {\n \"user_id\": \"5a2de667-243b-4da3-b090-b698a03d98da\",\n \"role\": \"regular_user\",\n \"hourly_rate\": 75.5\n },\n \"email\": \"john@example.com\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<x-api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users")
.header("X-Api-Key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"project_user\": {\n \"user_id\": \"5a2de667-243b-4da3-b090-b698a03d98da\",\n \"role\": \"regular_user\",\n \"hourly_rate\": 75.5\n },\n \"email\": \"john@example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<x-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"project_user\": {\n \"user_id\": \"5a2de667-243b-4da3-b090-b698a03d98da\",\n \"role\": \"regular_user\",\n \"hourly_rate\": 75.5\n },\n \"email\": \"john@example.com\"\n}"
response = http.request(request)
puts response.read_body{
"project_user": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"role": "<string>",
"hourly_rate": 123,
"name": "<string>",
"email": "jsmith@example.com",
"time_zone": "<string>"
}
}Deprecated: This is a v1 endpoint and is deprecated. Please use the
v2 API instead. v1 endpoints will be removed
in a future release.
Replace
Learn how to find your subdomain in Workspace subdomain.
{your-subdomain} with your workspace’s subdomain. Learn how to find your subdomain in Workspace subdomain.
Headers
Use the X-Api-Key header to provide your workspace API key. Refer to Authentication for more information.
Path Parameters
Unique ID of the project for which you want to retrieve or update details. Refer to Getting the Project ID section for detailed instructions.
Body
application/json
Hide child attributes
Hide child attributes
User ID of the project user to add. Refer to Getting the User ID section for detailed instructions.
Example:
"5a2de667-243b-4da3-b090-b698a03d98da"
Role of the project user in the project.
Available options:
project_manager, regular_user Example:
"regular_user"
Hourly rate for the project user in this project.
Example:
75.5
Email of the person adding the project user.
Example:
"john@example.com"
Response
200 - application/json
OK - Project user added successfully
⌘I