---
title: "Create DnaSequence"
method: POST
path: "/api/v3/dna-sequence"
tags: ["DNA Sequence"]
---

# Create DnaSequence

`POST /api/v3/dna-sequence`

## Request

- Base URL: `https://{tenant_name}.benchling.com`
- URL: `https://{tenant_name}.benchling.com/api/v3/dna-sequence`
- Auth: HTTP bearer

Create DnaSequence.

## Request body

- CreateDnaSequenceInput
  - `aliases` string[]: Array of aliases
  - `annotations` NucleotideAnnotationInput[]: Annotations on the DNA sequence, not including translations or primers. Annotations on parts are not included.
    - `color` string: Hex color when displaying the annotation. A random color is assigned if omitted.
    - `customFields` CustomFieldInput[]: Custom fields on the annotation. Each field name may be at most 1024 characters and each value at most 100000 characters.
      - `name` string, required: Name of the custom field.
      - `value` string: Value of the custom field. Defaults to an empty string if omitted.
    - `end` integer, required: 0-based exclusive end index. For ranges ending at the sequence end, API responses return `sequenceLength`, never `0`. On input, `sequenceLength` or `0` may be used.
    - `name` string, required: Name of the annotation.
    - `notes` string: Text notes on the annotation. Defaults to an empty string if omitted.
    - `start` integer, required: 0-based inclusive start index.
    - `strand` 'FORWARD' | 'REVERSE' | 'STRANDLESS', required: Strand for this annotation; `FORWARD`, `REVERSE`, or `STRANDLESS`.
    - `type` string: Feature type of the annotation.
  - `authorIds` string[]
  - `bases` string, required: Bases of the forward strand of the DNA sequence.
  - `customFields` object: Custom fields set on the DNA sequence.
  - `entityRegistryId` string: Registry ID to assign to the entity. If one is specified, the labeling_strategy must be unspecified.
  - `folderId` string, required
  - `isCircular` boolean: Whether the sequence forms a closed loop, with the last base connecting back to the first. Defaults to false if not specified.
  - `name` string, required: Name of the item.
  - `namingStrategy` 'NEW_IDS' | 'IDS_FROM_NAMES' | 'DELETE_NAMES' | 'SET_FROM_NAME_PARTS' | 'REPLACE_NAMES_FROM_PARTS' | 'KEEP_NAMES' | 'REPLACE_ID_AND_NAME_FROM_PARTS': Strategy to use for labeling the item in the registry. If one is specified, the entity_registry_id must be unspecified.
  - `parts` NucleotidePartInput[]: Part features linking regions of this sequence to other nucleotide sequences.
    - `end` integer, required: 0-based exclusive end index. For ranges ending at the sequence end, API responses return `sequenceLength`, never `0`. On input, `sequenceLength` or `0` may be used.
    - `sequenceId` string, required: Nucleotide sequence this part refers to.
    - `start` integer, required: 0-based inclusive start index.
    - `strand` 'FORWARD' | 'REVERSE': Strand for this part; `FORWARD` or `REVERSE`. Defaults to `FORWARD` if omitted.
  - `primers` PrimerInput[]: Primer bind features on the DNA sequence. Primers on parts are not included.
    - `location` union, required
      - object: bind_and_overhang variant
        - `locationType` 'bind_and_overhang', required: Discriminator for primer binding location. Use `start_and_end` for start/end coordinates, or `bind_and_overhang` for bind position and overhang length.
        - `bindPosition` integer, required: 0-based index of the base at the 3' end of the binding region.
        - `overhangLength` integer, required: Number of 5' primer bases that are not part of the binding region.
      - object: start_and_end variant
        - `locationType` 'start_and_end', required: Discriminator for primer binding location. Use `start_and_end` for start/end coordinates, or `bind_and_overhang` for bind position and overhang length.
        - `end` integer, required: 0-based exclusive end of the binding region. For ranges ending at the sequence end, API responses return `sequenceLength`, never `0`. On input, `sequenceLength` or `0` may be used.
        - `start` integer, required: 0-based inclusive start of the binding region.
    - `oligoId` string, required: Linked Oligo entity, which holds the name, bases, and color for this primer bind site.
    - `strand` 'FORWARD' | 'REVERSE', required: Strand for this primer; `FORWARD` or `REVERSE`.
  - `registryId` string, nullable: A not null value means the entity should be registered. If not null, the value must match the registry of the item's schema.
  - `schemaFields` object
  - `schemaId` string
  - `translations` TranslationInput[]: Translation annotations present on the DNA sequence. Translations may be one region or split across multiple regions. Translations on parts are not included.
    - `color` string: Hex color when displaying the translation. Defaults to light blue (`#84B0DC`) if omitted.
    - `customFields` CustomFieldInput[]: Custom fields on the translation.
      - `name` string, required: Name of the custom field.
      - `value` string: Value of the custom field. Defaults to an empty string if omitted.
    - `geneticCode` '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': Genetic code for the translation. Defaults to `STANDARD` if omitted. Genetic codes with ambiguous stop codons are not supported: `BLASTOCRITHIDIA_NUCLEAR`, `CONDYLOSTOMA_NUCLEAR`, `KARYORELICT_NUCLEAR`.
    - `name` string: Name of the translation.
    - `notes` string: Text notes on the translation. Defaults to an empty string if omitted.
    - `regions` TranslationRegionInput[], required: Array of regions to translate. For single-region translations, provide one element.
      - `end` integer, required: 0-based exclusive end index. For ranges ending at the sequence end, API responses return `sequenceLength`, never `0`. On input, `sequenceLength` or `0` may be used.
      - `start` integer, required: 0-based inclusive start index.
    - `strand` 'FORWARD' | 'REVERSE', required: Strand for this translation; `FORWARD` or `REVERSE`.
    - `translateFirstCodonToMethionine` boolean: Whether or not the first codon has been forced to be translated as methionine. Defaults to false if omitted.

## Response `201`

Created

- DnaSequence: Represents a DNA sequence in Benchling's molecular biology platform. A `DnaSequence` stores the nucleotide bases of the forward strand along with rich annotations for biological features such as genes, promoters, and regulatory elements. Sequences can be linear or circular (controlled by `isCircular`) and support translation annotations for protein-coding regions (see `Translation`), primer binding sites (see `Primer`), and part features linking to other sequences (see `DnaPart`). DNA sequences can be registered in the Registry with a unique `entityRegistryId`, organized in folders, and linked to other entities via schema fields. Also known as "Sequence" in the Benchling interface, with IDs prefixed by 'seq'.
  - `__typename` string
  - `aliases` string[], nullable: Array of aliases
  - `annotations` string, uri: Annotations on the DNA sequence, not including translations or primers. Annotations on parts are not included.
  - `archiveReason` string, nullable
  - `archived` boolean
  - `bases` string: Bases of the forward strand of the DNA sequence.
  - `createdAt` string, datetime, nullable
  - `customFields` CustomField[]: Custom fields set on the DNA sequence.
    - `__typename` string
    - `name` string, nullable
    - `value` string, nullable
  - `entityRegistryId` string, nullable: The registry-assigned identifier for this item (e.g. its registry ID shown in the UI), present only once the item has been registered. Null if the item is not registered.
  - `folder` FolderRef
    - `__typename` string
    - `id` string, api_id
  - `id` string
  - `isCircular` boolean: Whether the DNA sequence is circular or linear.
  - `modifiedAt` string, datetime, nullable
  - `name` string: Name of the item.
  - `nucleotideAlignments` string, uri: Nucleotide alignments that use this sequence as the reference sequence. For template alignments, this is the template sequence; for consensus alignments, this is the derived consensus sequence.
  - `parts` string, uri: Part features linking regions of this sequence to other nucleotide sequences.
  - `primers` string, uri: Primer bind features on the DNA sequence. Primers on parts are not included.
  - `project` ProjectRef
    - `__typename` string
    - `id` string, api_id
  - `registrationOrigin` RegistrationOrigin: Captures the provenance of an entity's registration into the registry. The `originEntry` links to the `DocumentLike` (typically an entry or notebook) from which the entity was registered, providing traceability back to the original experimental context. The `registeredAt` timestamp records when the registration occurred. This information helps scientists understand where registered entities came from and when they were added to the registry.
    - `__typename` string
    - `originEntry` DocumentLikeRef
      - `__typename` string
      - `id` string, api_id
    - `registeredAt` string, datetime, nullable
  - `registry` RegistryRef
    - `__typename` string
    - `id` string, api_id
  - `schema` EntitySchemaRef
    - `__typename` string
    - `id` string, api_id
  - `startIndex` integer: Starting index for the sequence residues of linear DNA sequences. Implicitly 1 for other sequence types.
  - `translations` string, uri: Translation annotations present on the DNA sequence. Translations may be one region or split across multiple regions. Translations on parts are not included.
  - `typedSchema` DnaSequenceSchemaRef
    - `__typename` string
    - `id` string, api_id
  - `authors` string, uri, nullable
  - `creator` PrincipalRef
    - `__typename` string
    - `id` string, api_id
  - `schemaFields` SchemaFieldValue[], nullable
    - `__typename` string
    - `fieldDefinition` SchemaFieldDefinitionRef
      - `__typename` string
      - `id` string, api_id
    - `id` string
    - `linkedEntityId` string, nullable
    - `value` union: Types of values that Benchling can interpret.
      - object: A type that represents a list of BenchlingValues, used for multi-value cells (e.g. alias columns).
        - `__typename` 'ArrayValue', required: Discriminator value: ArrayValue
        - `value` SingularBenchlingValue[]
          - union: A union of value types that can appear as elements within an ArrayValue. Identical to BenchlingValue but excludes ArrayValue to prevent nesting. Keep in sync with BenchlingValue.
            - object: A type that represents boolean values.
              - …
            - object: A type that represents datetime values.
              - …
            - object: A type that represents date values.
              - …
            - object: A type that represents decimal value as strings.
              - …
            - object: A type that represents integer values.
              - …
            - object: A type that represents JSON values.
              - …
            - object: A type that represents a list of links to other objects.
              - …
            - object: A type that represents links to other objects.
              - …
            - object: A type that represents text (string) values with an associated URL.
              - …
            - object: A type that represents text (string) values.
              - …
      - object: A type that represents boolean values.
        - `__typename` 'BooleanValue', required: Discriminator value: BooleanValue
        - `value` boolean: The boolean value.
      - object: A type that represents datetime values.
        - `__typename` 'DateTimeValue', required: Discriminator value: DateTimeValue
        - `value` string, datetime: The datetime value with UTC as the timezone.
      - object: A type that represents date values.
        - `__typename` 'DateValue', required: Discriminator value: DateValue
        - `value` string, date: The date value.
      - object: A type that represents decimal value as strings.
        - `__typename` 'DecimalValue', required: Discriminator value: DecimalValue
        - `numericValue` number, double, nullable: Deprecated. The float representation of the decimal value.
        - `value` string, nullable: The decimal value in a string representation
      - object: A type that represents integer values.
        - `__typename` 'IntegerValue', required: Discriminator value: IntegerValue
        - `value` integer: The integer value.
      - object: A type that represents JSON values.
        - `__typename` 'JsonValue', required: Discriminator value: JsonValue
        - `value` union: The JSON value.
          - object
          - string[]
          - string
          - number, double
          - boolean
      - object: A type that represents a list of links to other objects.
        - `__typename` 'ObjectLinkListValue', required: Discriminator value: ObjectLinkListValue
        - `value` LinkableDomainObject[]: The list of objects that this value links to. Inaccessible objects may be returned instead if the object is not found with the current permission set.
          - union: A union representing items that can be linked to. If you have a type that can be linked to, it can only be added once it's in beta.
            - object: AaSequence variant
              - …
            - object: Attachment variant
              - …
            - object: Box variant
              - …
            - object: Container variant
              - …
            - object: CustomEntity variant
              - …
            - object: DnaOligo variant
              - …
            - object: DnaSequence variant
              - …
            - object: DropdownOption variant
              - …
            - object: Entry variant
              - …
            - object: Inaccessible variant
              - …
            - object: Location variant
              - …
            - object: MatrixPlate variant
              - …
            - object: Mixture variant
              - …
            - object: Molecule variant
              - …
            - object: OligoConjugate variant
              - …
            - object: OligoDuplex variant
              - …
            - object: Protein variant
              - …
            - object: Result variant
              - …
            - object: RnaOligo variant
              - …
            - object: RnaSequence variant
              - …
            - object: WellPlate variant
              - …
      - object: A type that represents links to other objects.
        - `__typename` 'ObjectLinkValue', required: Discriminator value: ObjectLinkValue
        - `value` union: A union representing items that can be linked to. If you have a type that can be linked to, it can only be added once it's in beta.
          - object: AaSequence variant
            - `__typename` 'AaSequence', required: Discriminator value: AaSequence
            - `id` string, api_id
          - object: Attachment variant
            - `__typename` 'Attachment', required: Discriminator value: Attachment
            - `id` string, api_id
          - object: Box variant
            - `__typename` 'Box', required: Discriminator value: Box
            - `id` string, api_id
          - object: Container variant
            - `__typename` 'Container', required: Discriminator value: Container
            - `id` string, api_id
          - object: CustomEntity variant
            - `__typename` 'CustomEntity', required: Discriminator value: CustomEntity
            - `id` string, api_id
          - object: DnaOligo variant
            - `__typename` 'DnaOligo', required: Discriminator value: DnaOligo
            - `id` string, api_id
          - object: DnaSequence variant
            - `__typename` 'DnaSequence', required: Discriminator value: DnaSequence
            - `id` string, api_id
          - object: DropdownOption variant
            - `__typename` 'DropdownOption', required: Discriminator value: DropdownOption
            - `id` string, api_id
          - object: Entry variant
            - `__typename` 'Entry', required: Discriminator value: Entry
            - `id` string, api_id
          - object: Inaccessible variant
            - `__typename` 'Inaccessible', required: Discriminator value: Inaccessible
            - `id` string, api_id
          - object: Location variant
            - `__typename` 'Location', required: Discriminator value: Location
            - `id` string, api_id
          - object: MatrixPlate variant
            - `__typename` 'MatrixPlate', required: Discriminator value: MatrixPlate
            - `id` string, api_id
          - object: Mixture variant
            - `__typename` 'Mixture', required: Discriminator value: Mixture
            - `id` string, api_id
          - object: Molecule variant
            - `__typename` 'Molecule', required: Discriminator value: Molecule
            - `id` string, api_id
          - object: OligoConjugate variant
            - `__typename` 'OligoConjugate', required: Discriminator value: OligoConjugate
            - `id` string, api_id
          - object: OligoDuplex variant
            - `__typename` 'OligoDuplex', required: Discriminator value: OligoDuplex
            - `id` string, api_id
          - object: Protein variant
            - `__typename` 'Protein', required: Discriminator value: Protein
            - `id` string, api_id
          - object: Result variant
            - `__typename` 'Result', required: Discriminator value: Result
            - `id` string, api_id
          - object: RnaOligo variant
            - `__typename` 'RnaOligo', required: Discriminator value: RnaOligo
            - `id` string, api_id
          - object: RnaSequence variant
            - `__typename` 'RnaSequence', required: Discriminator value: RnaSequence
            - `id` string, api_id
          - object: WellPlate variant
            - `__typename` 'WellPlate', required: Discriminator value: WellPlate
            - `id` string, api_id
      - object: A type that represents text (string) values with an associated URL.
        - `__typename` string, required
        - `url` string: The URL associated with the value. Please use `TextValue` if you don't want a URL.
        - `value` string: The text value. It may or may not be an empty string.
      - object: A type that represents text (string) values.
        - `__typename` string, required
        - `value` string: The text value. It may or may not be an empty string.

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `429`: Too Many Requests
- `500`: Internal Server Error

## Changes

- **2026-11-05** `3873a10bf7b8`: 1 breaking, 1 info
  - added `subschema #1, subschema #8, subschema #9` to the `schemaFields/items/value/oneOf[subschema #1: BenchlingValue]/` response property `oneOf` list for the response status `201`
  - removed `subschema #1, subschema #8, subschema #9` from the `schemaFields/items/value/oneOf[subschema #1: BenchlingValue]/` response property `oneOf` list for the response status `201`

[Operation history](https://skmtc.dev/benchling/apis/benchling-api/changes/api/v3/dna-sequence/post.md)

---

[API](https://skmtc.dev/benchling/apis/benchling-api.md) - [All operations](https://skmtc.dev/benchling/apis/benchling-api/llms.txt) - [OpenAPI document](https://skmtc.dev/benchling/apis/benchling-api/revisions/3873a10bf7b8?raw)
