Baseline estimate

Human-authorized command that freezes an immutable, signed vSOW snapshot. This command is intentionally not exposed through GraphQL or MCP.

POST/api/v1/estimates/:id/baseline

Authorization

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

Path parameters

idstringrequired
Estimate UUID.

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

Request body

expected_versionnumberrequired
Current estimate version.
freeze_notestringoptional
Human baseline decision note.
confirmbooleanrequired
Must be true.
Example request
{
  "expected_version": 3,
  "freeze_note": "Approved delivery baseline",
  "confirm": true
}

Request

curl -X POST "https://www.digitalstack360.com/api/v1/estimates/8a043c6e-52ab-4df1-8b7a-afec991a05a2/baseline" \
  -H "Authorization: Bearer $DS_API_KEY" \
  -H "Idempotency-Key: estimate-baseline-04" \
  -H "Content-Type: application/json" \
  -d '{"expected_version":3,"freeze_note":"Approved delivery baseline","confirm":true}'

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

Response

200 OK
{
  "data": {
    "id": "877558ec-b559-48b4-9210-b53ed720fb73",
    "revision_number": 2,
    "status": "frozen",
    "source_signature": "sha256:..."
  }
}

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

409
version_conflict

Estimate changed since it was reviewed.