Cell Measurements

Confirm a signed URL upload and finalize the measurement

Changed on

Confirm a signed URL upload and finalize the measurement.

post/cell_measurements/{measurement_id}/confirm-upload

Request

  • Base URL
    https://api.ionworks.com
  • URL
    https://api.ionworks.com/cell_measurements/{measurement_id}/confirm-upload
  • Auth
    none declared

Path parameters

measurement_idstring uuid required

Request body

cell_instance_idstring required

Parent cell instance ID

measurementobject required

Measurement data with custom fields

measurement_type'time_series' | 'file' | 'properties'

Shape of the data stored in a cell measurement.

  • time_series — cycling / diagnostic data uploaded as columnar time series (and optional step summaries). Default for new measurements.
  • file — an opaque file upload (raw cycler export, image, other binary). Metadata about the file is captured in file_metadata; the file content lives in object storage.
  • properties — a flat key/value set of measured properties (thickness, mass, DCIR, initial capacity, …) with no time-series data. Numeric values use the Quantity format.
stepsobject

Optional steps. Auto-calculated from time series if omitted

filenamesstring[] nullable

Filenames that were uploaded (for file-type measurements). When provided, skips the slow storage listing verification.

Response

Successful Response

is_failedboolean

Whether it was reported as failed.

failure_reasonstring nullable

Why it failed.

failed_atstring date-time nullable

When it was reported.

failed_bystring nullable

User who reported it.

namestring required
protocolobject nullable

Protocol information. Typical keys: 'name' (str), 'ambient_temperature_degc' (float), 'definition' (dict | str — a UCP protocol definition or another protocol format).

start_timestring date-time nullable

ISO 8601 datetime with timezone (UTC preferred) marking when the test started.

end_timestring date-time nullable

ISO 8601 datetime with timezone (UTC preferred) marking when the test finished. Leave null while the test is still running; set it once the measurement is complete. A null end_time means the cell is still considered 'on test' in the Lab view.

estimated_end_timestring date-time nullable

ISO 8601 datetime with timezone (UTC preferred) forecasting when a still-running test will finish. Distinct from end_time (the actual finish): this is an estimate. Null when no estimate has been computed yet.

estimated_end_time_notestring nullable

Free-text explanation of how estimated_end_time was derived.

estimated_end_time_calculated_atstring date-time nullable

ISO 8601 datetime with timezone marking when estimated_end_time was last computed.

test_setupobject nullable

Physical test setup. Typical keys: 'cycler' (model), 'operator', 'lab', 'channel_number'. Readers also record what the cycler header carries, drawn from one shared vocabulary so the shape does not vary by cycler: 'test_name', 'cell_label' (the cycler's own label for the cell, which need not match the cell instance), 'instrument', 'cycler_serial_number', 'software_version', 'temperature_setpoint_degc', 'notes', 'end_time', plus export provenance -- 'export_date', 'source_file_path', 'barcode_comment', and 'source_file_id' (an id in the cycler's own id space, not a cross-system identifier). Which of these a file can fill depends on its format; keys the header does not carry are omitted rather than set empty.

notesstring nullable

Free-text notes about the cell measurement

measurement_type'time_series' | 'file' | 'properties'

Shape of the data stored in a cell measurement.

  • time_series — cycling / diagnostic data uploaded as columnar time series (and optional step summaries). Default for new measurements.
  • file — an opaque file upload (raw cycler export, image, other binary). Metadata about the file is captured in file_metadata; the file content lives in object storage.
  • properties — a flat key/value set of measured properties (thickness, mass, DCIR, initial capacity, …) with no time-series data. Numeric values use the Quantity format.
propertiesobject nullable

Flat key/value measurements, populated only when measurement_type is 'properties'. Numeric values use the Quantity format. Example: {'thickness': {'value': 0.52, 'unit': 'mm'}, 'DCIR': {'value': 12, 'unit': 'mohm'}}.

file_metadataobject nullable

Metadata about uploaded files (MIME types, dimensions, etc.)

channel_idstring nullable

Optional ID of the channel this measurement ran on.

protocol_idstring nullable

Optional ID of the experiment template (protocol) this measurement was run against.

program_idstring nullable

Optional catalog program for this measurement (copied from a linked planned measurement when present).

tagsstring[]

Free-form labels for organising and filtering measurements, e.g. ['baseline', 'batch-7']. Whitespace is trimmed, duplicates are dropped case-insensitively, and a tag already used in the project keeps its existing spelling. At most 50 tags of up to 50 characters.

idstring required
cell_instance_idstring required
organization_idstring required

Organization this measurement belongs to.

project_idstring required

Project this measurement belongs to

created_bystring nullable

User ID of the user who created this measurement

created_by_emailstring nullable

Email of the user who created this measurement

processing_status'pending' | 'running' | 'ready' | 'failed' | 'awaiting_extend' | 'extending'

Lifecycle of a measurement's step processing, shared with extend.

  • pending — confirm-upload task enqueued.
  • running — worker parsing the upload or calculating steps.
  • ready — terminal success; default for file/properties.
  • failed — permanent; see processing_error.
  • awaiting_extend — claim held, signed URL out, no task queued.
  • extending — delta staged, stitch queued or running.

Only ready may start an extend, so it cannot overlap step processing (both write steps.parquet). A failed extend returns to ready.

processing_errorstring nullable

Reason processing failed, when processing_status is 'failed'. Also carries why an extend did not apply, in which case the status is back to 'ready' and this is advisory only.

source_etagstring nullable
row_countinteger nullable
time_series_bytesinteger nullable
recorded_duration_snumber nullable
accepts_raw_updatesboolean
estimated_end_time_status'estimating' | 'ready' | 'failed'

Lifecycle of a duration estimate computed by a background simulation.

Used by both estimates: a planned test's total duration (planned_measurements.estimated_duration_*) and a running test's remaining duration (cell_measurements.estimated_end_time_*). One enum because the lifecycle is identical -- only what is being estimated differs.

estimating while the job is in flight, ready once a value came from it, failed with the reason in the accompanying note. None means no estimate was ever requested.

estimated_end_time_job_idstring nullable
created_atstring date-time required
updated_atstring date-time required
extend_claim_idstring nullable

Opaque token identifying the in-flight extend that holds this measurement, and the staging prefix its delta is uploaded to. Non-null exactly while processing_status is 'awaiting_extend' or 'extending'.

extend_in_progress_atstring date-time nullable

Deprecated and always null. Use processing_status.

extend_claimed_atstring date-time nullable

When the in-flight extend claim was taken. Written only by the claim itself, so an unrelated update to the measurement does not age it. Null when no extend holds the measurement.

steps_createdinteger required

Changes

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status