Endpoints
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
subscriptionId | string | Yes | Your subscription ID (from subscribe response) |
conflictId | string | Yes | Conflict ID (from list conflicts response) |
Apply pending updates
POST /api/hub/subscriptions/{subscriptionId}/sync/apply
Applies pending publisher version updates to your local catalog. For subscriptions with syncStrategy: "auto", this happens automatically. For "manual" subscriptions, call this endpoint when you’re ready to sync.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
targetVersion | number | No | Specific version to sync to. Defaults to latest published version |
Response
Apply sync examples
List conflicts
GET /api/hub/subscriptions/{subscriptionId}/conflicts
Returns all unresolved conflicts for a subscription — fields where your local edits differ from the publisher’s new value.
Response
Conflict fields
| Field | Type | Description |
|---|---|---|
id | string | Conflict ID |
productId | string | Local product ID with the conflict |
field | string | Field name where the conflict exists |
localValue | any | Your current local value |
remoteValue | any | Publisher’s new value |
publisherVersion | number | Publisher version that introduced this change |
createdAt | string | When the conflict was created |
status | string | "pending", "resolved_local", "resolved_remote", "resolved_merged" |
List conflicts examples
Resolve a conflict
PUT /api/hub/subscriptions/{subscriptionId}/conflicts/{conflictId}
Resolves a single field conflict by choosing local, remote, or a custom merged value.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
resolution | string | Yes | "keep_local", "accept_remote", or "merge" |
mergedData | any | No | Custom merged value (required when resolution is "merge") |
Response
Resolve conflict examples
Conflict workflow
Error responses
| HTTP status | Code | Description |
|---|---|---|
| 403 | INSUFFICIENT_PERMISSIONS | Not your subscription |
| 404 | SUBSCRIPTION_NOT_FOUND | Subscription ID not found |
| 404 | CONFLICT_NOT_FOUND | Conflict ID not found or already resolved |
| 409 | SYNC_ALREADY_RUNNING | A sync is already in progress |
| 422 | NO_PENDING_UPDATES | Already on the latest version (apply only) |
| 422 | MERGE_DATA_REQUIRED | mergedData is required when resolution is "merge" |