# `api.jobs.parcel_items.create` > `POST /job/{jobDisplayId}/parcelitems` — ACPortal **Python** ```python api.jobs.parcel_items.create(job_display_id: int, *, data: ParcelItemCreateRequest | dict) -> ParcelItem ``` **CLI** ```bash ab jobs parcel_items create [--data ...] ``` ``POST /job/{jobDisplayId}/parcelitems`` Request model: :class:`ParcelItemCreateRequest`. ## Request body — `ParcelItemCreateRequest` | Field | Type | Required | Description | |---|---|---|---| | `description` | `str` | yes | Item description | | `length` | `Optional[float]` | no | Length | | `width` | `Optional[float]` | no | Width | | `height` | `Optional[float]` | no | Height | | `weight` | `Optional[float]` | no | Weight | | `quantity` | `Optional[int]` | no | Quantity | ## Response Returns `ParcelItem`. | Field | Type | Required | Description | |---|---|---|---| | `id` | `Optional[int]` | no | Parcel item ID | | `jobItemId` | `Optional[str]` | no | Job item UUID | | `description` | `Optional[str]` | no | Item description | | `quantity` | `Optional[int]` | no | Number of pieces | | `jobItemPkdLength` | `Optional[float]` | no | Packed length | | `jobItemPkdWidth` | `Optional[float]` | no | Packed width | | `jobItemPkdHeight` | `Optional[float]` | no | Packed height | | `jobItemPkdWeight` | `Optional[float]` | no | Packed weight | | `jobItemParcelValue` | `Optional[float]` | no | Declared value | | `parcelPackageTypeId` | `Optional[int]` | no | Package type ID | | `insureKey` | `Optional[str]` | no | Insurance key | | `packageTypeCode` | `Optional[str]` | no | Package type code | | `jobModifiedDate` | `Optional[str]` | no | Job modified datetime | | `parcelItems` | `Optional[list[dict]]` | no | Nested parcel items | --- [← Back to api.jobs](../jobs.md)