---
title: Sources semantically similar to an anchor source
description: >-
  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 or
---
# Sources semantically similar to an anchor source

`GET https://api.releases.sh/v1/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.

**Auth:** optional Bearer token.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `source` | query | string | yes | Anchor source id (`src_…`) or slug. |
| `scope` | query | "org" \| "global" | no | Restrict candidates to the anchor's org, or run unscoped. |
| `limit` | query | integer | no | Max neighbors to return. Clamped to 1–25. |

**Responses**

- `200` Successful or degraded neighbor list.
- `400` Missing `source` query parameter.
- `404` No source matches the supplied identifier.

Full request and response schemas: [OpenAPI 3.1 spec](https://api.releases.sh/v1/openapi.json).
