# List budget phases Retrieve all budget phases for a project Endpoint: GET /projects/{projectId}/budget/phases Version: 1.0.0 Security: ApiKeyAuth ## Path parameters: - `projectId` (string, required) Project identifier (alias or ID) Example: "nike-spring-2024" ## Query parameters: - `idMode` (string) ID interpretation mode. Controls how path and query parameter IDs (like lineId, accountId, phaseId) are interpreted - 'user' for human-readable IDs (account codes, phase names), 'system' for database IDs (UUIDs/nanoids). Also affects the format of IDs in responses. Enum: "user", "system" ## Response 200 fields (application/json): - `phases` (array) - `phases.type` (string, required) Phase type Enum: "estimate", "actual", "rollup", "committed" - `phases.id` (string, required) Phase system identifier Example: "phase-001" - `phases.alias` (string, required) User-friendly phase alias Example: "estimate" - `phases.name` (string,null) Phase display name Example: "Initial Estimate" - `phases.isHidden` (boolean, required) Whether phase is hidden from view - `phases.isLocked` (boolean, required) Whether phase is locked from editing - `phases.currency` (object,null) Currency configuration (for estimate phases) - `phases.currency.code` (string,null) ISO 4217 currency code Example: "USD" - `phases.currency.symbol` (string,null) Currency symbol Example: "$" - `phases.currency.exchangeRate` (number,null) Exchange rate multiplier Example: 1 - `phases.operation` (string) Rollup operation (for rollup phases) Enum: "sum", "difference" - `phases.phaseIds` (array) Phase IDs to aggregate (for rollup phases) Example: ["estimate","actual"] ## Response 401 fields (application/json): - `error` (string, required) Error message Example: "Invalid request parameters" - `details` (object) Additional error details Example: {"field":"projectId","reason":"Project not found"} - `code` (string) Error code Example: "VALIDATION_ERROR" ## Response 404 fields (application/json): - `error` (string, required) Error message Example: "Invalid request parameters" - `details` (object) Additional error details Example: {"field":"projectId","reason":"Project not found"} - `code` (string) Error code Example: "VALIDATION_ERROR" ## Response 500 fields (application/json): - `error` (string, required) Error message Example: "Invalid request parameters" - `details` (object) Additional error details Example: {"field":"projectId","reason":"Project not found"} - `code` (string) Error code Example: "VALIDATION_ERROR"