---
title: "Sync a GitHub-imported skill"
method: POST
path: "/api/skills/{skill_id}/sync"
tags: ["Skills"]
---

# Sync a GitHub-imported skill

`POST /api/skills/{skill_id}/sync`

Refresh one GitHub-imported skill from its stored source URL. If the skill content has changed, this operation creates a new skill version. If the skill is no longer present upstream, the stored skill is left unchanged and must be deleted explicitly.

## Path parameters

- `skill_id` string, required

## Response `200`

Skill sync completed successfully.

- PlatformSkillSyncResponse
  - `sync_status` 'UP_TO_DATE', required — Synchronization status after a successful refresh.
  - `commit_sha` string, required — Git commit SHA now associated with the skill.
  - `updated` boolean, required — Whether this request created a new skill version.
  - `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.
- `409` — Request conflicts with current state of the resource.
- `413` — Request body exceeds the maximum allowed size.
- `429` — Rate limit exceeded. Includes Retry-After header.
- `500` — Unexpected server-side failure.
- `503` — Backend temporarily unavailable.

---

[API](https://skmtc.net/gleanwork/apis/glean-platform-api.md) · [All operations](https://skmtc.net/gleanwork/apis/glean-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/gleanwork/glean-platform-api/versions/34ba85db4644/schema)
