---
title: "Create Base field"
method: POST
path: "/api/v1/bases/{baseId}/fields"
tags: ["Bases"]
---

# Create Base field

`POST /api/v1/bases/{baseId}/fields`

## Request

- Base URL: `https://api-docs.busabase.com`
- URL: `https://api-docs.busabase.com/api/v1/bases/{baseId}/fields`
- Auth: none declared

## Path parameters

- `baseId` string, required

## Request body

- object
  - `name` union, required
    - string
    - object
  - `slug` string, required
  - `type` 'text' | 'longtext' | 'markdown' | 'html' | 'attachment' | 'relation' | 'member' | 'number' | 'date' | 'checkbox' | 'select' | 'multiselect' | 'url' | 'embed' | 'email' | 'phone' | 'created_time' | 'updated_time' | 'created_by' | 'updated_by' | 'auto_number' | 'ai_summary' | 'ai_tags' | 'code' | 'json' | 'yaml' | 'formula' | 'lookup' | 'whiteboard'
  - `required` boolean
  - `options` object
    - `help` object
      - `description` string
      - `example` string
    - `ai` object
      - `model` string
      - `prompt` string
      - `reviewRequired` boolean
      - `sourceFieldIds` string[]
    - `attachment` object
      - `allowedMimeTypes` string[]
    - `choices` object[]
      - `color` string
      - `id` string, required
      - `name` string, required
    - `code` object
      - `language` string
    - `date` object
      - `includeTime` boolean
      - `timezone` string: IANA time zone, e.g. "Asia/Shanghai". Omit to show each reader their own local time.
    - `embed` object
      - `aspectRatio` '16:9' | '4:3' | '1:1'
      - `providers` string[]
    - `formula` object
      - `expression` string, required
      - `format` 'auto' | 'number' | 'currency' | 'percent' | 'date'
      - `precision` integer
      - `currency` string
    - `inverseFieldId` string
    - `lookup` object
      - `relationFieldSlug` string, required: Slug of a `relation` field on THIS Base — the hop to follow.
      - `targetFieldSlug` string, required: Slug of the field on the related Base whose values are pulled over.
      - `rollup` 'values' | 'count' | 'sum' | 'average' | 'min' | 'max' | 'concatenate'
      - `limit` 'all' | 'first': `first` looks at only the first linked record; default `all`.
    - `multiple` boolean
    - `number` object
      - `format` 'plain' | 'currency'
      - `currency` string
      - `locale` string
    - `targetBaseId` string: Relation target Base id (bse_…). Or pass targetBaseSlug to name it by slug.
    - `targetBaseSlug` string: Relation target Base by slug — a convenience alias for targetBaseId, resolved server-side (active bases in the current space). If both are given, targetBaseId wins.

## Response `200`

Created Base field.

- object
  - `id` string, required
  - `nodeId` string, required
  - `slug` string, required
  - `name` string, required
  - `description` string, required
  - `reviewPolicy` object, required
    - `kind` unknown, required
    - `requiredApprovals` number, required
  - `createdAt` string, required
  - `fields` object[], required
    - `id` string, required
    - `baseId` string, required
    - `slug` string, required
    - `name` union, required
      - string
      - object
    - `type` 'text' | 'longtext' | 'markdown' | 'html' | 'attachment' | 'relation' | 'member' | 'number' | 'date' | 'checkbox' | 'select' | 'multiselect' | 'url' | 'embed' | 'email' | 'phone' | 'created_time' | 'updated_time' | 'created_by' | 'updated_by' | 'auto_number' | 'ai_summary' | 'ai_tags' | 'code' | 'json' | 'yaml' | 'formula' | 'lookup' | 'whiteboard', required
    - `required` boolean, required
    - `position` number, required
    - `options` object
      - `help` object
        - `description` string
        - `example` string
      - `ai` object
        - `model` string
        - `prompt` string
        - `reviewRequired` boolean
        - `sourceFieldIds` string[]
      - `attachment` object
        - `allowedMimeTypes` string[]
      - `choices` object[]
        - `color` string
        - `id` string, required
        - `name` string, required
      - `code` object
        - `language` string
      - `date` object
        - `includeTime` boolean
        - `timezone` string: IANA time zone, e.g. "Asia/Shanghai". Omit to show each reader their own local time.
      - `embed` object
        - `aspectRatio` '16:9' | '4:3' | '1:1'
        - `providers` string[]
      - `formula` object
        - `expression` string, required
        - `format` 'auto' | 'number' | 'currency' | 'percent' | 'date'
        - `precision` integer
        - `currency` string
      - `inverseFieldId` string
      - `lookup` object
        - `relationFieldSlug` string, required: Slug of a `relation` field on THIS Base — the hop to follow.
        - `targetFieldSlug` string, required: Slug of the field on the related Base whose values are pulled over.
        - `rollup` 'values' | 'count' | 'sum' | 'average' | 'min' | 'max' | 'concatenate'
        - `limit` 'all' | 'first': `first` looks at only the first linked record; default `all`.
      - `multiple` boolean
      - `number` object
        - `format` 'plain' | 'currency'
        - `currency` string
        - `locale` string
      - `targetBaseId` string: Relation target Base id (bse_…). Or pass targetBaseSlug to name it by slug.
      - `targetBaseSlug` string: Relation target Base by slug — a convenience alias for targetBaseId, resolved server-side (active bases in the current space). If both are given, targetBaseId wins.

---

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