---
title: "Create Blocks Batch"
method: POST
path: "/v1/_internal_templates/blocks/batch"
tags: ["_internal_templates"]
---

# Create Blocks Batch

`POST /v1/_internal_templates/blocks/batch`

Create multiple blocks with template-related fields.

## Request body

- InternalTemplateBlockCreate[]
  - `value` string, required — Value of the block.
  - `limit` integer — Character limit of the block.
  - `project_id` string, nullable — The associated project id.
  - `name` string, nullable — Name of the block if it is a template.
  - `is_template` boolean
  - `template_id` string, required — The id of the template.
  - `base_template_id` string, required — The id of the base template.
  - `deployment_id` string, required — The id of the deployment.
  - `entity_id` string, required — The id of the entity within the template.
  - `preserve_on_migration` boolean, nullable — Preserve the block on template migration.
  - `label` string, required — Label of the block.
  - `read_only` boolean — Whether the agent has read-only access to the block.
  - `description` string, nullable — Description of the block.
  - `metadata` object, nullable — Metadata of the block.
  - `hidden` boolean, nullable — If set to True, the block will be hidden.

## Response `200`

Successful Response

- Block[]
  - `value` string, required — Value of the block.
  - `limit` integer — Character limit of the block.
  - `project_id` string, nullable — The associated project id.
  - `name` string, nullable — The id of the template.
  - `is_template` boolean — Whether the block is a template (e.g. saved human/persona options).
  - `base_template_id` string, nullable — The base template id of the block.
  - `deployment_id` string, nullable — The id of the deployment.
  - `entity_id` string, nullable — The id of the entity within the template.
  - `preserve_on_migration` boolean, nullable — Preserve the block on template migration.
  - `label` string, nullable — Label of the block (e.g. 'human', 'persona') in the context window.
  - `read_only` boolean — Whether the agent has read-only access to the block.
  - `description` string, nullable — Description of the block.
  - `metadata` object, nullable — Metadata of the block.
  - `hidden` boolean, nullable — If set to True, the block will be hidden.
  - `id` string — The human-friendly ID of the Block
  - `created_by_id` string, nullable — The id of the user that made this Block.
  - `last_updated_by_id` string, nullable — The id of the user that last updated this Block.

## Other responses

- `422` — Validation Error

## Changes

- **2025-10-01** `a853ae57346d` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/yu-code666/apis/letta-api/changes/v1/_internal_templates/blocks/batch/post.md)

---

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