---
title: "Get a form contract and metadata."
method: GET
path: "/api/v1/forms/{formId}"
tags: ["Forms"]
---

# Get a form contract and metadata.

`GET /api/v1/forms/{formId}`

## Request

- Base URL: `https://commentary.dev`
- URL: `https://commentary.dev/api/v1/forms/{formId}`
- Auth: HTTP bearer

Review-scoped tokens can read embedded forms only when query parameters identify the covered review context.

## Path parameters

- `formId` string, required

## Query parameters

- `provider` 'github'
- `owner` string
- `repo` string
- `pr` integer
- `prNumber` integer
- `branch` string
- `branchRef` string
- `rootFolder` string
- `brainRootFolder` string
- `draftReviewSessionId` string
- `filePath` string
- `documentVersionId` string
- `formInstanceId` string

## Headers

- `X-Commentary-Workspace-Id` string
- `X-Correlation-Id` string

## Response `200`

Successful response.

- object
  - `ok` unknown
  - `form` FormRecord
    - `id` string
    - `referenceId` string
    - `title` string
    - `description` string, nullable
    - `status` 'active' | 'archived'
    - `visibility` 'private' | 'shared' | 'public_placeholder'
    - `sourceType` 'commentary' | 'github' | 'embedded' | 'custom'
    - `contractHash` string
    - `currentVersionId` string, nullable
    - `sourceMetadata` object
    - `destinationConfig` object
    - `contract` FormContract: Normalized Commentary Form Contract v1.
    - `createdAt` string, date-time
    - `updatedAt` string, date-time

## Other responses

- `400`: The request was invalid.
- `401`: Authentication is required.
- `403`: The token or session does not have permission for this resource.
- `404`: The resource was not found.
- `429`: The request was rate limited.

---

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