---
title: "Save As Template"
method: POST
path: "/api/bitables/{table_id}/save-as-template"
tags: ["bitable-templates"]
---

# Save As Template

`POST /api/bitables/{table_id}/save-as-template`

## Request

- Base URL: `https://api.tintin-x.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.tintin-x.com/api/bitables/{table_id}/save-as-template`
- Auth: HTTP bearer

Snapshot an active bitable as a reusable template.

Auth: same write-scope as the bitable (team must own the producing
agent). Embedding is computed best-effort — failure doesn't abort
the capture.

## Path parameters

- `table_id` string, uuid, required

## Request body

- TemplateSaveAs: Capture an active bittable as a template. Every field is optional except `name` — callers typically want to promote an in-use table without re-describing it. The server snap- shots `column_graph` and `table_policies` from the source bitable.
  - `name` string, required
  - `description` string, nullable
  - `credential_slots` object, nullable
  - `row_source_spec` RowSourceCreate
    - `connector` 'manual' | 'tintin_storage' | 'smart_storage' | 's3_prefix' | 'local_upload' | 'google_drive' | 'onedrive' | 'apollo_query' | 'lark_pull', required
    - `name` string, nullable
    - `config` object
    - `schedule` 'once' | 'daily' | 'webhook'
  - `is_listed` boolean

## Response `201`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

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