---
title: "Create Source Table"
method: POST
path: "/v1/source_tables"
tags: ["source_tables"]
---

# Create Source Table

`POST /v1/source_tables`

Register a parquet relation over a stored connector.

Resolves the named connector, validates ``location`` is a readable parquet
dataset (footer read), and persists the ``source_table``. Columns are not
stored — they are derived from the footer on demand.

## Request body

- CreateSourceTableRequest
  - `table_name` string, required
  - `connector` string, required
  - `location` union, required
    - S3SourceLocation
      - `uri` string, uri, required
      - `file_format` 'parquet'
    - SnowflakeSourceLocation
      - `database` string, required
      - `schema_name` string, required
      - `table_name` string, required

## Response `201`

Successful Response

- SourceTableResponse
  - `id` union, required
    - string, uuid
    - string
  - `short_id` string, required
  - `table_name` string, required
  - `connector_type` 's3' | 'snowflake' | 'databricks' | 'file_upload', required
  - `location` union, required
    - S3SourceLocation
      - `uri` string, uri, required
      - `file_format` 'parquet'
    - SnowflakeSourceLocation
      - `database` string, required
      - `schema_name` string, required
      - `table_name` string, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/outerproduct/apis/outerproduct-api.md) · [All operations](https://skmtc.dev/outerproduct/apis/outerproduct-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/outerproduct/outerproduct-api/revisions/a49cdafe7fba/schema)
