---
title: "Get a DEP sync request"
method: GET
path: "/onboarding/v0/depsyncs/{id}/"
tags: ["device_onboarding_DEP Sync Request"]
---

# Get a DEP sync request

`GET /onboarding/v0/depsyncs/{id}/`

⚠️ Apple devices only. DEP (Device Enrollment Program) is an Apple provisioning technology, now part of Apple Business Manager.

Retrieves the current status and full detail of a specific DEP sync request by its UUID, including per-device failure information if the sync encountered errors.

**About Get DEP Sync Request**
This is the detail and polling endpoint for a single DEP sync request. It returns a DEPSyncRequestForGetResponse — the richer schema compared to the POST response — which includes the failure_reason field and the devices.failure array listing individual device serials and their specific failure reasons when the sync status is FAILURE. Use this endpoint to determine when a sync has completed and to diagnose any device-level issues that occurred during the sync. The status field progresses from QUEUED through INPROGRESS to a terminal state: COMPLETE, SUCCESS, or FAILURE.

**Key Fields**

id (path) — DEP sync request UUID (required)

status — QUEUED, INPROGRESS, COMPLETE, SUCCESS, or FAILURE

failure_reason — Overall failure description (present when status is FAILURE)

devices.failure — Array of {serial, reason} objects for each device that failed to process (present when failure_reason is included)

created_by — User who triggered the sync

created_at / updated_at — Timestamps

**Common Use Cases**

Polling a DEP sync to completion after triggering it with POST /api/onboarding/v0/depsyncs/

Retrieving per-device failure detail when a sync reaches FAILURE status

Confirming the exact completion time of a sync for audit or pipeline sequencing purposes

**Best Practices**

Poll at a reasonable interval (e.g., every 30 seconds) — DEP syncs are Apple-dependent and duration varies with device count and Apple service response time

When status is FAILURE, always check both failure_reason (overall) and devices.failure (per-device) — a sync may fail for an overall reason, for per-device reasons, or both

Use updated_at as the authoritative timestamp for when the sync reached its terminal state

## Path parameters

- `id` string, required

## Response `200`

DEP sync request information

- object
  - `code` integer
  - `message` string
  - `content` DeviceOnboardingDEPSyncRequestForGetResponse
    - `id` string, uuid — Unique DEP sync request identifier
    - `status` 'QUEUED' | 'INPROGRESS' | 'COMPLETE' | 'FAILURE' | 'SUCCESS' — Status of the DEP sync request
    - `failure_reason` string — Reason for DEP Sync failure. If this field is included in the response, a list of devices with which failed to process DEP sync will also be returned in the API response.
    - `devices` object
      - `failure` DeviceOnboardingDEPSyncDeviceStatus[]
        - `serial` string
        - `reason` string
    - `created_by` string — user id of the user
    - `created_at` string, date-time
    - `updated_at` string, date-time

## Other responses

- `401` — Authorization information is missing or invalid.
- `404` — Not Found.
- `500` — Internal server error

---

[API](https://skmtc.net/esper/apis/esper-api-reference.md) · [All operations](https://skmtc.net/esper/apis/esper-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/esper/esper-api-reference/revisions/e1f64cbb488e/schema)
