---
title: "Create a shipment/offer"
method: POST
path: "/shipments"
tags: ["Shipper"]
---

# Create a shipment/offer

`POST /shipments`

Creates a shipment based on the factors provided in the request body. This API endpoint can only be accessed by Admins and Shippers!
`action` - add, update, cancel

## Request body

- OfferRequest
  - `action` string, required
  - `shipment` object, required
    - `reference_numbers` object[]
      - `name` string
      - `primary` boolean
      - `value` string
    - `shipment_type` string
    - `shipper` string
    - `stops` object[]
      - `sequence` integer
      - `location` object
        - `name` string
        - `address` string
        - `suite_or_apt` string
      - `loads` object[]
        - `type` string
        - `quantity` integer
        - `width` integer
        - `height` integer
        - `length` integer
        - `weight` integer
      - `contacts` object[]
        - `name` string
        - `email` string
        - `phone` string
      - `action` string
      - `window_start` string, date-time
      - `window_end` string, date-time
      - `reference_numbers` object[]
        - `name` string
        - `value` string
    - `loads` object[]
      - `type` string
      - `quantity` integer
      - `width` integer
      - `height` integer
      - `length` integer
      - `weight` integer
    - `accessorials` object[]
      - `type` string
    - `weight` integer
    - `notes` string

## Response `200`

Status Code 200:  Successful Response - the request was successful!

- OfferResponse
  - `action` string
  - `shipment` object
    - `shipment_type` string
    - `shipper` string
    - `reference_numbers` object[]
      - `name` string
      - `value` string
      - `primary` boolean
    - `stops` object[]
      - `sequence` integer
      - `location` object
        - `name` string
        - `address` string
        - `suite_or_apt` string
      - `loads` object[]
        - `type` string
        - `quantity` integer
        - `width` integer
        - `height` integer
        - `length` integer
        - `weight` integer
      - `contacts` object[]
        - `name` string
        - `email` string
        - `phone` string
      - `action` string
      - `window_start` string, date-time
      - `window_end` string, date-time
      - `reference_numbers` object[]
        - `name` string
        - `value` string
    - `loads` object[]
      - `type` string
      - `quantity` integer
      - `width` integer
      - `height` integer
      - `length` integer
      - `weight` integer
    - `accessorials` object[]
      - `type` string
    - `weight` integer
    - `notes` string

## Other responses

- `400` — Status Code 400: Bad Request Response - the request header and/or body is invalid
- `500` — StatusCode 500: Internal Server Error Response - there's a problem with the Public API service

---

[API](https://skmtc.net/cargomatic/apis/cargomatic-public-api.md) · [All operations](https://skmtc.net/cargomatic/apis/cargomatic-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cargomatic/cargomatic-public-api/revisions/4aa7f4326443/schema)
