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
View JSON Schema on GitHub

JSON Schema

benchling-entities-bulk-upsert-request-schema.json Raw ↑
{
  "$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.
All 92 tools →

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.