August 27, 2026
Catalog search filterAdded — Company-approved filter
Added — Company-approved filter
New optional
IsCompanyApproved query parameter for filtering catalog search results to items your company has approved:GET /public/catalog— SetIsCompanyApproved=trueto return only company-approved items. It composes with the endpoint’s other filters. Combined withIsFavorite=true, it returns items that are both a favorite and company-approved.
IsCompanyApproved=true, the response’s favoriteItems array is empty and favoriteItemCount is 0, regardless of IsFavorite. Read matching items from items.July 24, 2026
Proposal item endpointsAdded — Lifecycle
Added — Lifecycle
New endpoints to add, remove, and replace items on a proposal:
POST /public/proposals/{ProposalId}/items— Add items to a proposalDELETE /public/proposals/{ProposalId}/items— Delete items from a proposalPOST /public/proposals/{ProposalId}/items/{ProposalItemId}/replace— Replace a proposal item with a different catalog item
Added — Pricing
Added — Pricing
New endpoints to update pricing on proposal items:
POST /public/proposals/{ProposalId}/items/{ProposalItemId}/qty— Update item quantityPOST /public/proposals/{ProposalId}/items/{ProposalItemId}/sellprice— Update item sell pricePOST /public/proposals/{ProposalId}/items/{ProposalItemId}/cost— Update item supplier costPOST /public/proposals/{ProposalId}/items/{ProposalItemId}/msrp— Update item MSRPPOST /public/proposals/{ProposalId}/items/{ProposalItemId}/combineprice— Toggle combined pricing for nested itemsPOST /public/proposals/{ProposalId}/items/costupdate— Refresh proposal item costs from the latest catalog costs
Added — Content
Added — Content
New endpoints to update item-level content:
POST /public/proposals/{ProposalId}/items/{ProposalItemId}/shortdescription— Update item short descriptionPOST /public/proposals/{ProposalId}/items/{ProposalItemId}/note— Update item client-facing notePOST /public/proposals/{ProposalId}/items/{ProposalItemId}/image— Update item image
Added — Flags
Added — Flags
New endpoints to update item-level flags:
POST /public/proposals/{ProposalId}/items/{ProposalItemId}/taxexempt— Update item tax-exempt flagPOST /public/proposals/{ProposalId}/items/{ProposalItemId}/recurringservice— Update item recurring-service flag
Added — Organization
Added — Organization
New endpoints to reorganize items within a proposal:
POST /public/proposals/{ProposalId}/items/move— Move items to a different area optionPOST /public/proposals/{ProposalId}/items/copy— Copy items to one or more area options
Added — Suppliers
Added — Suppliers
New endpoints to manage item suppliers:
GET /public/proposals/{ProposalId}/items/{ProposalItemId}/suppliers— List suppliers available for an itemPOST /public/proposals/{ProposalId}/items/{ProposalItemId}/supplier/{SupplierId}— Set the supplier for an item
April 14, 2026
Proposal management, AI Builder, and webhook endpointsAdded — Proposal write endpoints
Added — Proposal write endpoints
New POST endpoints for the full proposal lifecycle:
POST /public/proposals— Create a new proposalPOST /public/proposals/{ProposalId}— Update proposal name and statusPOST /public/proposals/{ProposalId}/description— Update proposal descriptionPOST /public/proposals/{ProposalId}/internalnotes— Update internal notesPOST /public/proposals/{ProposalId}/contact/{ContactId}— Assign a contact to a proposalPOST /public/proposals/{ProposalId}/location/{LocationId}— Assign a location to a proposal (triggers tax calculation)POST /public/proposals/{ProposalId}/area— Add an area to a proposalPOST /public/proposals/{ProposalId}/area/{AreaId}/option— Add an option to an areaPOST /public/proposals/{ProposalId}/area/{AreaId}/option/{OptionId}/clientdescription— Update area option client descriptionPOST /public/proposals/{ProposalId}/area/{AreaId}/option/{OptionId}/installernotes— Update area option installer notes
Added — AI Builder endpoints
Added — AI Builder endpoints
New endpoints for AI-powered proposal generation:
POST /public/ai/content— Upload reference content for AI proposalsDELETE /public/ai/content/{ContentId}— Delete uploaded contentGET /public/ai/content— List uploaded contentPOST /public/ai/generate-outline— Generate a proposal outline from uploaded contentGET /public/ai/outline/{OutlineId}— Retrieve a generated outlinePOST /public/ai/build-proposal— Build a full proposal from an outline
Added — Webhook subscription endpoints
Added — Webhook subscription endpoints
New endpoints for managing webhook subscriptions and receiving real-time event notifications:
POST /public/webhook/subscribe— Create a webhook subscriptionGET /public/webhook/subscriptions— List active subscriptionsPOST /public/webhook/subscription/{SubscriptionId}— Update a subscriptionDELETE /public/webhook/unsubscribe/{SubscriptionId}— Delete a subscription
proposal.status_changed, proposal.build.status_update, proposal.outline.status_update. See Webhook Events for payload details.