Zluri Syncs API

Create and manage sync sessions for uploading data to Zluri. A sync must be created before uploading data, and finished after all data is uploaded.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

zluri-syncs-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Zluri Data Upload Syncs API
  description: The Zluri API provides external endpoints for integrating with the Zluri SaaS management platform. It enables organizations to push data from custom and on-premise applications to Zluri when no native connector is available. The API supports syncing users, applications, contracts, transactions, groups, roles, and activities. It follows a sync-based workflow where you create a sync session, upload data in paginated batches, and finish the sync to make data visible in Zluri. The API also supports webhook management for real-time notifications and instance configuration management.
  version: 2.0.0
  contact:
    name: Zluri Support
    url: https://support.zluri.com
  license:
    name: Proprietary
    url: https://www.zluri.com/policy/terms-and-conditions
  termsOfService: https://www.zluri.com/policy/terms-and-conditions
servers:
- url: https://api-ext.zluri.com/v2
  description: Zluri External API
security:
- bearerAuth: []
tags:
- name: Syncs
  description: Create and manage sync sessions for uploading data to Zluri. A sync must be created before uploading data, and finished after all data is uploaded.
paths:
  /integrations-sync/instances/{instance_id}/syncs:
    post:
      operationId: createSync
      summary: Zluri Create Sync
      description: Create a new sync session for the specified instance. Only one sync can be active per instance at a time. Unfinished syncs block new syncs for the same instance. Data uploaded during a sync will not appear in Zluri until the sync is finished.
      tags:
      - Syncs
      parameters:
      - $ref: '#/components/parameters/InstanceId'
      responses:
        '201':
          description: The newly created sync session.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Sync'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          description: A sync is already in progress for this instance.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          $ref: '#/components/responses/RateLimited'
  /integrations-sync/instances/{instance_id}/syncs/{sync_id}:
    get:
      operationId: getSyncStatus
      summary: Zluri Get Sync Status
      description: Retrieve the current status of a sync session. Use this to check if a sync is running, failed, or finished.
      tags:
      - Syncs
      parameters:
      - $ref: '#/components/parameters/InstanceId'
      - $ref: '#/components/parameters/SyncId'
      responses:
        '200':
          description: The sync session details and status.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Sync'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
  /integrations-sync/instances/{instance_id}/syncs/{sync_id}/finish:
    post:
      operationId: finishSync
      summary: Zluri Finish Sync
      description: Mark a sync session as finished. Data will not appear in Zluri until the sync is finished. Always finish your sync after uploading all data. Once finished, a new sync can be created for the same instance.
      tags:
      - Syncs
      parameters:
      - $ref: '#/components/parameters/InstanceId'
      - $ref: '#/components/parameters/SyncId'
      responses:
        '200':
          description: The sync has been successfully finished.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Sync'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  parameters:
    InstanceId:
      name: instance_id
      in: path
      required: true
      description: The unique identifier of the integration instance.
      schema:
        type: string
    SyncId:
      name: sync_id
      in: path
      required: true
      description: The unique identifier of the sync session.
      schema:
        type: string
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error message describing what went wrong.
        code:
          type: string
          description: Machine-readable error code.
    Sync:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the sync session.
        instance_id:
          type: string
          description: The instance this sync belongs to.
        status:
          type: string
          description: Current status of the sync.
          enum:
          - running
          - finished
          - failed
        created_at:
          type: string
          format: date-time
          description: When the sync was created.
        finished_at:
          type: string
          format: date-time
          description: When the sync was finished.
  responses:
    Unauthorized:
      description: Authentication failed. Check your bearer token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: The request was malformed or missing required parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimited:
      description: Rate limit exceeded. Retry after a short delay.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Bearer token authentication. Obtain your API token from the Zluri admin dashboard.
externalDocs:
  description: Zluri API Documentation
  url: https://api-docs.zluri.dev/