Endpoint#
| Property | Value |
|---|
| Type | mutation |
| Method | POST |
| Path | /api/external/v1/projects/create_milestone |
| Handler | OperatelyWeb.Api.Projects.CreateMilestone |
Authentication#
- Requires a valid API token.
- Requires a write-enabled token.
- Read-only tokens return
403.
| Field | Type | Required | Nullable | Default |
|---|
project_id | id primitive (encoded as string) | Yes | No | - |
name | string | Yes | No | - |
due_date | contextual_date object | Yes | Yes | - |
Outputs#
| Field | Type | Required | Nullable |
|---|
milestone | milestone object | Yes | No |
cURL Example#
Copiedcurl --request POST \
--url "https://app.operately.com/api/external/v1/projects/create_milestone" \
--header "Authorization: Bearer ${OPERATELY_API_TOKEN}" \
--header "Content-Type: application/json" \
--data '{"due_date":{"date":"2026-01-01", "date_type":"day", "value":"value"}, "name":"value", "project_id":"value"}'
Response Example#
{
"milestone": {
"available_statuses": [
"<task_status>"
],
"comments": [
"<milestone_comment>"
],
"comments_count": 123,
"completed_at": "2026-01-01",
"creator": "<person>",
"description": "value",
"id": "value",
"inserted_at": "2026-01-01",
"permissions": "<project_permissions>",
"project": "<project>",
"space": "<space>",
"status": "pending",
"subscription_list": "<subscription_list>",
"tasks_kanban_state": "value",
"tasks_ordering_state": [
"value"
],
"timeframe": "<timeframe>",
"title": "value"
}
}