Skip to main content
POST
/
project-members
Create a project member
curl --request POST \
  --url https://www.ruddr.io/api/workspace/project-members \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "projectId": "<string>",
  "memberId": "<string>",
  "typeId": "<string>",
  "isActive": true,
  "isBillable": true,
  "rate": 123,
  "overrideCostRate": true,
  "costCurrency": "<string>",
  "costPerHour": 123,
  "overheadCostPerHour": 123,
  "estimatedBillableHours": 123,
  "estimatedNonBillableHours": 123,
  "estimatedMonthlyBillableHours": 123,
  "estimatedMonthlyNonBillableHours": 123,
  "roleIds": [
    "<string>"
  ]
}
'
{
  "id": "e9f0a1b2-c3d4-e5f6-a7b8-c9d0e1f2a3b4",
  "typeId": "collaborator",
  "isActive": true,
  "isBillable": true,
  "rate": 175.5,
  "overrideCostRate": true,
  "costCurrency": "USD",
  "costPerHour": 85,
  "overheadCostPerHour": 12.5,
  "createdAt": "2025-03-10T14:22:31.000Z",
  "member": {
    "id": "b7c8d9e0-1f2a-3b4c-5d6e-7f8a9b0c1d2e",
    "name": "Sarah Chen"
  },
  "project": {
    "id": "c4d5e6f7-8a9b-0c1d-2e3f-4a5b6c7d8e9f",
    "name": "Enterprise Portal Redesign",
    "client": {
      "id": "d1e2f3a4-b5c6-d7e8-f9a0-b1c2d3e4f5a6",
      "name": "Meridian Technologies"
    }
  },
  "roles": null,
  "budget": {
    "billableHours": 120,
    "nonBillableHours": 20
  },
  "monthlyBudget": {
    "billableHours": 40,
    "nonBillableHours": 6.5
  }
}
A team member assigned to a project.

Authorizations

Authorization
string
header
required

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

Body

application/json
projectId
string
required

The project ID (uuid) for this project member.

memberId
string
required

The member ID (uuid) for this project member.

typeId
string

The type of project member. Can be either "administrator" (Project administrator) or "collaborator" (Project collaborator). Defaults to "collaborator".

isActive
boolean

Whether the member is still active on the project.

isBillable
boolean

Whether the member is billable on this project. Only used if the project is not using roles.

rate
number<float>

The member's billing rate for the project. Only used if the project is not using roles and the member is billable.

overrideCostRate
boolean

Whether to override this project member's cost rate at the project member level rather than using the workspace or member default.

costCurrency
string

The ISO 4217 currency code for the overridden cost rate. This will only get used if overrideCostRate is true.

costPerHour
number<float>

The overridden cost per hour. This will only get used if overrideCostRate is true.

overheadCostPerHour
number<float>

The overridden overhead cost per hour. This will only get used if overrideCostRate is true.

estimatedBillableHours
number<float>

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

estimatedNonBillableHours
number<float>

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

estimatedMonthlyBillableHours
number<float>

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

estimatedMonthlyNonBillableHours
number<float>

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

roleIds
string[]

A list of project role IDs (uuid) assigned to the member. Only used if the project is using roles.

Response

200

id
string

The unique identifier for the object.

typeId
string

The type of project member. Can be either "administrator" (Project administrator) or "collaborator" (Project collaborator). Defaults to "collaborator".

isActive
boolean

Whether the member is still active on the project.

isBillable
boolean | null

Whether the member is billable on this project. Only used if the project is not using roles; otherwise billability is assigned at the role level and this field is null.

rate
number<float> | null

The member's billing rate for the project. Only used if the project is not using roles and the member is billable; otherwise null.

overrideCostRate
boolean

Whether this project member's cost rate is overridden at the project member level rather than using the workspace or member default.

costCurrency
string | null

The ISO 4217 currency code for the overridden cost rate. Only populated when overrideCostRate is true; otherwise null.

costPerHour
number<float> | null

The overridden cost per hour for this project member. Only populated when overrideCostRate is true; otherwise null.

overheadCostPerHour
number<float> | null

The overridden overhead cost per hour for this project member. Only populated when overrideCostRate is true; otherwise null.

createdAt
string<date-time>

The timestamp when the object was created.

member
object

The workspace member assigned to this project.

project
object

The project this member belongs to.

roles
object[] | null

The project roles assigned to this member. Only populated when the project uses roles; otherwise null.

budget
object

The member's budget hours for the project. Only populated when the project uses a detailed or aggregated budget and does not use roles; otherwise null.

monthlyBudget
object

The member's monthly budget hours for the project. Only populated when the project uses a detailed monthly budget and does not use roles; otherwise null.