Confirm a signed URL upload and finalize the measurement
Changed onConfirm a signed URL upload and finalize the measurement.
Request
- Base URLhttps://api.ionworks.com
- URLhttps://api.ionworks.com/cell_measurements/{measurement_id}/confirm-upload
- Authnone declared
Path parameters
Request body
Parent cell instance ID
Measurement data with custom fields
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.
Optional steps. Auto-calculated from time series if omitted
Filenames that were uploaded (for file-type measurements). When provided, skips the slow storage listing verification.
Response
Successful Response
Whether it was reported as failed.
Why it failed.
When it was reported.
User who reported it.
Protocol information. Typical keys: 'name' (str), 'ambient_temperature_degc' (float), 'definition' (dict | str — a UCP protocol definition or another protocol format).
ISO 8601 datetime with timezone (UTC preferred) marking when the test started.
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.
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.
Free-text explanation of how estimated_end_time was derived.
ISO 8601 datetime with timezone marking when estimated_end_time was last computed.
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.
Free-text notes about the cell measurement
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.
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'}}.
Metadata about uploaded files (MIME types, dimensions, etc.)
Optional ID of the channel this measurement ran on.
Optional ID of the experiment template (protocol) this measurement was run against.
Optional catalog program for this measurement (copied from a linked planned measurement when present).
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.
Organization this measurement belongs to.
Project this measurement belongs to
User ID of the user who created this measurement
Email of the user who created this measurement
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.
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.
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.
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'.
Deprecated and always null. Use processing_status.
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.
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
- info
added the optional property
to the response with the status
- info