---
title: "Review Run Base Graph"
method: GET
path: "/v1/internal/review-runs/{job_id}/base-graph"
---

# Review Run Base Graph

`GET /v1/internal/review-runs/{job_id}/base-graph`

## Request

- Base URL: `https://api.graphify.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.graphify.com/v1/internal/review-runs/{job_id}/base-graph`
- Auth: none declared

A presigned read of THIS review repo's own promoted graph, to seed the
review's BASE graph instead of cold-extracting the base checkout (issue #2).

Auth is the SAME strength as the sibling ``/peer-graphs`` and ``/result``
routes -- a job token bound to this ``{job_id}`` (``InternalWorker``) PLUS an
active review lease -- so only the worker currently leasing this run can fetch
the base, and the tenant + repo are read from the AUTHENTICATED run row, never
from client input. Unlike ``/peer-graphs`` there is no workspace requirement:
the base graph is the repo's OWN promoted build.

Dark by default: gated behind ``review_seed_base_from_promoted_enabled`` so it
404s until armed (the worker then cold-builds the base, today's behaviour). A
repo with no promoted build surfaces the usual graph-absence error, which the
worker also treats as "cold-build the base" -- so a never-indexed repo is a
clean fallback, not a failure.

## Path parameters

- `job_id` string, required

## Headers

- `X-Graphify-Lease-Token` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/graphify/apis/graphify-control-plane.md) · [All operations](https://skmtc.dev/graphify/apis/graphify-control-plane/llms.txt) · [OpenAPI document](https://skmtc.dev/graphify/apis/graphify-control-plane/revisions/0e75c82b5ea8?raw)
