Skip to main content
POST
/
machine-data
/
import-jobs
Create an import job
curl --request POST \
  --url https://api.demo.cula.earth/tracking/v1/machine-data/import-jobs \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: multipart/form-data' \
  --header 'Cula-Organisation-Id: <cula-organisation-id>' \
  --form file='@example-file'
{
  "job_id": "job_01kqzcjrpyf27tge33jwvjhkff",
  "status": "accepted",
  "items_received": null,
  "items_accepted": null,
  "items_rejected": null,
  "errors": null,
  "created_at": "2026-05-06T10:15:32.441Z",
  "finished_at": null
}

Authorizations

Authorization
string
header
required

OAuth2 client credentials flow. Exchange your client_id and client_secret for a short-lived access token, then pass it as a Bearer token in the Authorization header.

Headers

Cula-Organisation-Id
string
required

Organisation ID that scopes this request. The authenticated consumer must be authorized for this organisation. Omitting this header returns 400; passing an unauthorised org returns 403.

Body

multipart/form-data
file
file
required

JSON file containing an items array of machine data measurements. Each item must have timestamp, machine_data_point_config_id, and value. Maximum file size: 128 MB.

Response

Import job accepted for processing.

Status of an asynchronous machine data import job.

job_id
string
required
Example:

"job_01kqzcjrpyf27tge33jwvjhkff"

status
enum<string>
required

Current state of the import job.

Available options:
accepted,
processing,
finished,
failed
Example:

"finished"

items_received
integer
required
Example:

25123

created_at
string<date-time>
required
Example:

"2026-05-06T10:15:32.441Z"

items_accepted
integer | null
Example:

25121

items_rejected
integer | null
Example:

2

errors
object[] | null
finished_at
string<date-time> | null
Example:

"2026-05-06T10:35:32.441Z"