Update milestone
PUT
/milestones/{id}
Partial update of a milestone. Only the owner of the parent campaign may update it, and the caller's email must be verified. Send only the fields you are changing; an empty body answers 400.
The request body is camelCase (targetAmountCents, dueDate, completedAt) while the response row is snake_case. Setting completedAt is what marks a milestone complete.
Authorizations
BearerAuth
In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.
Type
HTTP (bearer)
Parameters
Path Parameters
id*
Type
Requiredstring
Format
"uuid"Request Body
application/json
JSON
{
"title": "string",
"description": "string",
"targetAmountCents": 0,
"dueDate": "string",
"completedAt": "string"
}
Responses
Milestone updated
application/json
JSON
"string"