---
title: "List project roles"
method: GET
path: "/project-roles"
tags: ["Project Roles"]
---

# List project roles

`GET /project-roles`

## Request

- Base URL: `https://www.ruddr.io/api/workspace`
- URL: `https://www.ruddr.io/api/workspace/project-roles`
- Auth: HTTP bearer

## Query parameters

- `startingAfter` string
- `endingBefore` string
- `limit` integer
- `projectId` string

## Response `200`

200

- object
  - `results` ProjectRole[]: The list of results for the current page.
    - `id` string: The unique identifier for the object.
    - `name` string: The name of the role.
    - `isActive` boolean: Whether the role is still active on the project.
    - `isBillable` boolean: Whether the role is billable. Overridden to `false` when the project is non-billable.
    - `rate` number, nullable: The billing rate for this role. `null` when the role or project is non-billable. When Project Rate Cards is enabled, this is the rate on the rate card covering today; see `rateCards` for other periods.
    - `createdAt` string, date-time: The timestamp when the object was created.
    - `project` object: The project this role belongs to.
      - `id` string: The unique identifier for the object.
      - `name` string: The name of the project.
      - `client` object: The client associated with the project.
        - `id` string: The unique identifier for the object.
        - `name` string: The name of the client.
    - `discipline` object, nullable: The discipline associated with this role. `null` if not assigned.
      - `id` string: The unique identifier for the object.
      - `name` string: The name of the discipline.
    - `practice` object, nullable: The practice associated with this role. `null` if not assigned.
      - `id` string: The unique identifier for the object.
      - `name` string: The name of the practice.
    - `location` object, nullable: The location associated with this role. `null` if not assigned.
      - `id` string: The unique identifier for the object.
      - `name` string: The name of the location.
    - `budget` object, nullable: The budget hours for this role. `null` when the project does not use a budget.
      - `billableHours` number, nullable: The budgeted billable hours for this role. `null` when the role or project is non-billable.
      - `nonBillableHours` number, nullable: The budgeted non-billable hours for this role.
    - `monthlyBudget` object, nullable: The monthly budget hours for this role. `null` when the project does not use a monthly budget in detailed mode.
      - `billableHours` number, nullable: The budgeted monthly billable hours for this role. `null` when the role or project is non-billable.
      - `nonBillableHours` number, nullable: The budgeted monthly non-billable hours for this role.
    - `rateCards` object[], nullable: The role's rates on each project rate card, earliest first. `null` if the Project Rate Cards feature is not enabled.
      - `id` string: The unique identifier of the project rate card.
      - `start` string, date, nullable: The date the rate card takes effect. Will be in the form YYYY-MM-DD. `null` for the earliest rate card.
      - `end` string, date, nullable: The last date the rate card covers. Will be in the form YYYY-MM-DD. `null` for the last rate card.
      - `rate` number, nullable: The role's billing rate on this rate card. `null` when the role or project is non-billable.
  - `hasMore` boolean: Whether there are more results available after this page.

## Other responses

- `400`: 400

---

[API](https://skmtc.dev/ruddr/apis/ruddr-api.md) · [All operations](https://skmtc.dev/ruddr/apis/ruddr-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ruddr/apis/ruddr-api/revisions/01c3f2a969ba?raw)
