---
title: "Create RnaSequence"
method: POST
path: "/api/v3/rna-sequence"
tags: ["RNA Sequence"]
---

# Create RnaSequence

`POST /api/v3/rna-sequence`

## Request

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

Create an RNA sequence in a folder. `name` and `folderId` are required.

## Sequence specification

Provide exactly one of the following:
- `bases` — plain nucleotide sequence
- `helm` — HELM notation (requires the modified nucleotides feature to be enabled)
- `customNotation` with `customNotationId` — vendor-specific notation (requires custom syntaxes to be enabled; both fields must be set together)

## Request body

- CreateRnaSequenceInput
  - `aliases` string[]: Array of aliases
  - `annotations` RnaAnnotationInput[]: Annotations on the RNA 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.
    - `type` string: Feature type of the annotation.
  - `authorIds` string[]
  - `bases` string: Bases of the RNA sequence. Mutually exclusive with `helm` and `customNotation`.
  - `customFields` object: Custom fields set on the RNA sequence.
  - `customNotation` string, nullable: Sequence in a vendor-specific custom notation syntax. Requires custom syntaxes to be enabled. When `customNotation` is set, `customNotationId` is required. Mutually exclusive with `bases` and `helm`.
  - `customNotationId` string, nullable: ID of the custom notation syntax used to interpret `customNotation`. When `customNotation` is set, `customNotationId` is required; omit both when using `bases` or `helm`.
  - `entityRegistryId` string: Registry ID to assign to the entity. If one is specified, the labeling_strategy must be unspecified.
  - `folderId` string, required
  - `helm` string: HELM notation for the RNA sequence and chemical modifications. Requires the modified nucleotides feature to be enabled. Mutually exclusive with `bases` and `customNotation`.
  - `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` RnaPartInput[]: Part features linking regions of this sequence to other RNA 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: RNA sequence this part refers to.
    - `start` integer, required: 0-based inclusive start index.
  - `primers` PrimerInput[]: Primer bind features on the RNA 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` RnaTranslationInput[]: Translation annotations present on the RNA 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.
    - `translateFirstCodonToMethionine` boolean: Whether or not the first codon has been forced to be translated as methionine. Defaults to false if omitted.

## Response `201`

Created

- RnaSequence: Represents an RNA sequence in Benchling's molecular biology platform. An RnaSequence stores the nucleotide bases (using A, C, G, U) along with annotations marking functional regions, translation annotations for protein-coding regions (see Translation), primer binding sites (see Primer), and part features linking to other registered sequences (see RnaPart). RNA sequences are used for modeling messenger RNAs, non-coding RNAs, CRISPR guide RNAs, and other RNA molecules. Sequences can be registered in the Registry with a unique entityRegistryId, organized in folders, and linked via schema fields to other entities. For modified therapeutic RNAs, see modifiedNucleotides which captures chemical modifications. 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 RNA sequence, not including translations or primers. Annotations on parts are not included.
  - `archiveReason` string, nullable
  - `archived` boolean
  - `bases` string: Bases of the RNA sequence.
  - `canonicalHelm` string: Normalized HELM notation for this RNA sequence.
  - `createdAt` string, datetime, nullable
  - `customFields` CustomField[], nullable: Custom fields set on the RNA 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
  - `modifiedAt` string, datetime, nullable
  - `modifiedNucleotides` string, uri: Modifications applied to this RNA sequence.
  - `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 RNA sequences.
  - `primers` string, uri: Primer bind features on the RNA 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
  - `translations` string, uri: Translation annotations present on the RNA sequence. Translations may be one region or split across multiple regions. Translations on parts are not included.
  - `typedSchema` RnaSequenceSchemaRef
    - `__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: Run 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: Run variant
            - `__typename` 'Run', required: Discriminator value: Run
            - `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

---

[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/c9f087b98b8b?raw)
