# Budget Build hierarchical budgets with accounts, line items, subtotals, and markups. Use `expands[]=phases&expands[]=fringes&expands[]=globals&expands[]=lines.contact&expands[]=lines.phaseData` to fetch complete budget data in one call. Reference budget lines by account code (e.g., `"1100-LABOR"`) with `idMode=user`. ## Get budget - [GET /projects/{projectId}/budget](https://docs.saturation.io/openapi/budget/getbudget.md): Retrieve budget information for a project ## Create budget lines - [POST /projects/{projectId}/budget](https://docs.saturation.io/openapi/budget/createbudgetlines.md): Add new budget lines to an existing account within the budget hierarchy. This endpoint creates line items, sub-accounts, subtotals, or markups at the specified location in your budget structure. The target account must already exist in the budget hierarchy. Use to add lines at the top level of your budget. ## Get budget line - [GET /projects/{projectId}/budget/line/{lineId}](https://docs.saturation.io/openapi/budget/getbudgetline.md): Retrieve a specific budget line by its identifier. The lineId parameter accepts both user-friendly IDs and system IDs: - With (default): Use account codes like "1100" or "camera-dept" - With : Use UUIDs/nanoids like "abc123xyz" or "550e8400-e29b-41d4-a716" ## Update budget line - [PUT /projects/{projectId}/budget/line/{lineId}](https://docs.saturation.io/openapi/budget/updatebudgetline.md): Update an existing budget line with new values. The lineId in the path accepts both ID formats based on the idMode in the request body: - User-friendly IDs: Account codes like "2150" or descriptive IDs - System IDs: Database identifiers when idMode is set to "system" ## Delete budget line - [DELETE /projects/{projectId}/budget/line/{lineId}](https://docs.saturation.io/openapi/budget/deletebudgetline.md): Delete a budget line from the project. The lineId parameter accepts both ID formats: - With (default): Use human-readable IDs - With : Use system-generated IDs