---
title: "Create LibraryParameterDefinition"
method: POST
path: "/api/v3/library-parameter-definition"
tags: ["Library Parameter Definition"]
---

# Create LibraryParameterDefinition

`POST /api/v3/library-parameter-definition`

## Request

- Base URL: `https://{tenant_name}.benchling.com`
- URL: `https://{tenant_name}.benchling.com/api/v3/library-parameter-definition`
- Auth: HTTP bearer

Create a new library parameter definition in the Parameter Library.
## Required fields
| Field | Description |
| --- | --- |
| `name` | Display name (1-44 characters, must contain at least one alphanumeric character) |
| `description` | What this parameter measures or represents (max 2048 characters) |
| `dataType` | One of `FLOAT`, `DATETIME`, `TEXT`, or `DROPDOWN` |

## Conditionally required fields
- **`unitTypeId`** — Required when `dataType` is `FLOAT`. Must be omitted or null otherwise. Obtain a valid ID from `GET /benchling/unit-type/items`.
- **`schemaFieldSelectorId`** — Required when `dataType` is `DROPDOWN`. Must be omitted or null otherwise. Obtain a valid ID from `GET /benchling/dropdown/items`.

## Notes
- The **creator** is automatically set to the authenticated user or app. The deprecated `creatorId` field is ignored.
- `dataType` and `unitTypeId` are **immutable** after creation.
- There is a per-tenant limit on the total number of library parameter definitions.

## Headers

- `EARLY-ACCESS` string

## Request body

- CreateLibraryParameterDefinitionInput
  - `creatorId` string: Deprecated. This field is ignored — the creator is always set to the authenticated user.
  - `dataType` 'FLOAT' | 'DATETIME' | 'TEXT' | 'DROPDOWN', required: The data type of values recorded for this parameter. Determines which additional fields are required: `FLOAT` requires `unitTypeId`, `DROPDOWN` requires `schemaFieldSelectorId`. Cannot be changed after creation.
  - `description` string, required: A description of what this parameter measures or represents. Maximum 2048 characters.
  - `name` string, required: Display name for the parameter definition. Must contain at least one alphanumeric character. Maximum 44 characters.
  - `unitTypeId` string, nullable: The ID of the unit type for this parameter. Required when `dataType` is `FLOAT`, forbidden otherwise. Use `GET /benchling/unit-type/items` to list available unit types. Format: `qnty_XXXXXXXX`.

## Response `201`

Created

- LibraryParameterDefinition: A reusable parameter definition stored in the Parameter Library. LibraryParameterDefinitions allow organizations to standardize parameters used across multiple procedures by defining a name, description, data type, and optional unit type. When creating procedure parameters, users can link to a library parameter definition to inherit its settings, ensuring consistency across experiments.
  - `__typename` string
  - `archiveReason` string, nullable
  - `archived` boolean
  - `createdAt` string, datetime
  - `creator` PrincipalRef
    - `__typename` string
    - `id` string, api_id
  - `dataType` 'AA_PART_LINK' | 'AA_SEQUENCE_LINK' | 'ASSAY_REQUEST_LINK' | 'ASSAY_RESULT_LINK' | 'ASSAY_RUN_LINK' | 'BATCH_LINK' | 'BLOB_LINK' | 'BOOLEAN' | 'CUSTOM_ENTITY_LINK' | 'DATE' | 'DATETIME' | 'DNA_SEQUENCE_LINK' | 'ENTITY_LINK' | 'ENTRY_LINK' | 'FLOAT' | 'INTEGER' | 'JSON' | 'LONG_TEXT' | 'MIXTURE_LINK' | 'MOLECULE_LINK' | 'BASE_MOLECULE_LINK' | 'PART_LINK' | 'RNA_PART_LINK' | 'RNA_SEQUENCE_LINK' | 'SAMPLE_LINK' | 'DROPDOWN' | 'STORAGE_LINK' | 'TEXT' | 'TRANSCRIPTION_LINK' | 'TRANSLATION_LINK'
  - `description` string
  - `id` string
  - `modifiedAt` string, datetime
  - `name` string
  - `unitType` UnitTypeRef
    - `__typename` string
    - `id` string, api_id

## 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)
