---
title: "POST /experimental/workspaces/{workspaceId}/claude-marketplace/sync"
method: POST
path: "/experimental/workspaces/{workspaceId}/claude-marketplace/sync"
tags: ["Claude Marketplace", "Workspaces"]
---

# POST /experimental/workspaces/{workspaceId}/claude-marketplace/sync

`POST /experimental/workspaces/{workspaceId}/claude-marketplace/sync`

Starts an asynchronous synchronization of the workspace's Claude marketplace configuration to its configured GitHub repository. Returns 202 with the created run, or 409 with the existing run when a synchronization is already pending.

## Path parameters

- `workspaceId` string, uuid, required

## Headers

- `Authorization` string

## Response `202`

Default Response

- object
  - `links` object, required
    - `self` string, uri, required
  - `data` object, required
    - `id` string, uuid, required
    - `type` 'claude-marketplace-sync-run', required
    - `attributes` object, required
      - `lifecycle` union, required
        - 'preparing'
        - 'awaiting_merge'
        - 'completed_changed'
        - 'completed_unchanged'
        - 'failed'
      - `additions` integer, nullable, required
      - `updates` integer, nullable, required
      - `removals` integer, nullable, required
      - `commitSha` string, nullable, required
      - `sourceBranch` string, nullable, required
      - `pullRequestNumber` integer, nullable, required
      - `pullRequestUrl` string, nullable, required
      - `proposedCommitSha` string, nullable, required
      - `failureCode` union, required
        - 'configuration_invalid'
        - 'repository_unavailable'
        - 'permission_denied'
        - 'plugin_unavailable'
        - 'unsupported_plugin'
        - 'repository_too_large'
        - 'repository_conflict'
        - 'provider_unavailable'
        - 'internal_error'
        - 'pull_request_closed'
        - 'merge_timeout'
      - `failureMessage` string, nullable, required
      - `createdAt` string, required
      - `startedAt` string, nullable, required
      - `completedAt` string, nullable, required

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `409` — Default Response
- `500` — Internal Server Error

---

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