---
title: "List skill versions"
method: GET
path: "/api/skills/{skill_id}/versions"
tags: ["Skills"]
---

# List skill versions

`GET /api/skills/{skill_id}/versions`

List versions for a skill available to the authenticated user.

## Path parameters

- `skill_id` string, required

## Query parameters

- `page_size` integer
- `cursor` string

## Response `200`

Successful response.

- PlatformSkillVersionsListResponse
  - `versions` PlatformSkillVersion[], required — Versions available for the skill.
    - `skill_id` string, required — Glean skill ID.
    - `version` integer, required — Major version number.
    - `minor_version` integer, required — Minor version number.
    - `is_latest` boolean, required — Whether this is the latest version of the skill.
    - `created_by` PlatformPersonReference, required — A lightweight reference to a person, used where a payload merely points at someone.
      - `id` string — Opaque Glean person ID.
      - `name` string, required — Display name.
    - `created_at` string, date-time, required — Time this version was created.
    - `updated_at` string, date-time, required — Time this version was last updated.
    - `source_provenance` PlatformSkillSourceProvenance
      - `source_url` string — URL of the external source the skill was imported from.
      - `commit_sha` string — Source commit SHA for the imported skill.
      - `imported_at` string, date-time — Time the skill was imported.
      - `last_synced_at` string, date-time — Time the skill was last synced from its source.
      - `sync_status` 'UP_TO_DATE' | 'UPDATE_AVAILABLE' | 'SYNC_FAILED' — Current external-source sync status.
      - `sync_error` string — Human-readable sync failure reason, present only when sync_status is SYNC_FAILED.
  - `has_more` boolean, required — Whether additional results are available.
  - `next_cursor` string, nullable, required — Cursor for the next page, or null when no more results are available.
  - `request_id` string, required — Platform-generated request ID for support correlation.

## Other responses

- `400` — Invalid request (malformed JSON, invalid parameter values, unknown fields).
- `401` — Missing or invalid authentication token.
- `403` — Token valid but lacks permission for the requested operation.
- `404` — Resource not found.
- `408` — Backend did not respond within the timeout window.
- `429` — Rate limit exceeded. Includes Retry-After header.
- `500` — Unexpected server-side failure.
- `503` — Backend temporarily unavailable.

## Changes

> 68 revisions in range; 12 could not be searched.

- **2026-07-20** `da9c4e548709` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/gleanwork/apis/glean-platform-api/changes/api/skills/:skill_id/versions/get.md)

---

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