---
title: "Resolve a GitHub owner/repo coordinate to an indexed source (read-only, no materialize)"
method: GET
path: "/lookups/source-by-coordinate"
tags: ["Lookups"]
---

# Resolve a GitHub owner/repo coordinate to an indexed source (read-only, no materialize)

`GET /lookups/source-by-coordinate`

Read-only counterpart to `POST /v1/lookups`: given `coordinate=owner/repo` (optionally `github:owner/repo`), returns the canonical org-scoped tuple `{ sourceId, sourceSlug, orgSlug }` for a matching **visible** catalog source, or 404 when the repo isn't indexed. Unlike the POST, it never probes GitHub or materializes a hidden stub. Matches `sources.url` case-insensitively; on a multi-row case collision it prefers the exact-case row, then the oldest by `(createdAt, id)`.

## Query parameters

- `coordinate` string, required

## Response `200`

Canonical home for the indexed repo

- object
  - `sourceId` string, required
  - `sourceSlug` string, required
  - `orgSlug` string, required

## Other responses

- `400` — Missing `coordinate`, or not a parseable github owner/repo coordinate
- `404` — No visible source matches the coordinate

## Changes

- **2026-08-25** `c3a92b6b6909` — 2 warning
  - added the new `too_large` enum value to the `error/type` response property for the response status `400`
  - added the new `too_large` enum value to the `error/type` response property for the response status `404`

[Change history](https://skmtc.dev/releases/apis/releases-api/changes/lookups/source-by-coordinate/get.md)

---

[API](https://skmtc.dev/releases/apis/releases-api.md) · [All operations](https://skmtc.dev/releases/apis/releases-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/releases/releases-api/revisions/ef21361a36e6/schema)
