---
title: "Create AppDefinition"
method: POST
path: "/api/v3/app-definition"
tags: ["App Definition"]
---

# Create AppDefinition

`POST /api/v3/app-definition`

## Request

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

Create AppDefinition.

## Headers

- `EARLY-ACCESS` string

## Request body

- CreateAppDefinitionInput
  - `configurationPublicKey` string
  - `version` CreateAppDefinitionVersionFieldInput, required
    - `description` string
    - `name` string, required
    - `versionNumber` string, required
  - `webhookUrl` string
  - `webhookUrlRouting` 'SUFFIXED' | 'STABLE'

## Response `201`

Created

- AppDefinition: Represents a Benchling App definition, which is the developer-side configuration for an application that can be installed on Benchling tenants. App definitions specify webhook endpoints, configuration keys, and link to versioned releases (see `AppDefinitionVersion`). Each app has a unique clientId for OAuth authentication.
  - `__typename` string
  - `clientId` string
  - `configurationPublicKey` string, nullable
  - `createdAt` string, datetime
  - `id` string
  - `latestReleaseVersion` AppDefinitionVersionRef
    - `__typename` string
    - `id` string, api_id
  - `modifiedAt` string, datetime
  - `owner` PrincipalRef
    - `__typename` string
    - `id` string, api_id
  - `owningTenant` string, nullable
  - `versions` string, uri: All versions of this App Definition.
  - `webhookUrl` string, nullable
  - `webhookUrlRouting` 'SUFFIXED' | 'STABLE'

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