Update project user
curl --request PATCH \
--url https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users/{project_user_id} \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <x-api-key>' \
--data '
{
"email": "oliver@example.com"
}
'import requests
url = "https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users/{project_user_id}"
payload = { "email": "oliver@example.com" }
headers = {
"X-Api-Key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-Api-Key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({email: 'oliver@example.com'})
};
fetch('https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users/{project_user_id}', 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/{project_user_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'email' => 'oliver@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/{project_user_id}"
payload := strings.NewReader("{\n \"email\": \"oliver@example.com\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users/{project_user_id}")
.header("X-Api-Key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"oliver@example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users/{project_user_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-Api-Key"] = '<x-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"oliver@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)
Update project user
Update a project user.
PATCH
/
projects
/
{project_id}
/
project_users
/
{project_user_id}
Update project user
curl --request PATCH \
--url https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users/{project_user_id} \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <x-api-key>' \
--data '
{
"email": "oliver@example.com"
}
'import requests
url = "https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users/{project_user_id}"
payload = { "email": "oliver@example.com" }
headers = {
"X-Api-Key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-Api-Key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({email: 'oliver@example.com'})
};
fetch('https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users/{project_user_id}', 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/{project_user_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'email' => 'oliver@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/{project_user_id}"
payload := strings.NewReader("{\n \"email\": \"oliver@example.com\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users/{project_user_id}")
.header("X-Api-Key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"oliver@example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{your-subdomain}.neetoinvoice.com/api/external/v1/projects/{project_id}/project_users/{project_user_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-Api-Key"] = '<x-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"oliver@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.
Unique ID of the project user record. Refer to Getting the Project User ID section for detailed instructions.
Body
application/json
Email of the person updating the project user.
Example:
"oliver@example.com"
Response
200 - application/json
OK - Project user updated successfully
⌘I