Skip to main content
POST
/
project-budget-expenses
Create a project budget expense
curl --request POST \
  --url https://www.ruddr.io/api/workspace/project-budget-expenses \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "projectId": "<string>",
  "expenseCategoryId": "<string>",
  "billableAmount": 123,
  "nonBillableAmount": 123,
  "notes": "<string>"
}
'
{
  "id": "3f8a1c2d-5b7e-4a9f-8c6d-1e2f3a4b5c6d",
  "billableAmount": 2500,
  "nonBillableAmount": 750,
  "createdAt": "2026-01-14T09:32:11.452Z",
  "expenseCategory": {
    "id": "7d4e9f2a-1c3b-4d5e-6f7a-8b9c0d1e2f3a",
    "name": "Airfare"
  },
  "project": {
    "id": "a1b2c3d4-e5f6-7a8b-9c0d-e1f2a3b4c5d6",
    "name": "Website Redesign",
    "client": {
      "id": "f9e8d7c6-b5a4-3210-fedc-ba9876543210",
      "name": "Acme Corporation"
    }
  }
}
The budget for an expense category on a project. Only available for projects that are using a budget and the budget mode is either “detailed” or “aggregated”.

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 ID (uuid) of the project this budget expense belongs to.

expenseCategoryId
string
required

The ID (uuid) of the expense category for this budget expense.

billableAmount
number | null

The total billable amount for the expense category.

nonBillableAmount
number | null

The total non-billable amount for the expense category.

notes
string | null

Notes about this budget expense. Maximum 5000 characters.

Response

200

id
string

The unique identifier for the object.

billableAmount
number | null

The total billable amount for the expense category. null when the project is non-billable.

nonBillableAmount
number | null

The total non-billable amount for the expense category.

createdAt
string<date-time>

The timestamp when the object was created.

expenseCategory
object
project
object