---
title: "Get project"
method: GET
path: "/project/{id}"
tags: ["Projects"]
---

# Get project

`GET /project/{id}`

Get a single project by ID.

## Path parameters

- `id` string, required

## Response `200`

Project details

- Project
  - `id` string, required
  - `workspaceId` string, required
  - `slug` string, required — Short prefix used in task identifiers, e.g. KAN-12.
  - `icon` string, nullable, required
  - `name` string, required
  - `description` string, nullable, required
  - `createdAt` string, date-time, required
  - `isPublic` boolean, nullable, required — When true the project's board is readable without signing in, via /api/public-project/{id}.
  - `archivedAt` string, date-time, nullable, required — Non-null once archived; archived projects are hidden by default.
  - `position` number, required — Sidebar order, ascending.
  - `lastTaskNumber` number, required — Highest task number issued in this project; the next task gets this plus one.

## Other responses

- `400` — Unknown project, or its workspace could not be determined
- `401` — Missing or invalid credentials
- `403` — No access to the project's workspace

## Changes

- **2026-08-24** `08bbb5bedb5d` — 1 breaking, 5 info
  - the `archivedAt` response's property type/format changed from ``/`` to `string, null`/`date-time` for status `200`
  - added the non-success response with the status `400`
  - added the non-success response with the status `401`
  - added the non-success response with the status `403`
  - …2 more
- **2026-07-11** `32cece1ebe43` — 1 breaking, 1 warning, 1 info
  - the `createdAt` response's property type/format changed from ``/`` to `string`/`date-time` for status `200`
  - deleted the `query` request parameter `workspaceId`
  - added the required property `archivedAt` to the response with the `200` status
- **2026-03-05** `c45ef22a736c` — 3 breaking, 3 info
  - the response property `description` became nullable for the status `200`
  - the response property `icon` became nullable for the status `200`
  - the response property `isPublic` became nullable for the status `200`
  - response property `description` list-of-types was narrowed by removing types `null` from media type `application/json` of response `200`
  - …2 more
- …earlier changes not shown

[Full history](https://skmtc.dev/usekaneo/apis/kaneo-api/changes/project/:id/get.md)

---

[API](https://skmtc.dev/usekaneo/apis/kaneo-api.md) · [All operations](https://skmtc.dev/usekaneo/apis/kaneo-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/usekaneo/kaneo-api/revisions/9d1da42c10ce/schema)
