Get sync job

Retrieves a sync job with event progress and the state of its Kubernetes job

GET/v1/apps/{app_id}/syncs/{sync_id}
API
Integrations
Updated
Apr 26, 2026

integrations-api:GET:/v1/apps/{app_id}/syncs/{sync_id}

Retrieves a sync job with event progress and the state of its Kubernetes job

API ownership

  • API family: Integrations API
  • Best for: Integration records, setup verification, app and integration stats, and sync job operations.
  • Do not use from: Direct catalog, media, order, identity, or storefront reads and writes.
  • Guide route: /integrations

The OpenAPI contract defines the method, path, parameters, request body, and responses for this operation.

Operation

  • Method: GET
  • Path: /v1/apps/\{app_id\}/syncs/\{sync_id\}
  • Summary: Get sync job
  • Description: Retrieves a sync job with event progress and the state of its Kubernetes job
  • OpenAPI contract: integrations-api
  • Operation ID: Not documented in the OpenAPI contract.

Operation key uses API family, method, and path because this OpenAPI contract does not publish an operation ID.

Parameters2 parameters
NameInRequiredTypeDescription
app_idpathYesstringApp UUID
sync_idpathYesstringSync UUID
Request bodyNo documented body

Not documented in the OpenAPI contract.

Responses4 statuses
StatusDescriptionContent
200Sync jobapplication/json
400Invalid requestapplication/json (object)
404Sync job not foundapplication/json (object)
500Internal server errorapplication/json (object)

200 - object

Schema

PropertyTypeRequiredDetails
dataobjectNo-
successbooleanNo-
Sync Job
PropertyTypeRequiredDetails
app_idstringNo-
channel_idstringNo-
completed_atstringNo-
created_atstringNo-
error_messagestringNo-
failed_atstringNo-
idstringNo-
integration_idstringNo-
integration_typeenum("brink", "storyblok", "voyado", "webhooks", "google-retailer", "klaviyo", "klaviyo-catalog", "voyado-catalog", "nosto", "centra", "shopify", "mock-integration", "ai", "invio", "gamifiera", "sitoo")No-
jobobjectNo-
k8s_job_namestringNo-
progressobjectNo-
started_atstringNo-
statusstringNo-
updated_atstringNo-
Job State
PropertyTypeRequiredDetails
activeintegerNo-
completion_timestringNo-
failedintegerNo-
messagestringNo-
namestringNo-
namespacestringNo-
pod_namestringNo-
retriesintegerNo-
start_timestringNo-
statusenum("pending", "running", "succeeded", "failed", "missing")No-
succeededintegerNo-
Sync Job Progress
PropertyTypeRequiredDetails
completedintegerNo-
failedintegerNo-
pendingintegerNo-
processingintegerNo-
toBeRetriedintegerNo-
totalintegerNo-

Generated example (synthetic):

{
  "data": {
    "app_id": "string",
    "channel_id": "string",
    "completed_at": "string",
    "created_at": "string",
    "error_message": "string",
    "failed_at": "string",
    "id": "string",
    "integration_id": "string",
    "integration_type": "brink",
    "job": {
      "active": 0,
      "completion_time": "string",
      "failed": 0,
      "message": "string",
      "name": "string",
      "namespace": "string",
      "pod_name": "string",
      "retries": 0,
      "start_time": "string",
      "status": "pending",
      "succeeded": 0
    },
    "k8s_job_name": "string",
    "progress": {
      "completed": 0,
      "failed": 0,
      "pending": 0,
      "processing": 0,
      "toBeRetried": 0,
      "total": 0
    },
    "started_at": "string",
    "status": "string",
    "updated_at": "string"
  },
  "success": false
}

400 - object

Error

PropertyTypeRequiredDetails
detailsstringNo-
errorstringNo-
successbooleanNo-

Generated example (synthetic):

{
  "details": "string",
  "error": "string",
  "success": false
}

404 - object

Error

PropertyTypeRequiredDetails
detailsstringNo-
errorstringNo-
successbooleanNo-

Generated example (synthetic):

{
  "details": "string",
  "error": "string",
  "success": false
}

500 - object

Error

PropertyTypeRequiredDetails
detailsstringNo-
errorstringNo-
successbooleanNo-

Generated example (synthetic):

{
  "details": "string",
  "error": "string",
  "success": false
}

Contract identity

Use these fields to confirm you are implementing the intended endpoint contract.

  • API family: Integrations API
  • Method: GET
  • Path: /v1/apps/\{app_id\}/syncs/\{sync_id\}
  • Operation ID: Not documented in the OpenAPI contract.
  • OpenAPI tag: Sync
  • OpenAPI summary: Get sync job

Get sync job

# Get sync job Retrieves a sync job with event progress and the state of its Kubernetes job
GET /v1/apps/{app_id}/syncs/{sync_id}
Purpose

Retrieves a sync job with event progress and the state of its Kubernetes job

Required inputs

app_id path sync_id path

Primary response

200 ยท Sync job

Operation key

integrations-api:GET:/v1/apps/{app_id}/syncs/{sync_id}

## API ownership - API family: Integrations API - Best for: Integration records, setup verification, app and integration stats, and sync job operations. - Do not use from: Direct catalog, media, order, identity, or storefront reads and writes. - Guide route: [/integrations](/integrations) The OpenAPI contract defines the method, path, parameters, request body, and responses for this operation. ## Operation - Method: `GET` - Path: `/v1/apps/{app_id}/syncs/{sync_id}` - Summary: Get sync job - Description: Retrieves a sync job with event progress and the state of its Kubernetes job - OpenAPI contract: integrations-api - Operation ID: Not documented in the OpenAPI contract. - Stable operation key: `integrations-api:GET:/v1/apps/{app_id}/syncs/{sync_id}` Operation key uses API family, method, and path because this OpenAPI contract does not publish an operation ID. ## Parameters | Name | In | Required | Type | Description | | --- | --- | --- | --- | --- | | app_id | path | Yes | string | App UUID | | sync_id | path | Yes | string | Sync UUID | ## Request body Not documented in the OpenAPI contract. ## Responses | Status | Description | Content | | --- | --- | --- | | 200 | Sync job | application/json | | 400 | Invalid request | application/json (object) | | 404 | Sync job not found | application/json (object) | | 500 | Internal server error | application/json (object) | ### 200 - object #### Schema | Property | Type | Required | Details | | --- | --- | --- | --- | | `data` | object | No | - | | `success` | boolean | No | - | ##### Sync Job | Property | Type | Required | Details | | --- | --- | --- | --- | | `app_id` | string | No | - | | `channel_id` | string | No | - | | `completed_at` | string | No | - | | `created_at` | string | No | - | | `error_message` | string | No | - | | `failed_at` | string | No | - | | `id` | string | No | - | | `integration_id` | string | No | - | | `integration_type` | enum("brink", "storyblok", "voyado", "webhooks", "google-retailer", "klaviyo", "klaviyo-catalog", "voyado-catalog", "nosto", "centra", "shopify", "mock-integration", "ai", "invio", "gamifiera", "sitoo") | No | - | | `job` | object | No | - | | `k8s_job_name` | string | No | - | | `progress` | object | No | - | | `started_at` | string | No | - | | `status` | string | No | - | | `updated_at` | string | No | - | ##### Job State | Property | Type | Required | Details | | --- | --- | --- | --- | | `active` | integer | No | - | | `completion_time` | string | No | - | | `failed` | integer | No | - | | `message` | string | No | - | | `name` | string | No | - | | `namespace` | string | No | - | | `pod_name` | string | No | - | | `retries` | integer | No | - | | `start_time` | string | No | - | | `status` | enum("pending", "running", "succeeded", "failed", "missing") | No | - | | `succeeded` | integer | No | - | ##### Sync Job Progress | Property | Type | Required | Details | | --- | --- | --- | --- | | `completed` | integer | No | - | | `failed` | integer | No | - | | `pending` | integer | No | - | | `processing` | integer | No | - | | `toBeRetried` | integer | No | - | | `total` | integer | No | - | **Generated example (synthetic):** ```json { "data": { "app_id": "string", "channel_id": "string", "completed_at": "string", "created_at": "string", "error_message": "string", "failed_at": "string", "id": "string", "integration_id": "string", "integration_type": "brink", "job": { "active": 0, "completion_time": "string", "failed": 0, "message": "string", "name": "string", "namespace": "string", "pod_name": "string", "retries": 0, "start_time": "string", "status": "pending", "succeeded": 0 }, "k8s_job_name": "string", "progress": { "completed": 0, "failed": 0, "pending": 0, "processing": 0, "toBeRetried": 0, "total": 0 }, "started_at": "string", "status": "string", "updated_at": "string" }, "success": false } ``` ### 400 - object #### Error | Property | Type | Required | Details | | --- | --- | --- | --- | | `details` | string | No | - | | `error` | string | No | - | | `success` | boolean | No | - | **Generated example (synthetic):** ```json { "details": "string", "error": "string", "success": false } ``` ### 404 - object #### Error | Property | Type | Required | Details | | --- | --- | --- | --- | | `details` | string | No | - | | `error` | string | No | - | | `success` | boolean | No | - | **Generated example (synthetic):** ```json { "details": "string", "error": "string", "success": false } ``` ### 500 - object #### Error | Property | Type | Required | Details | | --- | --- | --- | --- | | `details` | string | No | - | | `error` | string | No | - | | `success` | boolean | No | - | **Generated example (synthetic):** ```json { "details": "string", "error": "string", "success": false } ``` ## Contract identity Use these fields to confirm you are implementing the intended endpoint contract. - API family: Integrations API - Method: `GET` - Path: `/v1/apps/{app_id}/syncs/{sync_id}` - Operation ID: Not documented in the OpenAPI contract. - Stable operation key: `integrations-api:GET:/v1/apps/{app_id}/syncs/{sync_id}` - OpenAPI tag: Sync - OpenAPI summary: Get sync job