---
title: "Get project"
method: POST
path: "/v2/projects.getProject"
tags: ["projects"]
---

# Get project

`POST /v2/projects.getProject`

Retrieve a single project in your workspace by its id.

Use this to fetch project details after creation, verify a project exists before performing operations, or resolve a project's metadata from its id.

**Required Permissions**

Your root key must have one of the following permissions:
- `project.*.read_project` (to read any project)
- `project.<project_id>.read_project` (to read a specific project)

## Request body

- V2ProjectsGetProjectRequestBody
  - `project` string, required — Identifies a resource by either its unique ID or its slug. Accepts a prefixed ID (such as 'proj_' or 'app_') or a slug.

## Response `200`

Successfully retrieved the project.

- V2ProjectsGetProjectResponseBody
  - `meta` Meta, required — Metadata object included in every API response. This provides context about the request and is essential for debugging, audit trails, and support inquiries. The `requestId` is particularly important when troubleshooting issues with the Unkey support team.
    - `requestId` string, required — A unique id for this request. Always include this ID when contacting support about a specific API request. This identifier allows Unkey's support team to trace the exact request through logs and diagnostic systems to provide faster assistance.
  - `data` Project, required
    - `id` string, required — The unique identifier of the project, generated by Unkey.
    - `name` string, required — Human-readable name for this project.
    - `slug` string, required — URL-safe handle for this project, unique within your workspace. This is the caller-defined identifier used to reference the project in get, update, and delete operations.
    - `createdAt` integer, required — Unix timestamp in milliseconds when the project was created.
    - `updatedAt` integer — Unix timestamp in milliseconds when the project was last updated. Omitted if the project has never been updated.
    - `deleteProtection` boolean, required — Whether delete protection is enabled for this project. When true, the project cannot be deleted until protection is disabled.

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden - Insufficient permissions (requires `project.*.read_project`)
- `404` — Not Found - The requested project does not exist in your workspace
- `429` — Too Many Requests
- `500` — Internal server error

---

[API](https://skmtc.net/unkeyed/apis/unkey-api.md) · [All operations](https://skmtc.net/unkeyed/apis/unkey-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/unkeyed/unkey-api/revisions/4bd11a7252bc/schema)
