---
title: "Create Keys Bulk"
method: POST
path: "/v1/projects/{project_id}/keys/bulk"
tags: ["keys"]
---

# Create Keys Bulk

`POST /v1/projects/{project_id}/keys/bulk`

## Request

- Base URL: `https://api.sonenta.dev`
- URL: `https://api.sonenta.dev/v1/projects/{project_id}/keys/bulk`
- Auth: none declared

Batch key create — idempotent, best-effort per item.

Items referencing an unknown namespace (not in this project) or a
(namespace, name) pair that repeats within the batch error per item;
valid items still commit. An item whose key already exists returns
`created=false` (counted as `unchanged`). The plan key-cap is a
whole-batch gate: if the NEW keys would exceed the org cap the entire
call is rejected (403) before any write.

## Path parameters

- `project_id` string, required

## Request body

- KeyBulkCreateIn
  - `items` KeyBulkCreateItem[], required
    - `namespace_uuid` string, required
    - `name` string, required
    - `description` string, nullable
    - `context` string, nullable
    - `plurals` boolean
    - `max_length` integer, nullable
    - `screenshots` string[]
    - `type` 'text' | 'heading' | 'label' | 'caption' | 'badge' | 'tooltip' | 'error_message' | 'toast' | 'button' | 'link' | 'menu_item' | 'input_placeholder' | 'input_label' | 'image' | 'icon' | 'meta_title' | 'meta_description'
    - `type_source` 'default' | 'detected' | 'manual', nullable

## Response `200`

Successful Response

- KeyBulkCreateOut
  - `results` KeyBulkCreateResult[], required
    - `index` integer, required
    - `status` string, required
    - `created` boolean, nullable
    - `key_uuid` string, nullable
    - `name` string, nullable
    - `namespace_uuid` string, nullable
    - `error` BulkItemError
      - `code` string, required
      - `message` string, required
  - `summary` BulkSummary, required
    - `total` integer, required
    - `ok` integer, required
    - `errors` integer, required
    - `created` integer
    - `updated` integer
    - `unchanged` integer

## Other responses

- `422`: Validation Error

---

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