bids
Creates a host bid (the value of creatorType
is HOST
). Any bid submitted by a member of the project team (or via the BuildingConnected API) on behalf of a bidder is a host bid.
Note that bids cannot be updated; instead, you can use this endpoint to create a new bid that serves as a revision of an existing bid, based on the same inviteId
. Only the latest revision is active.
Note that the current version of the BuildingConnected API does not support adding plugs to bids.
For more information about bids, see the Bids section of the BuildingConnected Field Guide.
All required line items from the project and scope-specific bid forms must be present in the request. Each line item must either match a bid form line item or have isCustom
set to true
. A matching line item must have the same unique combination of type
, description
, section
, code
, and unit
.
Resource Information
Method and URI | POST https://developer.api.autodesk.com/construction/buildingconnected/v2/bids |
Authentication Context | user context required |
Required OAuth Scopes | data:write |
Data Format | JSON |
Request
Headers
Authorization* string | Must be Bearer <token> , where <token> is obtained via a three-legged OAuth flow. |
Content-Type* string | Must be application/json |
Request
Body Structure
inviteId* string | The unique ID of the invite to which the bid applies.
Max length: 24 |
notes string | Information about the bid proposal. |
total number | A numeric value representing the total cost of the proposal not including any plugs, alternates, or other extra cost items. Combine this value with the project’s defaultCurrency to determine the monetary value of the proposal.
Note that this field may be provided only if the bid contains no line items. If present, its value must be greater than |
attachments array: string | An array of the attachment IDs of the files to attach to the bid proposal.
Note that an attachment ID is generated when you call POST bids/attachments to create the attachment. Note the value of Max 50 attachments per bid. |
lineItems array: object | An array of the line item objects that will comprise the bid.
All required line items from the project and scope-specific bid forms must be present in the request. Each line item must either match a bid form line item or have |
type* enum:string | The line item’s type.
The possible values have the following UI equivalents:
|
description* string | A description of the line item. |
section string | The bid section that the line item is under. This value is null if the item is not under a section.
The section must match on the bid form. |
isCustom boolean | Indicates whether the line item is a custom item added by the bidder instead of being on the bid form. Possible values:
A custom line item must comply with the following additional requirements:
|
unit enum:string | The unit format of the line item. Custom line items (line items that are not on the bid form) have a limited set of possible types, each with a single corresponding unit format.
Use the value The possible values of this field depend on the value of the line item’s
The corresponding value of
|
code string | A code associated with the line item on the bid form.
Note that this value can be set only if the value of |
quantity number | The quantity of the line item.
Note that this field is relevant only under both of the following conditions (otherwise it is converted to null):
|
unitCost number | The cost per unit of the line item. This is not the total cost of the line item.
Note that this field is relevant only under both of the following conditions (otherwise it is converted to null):
|
value one of | The total value of the line item. Note the following requirements:
|
0 string | |
1 number |
Response
HTTP Status Code Summary
201 Created | Created |
400 Bad Request | The parameters of the requested operation are invalid. |
401 Unauthorized | The provided bearer token is not valid. |
403 Forbidden | The user or service represented by the bearer token does not have permission to perform this operation. |
404 Not Found | The requested resource could not be found. |
429 Too Many Requests | Rate limit exceeded; wait some time before retrying. The ‘Retry-After’ header might provide the amount of the time to wait. |
500 Internal Server Error | An unknown error occurred on the server. |
Response
Body Structure (201)
id string | The unique bid ID.
Max length: 24 |
projectId string | Unique ID of the project to which the bid is applied.
Max length: 24 |
bidPackageId string | The unique ID of the bid package associated with the bid.
Max length: 24 |
inviteId string | The unique ID of the invite associated with the bid.
Max length: 24 |
bidderCompanyId string | The unique ID of the bidding company.
Max length: 24 |
creatorType enum:string | Indicates whether the bid creator was the project host or the bidder. Possible values:
|
notes string | Notes provided on the proposal. |
total number | A numeric value representing the total cost of the proposal not including any plugs, alternates, or other extra cost items. Combine this value with the project’s defaultCurrency to determine the monetary value of the proposal. |
leveledTotal number | A numeric value representing the total cost of the proposal after bid levelling modifications are included. Combine this value with the project’s defaultCurrency to determine the leveled monetary value of the proposal. |
createdAt datetime: ISO 8601 | The date and time that the bid was created, in ISO 8601 format. |
updatedAt datetime: ISO 8601 | The date and time that the bid was last updated, in ISO 8601 format. |
submittedAt datetime: ISO 8601 | The date and time that the bid was submitted, in ISO 8601 format. |
attachments array: string | An array of IDs of the files that are attached to the bid proposal. These IDs can be used with the GET bids/:bidId/attachments/:attachmentId endpoint to obtain additional information about the file, including a signed download URL. |
revision number | The revision number of the bid. The first bid submitted by the bidder for a given bid package has a revision number of 0 (zero). Each time the bidder submits an updated bid, the new bid’s revision number is incremented by one. |
createdBy string | The user ID of the user who created the bid. This bidder can be a internal user or an invitee.
Max length: 24 |
submittedBy string | The user ID of the user who submitted the bid. This bidder can be a internal user or an invitee.
Max length: 24 |
lineItems object | An array of line items that comprise the bid. |
pagination object | The pagination details of a response. |
limit int | The maximum number of records to return per page.
Note that a returned page may contain fewer records than the limit under either of these conditions:
|
cursorState string | An opaque cursor token that identifies where the next page of paginated results should start. It’s returned in each paginated response so that it can be provided in the next request to continue paginated results. If a paginated response contains no cursorState value, there are no further pages to return.
Omit this parameter to initiate a paginated request or to restart pagination. |
nextUrl string | The URL path that returns the next page of data. |
results array: object | |
id string | The unique ID of the line item. This value is null if it’s the default line item.
Max length: 24 |
type enum:string | The line item’s type.
The possible values have the following UI equivalents:
|
description string | A description of the line item. |
section string | The bid section that the line item is under. This value is null if the item is not under a section. |
isRequired boolean | Indicates whether the item must be included in the bid. Possible values:
|
isCustom boolean | Indicates whether the item is a custom item added by the bidder instead of being on the bid form. Possible values:
|
unit enum:string | The unit format of the bid line item.
The possible values of this field depend on the value of the line item’s
Note that the value |
code string | A code associated with the line item.
Note that this value is null if the value of |
quantity number | The quantity of the line item.
Note that this field is relevant only under the following conditions (otherwise it is null):
|
isQuantityFixed boolean | Indicates whether the line item quantity is fixed. Possible values:
|
unitCost number | The cost per unit of the line item. This is not the total cost of the line item.
Note that this field is relevant only under the following conditions (otherwise it is null):
|
value one of | The total value of the line item. Note the following requirements:
|
0 string | |
1 number | |
plugs object | An array of plugs (adjustments) in the bid, which were applied on the Bid Levelling tab of BuildingConnected Pro. |
pagination object | The pagination details of a response. |
limit int | The maximum number of records to return per page.
Note that a returned page may contain fewer records than the limit under either of these conditions:
|
cursorState string | An opaque cursor token that identifies where the next page of paginated results should start. It’s returned in each paginated response so that it can be provided in the next request to continue paginated results. If a paginated response contains no cursorState value, there are no further pages to return.
Omit this parameter to initiate a paginated request or to restart pagination. |
nextUrl string | The URL path that returns the next page of data. |
results array: object | |
id string | The unique ID of the plug.
Max length: 24 |
quantity number | The adjusted quantity of the associated line item.
Note that this value is null under either of the following conditions:
|
unitCost number | The adjusted cost per unit of the associated line item. This is not the total cost of the line item.
Note that this value is null under either of the following conditions:
|
value one of | The adjusted value of the line item. Note the following requirements:
|
0 string | |
1 number | |
createdBy string | User ID of the user who first created the plug.
Max length: 24 |
updatedBy string | User ID of the user who most recently updated the plug.
Max length: 24 |
createdAt datetime: ISO 8601 | The date and time that the plug was created, in ISO 8601 format. |
updatedAt datetime: ISO 8601 | The date and time that the plug was last updated, in ISO 8601 format. |
lineItemFingerprint object | Details that map the plug to an associated line item. |
type enum:string | The line item’s type.
Possible values: ADDENDUM , ALTERNATE , COST_BREAKDOWN , INCLUSION , ACKNOWLEDGMENT , BONDING , CERTIFICATION , MARKUP , LABOR_RATE |
description string | The description of the line item. This string is all lowercase. |
section string | The bid section that the line item is under. This string is all lowercase.
Note that this value is null if the item is not under a section. |
unit enum:string | The unit format of the line item.
Possible values: ACRES , ADD_DEDUCT , AMPS , BOARD_FT , CUBIC_FT , CUBIC_METERS , CUBIC_YARDS , DAYS , EACH , FLOORS , GALLONS , GROSS_SQUARE_FT , GROSS_SQUARE_METERS , HOURS , KILOGRAMS , LINEAR_FT , LINEAR_METERS , LINEAR_YARDS , LITERS , LOT , METRIC_TONS , MONTHS , PERCENTAGE , PER_ACRE , PER_AMP , PER_BOARD_FT , PER_CUBIC_FT , PER_CUBIC_METER , PER_CUBIC_YARD , PER_DAY , PER_EACH , PER_FLOOR , PER_GALLON , PER_GROSS_SQUARE_FT , PER_GROSS_SQUARE_METER , PER_HOUR , PER_KILOGRAM , PER_LINEAR_FT , PER_LINEAR_METER , PER_LINEAR_YARD , PER_LITER , PER_LOT , PER_METRIC_TON , PER_MONTH , PER_POUND , PER_RISER , PER_SQUARE_FT , PER_SQUARE_METER , PER_SQUARE_YARD , PER_SQUARE_YARD_INCH , PER_STALL , PER_STOP , PER_TON , PER_WATT , PER_WEEK , POUNDS , RISERS , SQUARE_FT , SQUARE_METERS , SQUARE_YARDS , SQUARE_YARD_INCHES , STALLS , STOPS , TEXT , TONS , TOTAL_COST_ONLY , WATTS , WEEKS , YES_NO , YES_NO_WITH_ADJUSTMENT |
code string | The code associated with the line item. This string is all lowercase.
Note that this value is null if |
Response
Header (201)
Location string | The created resource’s location. |
Example
Created
Request
curl -v 'https://developer.api.autodesk.com/construction/buildingconnected/v2/bids' \
-X 'POST' \
-H 'Authorization: Bearer AuIPTf4KYLTYGVnOHQ0cuolwCW2a' \
-H 'Content-Type: application/json' \
-d '{
"inviteId": "590dd527b359f408f191b5b6",
"notes": "Notes about bid",
"total": 5000,
"attachments": [
"60cea42b3934f500a8b29c7b"
],
"lineItems": [
{
"type": "COST_BREAKDOWN",
"description": "Duct Insulation",
"section": "Furnish & Install",
"isCustom": false,
"unit": "HOURS",
"code": "D2",
"quantity": 10,
"unitCost": 500,
"value": 10000
}
]
}'
Response
{
"id": "611ee35b3935e500a8b18c8a",
"projectId": "59d2bd7440b36a0da258f24d",
"bidPackageId": "590dd127b359f408f190b5a7",
"inviteId": "590dd527b359f408f191b5b6",
"bidderCompanyId": "51bea397f5846f95994b1da7",
"creatorType": "BIDDER",
"notes": "Notes about bid",
"total": 5000,
"leveledTotal": 10000,
"createdAt": "2021-08-19T23:07:16.083Z",
"updatedAt": "2021-08-19T23:07:16.083Z",
"submittedAt": "2021-08-19T23:08:32.075Z",
"attachments": [
"60cea42b3934f500a8b29c7b"
],
"revision": 0,
"createdBy": "5d8104b87e392d56e1e4b4ca",
"submittedBy": "5d8104b87e392d56e1e4b4ca",
"lineItems": {
"pagination": {
"limit": 100,
"cursorState": "eyJsaW1pdCI6MjUsIm9mZnNldCI6MjV9",
"nextUrl": ""
},
"results": [
{
"id": "53811754d3a604966df72247",
"type": "COST_BREAKDOWN",
"description": "Duct Insulation",
"section": "Furnish & Install",
"isRequired": true,
"isCustom": false,
"unit": "HOURS",
"code": "D2",
"quantity": 10,
"isQuantityFixed": true,
"unitCost": 500,
"value": 10000
}
]
},
"plugs": {
"pagination": {
"limit": 100,
"cursorState": "eyJsaW1pdCI6MjUsIm9mZnNldCI6MjV9",
"nextUrl": ""
},
"results": [
{
"id": "5f8104b87e392d56e1e4b4ad",
"quantity": 20,
"unitCost": 500,
"value": 10000,
"createdBy": "5f8104b87e392d56e1e4f7ad",
"updatedBy": "5f8104b87e392d56e1e4f7ad",
"createdAt": "2021-08-19T23:07:16.083Z",
"updatedAt": "2021-08-20T23:07:16.083Z",
"lineItemFingerprint": {
"type": "COST_BREAKDOWN",
"description": "duct insulation",
"section": "furnish & install",
"unit": "HOURS",
"code": "d2"
}
}
]
}
}