---
title: "Create a standalone client role"
method: POST
path: "/client-roles"
tags: ["Client Roles"]
---

# Create a standalone client role

`POST /client-roles`

## Request

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

Create a standalone client role with custom billing terms. To create a client role linked to a workspace role, use `POST /client-roles/link` instead.

## Request body

- object
  - `clientId` string, required: The `uuid` of the client this role belongs to.
  - `name` string, required: The name of the client role. Maximum 255 characters.
  - `currency` string, nullable: The three-letter ISO currency code for the role. Maximum 3 characters. Defaults to the client's currency if not provided.
  - `isBillable` boolean: Whether the role is billable. Defaults to `true` if not provided.
  - `rate` number, nullable: The billing rate for the role.
  - `disciplineId` string, nullable: The `uuid` of the discipline for this role.
  - `practiceId` string, nullable: The `uuid` of the practice for this role.
  - `locationId` string, nullable: The `uuid` of the location for this role.

## Response `200`

200

- ClientRole
  - `id` string: The unique identifier for the object.
  - `name` string: The name of the client role. Reflects the workspace role's name when linked.
  - `isBillable` boolean: Whether the role is billable. Reflects the workspace role's value when linked.
  - `rate` number, nullable: The billing rate for the role. `null` when the role is non-billable. Reflects the workspace role's value when linked.
  - `currency` string, nullable: The three-letter ISO currency code for the role. `null` when the role is non-billable. Reflects the workspace role's value when linked.
  - `createdAt` string, date-time: The timestamp when the object was created.
  - `client` object: The client this role belongs to.
    - `id` string: The unique identifier for the object.
    - `name` string: The name of the client.
  - `discipline` object, nullable: The discipline associated with this role. Reflects the workspace role's value when linked.
    - `id` string: The unique identifier for the object.
    - `name` string: The name of the discipline.
  - `practice` object, nullable: The practice associated with this role. Reflects the workspace role's value when linked.
    - `id` string: The unique identifier for the object.
    - `name` string: The name of the practice.
  - `location` object, nullable: The location associated with this role. Reflects the workspace role's value when linked.
    - `id` string: The unique identifier for the object.
    - `name` string: The name of the location.
  - `workspaceRole` object, nullable: The workspace role this client role is linked to. When linked, the client role's name, billing fields, and classification fields are overridden with the workspace role's current values. `null` for standalone client roles.
    - `id` string: The unique identifier for the object.
    - `name` string: The name of the workspace role.

## Other responses

- `400`: 400
- `403`: 403
- `409`: 409

---

[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)
