# Source trail

Every profile record (officer, capital, shareholder, article, change) carries a `kaynak` object, so your own UI can answer "where does this come from?" in one click.

:::sema Kaynak

## Verbatim quote

`alinti` is copied word for word from the notice. `alinti_dogrulandi: false` means the quote was not found verbatim in the notice text (e.g. an old gazette whose text could not be read); check the gazette in that case.

## Page highlight boxes

`vurgu.kutular` are proportional `[x0, y0, x1, y1]` boxes (0–1, top-left origin). Draw them over the `vurgu.sayfa_gorsel` PNG:

```javascript
// img: sayfa_gorsel yüklenmiş <img>, kap: position:relative sarmalayıcı
function vurguCiz(kap, img, kutular) {
  for (const [x0, y0, x1, y1] of kutular) {
    const k = document.createElement("div");
    Object.assign(k.style, {
      position: "absolute", left: `${x0 * 100}%`, top: `${y0 * 100}%`,
      width: `${(x1 - x0) * 100}%`, height: `${(y1 - y0) * 100}%`,
      background: "rgba(255, 229, 138, .45)", outline: "2px solid #8a5200",
    });
    kap.appendChild(k);
  }
}
```

Page images and PDFs also need the API key; fetch them on your server and serve them from your own address to show them in a browser.

> If the gazette is not archived yet, the PDF endpoint returns `404 arsivde_yok` (`tekrar_denenebilir: true`). The notice's `gazete_arsivde` field tells you in advance.
