Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/VisualGraphxLLC/API-HUB/llms.txt

Use this file to discover all available pages before exploring further.

Sync jobs are created every time you trigger a catalog import via POST /api/suppliers/{id}/import. Each job records its discovery mode, progress counters, and any per-product errors in a JSONB field so you can diagnose partial failures without tailing logs.

List sync jobs

GET /api/sync-jobs
Returns all sync jobs ordered by started_at descending. Query parameters:
status
string
Filter by status: pending, running, success, partial_success, failed
job_type
string
Filter by job type string (e.g. import:full_sellable)
supplier_id
string
Filter by supplier UUID
limit
integer
Maximum number of results. Default: 100
Example:
curl -b "auth_token=<token>" \
  "http://localhost:8000/api/sync-jobs?status=failed&limit=20"

Get a sync job

GET /api/sync-jobs/{job_id}
Returns a single sync job by UUID. Response fields:
id
string
UUID of the sync job
supplier_id
string
UUID of the supplier
supplier_name
string
Supplier display name
job_type
string
Format: import:{mode} e.g. import:full_sellable
status
string
pending | running | success | partial_success | failed
discovery_mode
string
The mode used: full_sellable, delta, first_n, explicit_list, closeouts
total_products
integer
Total products discovered
success_count
integer
Products successfully hydrated and stored
failed_count
integer
Products that errored during hydration
errors
object
JSONB array of per-product errors. Each entry includes the product SKU and error message.
started_at
string
ISO 8601 timestamp
completed_at
string
ISO 8601 timestamp, null if still running
Example response:
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "supplier_id": "a1b2c3d4-...",
  "supplier_name": "SanMar",
  "job_type": "import:full_sellable",
  "status": "partial_success",
  "discovery_mode": "full_sellable",
  "total_products": 1200,
  "success_count": 1195,
  "failed_count": 5,
  "errors": [
    { "sku": "PC61-RED-L", "error": "SupplierError: variant price missing" }
  ],
  "started_at": "2026-05-07T01:00:00Z",
  "completed_at": "2026-05-07T01:43:22Z"
}

Retry a failed job

POST /api/sync-jobs/{job_id}/retry
Creates a new sync job with the same job_type and supplier_id as the original. Returns the new job at status pending (201).
Retrying creates a new job — the original is not modified. Use GET /api/sync-jobs with the same supplier_id to track both.

Update a sync job

PATCH /api/sync-jobs/{job_id}
Used internally by the adapter service to update progress. You can also use this to manually mark a stuck job as failed. Query parameters (all optional):
status
string
New status value
records_processed
integer
Updated count
error_log
string
Error log text
completed_at
string
ISO 8601 completion timestamp

Build docs developers (and LLMs) love