Draft estimate change

Persists a reviewable proposal without mutating the estimate, staffing plan, schedule, or baseline.

POST/api/v1/estimates/:id/proposals

Authorization

estimates:writeapi key scoperequired
Required scope when calling with an API key.

Path parameters

idstringrequired
Estimate UUID.

Example: 8a043c6e-52ab-4df1-8b7a-afec991a05a2

Request body

requested_outcomestringrequired
Explicit user intent.
proposed_changesobjectrequired
Reviewable proposed patch; no canonical mutation occurs.
evidence_refsarrayoptional
Optional provenance references.
expected_versionnumberoptional
Version the proposal was drafted against.
Example request
{
  "requested_outcome": "Reduce launch risk",
  "proposed_changes": {
    "contingency_percent": 20
  },
  "expected_version": 3
}

Request

curl -X POST "https://www.digitalstack360.com/api/v1/estimates/8a043c6e-52ab-4df1-8b7a-afec991a05a2/proposals" \
  -H "Authorization: Bearer $DS_API_KEY" \
  -H "Idempotency-Key: estimate-proposal-03" \
  -H "Content-Type: application/json" \
  -d '{"requested_outcome":"Reduce launch risk","proposed_changes":{"contingency_percent":20},"expected_version":3}'

Examples use a placeholder key from your environment. Store your key in $DS_API_KEY — never commit it.

Response

200 OK
{
  "data": {
    "id": "f61f8271-ddb5-4d55-a4d2-5910714fd7a2",
    "status": "draft",
    "expected_version": 3
  }
}

Errors

401
missing_auth

No credentials provided

401
invalid_api_key

API key is invalid or revoked

400
bad_request

Missing or invalid request fields

403
scope_insufficient

Key lacks the required write scope