Design and document a restful API to handle the creation of shipping labels. Detail the different endpoints, their function and json structure. 

The api should allow the creation of new shipments, the retrieval of status and the download of shipping labels
Here is a design for a RESTful API to handle the creation of shipping labels:

**Base URL:** `https://shipping-label-api.com/v1`

**Endpoints:**

### 1. Create Shipment

**Endpoint:** `POST /shipments`

**Function:** Create a new shipment and generate a shipping label.

**Request Body:**
```json
{
  "shipper": {
    "name": "John Doe",
    "address": {
      "street1": "123 Main St",
      "street2": "",
      "city": "Anytown",
      "state": "CA",
      "zip": "12345",
      "country": "USA"
    }
  },
  "recipient": {
    "name": "Jane Doe",
    "address": {
      "street1": "456 Elm St",
      "street2": "",
      "city": "Othertown",
      "state": "NY",
      "zip": "67890",
      "country": "USA"
    }
  },
  "package": {
    "weight": 1.0,
    "length": 10,
    "width": 10,
    "height": 10
  },
  "service": "USPS_PRIORITY_MAIL",
  "reference_number": "ORDER-1234"
}
```
**Response:**
```json
{
  "shipment_id": "SH123456",
  "label_url": "https://
The API should have the following endpoints: 

/shipments/ 
This endpoint should create a new shipment. It should accept a json body with the shipment details, and return a 201 Created response with the shipment id. The json structure should be as follows: 
{
  "shipment": {
    "address": {
      "street": "123 Main Street",
      "city": "AnyTown",
      "state": "CA",
      "zip": 94112
    },
    "items": [
      {
        "name": "Item 1",
        "quantity": 1
      },
      {
        "name": "Item 2",
        "quantity": 2
      }
    ],
    "carrier": "USPS",
    "tracking": "1Z123456789AB"
  }
}

/shipments/ 
This endpoint should retrieve a list of shipments. It should accept a json body with the shipment id and return a 200 OK response with the shipment details. The json structure should be as follows: 
{
  "shipment": {
    "address": {
      "street": "123 Main Street",
      "city": "Any