For each shipment you create, you need to have a created fulfilment.
You can use a fulfilment for one shipment, as well as create several shipments out of a single fulfilment.

Create a new shipment
POST /orders/ID/shipments

{
  "data": {
    "fulfilment_id": "<Int>", // ID of the fulfilment that is used for the shipment
    "tracking_number": "<String>",
    "shipping_carrier": "<Int>"
  },
  "notify": "<Bool>" // whether user should get an email notification about the shipment
}

Create multiple shipments
POST /orders/ID/shipments

{
  "data": [
    {
      "fulfilment_id": 12, // ID of the fulfilment that is used for the shipment
      "items": [
        {
          "id": 54,
          "quantity": 3,
        }
      ],
      "tracking_number": "<String>",
      "shipping_carrier": "<Int>"
    },
    {
      "fulfilment_id": 12,
      "items": [
        {
          "id": 54,
          "quantity": 1
        }
      ],
      "tracking_number": "<String>",
      "shipping_carrier": "<Int>"
    },
    {
      "fulfilment_id": 13,
      "tracking_number": "<String>",
      "shipping_carrier": "<Int>"
    }
  ],
  "notify": "<Bool>" // whether user should get an email notification about the shipment
}

Edit multiple shipments
PATCH /orders/ID/shipments

{
  "data": [
    {
      "id": "<Int>", // ID of the shipment you wish to edit
      "tracking_number": "<String>",
      "shipping_carrier": "<Int>"
    }
  ],
  "notify": "<Bool>" // whether user should get an email notification about the shipment
}

Edit a single shipment
PATCH /orders/ID/shipments/ID

{
  "data": {
    "tracking_number": "<String>",
    "shipping_carrier": "<Int>"
  },
  "notify": "<Bool>" // whether user should get an email notification about the shipment
}

Unmark shipped
Use this if you wish to delete a shipment and set the products back to fulfilled status.
DELETE /orders/ID/shipments/ID