---
title: "Sources semantically similar to an anchor source"
method: GET
path: "/related/sources"
tags: ["Related"]
---

# Sources semantically similar to an anchor source

`GET /related/sources`

Pulls the anchor source's vector from the polymorphic `ENTITIES_INDEX` (orgs + products + sources) via `getByIds`, then runs `query` restricted to `type=source` so the candidate pool isn't wasted on parent orgs/products that would be filtered out post-hydration anyway. `scope=org` adds an `org_id` filter; `scope=global` (default) keeps the source filter only.

**Degrades gracefully** the same way `/v1/related/releases` does — missing binding, unembedded anchor, or query error returns `{ degraded: true, degradedReason, items: [] }` with HTTP 200.

Each surviving row carries its source basics plus an org rollup and a recent-release window-function stat block (`releaseCount`, `latestDate`, `latestTitle`, `latestVersion`, `recentCount`) so a rail card can render without follow-up requests.

## Query parameters

- `source` string, required
- `scope` 'org' | 'global'
- `limit` integer

## Response `200`

Successful or degraded neighbor list.

- union
  - object
    - `scope` 'org' | 'global', required
    - `items` object[], required
      - `id` string, required
      - `slug` string, required
      - `name` string, required
      - `type` string, required
      - `url` string, nullable, required
      - `score` number, required
      - `orgSlug` string, nullable, required
      - `orgName` string, nullable, required
      - `orgAvatarUrl` string, nullable, required
      - `releaseCount` integer, required
      - `latestDate` string, nullable, required
      - `latestTitle` string, nullable, required
      - `latestVersion` string, nullable, required
      - `recentCount` integer, required
  - object
    - `degraded` true, required
    - `degradedReason` string, required
    - `items` object[], required
      - `id` string, required
      - `slug` string, required
      - `name` string, required
      - `type` string, required
      - `url` string, nullable, required
      - `score` number, required
      - `orgSlug` string, nullable, required
      - `orgName` string, nullable, required
      - `orgAvatarUrl` string, nullable, required
      - `releaseCount` integer, required
      - `latestDate` string, nullable, required
      - `latestTitle` string, nullable, required
      - `latestVersion` string, nullable, required
      - `recentCount` integer, required

## Other responses

- `400` — Missing `source` query parameter.
- `404` — No source matches the supplied identifier.

---

[API](https://skmtc.net/releases/apis/releases-api.md) · [All operations](https://skmtc.net/releases/apis/releases-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/releases/releases-api/versions/168e32061f53/schema)
