---
title: "Instantiate Template Endpoint"
method: POST
path: "/api/bitable-templates/{template_id}/instantiate"
tags: ["bitable-templates"]
---

# Instantiate Template Endpoint

`POST /api/bitable-templates/{template_id}/instantiate`

## 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/bitable-templates/{template_id}/instantiate`
- Auth: HTTP bearer

Create a new bitable from a stored template.

Enforces credential-slot binding completeness — every slot declared
on the template must be in `body.credential_bindings` or we 400.
Credential grants themselves are the caller's responsibility: the
frontend should call the vault grant endpoint before instantiating.

## Path parameters

- `template_id` string, uuid, required

## Request body

- TemplateInstantiate: Body for POST /api/bitable-templates/{id}/instantiate. Creates a new bittable from the template, with recipes wired up and (optionally) a row_source configured. - `agent_id` is the target agent the new bittable will belong to; the request user must own it via the standard team-scope rule. - `credential_bindings` maps template slot names → vault credential slugs/ids. Slots declared in the template must all be bound (missing slots return 400). - `row_source` (optional) wires a `bitable_row_sources` row onto the new bitable. Shape is the same as the B4 `RowSourceCreate` — if the template carries a `row_source_spec`, this defaults to that but the caller may override per-field. - `conversation_id` is optional; if null the server falls back through the same Redis/active-conv path as `POST /api/bitables`.
  - `agent_id` string, uuid, required
  - `name` string, nullable
  - `description` string, nullable
  - `credential_bindings` object
  - `row_source` 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'
  - `conversation_id` string, uuid, nullable
  - `template_parameters` object

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