Create estimate
Creates a draft vSOW-backed estimate inside one visible project. Creation does not baseline or commit delivery coordinates.
POST
/api/v1/estimatesAuthorization
estimates:writeapi key scoperequiredRequired scope when calling with an API key.
Request body
project_idstringrequiredVisible DigitalStack project UUID.
namestringrequiredEstimate name.
descriptionstringoptionalReviewable draft description.
commercial_modelstringoptional"fixed_bid" | "time_and_materials" | "retainer" | "capacity_pod" | "hybrid"Commercial posture.
contingency_percentnumberoptionalDraft contingency percentage, 0–100.
confirmbooleanrequiredMust be true.
Example request
{
"project_id": "24ea6df2-7f4c-4c32-9fc1-6c8a0cb5b4b2",
"name": "Implementation estimate",
"commercial_model": "time_and_materials",
"contingency_percent": 15,
"confirm": true
}Request
curl -X POST "https://www.digitalstack360.com/api/v1/estimates" \
-H "Authorization: Bearer $DS_API_KEY" \
-H "Idempotency-Key: estimate-create-01" \
-H "Content-Type: application/json" \
-d '{"project_id":"24ea6df2-7f4c-4c32-9fc1-6c8a0cb5b4b2","name":"Implementation estimate","commercial_model":"time_and_materials","contingency_percent":15,"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": "8a043c6e-52ab-4df1-8b7a-afec991a05a2",
"status": "draft",
"version": 1
},
"meta": {
"idempotency_replayed": false
}
}Errors
401
missing_authNo credentials provided
401
invalid_api_keyAPI key is invalid or revoked
400
bad_requestMissing or invalid request fields
403
scope_insufficientKey lacks the required write scope