---
title: "Create a project rate card"
method: POST
path: "/project-rate-cards"
tags: ["Project Rate Cards"]
---

# Create a project rate card

`POST /project-rate-cards`

## Request

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

Requires the Project Rate Cards workspace feature and `useRateCards` turned on for the project.

## Request body

- object
  - `projectId` string, required: The unique identifier of the project the rate card belongs to.
  - `start` string, date, required: The date the rate card takes effect. Will be in the form YYYY-MM-DD. The new rate card starts from the rates in effect on that date, and any rates supplied are written on top.
  - `notes` string, nullable: Notes describing the rate card.
  - `memberRates` object[]: The member rates to write onto the rate card.
    - `memberId` string, required: The unique identifier of the member.
    - `rate` number, nullable: The member's billing rate on this rate card.
    - `overrideCostRate` boolean: Whether the member's cost rate is overridden on this project.
    - `costCurrency` string, nullable: The ISO 4217 currency code for the overridden cost rate.
    - `costPerHour` number, nullable: The overridden cost per hour.
    - `overheadCostPerHour` number, nullable: The overridden overhead cost per hour.
  - `roleRates` object[]: The role rates to write onto the rate card.
    - `projectRoleId` string, required: The unique identifier of the project role.
    - `rate` number, nullable: The role's billing rate on this rate card.

## Response `200`

200

- ProjectRateCard
  - `id` string: The unique identifier for the object.
  - `notes` string, nullable: Notes describing the 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 on a project, which covers every date before the next one.
  - `end` string, date, nullable: The last date the rate card covers. Will be in the form YYYY-MM-DD. Derived from the start of the next rate card, and null for the last one.
  - `isBudgetRateCard` boolean: Whether the project budget is priced with this rate card.
  - `createdAt` string, date-time: The timestamp when the object was created.
  - `project` object: The project this rate card 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.
  - `memberRates` object[]: The member rates recorded on this rate card.
    - `memberId` string: The unique identifier of the member.
    - `rate` number, nullable: The member's billing rate on this rate card.
    - `overrideCostRate` boolean: Whether the member's cost rate is overridden on this project.
    - `costCurrency` string, nullable: The ISO 4217 currency code for the overridden cost rate. Only populated when `overrideCostRate` is `true`; otherwise `null`.
    - `costPerHour` number, nullable: The overridden cost per hour. Only populated when `overrideCostRate` is `true`; otherwise `null`.
    - `overheadCostPerHour` number, nullable: The overridden overhead cost per hour. Only populated when `overrideCostRate` is `true`; otherwise `null`.
  - `roleRates` object[]: The role rates recorded on this rate card.
    - `projectRoleId` string: The unique identifier of the project role.
    - `rate` number, nullable: The role's billing rate on this rate card.

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