---
title: "Starts bulk upload"
method: POST
path: "/bulkjobs/v4/deviceUploads"
tags: ["Bulk jobs"]
---

# Starts bulk upload

`POST /bulkjobs/v4/deviceUploads`

Starts bulk upload process

## Query parameters

- `fileName` string — The name of the upload file.

## Request body

- union
  - union[]
    - union
      - object
        - `areaBased` boolean — True if device should be configured to be in area based mode. Area based mode can be set to true only if device has maximum of 3 associated geofences.
        - `distanceM` number — Send an update if the device has moved farther than the specified distance in meters
        - `geofences` string[] — Geofence IDs to be associated with the device
        - `name` string, required — The name of the device. Must be unique within a project.
        - `rules` string[] — Rule or sensor rule IDs to be associated with the device
        - `sampleMs` number — The rate at which to sample signals in milliseconds
        - `sendMs` number — The rate at which to send sample results in milliseconds
        - `tags` string[] — Arbitrary tags to be assigned to the device
        - `type` string — The type of the asset. Can be any user defined string, but if one of the following types is selected, the asset icon in asset.tracking.here.com application will be changed accordingly: * `Phone` * `Heavy Machinery` * `Tracker` * `Airport / Air Cargo` * `Warehouse` * `Returnable / Reusable` * `Generic` * `Hospital`
      - object
        - `areaBased` boolean — True if device should be configured to be in area based mode. Area based mode can be set to true only if device has maximum of 3 associated geofences.
        - `deviceId` string, required — Device ID of a provisioned device
        - `distanceM` number — Send an update if the device has moved farther than the specified distance in meters
        - `geofences` string[] — Geofence IDs to be associated with the device
        - `name` string, required — The name of the device. Must be unique within a project.
        - `rules` string[] — Rule or sensor rule IDs to be associated with the device
        - `sampleMs` number — The rate at which to sample signals in milliseconds
        - `sendMs` number — The rate at which to send sample results in milliseconds
        - `tags` string[] — Arbitrary tags to be assigned to the device
        - `type` string — The type of the asset. Can be any user defined string, but if one of the following types is selected, the asset icon in asset.tracking.here.com application will be changed accordingly: * `Phone` * `Heavy Machinery` * `Tracker` * `Airport / Air Cargo` * `Warehouse` * `Returnable / Reusable` * `Generic` * `Hospital`
      - object
        - `areaBased` boolean — True if device should be configured to be in area based mode. Area based mode can be set to true only if device has maximum of 3 associated geofences.
        - `distanceM` number — Send an update if the device has moved farther than the specified distance in meters
        - `externalId` string, required — Virtual device external ID, only present when the device is virtual
        - `geofences` string[] — Geofence IDs to be associated with the device
        - `name` string, required — The name of the device. Must be unique within a project.
        - `rules` string[] — Rule or sensor rule IDs to be associated with the device
        - `sampleMs` number — The rate at which to sample signals in milliseconds
        - `sendMs` number — The rate at which to send sample results in milliseconds
        - `tags` string[] — Arbitrary tags to be assigned to the device
        - `type` string — The type of the asset. Can be any user defined string, but if one of the following types is selected, the asset icon in asset.tracking.here.com application will be changed accordingly: * `Phone` * `Heavy Machinery` * `Tracker` * `Airport / Air Cargo` * `Warehouse` * `Returnable / Reusable` * `Generic` * `Hospital`
      - object
        - `areaBased` boolean — True if device should be configured to be in area based mode. Area based mode can be set to true only if device has maximum of 3 associated geofences.
        - `connectorId` string, required — Identifier of the connector.
        - `distanceM` number — Send an update if the device has moved farther than the specified distance in meters
        - `externalDeviceId` string, required — Identifier of the device on the external cloud.
        - `geofences` string[] — Geofence IDs to be associated with the device
        - `name` string, required — The name of the device. Must be unique within a project.
        - `rules` string[] — Rule or sensor rule IDs to be associated with the device
        - `sampleMs` number — The rate at which to sample signals in milliseconds
        - `sendMs` number — The rate at which to send sample results in milliseconds
        - `tags` string[] — Arbitrary tags to be assigned to the device
        - `type` string — The type of the asset. Can be any user defined string, but if one of the following types is selected, the asset icon in asset.tracking.here.com application will be changed accordingly: * `Phone` * `Heavy Machinery` * `Tracker` * `Airport / Air Cargo` * `Warehouse` * `Returnable / Reusable` * `Generic` * `Hospital`
  - union[]
    - union
      - object
        - `trackingId` string, required — This is a unique ID associated with the device data in HERE Tracking.
        - `unclaimOnly` boolean — If set to true, the device will only be unclaimed but not unprovisioned. Set `unclaimOnly` to true in case you want to use the already existing deviceId and deviceSecret of the device to claim the device in this or other project in the future.
      - object
        - `externalId` string, required — Virtual device external ID, only present when the device is virtual
        - `unclaimOnly` boolean — If set to true, the device will only be unclaimed but not unprovisioned. Set `unclaimOnly` to true in case you want to use the already existing deviceId and deviceSecret of the device to claim the device in this or other project in the future.
      - object
        - `connectorId` string, required — Identifier of the connector.
        - `externalDeviceId` string, required — Identifier of the device on the external cloud.
        - `removeFromConnectorOnly` boolean — If set to true, external device is only removed from the connector but the virtual device will remain claimed and provisioned in Tracking Cloud. Can be true only when removing c2c device, i.e. when `externalDeviceId` and `connectorId` are provided.
        - `unclaimOnly` boolean — If set to true, the device will only be unclaimed but not unprovisioned. Set `unclaimOnly` to true in case you want to use the already existing deviceId and deviceSecret of the device to claim the device in this or other project in the future.

## Response `202`

Accepted

The bulk upload job has been started successfully.

- object
  - `jobId` string, required — Bulk upload job ID

## Other responses

- `400` — Bad request The request object is in an incorrect format or has values that are invalid or out of range. If available, further error details are provided in the response body.
- `401` — Unauthorized The request did not provide correct authentication details
- `403` — Forbidden The account does not have the correct privileges
- `404` — Not Found The specified resource was not found
- `412` — Precondition Failed The server does not meet one of the preconditions that the requester put on the request.
- `429` — Too Many Requests User has sent too many requests in a given amount of time.

---

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