{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/benchling/main/json-schema/benchling-request-schema.json", "title": "Request", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/benchling-legacy-requests-api-openapi.yml#/components/schemas/Request", "allOf": [ { "$ref": "#/$defs/RequestBase" }, { "properties": { "apiURL": { "description": "The canonical url of the Legacy Request in the API.", "format": "uri", "readOnly": true, "type": "string" }, "assignees": { "description": "Array of assignees", "items": { "oneOf": [ { "$ref": "#/$defs/RequestUserAssignee" }, { "$ref": "#/$defs/RequestTeamAssignee" } ] }, "readOnly": true, "type": "array" }, "createdAt": { "description": "Date and time the Legacy Request was created", "format": "isoformat", "readOnly": true, "type": "string" }, "creator": { "allOf": [ { "$ref": "#/$defs/UserSummary" }, { "description": "UserSummary of the user who created the Legacy Request" }, { "readOnly": true } ] }, "displayId": { "description": "User-friendly ID of the Legacy Request", "readOnly": true, "type": "string" }, "fields": { "$ref": "#/$defs/Fields" }, "id": { "description": "Unique ID for the Legacy Request", "readOnly": true, "type": "string" }, "projectId": { "description": "The ID of the project to which the Legacy Request belongs.", "type": "string" }, "requestStatus": { "$ref": "#/$defs/RequestStatus" }, "requestor": { "allOf": [ { "$ref": "#/$defs/UserSummary" }, { "description": "UserSummary of the user making the Legacy Request" }, { "readOnly": true } ] }, "sampleGroups": { "items": { "$ref": "#/$defs/RequestSampleGroup" }, "type": "array" }, "scheduledOn": { "description": "Date the Legacy Request is scheduled to be executed on, in YYYY-MM-DD format.", "format": "date", "type": [ "string", "null" ] }, "schema": { "allOf": [ { "$ref": "#/$defs/SchemaSummary" }, { "description": "SchemaSummary for the Legacy Request", "readOnly": true } ], "title": "SchemaProperty" }, "tasks": { "items": { "$ref": "#/$defs/RequestTask" }, "type": "array" }, "webURL": { "description": "URL of the Legacy Request", "format": "uri", "readOnly": true, "type": "string" } } } ], "$defs": { "Field": { "properties": { "displayValue": { "readOnly": true, "type": [ "string", "null" ] }, "isMulti": { "readOnly": true, "type": "boolean" }, "textValue": { "readOnly": true, "type": [ "string", "null" ] }, "type": { "allOf": [ { "$ref": "#/$defs/FieldType" } ], "readOnly": true }, "value": { "description": "For single link fields, use the id of the item you want to link (eg. \"seq_jdf8BV24\").\nFor multi-link fields, use an array of ids of the items you want to link (eg. [\"seq_jdf8BV24\"])\n", "oneOf": [ { "type": "string" }, { "type": "boolean" }, { "type": "number" }, { "type": "object" }, { "items": { "type": "string" }, "type": "array" } ] } }, "required": [ "value" ], "type": "object" }, "FieldType": { "enum": [ "dna_sequence_link", "aa_sequence_link", "custom_entity_link", "entity_link", "mixture_link", "molecule_link", "dropdown", "part_link", "translation_link", "aa_part_link", "base_molecule_link", "blob_link", "text", "long_text", "batch_link", "storage_link", "entry_link", "assay_request_link", "assay_result_link", "assay_run_link", "boolean", "float", "integer", "datetime", "date", "json" ], "type": "string" }, "Fields": { "additionalProperties": { "$ref": "#/$defs/Field" }, "type": "object" }, "PartySummary": { "properties": { "handle": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" } }, "type": "object" }, "RequestBase": { "description": "A Legacy Request is an ask to perform a service, e.g. produce a sample or perform assays on a sample. Requests are usually placed to another team or individual who specializes in performing the service.", "type": "object" }, "RequestSampleGroup": { "properties": { "id": { "type": "string" }, "samples": { "$ref": "#/$defs/RequestSampleGroupSamples" } }, "type": "object" }, "RequestSampleGroupSamples": { "additionalProperties": { "oneOf": [ { "$ref": "#/$defs/RequestSampleWithEntity" }, { "$ref": "#/$defs/RequestSampleWithBatch" } ] }, "description": "The key for each (Legacy) RequestSample should match one of the samplesSchema[n].name property in the request schema json.\n", "type": "object" }, "RequestSampleWithBatch": { "properties": { "batchId": { "type": "string" }, "containerId": { "type": "string" } }, "required": [ "batchId" ], "type": "object" }, "RequestSampleWithEntity": { "properties": { "containerId": { "type": "string" }, "entityId": { "type": "string" } }, "required": [ "entityId" ], "type": "object" }, "RequestStatus": { "enum": [ "REQUESTED", "SCHEDULED", "IN_PROGRESS", "COMPLETED", "CANCELLED" ], "type": "string" }, "RequestTask": { "allOf": [ { "$ref": "#/$defs/RequestTaskBase" } ], "description": "A request task.\n", "properties": { "schema": { "allOf": [ { "$ref": "#/$defs/SchemaSummary" } ], "title": "SchemaProperty" } }, "type": "object" }, "RequestTaskBase": { "allOf": [ { "$ref": "#/$defs/RequestTaskBaseFields" } ], "description": "A request task.\n", "properties": { "id": { "description": "ID of the Legacy Request Task", "type": "string" } }, "required": [ "id" ], "type": "object" }, "RequestTaskBaseFields": { "description": "Shared fields for Legacy Request Tasks and related endpoints.\n", "properties": { "fields": { "allOf": [ { "$ref": "#/$defs/Fields" } ], "description": "Schema fields to set on the request task.\nEvery field should have its name as a key, mapping to an object with information about the value of the field.\n" }, "sampleGroupIds": { "description": "IDs of all Legacy Request Sample Groups now associated with this task.", "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "RequestTeamAssignee": { "properties": { "team": { "$ref": "#/$defs/TeamSummary" } }, "type": "object" }, "RequestUserAssignee": { "properties": { "user": { "$ref": "#/$defs/UserSummary" } }, "type": "object" }, "SchemaSummary": { "properties": { "id": { "type": "string" }, "name": { "type": "string" } }, "type": "object" }, "TeamSummary": { "allOf": [ { "type": "object" }, { "properties": { "id": { "type": "string" }, "name": { "type": "string" } } }, {} ] }, "UserSummary": { "allOf": [ { "$ref": "#/$defs/PartySummary" }, {} ] } } }