v1/containers/{containerId}/budgets
Returns all the budgets in a specific project.
Resource Information
Method and URI | GET https://developer.api.autodesk.com/cost/v1/containers/:containerId/budgets |
Authentication Context | user context required |
Required OAuth Scopes | data:read |
Data Format | JSON |
Request
Headers
Authorization* string | Must be Bearer <token> , where <token> is obtained via a three-legged OAuth flow. |
region string | The region where the project data resides, to which this request is routed.
This header is optional because the request is automatically routed to a target region based on the project ID or container ID. Using the header, though, can save lookup time on each API call. For information about verifying the region the data resides in, see the Working with BIM 360 Services in Different Regions section on the API Basics page. Possible values: |
Request
URI Parameters
containerId string: UUID | The ID of the cost container for the project. Each project is assigned a container that stores all of the cost data for the project.
To find the container ID, see the Retrieve a Cost Container ID tutorial. In ACC projects, the container ID is the same as the project ID. To obtain a project ID, use GET projects. |
Request
Query String Parameters
include array: string | A list of nested resources top include in the response. For example, include=subitems will return the sub budget items. include=attributes will return custom attributes which represents the “properties” in the response. If idOnly is set, the response will only include a list of ids, and other include will be ignored. Possible values: subitems , attributes , contract , mainContract , mainContractItem , segments , idOnly , compounded . |
filter[rootId] array: string: uuid | Query related sub-items for the given root item ID. Separate multiple IDs with commas. For example, filter[rootId]=id1,id2 . |
filter[id] array: string: uuid | Returns only the items that are identified by the provided list of item IDs. Separate multiple IDs with commas. For example, filter[id]=id1,id2 . |
filter[lastModifiedSince] string | Returns only items that were modified since the specified date and time, in ISO 8601 format. For example, filter[lastModifiedSince]=2020-03-01T13:00:00Z . |
filter[externalSystem] string | The name of the external ERP system. Use this name to identify or search within the integrated system. For example, filter[externalSystem]=Sage300 .
Max length: 255 |
filter[externalId] array: string | The ID of the item in the external ERP system. Use this ID to track or look up data in an integrated ERP system. For example, filter[externalId]=id1,id2 . |
filter[code] array: string | Returns only items that are identified by the specified codes (separated by commas). For example, filter[code]="2703,2704" .
Note that even single codes in number format must be enclosed in double quotes: |
offset int | The number of objects to skip before returning a page of records. To return the subsequent page, increment this number by the value of limit in the next request. |
limit int | The maximum number of records that this endpoint returns per page. Default: 100 .
Note that a returned page may contain fewer items than the limit under either of these conditions:
|
sort string | The sort order for items. Each attribute can be sorted in either asc (default) or desc order. For example, sort=name, updatedAt desc or sort=name + updatedAt desc sorts the results first by name in ascending order, then by date updated in descending order. |
Response
HTTP Status Code Summary
200 OK | Success |
400 Bad Request | The parameters are invalid. |
401 Unauthorized | The provided bearer token is invalid. |
403 Forbidden | Forbidden. The user or service represented by the bearer token does not have permission to perform this operation. |
404 Not Found | The resource or endpoint cannot be found. |
409 Conflict | The request could not be completed due to a conflict with the current state of the resource. |
429 Too Many Requests | Rate limit exceeded. Retry your request after a few minutes. |
500 Internal Server Error | An unexpected error occurred on the server. |
503 Service Unavailable | Service unavailable. |
Response
Body Structure (200)
pagination object | Pagination information when data must be returned page by page. |
limit int | The maximum number of objects returned in this response. |
offset int | The number of resulting objects that were skipped before this page of records was returned. |
totalResults int | The total number of objects found that satisfied the request criteria. |
nextUrl string | The URL for the next request to return the next page of records.
Max length: 2000 |
results array: object | The detailed budgets. |
id string: UUID | Unique identifier of the budget. |
parentId string,null | ID of a parent budget, null for root budgets. |
code string | Unique code compliant with the budget code template defined by the project admin.
Max length: 255 |
scope enum:string | The scope of the budget. Possible values are budgetOnly and budgetAndCost . |
subItems array,null | The sub-budget in the root budget.
Max length: 255 |
budgetCode object,null | Budget code template and budget segment codes used in the budget. Not applicable for sub-budget. |
codeSegmentValues object | Not relevant |
name string | The name of the budget.
Max length: 1024 |
description string | The detail description of the budget.
Max length: 2048 |
quantity number | The quantity of labor, material,… planned for the budget. |
inputQuantity number,null | The input quantity planned for the budget. |
ratio number | The ratio of the quantity the resources used on the budget. |
unitPrice number,string,null | Unit price of a budget. |
unit string | Unit of measures used in the budget. |
originalAmount number | Original amount of the budget, equals to quantity * unitPrice |
milestoneId string,null | Not relevant |
internalAdjustment number | Amount of internal transfers between budgets |
approvedOwnerChanges number | The total amount of changes approved by the owner |
pendingOwnerChanges number | The total amount of changes waiting for the approval by the owner |
originalCommitment number | The original amount committed in the supplier contract. |
approvedChangeOrders number | The total amount of changes committed to the supplier. |
approvedInScopeChangeOrders number | The total amount of in-scope changes committed to the supplier. |
pendingChangeOrders number | The total amount of changes not committed to the supplier. |
reserves number | The total amount of changes under estimation. |
actualQuantity number | The total of the actual quantity of labor, material,… for the budget. |
actualUnitPrice number,string,null | Average unit price for the actual cost of the budget. |
actualCost number | The total amount of actual cost of the budget. |
mainContractId string: UUID | Not relevant |
contractIds array: string | Not relevant |
locations array,null | A list of the IDs of the project locations where this item applies.
For more information, see the Locations Help documentation help. |
locationPaths array,null | A list of the IDs of the project locations where this item applies, along with the node paths of these locations in the project’s locations tree.
For more information, see the Locations Help documentation help. |
plannedStartDate string,null | Not relevant |
plannedEndDate string,null | Not relevant |
actualStartDate string,null | Not relevant |
actualEndDate string,null | Not relevant |
durationDays number | Not relevant |
uncommitted number | The amount that has been approved by owner but not committed to the supplier. This is calculated as approvedOwnerChanges - (approvedChangeOrders - approvedInScopeChangeOrders ). |
revised number | The total amount of the approved budget from the owner, equals to originalAmount + internalAdjustment + approvedOwnerChanges . |
projectedCost number | The total amount of the project cost. For a budget, it is equal to originalCommitment + approvedChangeOrders + pendingChangeOrders + reserves . For a contract , it is equal to awarded + approvedChangeOrders + pendingChangeOrders + reserves . |
projectedBudget number | The total amount of the project budget including pending changes, equals to revised + pendingOwnerChanges . |
forecastFinalCost number | The total amount of the project cost including forecast adjustments, equals to projectedCost + adjustmentsTotal . |
forecastVariance number | The total amount of the forecast variance, equals to projectedBudget - forecastFinalCost . |
forecastCostComplete number | The total amount of the forecast cost to complete, equals to forecastFinalCost - actualCost . |
varianceTotal number | The total amount of the variance of a budget, equals to projectedBudget - projectedCost . |
externalId string | The identifier assigned to an item in its original external ERP system. Use this ID to track and look up data within the integrated system. Note that this value comes from the item’s ID in the external system.
Max length: 255 |
externalSystem string | The name of the external ERP system integrated with Cost Management. Use this name to identify and search for data within the integrated system.
Max length: 255 |
externalMessage string | A message generated by the external ERP system that explains the sync status of the integration. For example, common values include success or fail to indicate the result of the integration operation.
Max length: 255 |
lastSyncTime datetime: ISO 8601 | The date and time when the item was last synchronized with the external ERP system. This value is updated by the external system and is in ISO 8601 format. |
integrationState string,null | The state of the item during the integration with the external ERP system (such as SignNow). An item can be a budget , contract , main contract , main contract item , cost item , expense , expense item , change order , or schedule of value . For more details, see Integrate with External System tutorial.
Possible values:
For more information regarding integrations within the Cost Management system, see Integrations in Cost Management. |
integrationStateChangedAt string,null | The date and time that the item’s integration status was last changed. |
integrationStateChangedBy string,null | The user who last changed the integration status. This is the ID of a user managed by the BIM 360/ACC Admin. |
createdAt datetime: ISO 8601 | The date and time that the item was created, in ISO 8601 format. |
updatedAt datetime: ISO 8601 | The date and time that the item was last updated, in ISO 8601 format. |
Example
Success
Request
curl -v 'https://developer.api.autodesk.com/cost/v1/containers/e94b9bc8-1775-4d76-9b1d-c613e120ccff/budgets?filter[lastModifiedSince]=2020-03-01T13:00:00Z&limit=100&sort=name,createdAt desc' \
-H 'Authorization: Bearer AuIPTf4KYLTYGVnOHQ0cuolwCW2a'
Response
{
"pagination": {
"limit": 20,
"offset": 0,
"totalResults": 1,
"nextUrl": ""
},
"results": [
{
"id": "683904a0-47ce-4146-ac2d-a3840f00e0f4",
"parentId": "null",
"code": "84720010130000GEN",
"scope": "budgetAndCost",
"subItems": "",
"budgetCode": "",
"codeSegmentValues": {},
"name": "Contingency",
"description": "Reserved for contingency",
"quantity": 50,
"inputQuantity": 50,
"ratio": 1,
"unitPrice": "1000.0000",
"unit": "LS",
"originalAmount": 1000,
"milestoneId": "227e1360-9481-11e8-87fb-215990a8aeb3",
"internalAdjustment": 1000,
"approvedOwnerChanges": 1000,
"pendingOwnerChanges": 1000,
"originalCommitment": 1000,
"approvedChangeOrders": 1000,
"approvedInScopeChangeOrders": 1000,
"pendingChangeOrders": 1000,
"reserves": 1000,
"actualQuantity": 50,
"actualUnitPrice": "1000.0000",
"actualCost": 1000,
"mainContractId": "f6445638-ca68-4e3c-9160-15864de6b818",
"contractIds": [
"48934441-e392-49d7-bf58-8dea43d413ae"
],
"locations": [
"683904a0-47ce-4146-ac2d-a3840f00e0f4"
],
"locationPaths": [
"683904a0-47ce-4146-ac2d-a3840f00e0f4"
],
"plannedStartDate": "2019-01-06",
"plannedEndDate": "2020-01-06",
"actualStartDate": "2019-01-06",
"actualEndDate": "2020-02-10",
"durationDays": 90,
"uncommitted": 1000,
"revised": 1000,
"projectedCost": 1000,
"projectedBudget": 1000,
"forecastFinalCost": 1000,
"forecastVariance": 1000,
"forecastCostComplete": 1000,
"varianceTotal": 1000,
"externalId": "10010-99-AB",
"externalSystem": "Sage300",
"externalMessage": "Success.",
"lastSyncTime": "2019-09-05T01:00:12.989Z",
"integrationState": "locked",
"integrationStateChangedAt": "2019-09-05T01:00:12.989Z",
"integrationStateChangedBy": "CED9LVTLHNXV",
"createdAt": "2019-01-06T01:24:22.678Z",
"updatedAt": "2019-09-05T01:00:12.989Z"
}
]
}