---
title: "Get shipments"
method: GET
path: "/api/v1/organization/shipments"
tags: ["Shipments"]
---

# Get shipments

`GET /api/v1/organization/shipments`

Retrieve all OTA shipments in the organization.

Required permissions, when user-scoped authentication is used: `OTA_VIEW`.

## Query parameters

- `orgId` integer

## Response `200`

List of shipments

- Shipment[]
  - `id` integer — Shipment unique identifier
  - `productId` integer — Template (product) ID for this shipment
  - `productName` string — Template (product) name
  - `shipmentTime` 'ANY' | 'NIGHT' | 'MORNING' | 'AFTERNOON' | 'EVENING' — Time window for the OTA update delivery
  - `title` string — Shipment title
  - `pathToFirmware` string — Server path to the firmware binary, as returned by the firmware upload endpoint (`POST /api/upload` with `type=FIRMWARE`).
  - `firmwareOriginalFileName` string — Original firmware file name
  - `host` string — Optional. Custom host domain name used for firmware download URL. If not set, the server's default host is used.
  - `startedByUserId` integer — ID of the user who started the shipment
  - `startedAt` integer — Timestamp (ms) when the shipment was started
  - `finishedAt` integer — Timestamp (ms) when the shipment finished (0 if still running)
  - `deviceIds` integer[] — List of device IDs targeted by this shipment
  - `firmwareInfo` FirmwareInfo
    - `version` string — Firmware version
    - `blynkVersion` string — Blynk firmware version
    - `fwType` string — Firmware type (product name)
    - `boardType` string — Board type
    - `buildDate` string — Firmware build date
    - `md5Hash` string — MD5 hash of the firmware file
    - `sha256Hash` string — SHA-256 hash of the firmware file
    - `type` 'NCP' | 'MCU' — Firmware type
    - `fileSize` integer — Firmware file size in bytes
  - `attemptsLimit` integer — Maximum number of OTA delivery attempts per device
  - `attemptResetPeriodMs` integer — Period (ms) after which the attempt counter resets
  - `isSecure` boolean — Whether the firmware transfer uses a secure channel
  - `skipFwTypeCheck` boolean — Whether to skip firmware type compatibility check
  - `isCritical` boolean — Whether this is a critical update
  - `sendPush` boolean — Whether push notifications were sent for this shipment
  - `status` 'RUN' | 'PAUSE' | 'FINISH' | 'CANCEL' — Current shipment status
  - `compareField` 'NO_CONDITION' | 'BUILD_DATE_DIFFERS' | 'EARLIER_BUILD_DATE' | 'LATEST_FIRMWARE_VERSION' | 'LATEST_BLYNK_VERSION' — Condition used to determine whether the shipment should apply to a device
  - `shipmentProgress` ShipmentProgress
    - `started` integer — Number of devices that started the OTA update
    - `requestSent` integer — Number of devices that received the update request
    - `firmwareRequested` integer — Number of devices that requested the firmware
    - `firmwareUploaded` integer — Number of devices that completed firmware upload
    - `firmwareUploadedToMobile` integer — Number of devices that uploaded firmware via mobile
    - `success` integer — Number of devices that successfully updated
    - `uploadFailure` integer — Number of devices that failed to upload firmware
    - `firmwareTypeMismatch` integer — Number of devices with firmware type mismatch
    - `downloadLimitReached` integer — Number of devices that reached the download limit
    - `rollback` integer — Number of devices that rolled back
    - `firmwareVersionMismatch` integer — Number of devices with firmware version mismatch
    - `updatedAt` integer — Timestamp (ms) of the last progress update

## Other responses

- `400` — Bad request
- `403` — Forbidden
- `404` — Organization not found or access denied
- `429` — Too many requests
- `500` — Internal server error

---

[API](https://skmtc.dev/blynk/apis/blynk-platform-api.md) · [All operations](https://skmtc.dev/blynk/apis/blynk-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/blynk/blynk-platform-api/revisions/d8640cc48a13/schema)
