---
title: "Bulk-create package templates"
method: POST
path: "/api/templates/package-templates/bulk"
tags: ["templates"]
---

# Bulk-create package templates

`POST /api/templates/package-templates/bulk`

## Request

- Base URL: `https://api.vepathos.com`
- URL: `https://api.vepathos.com/api/templates/package-templates/bulk`
- Auth: HTTP bearer

Creates up to 1000 templates from `{ "items": [...] }`. When the batch exceeds your remaining plan quota, what fits is created and the rest is reported in `rejected`; the call does not fail on quota.

## Request body

- object
  - `items` PackageTemplateInput[], required
    - `name` string, required
    - `description` string
    - `method` string: Defaults to DELIVERY when omitted.
    - `weight` string
    - `weight_unit` string: Defaults to KILOGRAMS when omitted.
    - `width` string
    - `height` string
    - `depth` string
    - `length_unit` string: Defaults to CENTIMETER when omitted.
    - `packaging` string: Defaults to BOX when omitted.
    - `handling` string[]
    - `value` string
    - `value_currency` string: Defaults to USD when omitted.

## Response `200`

Bulk-create result.

- PackageTemplateBulkResult
  - `created` PackageTemplate[], required
    - `id` string, required
    - `name` string, required
    - `description` string
    - `method` 'DELIVERY' | 'PICKUP' | 'SIGNATURE', required
    - `weight` string, required
    - `weight_unit` 'GRAMS' | 'KILOGRAMS' | 'OUNCES' | 'POUNDS', required
    - `width` string, required
    - `height` string, required
    - `depth` string, required
    - `length_unit` 'CENTIMETER' | 'METER' | 'KILOMETER' | 'INCH' | 'FEET' | 'MILE', required
    - `packaging` 'BOX' | 'ENVELOPE' | 'BAG' | 'CARTON' | 'PALLET' | 'SHRINK_WRAP', required
    - `handling` SpecialHandling[], required
    - `value` string, required: Declared value, in cents (e.g. "5000" = $50.00).
    - `value_currency` string, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
  - `accepted` integer, required: Number of items actually created.
  - `rejected` integer, required: Number of items dropped because the plan quota was reached.
  - `limit` integer, nullable, required: Plan cap, or null when unlimited.
  - `used` integer, required: Template count before this bulk create.

## Other responses

- `400`: Invalid request body
- `401`: Not signed in

---

[API](https://skmtc.dev/vepathos/apis/vepathos-route-optimization-api.md) · [All operations](https://skmtc.dev/vepathos/apis/vepathos-route-optimization-api/llms.txt) · [OpenAPI document](https://skmtc.dev/vepathos/apis/vepathos-route-optimization-api/revisions/00caa1ca62d9?raw)
