# Get a shared package

```http
GET /api/public/v1/contributor-network/items/{itemId}
```

**Scope**: `contributor-network.read`.

Returns one active Lean Kernel Challenge package with its immutable source content and Workspace files.

## Path parameter

| Parameter | Type | Description |
| :--- | :--- | :--- |
| `itemId` | string | Stable Contributor Network item ID. |

## Example request

```bash
curl "https://api.sair.foundation/api/public/v1/contributor-network/items/$ITEM_ID" \
  -H "Authorization: Bearer $SAIR_API_KEY"
```

## Response fields

The response contains the [package summary fields](./list-contributor-packages.md#summary-fields), except `artifactExcerpt`, plus:

| Field | Type | Description |
| :--- | :--- | :--- |
| `content` | string | Root Lean source extracted from the immutable package. |
| `workspaceFiles` | [`ContributorWorkspaceFile[]`](#workspace-file-fields) | Every immutable Workspace file in canonical path order. |
| `parent` | [`ContributorItemReference`](#parent-reference-fields) `\| null` | Direct parent selected at publication, or `null`. |

### Workspace file fields

| Field | Type | Description |
| :--- | :--- | :--- |
| `path` | string | Canonical relative path. |
| `sizeBytes` | integer | UTF-8 byte length of `content`. |
| `sha256` | string | SHA-256 of the exact UTF-8 content bytes. |
| `content` | string | Exact immutable UTF-8 source content. |

### Parent reference fields

| Field | Type | Description |
| :--- | :--- | :--- |
| `id` | string | Parent Contributor Network item ID. |
| `publicCode` | `string \| null` | Parent public sharing code. |

This endpoint returns only the direct parent reference, not a calculated lineage depth or root reference. Use the generic Contributor Network graph operations when a larger lineage view is needed.

## Example response

```json
{
  "ok": true,
  "data": {
    "id": "cn_8fc20f8a7a3c4bd99506b5d51a6c905e",
    "publicCode": "LKC01-000017",
    "competitionId": "lean-kernel-challenge",
    "kind": "lean-kernel-package",
    "title": "baseline",
    "remark": "Reusable Fibonacci proof package.",
    "author": {
      "sairId": "U-9f7e1c00",
      "displayName": "alice"
    },
    "track": null,
    "modelId": null,
    "favoriteCount": 4,
    "viewerHasFavorited": false,
    "publishedAt": "2026-08-31T09:00:00Z",
    "problemId": "fib",
    "approvedRevision": "7a0abb4a80d635740a91aed1894f714dfbb82edd",
    "solutionRevision": 2,
    "executionSnapshotId": "snapshot-17",
    "templateVersion": "7a0abb4a80d635740a91aed1894f714dfbb82edd",
    "toolchainVersion": "leanprover/lean4:v4.33.1",
    "manifestVersion": "lean-kernel-user-workspace-v1",
    "workspaceSha256": "7d5307e5c809eeb01a95cf0ca6da2d452b5f94bd78e2a2fbc0ea706210e58ea8",
    "workspaceSizeBytes": 241,
    "packageFilename": "baseline.zip",
    "packageFileCount": 2,
    "packageSizeBytes": 432,
    "packageSha256": "5c376eac90aa2d027dddadbd707cfdf105095926336953ae30aecba377b1ef06",
    "downloadUrl": "/api/public/v1/contributor-network/items/cn_8fc20f8a7a3c4bd99506b5d51a6c905e/download",
    "content": "import Spec\n\nnamespace Submission\n\ndef impl : Nat → Nat := fibSpec\n\nend Submission\n",
    "workspaceFiles": [
      {
        "path": "Submission.lean",
        "sizeBytes": 86,
        "sha256": "7e6f4ab707c6d0e58d06c95d90ba9b347c8d832f8262f84cdb0b5f5eb6d80963",
        "content": "import Spec\n\nnamespace Submission\n\ndef impl : Nat → Nat := fibSpec\n\nend Submission\n"
      }
    ],
    "parent": null
  }
}
```

Successful responses use `Content-Type: application/json`.

## Errors

| HTTP | Code | When |
| :---: | :--- | :--- |
| `404` | `NOT_FOUND` | The item is missing or inactive. |
| `500` | `ARTIFACT_CORRUPT` | The immutable package fails integrity validation. |

See [Errors](../../../errors.md) for authentication, scope, and rate-limit errors.
