Benchling · Schema
EntitiesBulkUpsertRequest
Life SciencesBiotechnologyR&DMolecular BiologyLaboratory Information ManagementElectronic Lab NotebookAssay ManagementInventorySequence ManagementExperiment WorkflowsRESTWebhook
Properties
| Name | Type | Description |
|---|---|---|
| aaSequences | array | |
| customEntities | array | |
| dnaOligos | array | |
| dnaSequences | array | |
| molecules | array | |
| rnaOligos | array |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/benchling/main/json-schema/benchling-entities-bulk-upsert-request-schema.json",
"title": "EntitiesBulkUpsertRequest",
"x-generated": "2026-10-12",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/benchling-entities-api-openapi.yml#/components/schemas/EntitiesBulkUpsertRequest",
"additionalProperties": false,
"properties": {
"aaSequences": {
"items": {
"$ref": "#/$defs/AaSequenceBulkUpsertRequest"
},
"type": "array"
},
"customEntities": {
"items": {
"$ref": "#/$defs/CustomEntityBulkUpsertRequest"
},
"type": "array"
},
"dnaOligos": {
"items": {
"$ref": "#/$defs/OligoBulkUpsertRequest"
},
"type": "array"
},
"dnaSequences": {
"items": {
"$ref": "#/$defs/DnaSequenceBulkUpsertRequest"
},
"type": "array"
},
"molecules": {
"items": {
"$ref": "#/$defs/MoleculeBulkUpsertRequest"
},
"type": "array"
},
"rnaOligos": {
"items": {
"$ref": "#/$defs/OligoBulkUpsertRequest"
},
"type": "array"
}
},
"type": "object",
"$defs": {
"AaAnnotation": {
"properties": {
"color": {
"type": "string"
},
"end": {
"description": "0-based exclusive end index. The end of the AA sequence is always represented as 0.",
"type": "integer"
},
"id": {
"type": "string"
},
"name": {
"maxLength": 255,
"type": "string"
},
"notes": {
"maxLength": 10000,
"type": "string"
},
"start": {
"description": "0-based inclusive start index.",
"type": "integer"
},
"type": {
"maxLength": 255,
"type": "string"
}
},
"type": "object"
},
"AaSequenceBaseRequest": {
"properties": {
"aliases": {
"description": "Aliases to add to the AA sequence",
"items": {
"type": "string"
},
"type": "array"
},
"aminoAcids": {
"description": "Amino acids for the AA sequence.\n",
"type": "string"
},
"annotations": {
"description": "Annotations to create on the AA sequence.\n",
"items": {
"$ref": "#/$defs/AaAnnotation"
},
"type": "array"
},
"authorIds": {
"description": "IDs of users to set as the AA sequence's authors.",
"items": {
"type": "string"
},
"type": "array"
},
"customFields": {
"allOf": [
{
"$ref": "#/$defs/CustomFields"
}
],
"description": "Custom fields to add to the AA sequence. Every field should have its name as a key, mapping to an object with information about the value of the field.\n"
},
"fields": {
"allOf": [
{
"$ref": "#/$defs/Fields"
}
],
"description": "Fields to set on the AA sequence. Must correspond with the schema's field definitions. Every field should have its name as a key, mapping to an object with information about the value of the field.\n"
},
"folderId": {
"description": "ID of the folder containing the AA sequence.\n",
"type": "string"
},
"name": {
"description": "Name of the AA sequence.\n",
"type": "string"
},
"schemaId": {
"description": "ID of the AA sequence's schema.\n",
"type": "string"
}
},
"type": "object"
},
"AaSequenceBaseRequestForCreate": {
"allOf": [
{
"$ref": "#/$defs/AaSequenceBaseRequest"
},
{
"required": [
"aminoAcids",
"name"
]
}
]
},
"AaSequenceBulkUpsertRequest": {
"allOf": [
{
"$ref": "#/$defs/EntityBulkUpsertBaseRequest"
},
{
"$ref": "#/$defs/AaSequenceBaseRequestForCreate"
},
{
"required": [
"annotations"
]
}
]
},
"ArchiveRecordSet": {
"additionalProperties": false,
"description": "Currently, we only support setting a null value for archiveRecord, which unarchives the item",
"type": [
"object",
"null"
]
},
"CustomEntityBaseRequest": {
"properties": {
"aliases": {
"description": "Aliases to add to the custom entity",
"items": {
"type": "string"
},
"type": "array"
},
"authorIds": {
"description": "IDs of users to set as the custom entity's authors.",
"items": {
"type": "string"
},
"type": "array"
},
"customFields": {
"allOf": [
{
"$ref": "#/$defs/CustomFields"
}
],
"description": "Custom fields to add to the custom entity. Every field should have its name as a key, mapping to an object with information about the value of the field.\n"
},
"fields": {
"allOf": [
{
"$ref": "#/$defs/Fields"
}
],
"description": "Schema fields to set on the custom entity. Must correspond with the schema's field definitions. Every field should have its name as a key, mapping to an object with information about the value of the field.\n"
},
"folderId": {
"description": "ID of the folder that the entity is moved into",
"type": "string"
},
"name": {
"type": "string"
},
"schemaId": {
"type": "string"
}
},
"type": "object"
},
"CustomEntityBaseRequestForCreate": {
"allOf": [
{
"$ref": "#/$defs/CustomEntityBaseRequest"
},
{
"required": [
"name",
"schemaId"
]
}
]
},
"CustomEntityBulkUpsertRequest": {
"allOf": [
{
"$ref": "#/$defs/EntityBulkUpsertBaseRequest"
},
{
"$ref": "#/$defs/CustomEntityBaseRequestForCreate"
}
]
},
"CustomField": {
"properties": {
"value": {
"type": "string"
}
},
"type": "object"
},
"CustomFields": {
"additionalProperties": {
"$ref": "#/$defs/CustomField"
},
"type": "object"
},
"DnaAnnotation": {
"allOf": [
{
"$ref": "#/$defs/SequenceFeatureBase"
},
{
"properties": {
"end": {
"description": "0-based exclusive end index. The end of the sequence is always represented as 0.",
"type": "integer"
},
"start": {
"description": "0-based inclusive start index.",
"type": "integer"
},
"strand": {
"maximum": 1,
"minimum": -1,
"type": "integer"
},
"type": {
"type": "string"
}
},
"type": "object"
}
]
},
"DnaSequenceBaseRequest": {
"properties": {
"aliases": {
"description": "Aliases to add to the DNA sequence",
"items": {
"type": "string"
},
"type": "array"
},
"annotations": {
"description": "Annotations to create on the DNA sequence.\n",
"items": {
"$ref": "#/$defs/DnaAnnotation"
},
"type": "array"
},
"authorIds": {
"description": "IDs of users to set as the DNA sequence's authors.",
"items": {
"type": "string"
},
"type": "array"
},
"bases": {
"description": "Base pairs for the DNA sequence.\n",
"type": "string"
},
"customFields": {
"allOf": [
{
"$ref": "#/$defs/CustomFields"
}
],
"description": "Custom fields to add to the DNA sequence. Every field should have its name as a key, mapping to an object with information about the value of the field.\n"
},
"fields": {
"allOf": [
{
"$ref": "#/$defs/Fields"
}
],
"description": "Fields to set on the DNA sequence. Must correspond with the schema's field definitions. Every field should have its name as a key, mapping to an object with information about the value of the field.\n"
},
"folderId": {
"description": "ID of the folder containing the DNA sequence.\n",
"type": "string"
},
"isCircular": {
"description": "Whether the DNA sequence is circular or linear.\n",
"type": "boolean"
},
"name": {
"description": "Name of the DNA sequence.\n",
"type": "string"
},
"parts": {
"items": {
"$ref": "#/$defs/DnaSequencePart"
},
"type": "array"
},
"primers": {
"items": {
"$ref": "#/$defs/Primer"
},
"type": "array"
},
"schemaId": {
"description": "ID of the DNA sequence's schema.\n",
"type": "string"
},
"translations": {
"description": "Translations to create on the DNA sequence. Translations are specified by either a combination of 'start' and 'end' fields, or a list of regions. Both cannot be provided.\n",
"items": {
"$ref": "#/$defs/Translation"
},
"type": "array"
}
},
"type": "object"
},
"DnaSequenceBaseRequestForCreate": {
"additionalProperties": false,
"allOf": [
{
"$ref": "#/$defs/DnaSequenceBaseRequest"
},
{
"required": [
"bases",
"isCircular",
"name"
]
}
]
},
"DnaSequenceBulkUpsertRequest": {
"allOf": [
{
"$ref": "#/$defs/EntityBulkUpsertBaseRequest"
},
{
"$ref": "#/$defs/DnaSequenceBaseRequestForCreate"
},
{
"required": [
"annotations",
"primers"
]
}
]
},
"DnaSequencePart": {
"allOf": [
{
"$ref": "#/$defs/NucleotideSequencePart"
},
{
"properties": {
"strand": {
"maximum": 1,
"minimum": -1,
"type": "integer"
}
},
"type": "object"
}
]
},
"EntityBulkUpsertBaseRequest": {
"allOf": [
{
"$ref": "#/$defs/EntityUpsertBaseRequest"
},
{
"properties": {
"entityRegistryId": {
"description": "Registry ID of the entity in Benchling.",
"type": "string"
}
}
},
{
"required": [
"entityRegistryId"
]
}
]
},
"EntityUpsertBaseRequest": {
"properties": {
"archiveRecord": {
"$ref": "#/$defs/ArchiveRecordSet"
},
"fields": {
"$ref": "#/$defs/FieldsWithResolution"
},
"name": {
"type": "string"
},
"registryId": {
"type": "string"
},
"schemaId": {
"type": "string"
}
},
"required": [
"registryId",
"name",
"schemaId"
],
"type": "object"
},
"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"
},
"FieldValueWithResolution": {
"oneOf": [
{
"type": "string"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"items": {
"type": "string"
},
"type": "array"
},
{
"additionalProperties": false,
"description": "Look up an entity by its entity registry ID",
"properties": {
"entityRegistryId": {
"type": "string"
}
},
"required": [
"entityRegistryId"
],
"type": "object"
}
]
},
"FieldWithResolution": {
"allOf": [
{
"$ref": "#/$defs/Field"
},
{
"properties": {
"value": {
"allOf": [
{
"$ref": "#/$defs/FieldValueWithResolution"
}
]
}
},
"type": "object"
}
]
},
"Fields": {
"additionalProperties": {
"$ref": "#/$defs/Field"
},
"type": "object"
},
"FieldsWithResolution": {
"additionalProperties": {
"$ref": "#/$defs/FieldWithResolution"
},
"type": "object"
},
"MoleculeBaseRequest": {
"additionalProperties": false,
"properties": {
"aliases": {
"description": "Aliases to add to the Molecule.",
"items": {
"type": "string"
},
"type": "array"
},
"authorIds": {
"description": "IDs of users to set as the Molecule's authors.",
"items": {
"type": "string"
},
"type": "array"
},
"chemicalStructure": {
"allOf": [
{
"$ref": "#/$defs/MoleculeStructure"
}
],
"description": "Chemical structure of the Molecule.\n"
},
"customFields": {
"allOf": [
{
"$ref": "#/$defs/CustomFields"
}
],
"description": "Custom fields to add to the Molecule. Every field should have its name as a key, mapping to an object with information about the value of the field.\n"
},
"fields": {
"allOf": [
{
"$ref": "#/$defs/Fields"
}
],
"description": "Fields to set on the Molecule. Must correspond with the schema's field definitions. Every field should have its name as a key, mapping to an object with information about the value of the field.\n"
},
"folderId": {
"description": "ID of the folder containing the Molecule.\n",
"type": "string"
},
"name": {
"description": "Name of the Molecule.\n",
"type": "string"
},
"schemaId": {
"description": "ID of the Molecule's schema.\n",
"type": "string"
}
},
"type": "object"
},
"MoleculeBaseRequestForCreate": {
"allOf": [
{
"$ref": "#/$defs/MoleculeBaseRequest"
},
{
"required": [
"name",
"chemicalStructure"
]
}
]
},
"MoleculeBulkUpsertRequest": {
"allOf": [
{
"$ref": "#/$defs/EntityBulkUpsertBaseRequest"
},
{
"$ref": "#/$defs/MoleculeBaseRequestForCreate"
}
]
},
"MoleculeStructure": {
"additionalProperties": false,
"properties": {
"structureFormat": {
"description": "Format of the chemical structure.\n- smiles\n- molfile\n",
"enum": [
"smiles",
"molfile"
],
"type": "string"
},
"value": {
"description": "Chemical structure in SMILES or molfile format.",
"type": "string"
}
},
"type": "object"
},
"NucleotideSequencePart": {
"properties": {
"end": {
"description": "0-based exclusive end index. The end of the sequence is always represented as 0.",
"type": "integer"
},
"sequenceId": {
"type": "string"
},
"start": {
"description": "0-based inclusive start index.",
"type": "integer"
}
},
"type": "object"
},
"OligoBaseRequest": {
"properties": {
"aliases": {
"description": "Aliases to add to the Oligo",
"items": {
"type": "string"
},
"type": "array"
},
"authorIds": {
"description": "IDs of users to set as the Oligo's authors.",
"items": {
"type": "string"
},
"type": "array"
},
"bases": {
"description": "Base pairs of the oligo.\n",
"type": "string"
},
"customFields": {
"allOf": [
{
"$ref": "#/$defs/CustomFields"
}
],
"description": "Custom fields to add to the Oligo. Every field should have its name as a key, mapping to an object with information about the value of the field.\n"
},
"fields": {
"allOf": [
{
"$ref": "#/$defs/Fields"
}
],
"description": "Fields to set on the Oligo. Must correspond with the schema's field definitions. Every field should have its name as a key, mapping to an object with information about the value of the field.\n"
},
"folderId": {
"description": "ID of the folder containing the Oligo.\n",
"type": "string"
},
"name": {
"description": "Name of the Oligo.\n",
"type": "string"
},
"schemaId": {
"description": "ID of the oligo's schema.\n",
"type": "string"
}
},
"type": "object"
},
"OligoBaseRequestForCreate": {
"allOf": [
{
"$ref": "#/$defs/OligoBaseRequest"
},
{
"required": [
"name"
]
}
]
},
"OligoBulkUpsertRequest": {
"allOf": [
{
"$ref": "#/$defs/EntityBulkUpsertBaseRequest"
},
{
"$ref": "#/$defs/OligoBaseRequestForCreate"
}
]
},
"Primer": {
"properties": {
"bases": {
"readOnly": true,
"type": "string"
},
"bindPosition": {
"readOnly": true,
"type": "integer"
},
"color": {
"readOnly": true,
"type": "string"
},
"end": {
"description": "0-based exclusive end index. The end of the sequence is always represented as 0.",
"type": "integer"
},
"name": {
"readOnly": true,
"type": "string"
},
"oligoId": {
"type": "string"
},
"overhangLength": {
"readOnly": true,
"type": "integer"
},
"start": {
"description": "0-based inclusive start index.",
"type": "integer"
},
"strand": {
"type": "integer"
}
},
"type": "object"
},
"SequenceFeatureBase": {
"properties": {
"color": {
"description": "Hex color code used when displaying this feature in the UI.",
"type": "string"
},
"customFields": {
"items": {
"$ref": "#/$defs/SequenceFeatureCustomField"
},
"maxItems": 100,
"type": "array"
},
"name": {
"maxLength": 2048,
"type": "string"
},
"notes": {
"maxLength": 10000,
"type": "string"
}
},
"type": "object"
},
"SequenceFeatureCustomField": {
"description": "A name and value pair associated with a sequence feature (annotation or translation). For genbank imports, these are the qualifiers associated with each feature.",
"properties": {
"name": {
"description": "Name of the custom field",
"type": "string"
},
"value": {
"description": "Value of the custom field",
"type": "string"
}
},
"type": "object"
},
"Translation": {
"allOf": [
{
"$ref": "#/$defs/SequenceFeatureBase"
},
{
"properties": {
"aminoAcids": {
"readOnly": true,
"type": "string"
},
"coerceStartCodonToMethionine": {
"default": false,
"description": "Whether to override the translation of the start codon to Methionine. Has no effect when the start codon already translates to Methionine.",
"type": "boolean"
},
"end": {
"description": "0-based exclusive end index. The end of the sequence is always represented as 0.",
"type": "integer"
},
"geneticCode": {
"default": "STANDARD",
"description": "The genetic code to use when translating the nucleotide sequence into amino acids.",
"enum": [
"STANDARD",
"VERTEBRATE_MITOCHONDRIAL",
"YEAST_MITOCHONDRIAL",
"MOLD_PROTOZOAN_COELENTERATE_MITOCHONDRIAL_MYCOPLASMA_SPIROPLASMA",
"INVERTEBRATE_MITOCHONDRIAL",
"CILIATE_DASYCLADACEAN_HEXAMITA_NUCLEAR",
"ECHINODERM_FLATWORM_MITOCHONDRIAL",
"EUPLOTID_NUCLEAR",
"BACTERIAL_ARCHAEAL_PLANT_PLASTID",
"ALTERNATIVE_YEAST_NUCLEAR",
"ASCIDIAN_MITOCHONDRIAL",
"ALTERNATIVE_FLATWORM_MITOCHONDRIAL",
"CHLOROPHYCEAN_MITOCHONDRIAL",
"TREMATODE_MITOCHONDRIAL",
"SCENEDESMUS_OBLIQUUS_MITOCHONDRIAL",
"THRAUSTOCHYTRIUM_MITOCHONDRIAL",
"RHABDOPLEURIDAE_MITOCHONDRIAL",
"CANDIDATE_DIVISION_SR1_GRACILIBACTERIA",
"PACHYSOLEN_TANNOPHILUS_NUCLEAR",
"MESODINIUM_NUCLEAR",
"PERITRICH_NUCLEAR",
"CEPHALODISCIDAE_MITOCHONDRIAL_UAA_TYR"
],
"type": "string"
},
"regions": {
"items": {
"properties": {
"end": {
"description": "0-based exclusive end index. The end of the sequence is always represented as 0.",
"type": "integer"
},
"start": {
"description": "0-based inclusive start index.",
"type": "integer"
}
},
"type": "object"
},
"type": "array"
},
"start": {
"description": "0-based inclusive start index.",
"type": "integer"
},
"strand": {
"type": "integer"
}
},
"type": "object"
}
]
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/benchling-entities-bulk-upsert-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.