---
title: "Bulk Create Time Entries"
method: POST
path: "/api/v1/time_entries/bulk-create"
tags: ["time_entries", "time_entries"]
---

# Bulk Create Time Entries

`POST /api/v1/time_entries/bulk-create`

## Request

- Base URL: `https://api.peil.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.peil.app/api/v1/time_entries/bulk-create`
- Auth: none declared

Create many rows in one request — what paste, duplicate and undo send.

Each row is created on its own, exactly as `POST /time_entries` would, and a
row that fails does not stop the rest (the grid reports how many failed).
Before this, the grid sent one POST per row at once: a month pasted was 20
simultaneous requests, and more than 60 in a minute hit that route's limit.

## Request body

- TimeEntryBulkCreate: Paste, duplicate and undo-restore: many rows in one request.
  - `entries` TimeEntryCreate[], required
    - `client_id` integer, nullable
    - `project_id` integer, nullable
    - `invoice_id` integer, nullable
    - `date` string, date, required
    - `start_time` string, nullable
    - `end_time` string, nullable
    - `hours` number
    - `rate` number
    - `activities` string[], nullable
    - `description` string, nullable
    - `billable` boolean
    - `status` string

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

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