---
title: "Get a proposal"
method: GET
path: "/proposals/{id}"
tags: ["proposals"]
---

# Get a proposal

`GET /proposals/{id}`

## Request

- Base URL: `https://api.onplana.com/api`
- URL: `https://api.onplana.com/api/proposals/{id}`
- Auth: one of:
  - HTTP bearer
  - API key in header `Authorization`

## Path parameters

- `id` string, required

## Headers

- `X-Organization-Id` string, required

## Response `200`

Proposal with reviews + linked project

- Proposal
  - `id` string, uuid, required
  - `title` string, required
  - `description` string, nullable
  - `stage` 'DRAFT' | 'SUBMITTED' | 'PROPOSAL_REVIEW' | 'BUSINESS_CASE' | 'BUSINESS_CASE_REVIEW' | 'PLANNING' | 'PLAN_REVIEW' | 'APPROVED' | 'ACTIVE' | 'ON_HOLD' | 'COMPLETED' | 'REJECTED', required
  - `priority` 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL', required
  - `riskLevel` 'LOW' | 'MEDIUM' | 'HIGH', required
  - `strategicAlignment` string, nullable
  - `estimatedBudget` number, nullable
  - `estimatedDuration` integer, nullable: Weeks
  - `expectedBenefits` string, nullable
  - `businessJustification` string, nullable
  - `department` string, nullable
  - `sponsorId` string, uuid, nullable
  - `proposedProjectOwnerId` string, uuid, nullable
  - `projectId` string, uuid, nullable: Set when the proposal has been linked or converted to a project.
  - `organizationId` string, uuid, required
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time

## Other responses

- `400`: Validation error
- `401`: Unauthorized - missing or invalid JWT
- `402`: Plan gate - feature not available on current plan
- `403`: Forbidden - insufficient role
- `404`: Not found

---

[API](https://skmtc.dev/onplana/apis/onplana-api.md) · [All operations](https://skmtc.dev/onplana/apis/onplana-api/llms.txt) · [OpenAPI document](https://skmtc.dev/onplana/apis/onplana-api/revisions/c3d6c89e9dc8?raw)
