Create a new draft version of an existing proposal in the same proposal series.
Use this endpoint to create a new draft version of a proposal that has already been sent. The new draft is a fresh copy of the source proposal in the same proposal series, with a new UUID, and the request body lets you override fields on the new draft. For partial in-place updates of a draft you have not sent yet, useDocumentation Index
Fetch the complete documentation index at: https://docs.proposales.com/llms.txt
Use this file to discover all available pages before exploring further.
Patch proposal (draft). For an entirely new proposal series, use Create proposal.
POST /v3/proposals.draft or template → PATCH /v3/proposals/{uuid} (in-place update, same UUID).active, accepted, replaced, expired, or rejected) → this endpoint (POST /v3/proposals/{uuid}) — it creates a new draft version in the same proposal series.draft is allowed, but it creates a separate draft alongside the existing one rather than a true new version. For changes to a proposal you have not yet sent, prefer PATCH /v3/proposals/{uuid}.
body.company_id must match the source proposal’s company.withdrawn. Any other status is accepted (draft, template, active, accepted, replaced, expired, rejected).data)Create proposal; most fields are optional and override the value carried over from the source, but company_id is required (see Eligibility). The body is strict — extra keys return 400 with error.issues describing each problem.
creator_email is ignored on this route. The creator is preserved from the previous version.company_id.en, sv). Required when adding blocks with content_id if the proposal has no stored language.data.| Code | Meaning |
|---|---|
200 | New draft version created (or existing one returned and updated under the idempotency rule). |
400 | Body validation failed. Response includes error.issues with per-field details. |
401 | Missing or invalid API token. |