Overall test result. Use PASS when test succeeds, FAIL when test fails but script execution completed successfully, ERROR when script execution fails, TIMEOUT when test exceeds time limit, ABORTED for manual script interruption.
Value in"PASS" | "FAIL" | "ERROR" | "TIMEOUT" | "ABORTED"
procedure_id*string
Procedure ID. Create the procedure in the app first, then find the auto-generated ID on the procedure page.
Idempotency reference for this upload, minted and persisted by the caller BEFORE the request is sent. When a second request carries the same reference, it is recognised as a retry of the first and returns the run already created rather than creating another one. That is what makes an upload safe to retry after a lost or timed-out response. The reference must be unique per organization and must never be reused for different data: derive it from the credential id returned at login plus a counter persisted locally (the CLI sends <credential id>_<counter>), never from a timestamp alone, since a clock can go backwards. Omit the field and every request creates a new run, exactly as before.
Length1 <= length <= 200
execution_id?|null
slot_key?|null
slot_name?|null
procedure_version?|null
operated_by?string
Operator who executed the test run: an email address or a free-text name. Honored only for API-key callers (user keys and station keys); browser session callers are auto-stamped with the session user and this field is ignored. An email matching a member of the calling organization links the run to that user account; any other value (a name, or an unrecognized email) is recorded verbatim as a declared operator name. Declared names are informative only — they are not verified identities.
Length1 <= length <= 254
started_at*string
ISO 8601 timestamp when the test run began execution. This timestamp will be used to track when the test execution started and for historical analysis of test runs. A separate created_at timestamp is stored internally server side to track upload date.
Unique serial number of the unit under test. Matched case-insensitively. If no unit with this serial number exists, one will be created.
Match^[a-zA-Z0-9_.:+-]+$
Length1 <= length <= 60
part_number?string
Component part number for the unit. Matched case-insensitively. This field is required if the part number cannot be extracted from the serial number (as set in the settings). This field takes precedence over extraction from serial number. A component with the provided or extracted part number will be created if one does not exist.
Match^[a-zA-Z0-9_.:+-]+$
Length1 <= length <= 60
revision_number?string
Hardware revision identifier for the unit. Matched case-insensitively. If none exist, a revision with this number will be created. If no revision is specified, the unit will be linked to the default revision of the part number.
Match^[a-zA-Z0-9_.:+-]+$
Length1 <= length <= 60
batch_number?string
Production batch identifier for grouping units manufactured together. Matched case-insensitively. If none exist, a batch with this batch number will be created. If no batch number is specified, the unit will not be linked to any batch.
Match^[a-zA-Z0-9_.:+-]+$
Length1 <= length <= 60
sub_units?array<>
Array of sub-unit serial numbers that are part of this main unit. Matched case-insensitively. Each sub-unit must already exist and will be linked as a sub-component of the main unit under test. If no sub-units are specified, the unit will be created without sub-unit relationships.
docstring?string
Additional notes or documentation about this test run.
Lengthlength <= 50000
phases?array<>
Array of test phases with measurements and results. Each phase represents a distinct stage of the test execution with timing information, outcome status, and optional measurements. If no phases are specified, the run will be created without phase-level organization of test data.
logs?array<>
Array of log messages generated during the test execution. Each log entry captures events, errors, and diagnostic information with severity levels and source code references. If no logs are specified, the run will be created without log entries.
metadata?
Custom metadata to attach to the run (max 50 keys). Plain object of key/value pairs; values can be string, number, or boolean. Type is detected from the value.
unit_metadata?
Custom metadata to upsert on the unit under test (max 50 keys per unit). PATCH semantics: keys not present here are preserved on the unit.