Proposals
The Proposals API provides CRUD access to proposals (documents sent to a client or a lead), plus ancillary actions for status, tags and cloning.New to the API? Start with Getting started (base URL, response envelope, errors, pagination) and Authentication (API keys). Those conventions apply to every endpoint below and are not repeated here.
Identifier note: proposals are addressed by their numericdoc_id. Wherever{id}appears below it is thedoc_id.
Scope: the signature accept flow, publishing & emailing, automation, estimate generation and the rich document editor are managed in-app and are not part of this API. Client accept details are exposed read-only; a proposal can still be marked declined/accepted via the status action.
The proposal object
A proposal belongs to a client or a lead — the unused side isnull.
List / search proposals
Query parameters
Example request
Example response — 200 OK
Get a proposal
200) with message “Proposal retrieved successfully.”
Create a proposal
customer_type). Provide doc_body to set
the content directly, or proposal_template to seed the body from a template. Creates a backing
estimate record.
Body parameters
Example request
Example response — 201 Created
Update a proposal
200) with message “Proposal updated successfully.”
Delete a proposal
Example response — 200 OK
Change status
200) with message “Proposal status updated successfully.”
Set tags
tags array is the full set — it replaces existing tags; an empty array clears them.
200) with message “Proposal tags updated successfully.”
Clone a proposal
201) with message “Proposal cloned successfully.”
