---
title: "Resolve an org-scoped slug to a product or source"
method: GET
path: "/orgs/{org}/resolve/{slug}"
tags: ["Orgs"]
---

# Resolve an org-scoped slug to a product or source

`GET /orgs/{org}/resolve/{slug}`

Product-first: returns `{ kind: "product", product }` when a product owns the slug, else `{ kind: "source", source }` for a source, else 404. One round trip for the bare `/[org]/[slug]` web route (#1190).

## Path parameters

- `org` string, required
- `slug` string, required

## Response `200`

Discriminated product or source detail

- union
  - object
    - `kind` 'product', required
    - `product` object, required
      - `id` string, required
      - `name` string, required
      - `slug` string, required
      - `orgId` string, required
      - `url` string, nullable, required
      - `description` string, nullable, required
      - `category` 'ai' | 'cloud' | 'commerce' | 'crm' | 'database' | 'design' | 'developer-tools' | 'devops' | 'finance' | 'framework' | 'infrastructure' | 'observability' | 'productivity' | 'security', nullable, required
      - `kind` 'platform' | 'sdk' | 'mobile' | 'desktop' | 'docs' | 'integration' | 'tool', nullable
      - `avatarUrl` string, nullable
      - `createdAt` string, required
      - `embeddedAt` string, nullable, required
      - `deletedAt` string, nullable, required
      - `sources` object[], required
        - `id` string, required
        - `slug` string, required
        - `name` string, required
        - `type` 'github' | 'scrape' | 'feed' | 'agent' | 'appstore' | 'video', required
        - `url` string, required
        - `metadata` string, nullable
        - `kind` 'platform' | 'sdk' | 'mobile' | 'desktop' | 'docs' | 'integration' | 'tool', nullable
      - `tags` string[], required
      - `aliases` string[], required
      - `releases` object[]
        - `id` string
        - `version` string, nullable, required
        - `title` string, required
        - `summary` string, required
        - `content` string
        - `publishedAt` string, nullable, required
        - `fetchedAt` string
        - `url` string, nullable, required
        - `media` object[]
          - `type` 'image' | 'video' | 'gif', required
          - `url` string, required
          - `alt` string
          - `r2Key` string
          - `r2Url` string
          - `linkUrl` string
        - `type` 'feature' | 'rollup'
        - `prerelease` boolean
        - `titleGenerated` string, nullable
        - `titleShort` string, nullable
        - `breaking` 'unknown' | 'none' | 'minor' | 'major'
        - `importance` integer, nullable
        - `coverageCount` integer
        - `contentChars` integer, nullable
        - `contentTokens` integer, nullable
        - `composition` object, nullable
          - `bugs` integer, required
          - `features` integer, required
          - `enhancements` integer, required
      - `pagination` object
        - `nextCursor` string, nullable, required
        - `limit` integer, required
      - `notice` object, nullable
        - `message` string, required
        - `linkText` string
        - `coordinate` string
        - `href` string, uri
  - object
    - `kind` 'source', required
    - `source` object, required
      - `id` string, required
      - `slug` string, required
      - `name` string, required
      - `type` 'github' | 'scrape' | 'feed' | 'agent' | 'appstore' | 'video', required
      - `url` string, required
      - `orgId` string, nullable, required
      - `productId` string, nullable, required
      - `productSlug` string, nullable, required
      - `isHidden` boolean, required
      - `discovery` 'curated' | 'agent' | 'on_demand'
      - `isPrimary` boolean, required
      - `metadata` string, required
      - `changelogUrl` string, nullable
      - `hasChangelogFile` boolean
      - `org` object, nullable, required
        - `id` string, required
        - `slug` string, required
        - `name` string, required
      - `releaseCount` integer, required
      - `releasesLast30Days` integer, required
      - `avgReleasesPerWeek` number, required
      - `latestVersion` string, nullable, required
      - `latestDate` string, nullable, required
      - `lastFetchedAt` string, nullable, required
      - `lastPolledAt` string, nullable, required
      - `changeDetectedAt` string, nullable
      - `trackingSince` string, required
      - `releases` object[], required
        - `id` string
        - `version` string, nullable, required
        - `title` string, required
        - `summary` string, required
        - `content` string
        - `publishedAt` string, nullable, required
        - `fetchedAt` string
        - `url` string, nullable, required
        - `media` object[]
          - `type` 'image' | 'video' | 'gif', required
          - `url` string, required
          - `alt` string
          - `r2Key` string
          - `r2Url` string
          - `linkUrl` string
        - `type` 'feature' | 'rollup'
        - `prerelease` boolean
        - `titleGenerated` string, nullable
        - `titleShort` string, nullable
        - `breaking` 'unknown' | 'none' | 'minor' | 'major'
        - `importance` integer, nullable
        - `coverageCount` integer
        - `contentChars` integer, nullable
        - `contentTokens` integer, nullable
        - `composition` object, nullable
          - `bugs` integer, required
          - `features` integer, required
          - `enhancements` integer, required
      - `pagination` object, required
        - `nextCursor` string, nullable, required
        - `limit` integer, required
      - `summaries` object, required
        - `rolling` object, nullable, required
          - `year` integer, nullable
          - `month` integer, nullable
          - `windowDays` integer, nullable
          - `summary` string, required
          - `releaseCount` integer, required
          - `generatedAt` string, required
        - `monthly` object[], required
          - `year` integer, nullable
          - `month` integer, nullable
          - `windowDays` integer, nullable
          - `summary` string, required
          - `releaseCount` integer, required
          - `generatedAt` string, required
      - `kind` 'platform' | 'sdk' | 'mobile' | 'desktop' | 'docs' | 'integration' | 'tool', nullable
      - `stars` integer, nullable
      - `starsFetchedAt` string, nullable
      - `notice` object, nullable
        - `message` string, required
        - `linkText` string
        - `coordinate` string
        - `href` string, uri

## Other responses

- `404` — Neither a product nor a source matched

---

[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/revisions/168e32061f53/schema)
