Returns the expense budgets defined for a PSA project.
GET /psa/expenses/budgets
Group: PSA › Expenses · Operation ID: getExpenseBudgets
Returns the budgets defined for one PSA project, selected by a numeric psaProjectId in the query string. The endpoint requires view access to that project.
Open in the interactive reference
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
Api-Version |
header | "v1" |
yes | The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version v1. |
psaProjectId |
query | number | yes | The id of the PSA project. It is the numeric package-layer key, not the UUID that GET psa/projects/:id takes. |
isDefault |
query | boolean | no | When true, return only the project's default catch-all budget. When false or omitted, return all of the project's budgets. False does not filter to non-default budgets. |
cursor |
query | string | no | The cursor from the previous response's pagination.nextCursor. Omit on the first request. |
pageSize |
query | number | no | The number of budgets per page, between 1 and 200. Defaults to 50. A value above 200 is treated as 200, not rejected. |
Response
200 Success
Under data (getExpenseBudgetsOutput):
| Field | Type | Required | Description |
|---|---|---|---|
items |
array of object | yes | The project's budgets on this page. An empty array when the project has no budgets. |
items[].id |
number | yes | The unique identifier for the budget. |
items[].name |
string | yes | The display name of the budget. |
items[].budget |
string (decimal) | no | The budget amount, in the currency given by currency. Absent when the budget has no amount. |
items[].currency |
string | no | The currency of budget. Format ISO 4217, for example 'USD'. Absent when the budget has no amount. |
items[].isDefault |
boolean | yes | Whether this is the project's default catch-all budget. |
items[].lastModifiedDate |
string (date-time) | no | The date and time the budget definition last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
items[].billable |
boolean | no | Whether expenses against this budget are billable to the customer. |
items[].productId |
number | no | The id of the product tied to this budget. It is a numeric package-layer key, not the UUID that GET accounting/products/:id takes. Absent when the budget is not tied to a product. |
items[].productLineId |
number | no | The id of the product line tied to this budget. It is a numeric package-layer key, not the UUID that GET accounting/product-lines/:id takes. Absent when the budget is not tied to a product line. |
items[].salesOrderId |
number | no | The id of the sales order this budget bills against. It is a numeric package-layer key, not the UUID that GET accounting/sales-orders/:id takes. |
pagination |
object | yes | The pagination cursor for this page. |
pagination.nextCursor |
string | no | The cursor for the next page. Pass it as the cursor query parameter. Absent on the last page. |
pagination.hasMore |
boolean | yes | True when more budgets remain beyond this page. |
Statuses
400— Invalid request or business failure401— Missing or invalid access token403— Not authorized404— Not found429— Too many requests500— Internal server error