Milestones

Milestone management operations

List milestones

get

Retrieve a list of milestones with optional filtering

Authorizations
Query parameters
offsetinteger · max: 1000Optional

Number of items to skip

Default: 0
limitinteger · min: 1 · max: 100Optional

Maximum number of items to return

Default: 10
slugstringOptional

Filter by milestone slug

is_publicbooleanOptional

Filter by public visibility

statusstringOptional

Filter by milestone status

project_idstringOptional

Filter by project ID

Responses
200

List of milestones retrieved successfully

application/json
get
GET /v1/milestones HTTP/1.1
Host: api.onset.com
Authorization: Bearer JWT
Accept: */*
[
  {
    "id": "text",
    "title": "text",
    "description": "text",
    "slug": "text",
    "status": "text",
    "is_public": true,
    "upvote_count": 1,
    "project": {
      "id": "text",
      "name": "text"
    },
    "labels": [
      {
        "id": "text",
        "name": "text",
        "color": "text"
      }
    ],
    "created_at": "2025-09-13T04:40:10.136Z",
    "updated_at": "2025-09-13T04:40:10.136Z"
  }
]

Create a new milestone

post

Create a new milestone in the workspace

Authorizations
Body
titlestring · min: 3 · max: 255Required

Milestone title

bodystringRequired

Milestone description/body content

statusstringRequired

Milestone status ID

slugstring · min: 3 · max: 255Required

URL-friendly milestone identifier

Pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
is_publicbooleanRequired

Whether milestone should be publicly visible

project_idstring | nullableOptional

ID of the project this milestone belongs to

label_idsstring[]Required

Array of label IDs to attach to the milestone

Responses
201

Milestone created successfully

application/json
post
POST /v1/milestones HTTP/1.1
Host: api.onset.com
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 225

{
  "title": "text",
  "body": "text",
  "status": "text",
  "slug": "text",
  "is_public": true,
  "project_id": "text",
  "label_ids": [
    "text"
  ],
  "attachments": [
    {
      "id": "text",
      "type": "FILE",
      "content": {
        "title": "text",
        "url": "text",
        "size": 1,
        "type": "text"
      }
    }
  ]
}
{
  "id": "text",
  "title": "text",
  "description": "text",
  "slug": "text",
  "status": "text",
  "is_public": true,
  "upvote_count": 1,
  "project": {
    "id": "text",
    "name": "text"
  },
  "labels": [
    {
      "id": "text",
      "name": "text",
      "color": "text"
    }
  ],
  "created_at": "2025-09-13T04:40:10.136Z",
  "updated_at": "2025-09-13T04:40:10.136Z"
}

Get milestone by ID

get

Retrieve a specific milestone by its ID

Authorizations
Path parameters
idstringRequired

Milestone ID

Responses
200

Milestone retrieved successfully

application/json
get
GET /v1/milestones/{id} HTTP/1.1
Host: api.onset.com
Authorization: Bearer JWT
Accept: */*
{
  "id": "text",
  "title": "text",
  "description": "text",
  "slug": "text",
  "status": "text",
  "is_public": true,
  "upvote_count": 1,
  "project": {
    "id": "text",
    "name": "text"
  },
  "labels": [
    {
      "id": "text",
      "name": "text",
      "color": "text"
    }
  ],
  "created_at": "2025-09-13T04:40:10.136Z",
  "updated_at": "2025-09-13T04:40:10.136Z"
}

Delete milestone

delete

Delete a milestone by its ID

Authorizations
Path parameters
idstringRequired

Milestone ID

Responses
204

Milestone deleted successfully

No content

delete
DELETE /v1/milestones/{id} HTTP/1.1
Host: api.onset.com
Authorization: Bearer JWT
Accept: */*

No content

Update milestone

patch

Update an existing milestone

Authorizations
Path parameters
idstringRequired

Milestone ID

Body
titlestring · min: 3 · max: 255Optional

Milestone title

bodystringOptional

Milestone description/body content

statusstringOptional

Milestone status ID

slugstring · min: 3 · max: 255Optional

URL-friendly milestone identifier

Pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
is_publicbooleanOptional

Whether milestone should be publicly visible

project_idstring | nullableOptional

ID of the project this milestone belongs to

label_idsstring[]Optional

Array of label IDs to attach to the milestone

Responses
200

Milestone updated successfully

application/json
patch
PATCH /v1/milestones/{id} HTTP/1.1
Host: api.onset.com
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 225

{
  "title": "text",
  "body": "text",
  "status": "text",
  "slug": "text",
  "is_public": true,
  "project_id": "text",
  "label_ids": [
    "text"
  ],
  "attachments": [
    {
      "id": "text",
      "type": "FILE",
      "content": {
        "title": "text",
        "url": "text",
        "size": 1,
        "type": "text"
      }
    }
  ]
}
{
  "id": "text",
  "title": "text",
  "description": "text",
  "slug": "text",
  "status": "text",
  "is_public": true,
  "upvote_count": 1,
  "project": {
    "id": "text",
    "name": "text"
  },
  "labels": [
    {
      "id": "text",
      "name": "text",
      "color": "text"
    }
  ],
  "created_at": "2025-09-13T04:40:10.136Z",
  "updated_at": "2025-09-13T04:40:10.136Z"
}