Skip to main content
PATCH
/
project-roles
/
{id}
Update a project role
curl --request PATCH \
  --url https://www.ruddr.io/api/workspace/project-roles/{id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "isActive": true,
  "isBillable": true,
  "rate": 123,
  "estimatedBillableHours": 123,
  "estimatedNonBillableHours": 123,
  "estimatedMonthlyBillableHours": 123,
  "estimatedMonthlyNonBillableHours": 123,
  "disciplineId": "<string>",
  "practiceId": "<string>",
  "locationId": "<string>"
}
'
{ "id": "3e7a1b2c-8f4d-4a9e-b6c3-d2f5a8e1c9b7", "name": "Senior Engineer", "isActive": true, "isBillable": true, "rate": 175, "createdAt": "2025-03-12T14:22:08.500Z", "discipline": { "id": "a91f4c2d-73b5-4e6a-8d1c-f3e7b2a9c4d6", "name": "Engineering" }, "practice": { "id": "c45d8e3f-12a7-4b9c-9e2d-7f6a1b3c8d5e", "name": "Software Development" }, "location": { "id": "f2b7c9a4-85d3-4f1e-a6b8-c3d9e7f2a1b4", "name": "New York" }, "project": { "id": "d8e3f7a2-c1b9-4d6e-8f2a-b5c7d3e9f1a6", "name": "Platform Modernization", "client": { "id": "e1a4b8c3-d7f2-4e9a-b6c1-a3d8f4e7b2c9", "name": "Acme Corporation" } }, "budget": { "billableHours": 320, "nonBillableHours": 40 }, "monthlyBudget": { "billableHours": 80, "nonBillableHours": 10 } }
A role on a project used to group rates and billability settings, then assigned to project members.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
string
required

The project role uuid

Body

application/json
name
string

The name of the role (max 255 chars).

isActive
boolean

Whether the role is still active on the project.

isBillable
boolean

Whether the role is billable. Defaults to the project's billability and is overridden to false if the project is non-billable.

rate
number

The billing rate for this role. Will only be applied for billable projects and roles.

estimatedBillableHours
number

The number of billable hours to budget. This will only get used if useBudget is true and budgetMode is "detailed" on the project.

estimatedNonBillableHours
number

The number of non-billable hours to budget. This will only get used if useBudget is true and budgetMode is "detailed" on the project.

estimatedMonthlyBillableHours
number

The number of billable hours on the monthly budget. This will only get used if useMonthlyBudget is true and monthlyBudgetMode is "detailed" on the project.

estimatedMonthlyNonBillableHours
number

The number of non-billable hours on the monthly budget. This will only get used if useMonthlyBudget is true and monthlyBudgetMode is "detailed" on the project.

disciplineId
string

The discipline ID (uuid) for this role.

practiceId
string

The practice ID (uuid) for this role.

locationId
string

The location ID (uuid) for this role.

Response

200

id
string

The unique identifier for the object.

name
string

The name of the role (max 255 chars).

isActive
boolean

Whether the role is still active on the project.

isBillable
boolean

Whether the role is billable. Defaults to the project's billability and is overridden to false if the project is non-billable.

rate
number | null

The billing rate for this role. null when the role or project is non-billable.

createdAt
string<date-time>

The timestamp when the object was created.

discipline
object

The discipline associated with this role. null if not assigned.

practice
object

The practice associated with this role. null if not assigned.

location
object

The location associated with this role. null if not assigned.

project
object

The project this role belongs to.

budget
object

The budget hours for this role. null when the project does not use a budget.

monthlyBudget
object

The monthly budget hours for this role. null when the project does not use a monthly budget in detailed mode.