---
title: "Create Table"
method: POST
path: "/api/database/tables"
tags: ["Admin"]
---

# Create Table

`POST /api/database/tables`

## Request body

- object
  - `tableName` string, required
  - `columns` object[], required
    - `name` string, required
    - `type` 'string' | 'datetime' | 'integer' | 'float' | 'boolean' | 'uuid' | 'json' | 'file', required
    - `nullable` boolean, required
    - `unique` boolean
    - `defaultValue` string
  - `foreignKeys` ForeignKeyConstraint[] — Table-level foreign key constraints
    - `constraintName` string — Constraint name. Returned when reading the schema; derived by the backend on create.
    - `referenceTable` string, required — Table being referenced
    - `referenceColumns` object[], required — Ordered (source → reference) column pairs
      - `sourceColumn` string, required — Column in the current table
      - `referenceColumn` string, required — Column in the referenced table
    - `onDelete` 'CASCADE' | 'SET NULL' | 'SET DEFAULT' | 'NO ACTION' | 'RESTRICT', required
    - `onUpdate` 'CASCADE' | 'SET NULL' | 'SET DEFAULT' | 'NO ACTION' | 'RESTRICT', required
  - `rlsEnabled` boolean — Enable Row Level Security on the table

## Response `201`

Table created

- object
  - `message` string
  - `table_name` string

## Other responses

- `400` — Bad request
- `422` — Unprocessable entity

---

[API](https://skmtc.net/insforge/apis/insforge-authentication-api.md) · [All operations](https://skmtc.net/insforge/apis/insforge-authentication-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/insforge/insforge-authentication-api/versions/a935bb49f932/schema)
