Projects

Update project

Partially updates a project. Passing bidId links (or, with null, unlinks) an existing bid — see the field.

patch/projects/{id}

Request

  • Base URL: https://app.buildworkpro.com/api/v1
  • URL: https://app.buildworkpro.com/api/v1/projects/{id}
  • Auth: HTTP bearer

Path parameters

idinteger required

Headers

Idempotency-Keystring uuid

Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns 409 idempotency_key_reused. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.

Request body

namestring
projectNumberstring
contactIdinteger nullable
projectTypestring nullable
status'planning' | 'in_progress' | 'on_hold' | 'closeout' | 'completed' | 'cancelled'
prioritystring nullable
descriptionstring nullable
siteAddressstring nullable
siteCitystring nullable
siteStatestring nullable
siteZipCodestring nullable
architectNamestring nullable

Architect or engineer of record; printed in the pay application's "Via architect / engineer" cell.

architectProjectNumberstring nullable

The architect's own project number, printed on the pay application and its continuation sheet.

contractForstring nullable

Scope line printed in the pay application's "Contract for" cell (e.g. "Structural steel — Phase 2").

assignedTointeger nullable
bidIdinteger nullable

Link an existing bid to this project (both sides), or null to unlink. Requires the bids:write scope too. Refused with 409 when the bid already belongs to another live project or this project already has a different bid — unlink first. Linking an accepted bid fills the original contract (pre-tax) and site address only if the project has none.

Response

Updated

Changes

No recorded changes to this operation across all 1 revision of this API.