Benchling Monomers API

Monomers are chemical building blocks with specified structures used to compose modified nucleotides. Note that monomer write endpoints require tenant admin permissions.

Documentation

Specifications

Other Resources

OpenAPI Specification

benchling-monomers-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  title: Benchling AA Sequences Monomers API
  version: 2.0.0
  description: 'AA Sequences are the working units of cells that make everything run (they help make structures, catalyze reactions and allow for signaling - a kind of internal cell communication). On Benchling, these are comprised of a string of amino acids and collections of other attributes, such as annotations.

    '
servers:
- url: /api/v2
security:
- oAuth: []
- basicApiKeyAuth: []
tags:
- description: Monomers are chemical building blocks with specified structures used to compose modified nucleotides. Note that monomer write endpoints require tenant admin permissions.
  name: Monomers
paths:
  /monomers:
    get:
      description: List all available monomers
      operationId: listMonomers
      parameters:
      - description: 'Number of results to return. Defaults to 50, maximum of 100.

          '
        in: query
        name: pageSize
        schema:
          default: 50
          maximum: 100
          minimum: 0
          nullable: false
          type: integer
      - description: Token for pagination
        in: query
        name: nextToken
        schema:
          type: string
      - description: Comma-separated list of fields to return. Modifies the output shape. To return all keys at a given level, enumerate them or use the wildcard, '*'. For more information, [click here](https://docs.benchling.com/docs/getting-started-1#returning-query-parameter).
        in: query
        name: returning
        schema:
          example: monomers.id,monomers.modifiedAt
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonomersPaginatedList'
          description: OK
      summary: List Monomers
      tags:
      - Monomers
    post:
      description: Create a monomer.
      operationId: createMonomer
      parameters:
      - description: Comma-separated list of fields to return. Modifies the output shape. To return all keys at a given level, enumerate them or use the wildcard, '*'. For more information, [click here](https://docs.benchling.com/docs/getting-started-1#returning-query-parameter).
        in: query
        name: returning
        schema:
          example: monomers.id,monomers.symbol
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MonomerCreate'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Monomer'
          description: Created
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
          description: Forbidden
      summary: Create a monomer
      tags:
      - Monomers
  /monomers/{monomer_id}:
    patch:
      description: Update a Monomer.
      operationId: updateMonomer
      parameters:
      - in: path
        name: monomer_id
        required: true
        schema:
          type: string
      - description: Comma-separated list of fields to return. Modifies the output shape. To return all keys at a given level, enumerate them or use the wildcard, '*'. For more information, [click here](https://docs.benchling.com/docs/getting-started-1#returning-query-parameter).
        in: query
        name: returning
        schema:
          example: id, modifiedAt
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MonomerUpdate'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Monomer'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: Not Found
      summary: Update a Monomer
      tags:
      - Monomers
  /monomers:archive:
    post:
      description: Archive Monomers.
      operationId: archiveMonomers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MonomersArchive'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonomersArchivalChange'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
      summary: Archive Monomers
      tags:
      - Monomers
  /monomers:unarchive:
    post:
      description: Unarchive Monomers.
      operationId: unarchiveMonomers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MonomersUnarchive'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonomersArchivalChange'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
      summary: Unarchive Monomers
      tags:
      - Monomers
components:
  schemas:
    MonomerType:
      description: The part of the nucleotide structure that the monomer fits into, i.e. backbone or branch
      enum:
      - BACKBONE
      - BRANCH
      type: string
    BadRequestError:
      properties:
        error:
          allOf:
          - $ref: '#/components/schemas/BaseError'
          - properties:
              type:
                enum:
                - invalid_request_error
                type: string
      type: object
    ForbiddenError:
      properties:
        error:
          properties:
            invalidId:
              type: string
            message:
              type: string
            type:
              type: string
            userMessage:
              type: string
          type: object
      type: object
    MonomerBaseRequest:
      properties:
        color:
          description: The hex color code of the monomer visual symbol
          example: '#7051FC'
          nullable: true
          type: string
        customMolecularWeight:
          description: Optional molecular weight value that the user can provide to override the calculated molecular weight
          example: 119.422
          nullable: true
          type: number
        name:
          description: Name of the monomer
          example: (Rp)-Phosphorothioate
          type: string
        smiles:
          description: The chemical structure in SMILES format.
          example: O[P@@](=S)([OH:1])[OH:2]
          type: string
        symbol:
          description: User-defined identifier of the monomer, unique on the monomer type.
          example: Rsp
          type: string
        visualSymbol:
          allOf:
          - $ref: '#/components/schemas/MonomerVisualSymbol'
      type: object
    NotFoundError:
      properties:
        error:
          allOf:
          - $ref: '#/components/schemas/BaseError'
          - properties:
              invalidId:
                type: string
              type:
                enum:
                - invalid_request_error
                type: string
      type: object
    MonomersUnarchive:
      additionalProperties: false
      description: 'The request body for unarchiving Monomers.

        '
      properties:
        monomerIds:
          items:
            type: string
          maxItems: 100
          type: array
      required:
      - monomerIds
      type: object
    BaseError:
      properties:
        message:
          type: string
        type:
          type: string
        userMessage:
          type: string
      type: object
    MonomersArchivalChange:
      additionalProperties: false
      description: 'IDs of all items that were archived or unarchived, grouped by resource type.

        '
      properties:
        batchIds:
          items:
            type: string
          type: array
        monomerIds:
          items:
            type: string
          type: array
      type: object
    MonomersArchive:
      additionalProperties: false
      description: 'The request body for archiving Monomers.

        '
      properties:
        monomerIds:
          items:
            type: string
          maxItems: 100
          type: array
        reason:
          description: 'The reason for archiving the provided Monomers. Accepted reasons may differ based on tenant configuration.

            '
          enum:
          - Made in error
          - Archived
          - Other
          type: string
      required:
      - reason
      - monomerIds
      type: object
    Pagination:
      properties:
        nextToken:
          type: string
    ArchiveRecord:
      properties:
        reason:
          example: Made in error
          type: string
      type: object
    MonomersPaginatedList:
      additionalProperties: false
      allOf:
      - $ref: '#/components/schemas/Pagination'
      - properties:
          monomers:
            items:
              $ref: '#/components/schemas/Monomer'
            type: array
          nextToken:
            type: string
    Monomer:
      properties:
        archiveRecord:
          allOf:
          - $ref: '#/components/schemas/ArchiveRecord'
          nullable: true
        attachmentPoints:
          description: A list of the capping group present at each location where the monomer can form a bond with other monomers
          example:
          - OH
          - OH
          items:
            type: string
          type: array
        calculatedMolecularWeight:
          description: The molecular weight of the monomer as calculated by RDKit based on the monomer chemical structure
          example: 120.422
          type: number
        canonicalSmiles:
          description: The canonicalized chemical structure in SMILES format.
          example: O[P@@](=S)([OH:1])[OH:2]
          type: string
        createdAt:
          description: DateTime the monomer was created.
          format: date-time
          readOnly: true
          type: string
        customMolecularWeight:
          description: Optional molecular weight value that the user can provide to override the calculated molecular weight
          example: 119.422
          nullable: true
          type: number
        exactMolecularWeight:
          description: The exact molecular weight of the monomer as calculated by RDKit based on the monomer chemical structure
          example: 119.422
          type: number
        id:
          description: ID of the monomer
          example: mon_bhuDUw9D
          type: string
        modifiedAt:
          description: DateTime the monomer was last modified.
          format: date-time
          readOnly: true
          type: string
        monomerType:
          allOf:
          - $ref: '#/components/schemas/MonomerType'
        name:
          description: Name of the monomer
          example: (Rp)-Phosphorothioate
          type: string
        naturalAnalog:
          description: Symbol for the natural equivalent of the monomer. Acceptable natural analog values include IUPAC bases, r, and p.
          example: T
          type: string
        originalSmiles:
          description: The original chemical structure supplied by the user in SMILES format. Null if the user did not originally supply SMILES.
          example: O[P@@](=S)([OH:1])[OH:2]
          nullable: true
          type: string
        polymerType:
          allOf:
          - $ref: '#/components/schemas/MonomerPolymerType'
        symbol:
          description: User-defined identifier of the monomer, unique on the monomer type.
          example: Rsp
          type: string
        visualColor:
          description: The hex color code of the monomer visual symbol
          example: '#7051FC'
          nullable: true
          type: string
        visualSymbol:
          allOf:
          - $ref: '#/components/schemas/MonomerVisualSymbol'
          nullable: true
      type: object
    MonomerPolymerType:
      description: The polymer type of the monomer. Currently only RNA monomers are supported.
      enum:
      - RNA
      type: string
    MonomerVisualSymbol:
      description: The shape of the monomer visual symbol.
      enum:
      - DIAMOND_FILLED
      - DIAMOND_HOLLOW
      - DIAMOND_DASHED
      - STAR_FILLED
      - STAR_HOLLOW
      - TRIANGLE_FILLED
      - TRIANGLE_HOLLOW
      - DYAD_FILLED
      - DYAD_HOLLOW
      - CLOVER_FILLED
      - CLOVER_HOLLOW
      - TRIAD_FILLED
      - TRIAD_HOLLOW
      - RECTANGLE_FILLED
      - RECTANGLE_HOLLOW
      - LETTERS_P
      - LETTERS_PS
      type: string
    MonomerCreate:
      additionalProperties: false
      allOf:
      - $ref: '#/components/schemas/MonomerBaseRequest'
      - properties:
          naturalAnalog:
            description: Symbol for the natural equivalent of the monomer. Acceptable natural analog values include IUPAC bases, r, and p.
            example: T
            type: string
      - required:
        - smiles
        - name
        - naturalAnalog
        - symbol
    MonomerUpdate:
      additionalProperties: false
      allOf:
      - $ref: '#/components/schemas/MonomerBaseRequest'
  securitySchemes:
    basicApiKeyAuth:
      description: Use issued API key for standard access to the API
      scheme: basic
      type: http
    basicClientIdSecretAuth:
      description: Auth used as part of client credentials OAuth flow prior to receiving a bearer token.
      scheme: basic
      type: http
    oAuth:
      description: OAuth2 Client Credentials flow intended for service access
      flows:
        clientCredentials:
          scopes: {}
          tokenUrl: /api/v2/token
      type: oauth2
externalDocs:
  description: Additional API Documentation
  url: https://docs.benchling.com