List sync jobs
Lists sync jobs for an app with optional filters. Use running=true to only list pending and processing syncs.
/v1/apps/{app_id}/syncs- API
- Integrations
- OpenAPI
- integrations-api
- Updated
- Apr 26, 2026
integrations-api:GET:/v1/apps/{app_id}/syncs
Lists sync jobs for an app with optional filters. Use running=true to only list pending and processing syncs.
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 - Summary: List sync jobs
- Description: Lists sync jobs for an app with optional filters. Use running=true to only list pending and processing syncs.
- 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.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| app_id | path | Yes | string | App UUID |
| status | query | No | string | Comma separated statuses: pending,processing,completed,failed,cancelled |
| running | query | No | boolean | Only return pending and processing sync jobs |
| integration_id | query | No | string | Integration UUID |
| created_after | query | No | string | RFC3339 lower bound for created_at |
| created_before | query | No | string | RFC3339 upper bound for created_at |
| page | query | No | integer | Page number, default 1 |
| per_page | query | No | integer | Items per page, default 20, max 50 |
| include_job | query | No | boolean | Include the Kubernetes job state for each sync |
| include_progress | query | No | boolean | Include event progress for each sync |
Request body
Not documented in the OpenAPI contract.
Responses
| Status | Description | Content |
|---|---|---|
| 200 | Sync jobs | application/json |
| 400 | Invalid request | 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 List
| Property | Type | Required | Details |
|---|---|---|---|
has_more | boolean | No | - |
page | integer | No | - |
per_page | integer | No | - |
syncs | object[] | No | - |
total | integer | 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 | - |
{
"data": {
"has_more": false,
"page": 0,
"per_page": 0,
"syncs": [
{
"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": null,
"completion_time": null,
"failed": null,
"message": null,
"name": null,
"namespace": null,
"pod_name": null,
"retries": null,
"start_time": null,
"status": null,
"succeeded": null
},
"k8s_job_name": "string",
"progress": {
"completed": null,
"failed": null,
"pending": null,
"processing": null,
"toBeRetried": null,
"total": null
},
"started_at": "string",
"status": "string",
"updated_at": "string"
}
],
"total": 0
},
"success": false
}400 - object
Error
| Property | Type | Required | Details |
|---|---|---|---|
details | string | No | - |
error | string | No | - |
success | boolean | No | - |
Generated example (synthetic):
{
"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):
{
"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 - Operation ID: Not documented in the OpenAPI contract.
- OpenAPI tag: Sync
- OpenAPI summary: List sync jobs