HTTP Specification
BuildingConnected API
Projects
BuildingConnected projects comprise a request for proposals, typically representing a single phase of bidding. They can be linked to ACC projects, but they are technically separate and may be related on a many-to-one basis. For example, a project may go through three phases of bidding before proceeding to site-construction; that could potentially be represented by three BuildingConnected projects and one ACC project.
Projects are a top-level container for all scopes of work. Each individual scope is bid via bid package. Each bid package has bidders (represented by invites) and each bidder has bids.
To access project data, the requesting user must be a verified employee belonging to an office with a Pro subscription of BuildingConnected and the user’s company must be granted API access. Contact your sales representative to get access to the BuildingConnected API.
Endpoint | Description |
---|---|
GET projects | Retrieves a list of projects within a user’s company |
POST projects | Creates a new project in DRAFT state |
GET projects/:project_id | Retrieves the specified project’s details |
PATCH projects/:projectId | Updates fields in the specified project |
DELETE projects/:projectId | Deletes a project in draft state |
GET projects/:project_id/costs | Retrieves the specified project’s indirect costs |
POST projects/:projectId/costs | Creates an indirect cost item on the specified project |
POST projects/:projectId/costs:batch-create | Creates multiple indirect cost items on the project |
PATCH projects/:projectId/costs:batch-patch | Updates multiple indirect cost items on the project |
POST projects/:projectId/costs:batch-delete | Deletes multiple indirect cost items on the project |
PATCH projects/:projectId/costs | Updates an indirect cost item on the specified project |
DELETE projects/:projectId/costs | Deletes an indirect cost from the specified project |
Project Team Members
Endpoint | Description |
---|---|
GET project-team-members | Retrieves a list of team members on a specified project |
POST project-team-members | Creates a new project team member |
GET project-team-members/:memberId | Retrieves the specified project team member’s details |
PATCH project-team-members/:memberId | Updates a project team member |
DELETE project-team-members/:memberId | Removes the specified team member from their current project |
Bid Packages
Bid packages comprise a scope of work. Bid packages have several values independent from the project in which they are nested: date values, separate files options, and publish states.
Invites are sent for each bidder when a bid package is published or when a new bidder is added to a published bid package. These invites create corresponding opportunities on Bid Board. These opportunities inherit a combination of values from the bid package and the project.
Endpoint | Description |
---|---|
GET bid-packages | Retrieves a list of bid packages within a user’s company |
POST bid-packages | Creates a bid package associated with a project |
POST bid-packages:batch-create | Creates multiple bid packages associated with a project |
PATCH bid-packages:batch-patch | Updates fields in multiple bid packages |
POST bid-packages:batch-delete | Deletes multiple bid packages |
GET bid-packages/:bidPackageId | Retrieves the specified bid package’s details |
PATCH bid-packages/:bidPackageId | Updates fields in a bid package |
DELETE bid-packages/:bidPackageId | Deletes a bid package |
Invites
Invites represent the invitation to bid sent to a bidder on a bid package. Invites may comprise individuals from multiple companies, but the invite is “owned” by one company. Invites create opportunities on the bidder’s Bid Board when the bid package is published. A company invited on multiple bid packages will receive multiple invites.
Endpoint | Description |
---|---|
GET invites | Retrieves a list of invites sent by the user’s company to solicit proposals from bidders |
POST invites:import-emails | Adds bidders to a single bid package using their email |
POST invites:batch-import-emails | Adds bidders to multiple bid packages using their email |
GET invites/:inviteId | Retrieves the specified invite’s details |
Bids
Bids are a combination of two sets of data: a proposal and leveled bid information. Proposals can be submitted by the project host or by a bidder. Bids can then be leveled on the bid leveling tab. Plugs indicate the amendments made by bid leveling. Bids have a many-to-one relationship with invites.
Endpoint | Description |
---|---|
GET bids | Retrieves a list of bids submitted to the user’s company |
POST bids | Creates a host bid |
GET bids/:bidId | Retrieves the specified bid’s details |
POST attachments | Creates a bid attachment |
DELETE attachments/:attachmentId | Deletes the specified bid attachment where permitted |
GET bids/:bidId/attachments/:attachmentId | Retrieves the specified file that’s attached to a given bid proposal |
GET bids/:bidId/line-items | Retrieves a list of line items on the specified bid |
GET bids/:bidId/plugs | Retrieves a list of plugs on a specific bid |
Bid Forms
Bid forms contain all the questions bidders must answer as part of a bid. They are split into two types: project bid forms, which contain questions relevant to the entire project, and scope-specific bid forms, which contain questions that apply to a specific bid package (e.g. the price for copper wiring as part of an electrical bid package).
Endpoint | Description |
---|---|
GET project-bid-forms | Retrieves a list of project bid forms used by the user’s company |
POST project-bid-forms | Creates a project bid form for the specified project |
GET project-bid-forms/:formId | Retrieves the specified project bid form’s details |
GET project-bid-forms/:formId/line-items | Retrieves a list of line items on the specified project bid form |
POST project-bid-forms/:formId/line-items | Creates a project bid form line item |
POST line-items:batch-create | Creates multiple project bid form line items |
PATCH line-items:batch-patch | Updates multiple project bid form line items |
POST line-items:batch-delete | Deletes multiple project bid form line items |
PATCH line-items/:lineItemId | Updates a project bid form line item |
DELETE line-items/:lineItemId | Deletes a project bid form line item |
GET scope-specific-bid-forms | Retrieves a list of scope-specific bid forms used by the user’s company |
POST scope-specific-bid-forms | Creates a scope-specific bid form for a bid package |
GET scope-specific-bid-forms/:formId | Retrieves the specified scope-specific bid form’s details |
GET scope-specific-bid-forms/:formId/line-items | Retrieves a list of line items on a particular scope-specific bid form |
POST scope-specific-bid-forms/:formId/line-items | Creates a scope-specific bid form line item |
POST scope-specific-bid-forms/:formId/line-items:batch-create | Creates multiple scope-specific bid form line items |
PATCH scope-specific-bid-forms/:formId/line-items:batch-patch | Updates multiple project bid form line items |
POST scope-specific-bid-forms/:formId/line-items:batch-delete | Deletes multiple scope-specific bid form line items |
PATCH scope-specific-bid-forms/:formId/line-items/:lineItemId | Updates the specified scope-specific bid form line item |
DELETE scope-specific-bid-forms/:formId/line-items/:lineItemId | Deletes the specified scope-specific bid form line item |
Opportunities
Opportunities represent invites to bid on a project.
To access opportunity data, the requesting user must be a verified employee belonging to an office with a Pro subscription of Bid Board and the user’s company must be granted API access. Opportunities are only accessible via API if the owningOfficeId
has Bid Board Pro. Contact your sales representative to get access to the BuildingConnected API.
Endpoint | Description |
---|---|
GET opportunities | Retrieves a list of the user’s company’s opportunities |
POST opportunities | Manually creates a new opportunity in BidBoard |
GET opportunities/:opportunityId | Retrieves the specified opportunity’s details |
PATCH opportunities/:opportunityId | Updates an existing opportunity |
DELETE opportunities/:opportunityId | Deletes an existing opportunity |
Contacts
Contacts represent the relationship between a company and a given bidder’s company’s office. Contact IDs refer to these relationships and are not to be confused with company IDs or office IDs, which respectively refer to companies and offices themselves. A contact only exists if the given office has received an invite from the user’s company. The statistics provided on this object are only updated once daily and should not be used for real-time analysis.
Endpoint | Description |
---|---|
GET contacts | Retrieves a list of the user’s company’s contacts |
GET contacts/:contactId | Retrieves the specified contact’s details |
Users
Endpoint | Description |
---|---|
GET users | Retrieves a list of BuildingConnected users in the requesting user’s company |
GET users/:userId | Retrieves the user object for the specified user |
GET users/me | Retrieves the user object for the current user |
Certification
Endpoint | Description |
---|---|
GET certificate types | Retrieves a list of certificate types that are supported by BuildingConnected and TradeTapp |
GET certifying agencies | Retrieves a list of certifying agencies that are supported by BuildingConnected |
Offices
Endpoint | Description |
---|---|
GET offices | Retrieves a list of offices belonging to the requesting user’s company |
GET offices/:officeId | Retrieves the specified company office definition |
Opportunity-Project Pairs
Endpoint | Description |
---|---|
GET opportunity-project-pairs | Retrieves a list of opportunity-project pairs within the context of the requesting user’s company |
POST opportunity-project-pairs | Creates a new opportunity-project pair to relink a project from a group child opportunity to its group parent |
GET opportunity-project-pairs/:opportunityProjectPairId | Retrieves the specified opportunity-project pair |
PATCH opportunity-project-pairs/:opportunityProjectPairId | Relinks a project from an opportunity group child that it’s paired with to the group parent |
TradeTapp API
Qualifications
Qualifications represent completed questionnaires that vendors have submitted in TradeTapp.
Endpoint | Description |
---|---|
GET qualifications | Queries all vendor company qualifications |
GET qualifications/:companyId | Queries a specific vendor qualification |
GET qualifications/:companyId/company-office-addresses | Queries all vendor company qualifications |
GET qualifications/:companyId/custom-questions | Queries a specific vendor qualification |
Financials
Financials represent vendors’ financial, safety, and risk data from TradeTapp.
Endpoint | Description |
---|---|
GET financials | Queries all vendor company financials |
GET financials/:companyId | Queries a specific vendor company financial |