---
title: "Get Upstream Status"
method: GET
path: "/api/skills/{skill_id}/upstream-status"
tags: ["skills"]
---

# Get Upstream Status

`GET /api/skills/{skill_id}/upstream-status`

## Request

- Base URL: `https://app.thinqos.com` (the document declares no server; this is the origin it was published from)
- URL: `https://app.thinqos.com/api/skills/{skill_id}/upstream-status`
- Auth: none declared

Compare a registry-installed skill against its upstream source.

See ``UpstreamStatusOut`` for the four possible states. Network failures
in the adapter surface as 502; the four documented states are all 200s.

## Path parameters

- `skill_id` string, uuid, required

## Headers

- `x-impersonate-identity-id` string, nullable

## Response `200`

Successful Response

- UpstreamStatusOut: Drift state for a registry-installed skill (TOS-320). ``state`` is one of: - ``not_a_registry_install`` — ``imported_from`` is missing or not a ``thinqos-source://`` URL. No upstream to compare against. - ``source_removed`` — the registry source the skill came from no longer exists or has been disabled. - ``up_to_date`` — comparable SKILL.md content matches upstream. - ``update_available`` — comparable SKILL.md content differs. The single-skill endpoint compares the full rendered SKILL.md returned by a live fetch. The batch endpoint compares the subset persisted by the source-level catalog snapshot, so it can answer without remote N+1 calls.
  - `state` 'up_to_date' | 'update_available' | 'source_removed' | 'not_a_registry_install', required
  - `current_hash` string, nullable
  - `upstream_hash` string, nullable
  - `source_slug` string, nullable
  - `skill_slug` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/thinqos/apis/thinqos-api.md) · [All operations](https://skmtc.dev/thinqos/apis/thinqos-api/llms.txt) · [OpenAPI document](https://skmtc.dev/thinqos/apis/thinqos-api/revisions/ce2c2ce318b1?raw)
