shipcloud · Schema

shipment_response_object

CompanyShippingLogisticsCarriersLabelsTrackingE-Commerce
View JSON Schema on GitHub

JSON Schema

shipcloud-shipment-response-object-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/shipcloud/main/json-schema/shipcloud-shipment-response-object-schema.json",
  "title": "shipment_response_object",
  "x-generated": "2026-10-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/shipcloud-openapi.yml#/components/schemas/shipment_response_object",
  "allOf": [
    {
      "$ref": "#/$defs/shipment"
    },
    {
      "type": "object",
      "properties": {
        "to": {
          "$ref": "#/$defs/address_with_id"
        },
        "from": {
          "$ref": "#/$defs/address_with_id"
        }
      }
    },
    {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "identifier of the shipment"
        },
        "carrier_tracking_no": {
          "type": "string",
          "description": "the original tracking number that can be used on the carriers website"
        },
        "carrier_tracking_url": {
          "type": "string",
          "description": "the original tracking URL of the carrier"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "timestamp the shipment was created"
        },
        "label_url": {
          "type": "string",
          "description": "URL where you can download the label in pdf format"
        },
        "packages": {
          "type": "array",
          "items": {
            "allOf": [
              {
                "$ref": "#/$defs/package_with_id"
              }
            ]
          }
        },
        "price": {
          "type": "number",
          "description": "price that we're going to charge you (exl. VAT)"
        },
        "shipper_notification_email": {
          "type": "string",
          "description": "email address of the shipper who should be notified of a change of shipment status by shipcloud"
        },
        "tracking_url": {
          "type": "string",
          "description": "URL you can send your customers so they can track this shipment"
        },
        "customs_declaration": {
          "$ref": "#/$defs/customs_declaration_response"
        }
      },
      "required": [
        "id",
        "carrier",
        "created_at",
        "tracking_url",
        "from",
        "to",
        "packages",
        "price",
        "service"
      ]
    }
  ],
  "$defs": {
    "address": {
      "type": "object",
      "properties": {
        "care_of": {
          "type": [
            "string",
            "null"
          ],
          "description": "Additional care of field"
        },
        "city": {
          "type": "string",
          "description": "Name of the city"
        },
        "country": {
          "type": "string",
          "description": "Country as uppercase ISO 3166-1 alpha-2 code"
        },
        "first_name": {
          "type": [
            "string",
            "null"
          ],
          "description": "A persons first name"
        },
        "state": {
          "type": [
            "string",
            "null"
          ],
          "description": "The state the address is in"
        },
        "street": {
          "type": "string",
          "description": "Name of the street. Can hold the house number"
        },
        "street_no": {
          "type": [
            "string",
            "null"
          ],
          "description": "House number of the address (when a carrier requires it separately)"
        },
        "zip_code": {
          "type": "string",
          "description": "Zipcode of the address"
        },
        "phone": {
          "type": "string",
          "description": "Telephone number (mandatory when using UPS and the following terms apply: service is `one_day` or `one_day_early` or ship to country is different than ship from country)"
        },
        "email": {
          "type": "string",
          "description": "Email address for this person. Some carrier are using the email address to send notifications"
        }
      },
      "required": [
        "street",
        "city",
        "zip_code",
        "country"
      ]
    },
    "address_with_id": {
      "allOf": [
        {
          "$ref": "#/$defs/address"
        },
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "identifier of a previously created address"
            }
          },
          "required": [
            "id",
            "first_name",
            "last_name",
            "company",
            "care_of",
            "state",
            "street_no"
          ]
        }
      ]
    },
    "carrier_shipping": {
      "type": "string",
      "enum": [
        "angel_de",
        "asendia",
        "cargo_international",
        "dhl",
        "dhl_express",
        "dpag",
        "dpd",
        "gls",
        "go",
        "hermes",
        "iloxx",
        "parcel_one",
        "ups"
      ],
      "description": "acronym of the carrier"
    },
    "customs_declaration": {
      "type": "object",
      "description": "declaration of customs related information",
      "properties": {
        "contents_type": {
          "type": "string",
          "enum": [
            "commercial_goods",
            "commercial_sample",
            "documents",
            "gift",
            "returned_goods"
          ],
          "description": "Type of contents"
        },
        "contents_explanation": {
          "type": "string",
          "description": "description of contents. Mandatory if contents_type is `commercial_goods`. Max 256 characters, when using DHL as your carrier"
        },
        "currency": {
          "type": "string",
          "description": "a valid ISO 4217 curreny code"
        },
        "additional_fees": {
          "type": "number",
          "description": "additional custom fees to be payed"
        },
        "drop_off_location": {
          "type": "string",
          "description": "location where the package will be dropped of with the carrier"
        },
        "exporter_reference": {
          "type": "string",
          "description": "a note for the exporter"
        },
        "importer_reference": {
          "type": "string",
          "description": "a note for the importer"
        },
        "movement_reference_number": {
          "type": "string",
          "description": "the movement reference number (MRN)"
        },
        "posting_date": {
          "type": "string",
          "format": "date",
          "description": "date of commital at carrier"
        },
        "invoice_number": {
          "type": "string",
          "description": "invoice number for the order"
        },
        "total_value_amount": {
          "type": "number",
          "minimum": 0,
          "maximum": 1000,
          "description": "the overall value of the shipments' contents"
        }
      },
      "required": [
        "contents_type",
        "currency",
        "total_value_amount",
        "items"
      ]
    },
    "customs_declaration_items": {
      "type": "object",
      "properties": {
        "origin_country": {
          "type": "string",
          "description": "Country as uppercase ISO 3166-1 alpha-2 code"
        },
        "description": {
          "type": "string",
          "description": "a description of the item"
        },
        "hs_tariff_number": {
          "type": "string",
          "description": "customs tariff number. See https://en.wikipedia.org/wiki/Harmonized_System#Tariffs_by_region for detailed information on region specific tariff numbers",
          "maxLength": 10
        },
        "quantity": {
          "type": "integer",
          "description": "Number that defines how many items of this kind are in the shipment"
        },
        "value_amount": {
          "type": "string",
          "description": "The total value for items of this kind"
        },
        "net_weight": {
          "type": "number",
          "description": "Total net weight for a single item of this kind"
        },
        "gross_weight": {
          "type": "number",
          "description": "Total gross weight for a single item of this kind"
        }
      },
      "required": [
        "origin_country",
        "description",
        "quantity",
        "value_amount",
        "net_weight"
      ]
    },
    "customs_declaration_response": {
      "allOf": [
        {
          "$ref": "#/$defs/customs_declaration"
        },
        {
          "type": "object",
          "properties": {
            "created_at": {
              "type": "string",
              "format": "date-time",
              "description": "timestamp of when the customs declaration was created"
            },
            "updated_at": {
              "type": "string",
              "format": "date-time",
              "description": "timestamp of when the customs declaration was last updated"
            },
            "carrier_declaration_document_url": {
              "type": "string",
              "format": "uri",
              "description": "A URL that points to the customs declaration document"
            },
            "items": {
              "type": "array",
              "items": {
                "allOf": [
                  {
                    "$ref": "#/$defs/customs_declaration_items"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "A unique identifier for this item"
                      },
                      "created_at": {
                        "type": "string",
                        "format": "date-time",
                        "description": "timestamp of when the item was created"
                      },
                      "updated_at": {
                        "type": "string",
                        "format": "date-time",
                        "description": "timestamp of when the item was last updated"
                      }
                    },
                    "required": [
                      "id",
                      "created_at",
                      "updated_at"
                    ]
                  }
                ]
              }
            }
          }
        }
      ]
    },
    "label": {
      "type": "object",
      "properties": {
        "format": {
          "type": "string",
          "enum": [
            "pdf_100x70mm",
            "pdf_103x199mm",
            "pdf_a5",
            "pdf_a6",
            "pdf_a7",
            "zpl2_4x6in_203dpi",
            "zpl2_4x6in_300dpi",
            "zpl2_100x70mm_203dpi",
            "zpl2_103x199mm_203dpi"
          ],
          "description": "defines the format that the returned label should have"
        },
        "size": {
          "type": "string",
          "enum": [
            "A5",
            "A6",
            "A7",
            "100x70mm"
          ],
          "description": "defines the size that the returned label should have",
          "deprecated": true
        }
      },
      "description": "label specific definitions"
    },
    "package_minimal": {
      "type": "object",
      "properties": {
        "height": {
          "type": "number",
          "description": "Height of the parcel in cm"
        },
        "length": {
          "type": "number",
          "description": "Length of the parcel in cm"
        },
        "weight": {
          "type": "number",
          "description": "Weight of the parcel in kg"
        },
        "width": {
          "type": "number",
          "description": "Width of the parcel in cm"
        }
      },
      "required": [
        "width",
        "height",
        "length",
        "weight"
      ],
      "description": "defines package attributes"
    },
    "package_response_object": {
      "allOf": [
        {
          "$ref": "#/$defs/package_minimal"
        },
        {
          "properties": {
            "declared_value": {
              "type": "object",
              "description": "Object that is used for booking an additional insurance at the carrier (if applicable)",
              "properties": {
                "amount": {
                  "type": "number",
                  "description": "The total amount of the goods value that an additional insurance should be booked for"
                },
                "currency": {
                  "type": "string",
                  "description": "The currency used. Currently only EUR is applicable"
                }
              }
            },
            "description": {
              "type": "string",
              "description": "if you're using UPS with service `returns` this is mandatory otherwise it's optional"
            },
            "type": {
              "type": "string",
              "description": "type of shipment you would like to book",
              "enum": [
                "books",
                "bulk",
                "letter",
                "parcel",
                "parcel_letter"
              ],
              "default": "parcel"
            }
          }
        }
      ]
    },
    "package_with_id": {
      "allOf": [
        {
          "$ref": "#/$defs/package_response_object"
        },
        {
          "properties": {
            "id": {
              "type": "string",
              "description": "A unique identifier for this package"
            },
            "tracking_events": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "timestamp": {
                    "type": "string",
                    "format": "date-time",
                    "description": "timestamp of when this event occured"
                  },
                  "location": {
                    "type": "string",
                    "description": "location of the package at this moment"
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "awaits_pickup_by_receiver",
                      "canceled",
                      "delayed",
                      "delivered",
                      "destroyed",
                      "exception",
                      "label_created",
                      "not_delivered",
                      "notification",
                      "out_for_delivery",
                      "picked_up",
                      "transit",
                      "unknown"
                    ],
                    "description": "A key that is describing the status"
                  },
                  "details": {
                    "type": "string",
                    "description": "Message the carrier sent to describe the package status"
                  }
                },
                "required": [
                  "timestamp",
                  "location",
                  "status",
                  "details"
                ]
              }
            }
          },
          "required": [
            "id"
          ]
        }
      ]
    },
    "pickup": {
      "type": "object",
      "description": "for some carriers a pickup has to be requested when creating a shipment",
      "properties": {
        "pickup_time": {
          "$ref": "#/$defs/pickup_time_object"
        },
        "pickup_address": {
          "$ref": "#/$defs/address_with_id"
        }
      }
    },
    "pickup_time_object": {
      "type": "object",
      "properties": {
        "earliest": {
          "type": "string",
          "format": "date-time",
          "description": "Earliest pickup date and time"
        },
        "latest": {
          "type": "string",
          "format": "date-time",
          "description": "Latest pickup date and time"
        }
      },
      "description": "defines a time window in which the carrier should pickup shipments",
      "required": [
        "earliest",
        "latest"
      ]
    },
    "service": {
      "type": "string",
      "enum": [
        "standard",
        "one_day",
        "one_day_early",
        "returns",
        "asendia_epaq_standard_economy",
        "asendia_epaq_standard_priority",
        "cargo_international_express",
        "dhl_europaket",
        "dhl_prio",
        "dhl_warenpost",
        "dpag_warenpost",
        "dpag_warenpost_signature",
        "dpag_warenpost_untracked",
        "gls_express_0800",
        "gls_express_0900",
        "gls_express_1000",
        "gls_express_1200",
        "ups_express_1200"
      ],
      "default": "standard",
      "description": "The service that should be used for the shipment."
    },
    "shipment": {
      "type": "object",
      "properties": {
        "carrier": {
          "$ref": "#/$defs/carrier_shipping"
        },
        "to": {
          "allOf": [
            {
              "$ref": "#/$defs/address"
            },
            {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "company": {
                      "type": "string",
                      "description": "name of the company"
                    }
                  },
                  "required": [
                    "company"
                  ]
                },
                {
                  "type": "object",
                  "properties": {
                    "last_name": {
                      "type": "string",
                      "description": "last_name of the person"
                    }
                  },
                  "required": [
                    "last_name"
                  ]
                }
              ]
            },
            {
              "description": "the receivers address"
            }
          ]
        },
        "from": {
          "allOf": [
            {
              "$ref": "#/$defs/address"
            },
            {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "company": {
                      "type": "string",
                      "description": "name of the company"
                    }
                  },
                  "required": [
                    "company"
                  ]
                },
                {
                  "type": "object",
                  "properties": {
                    "last_name": {
                      "type": "string",
                      "description": "last_name of the person"
                    }
                  },
                  "required": [
                    "last_name"
                  ]
                }
              ]
            },
            {
              "description": "If missing, the default sender address (if defined in your shipcloud account) will be used"
            }
          ]
        },
        "cover_address": {
          "allOf": [
            {
              "$ref": "#/$defs/address"
            },
            {
              "description": "Overwrites the sender address on the shipping label",
              "required": [
                "street",
                "street_no",
                "zip_code",
                "city"
              ]
            }
          ]
        },
        "service": {
          "$ref": "#/$defs/service"
        },
        "reference_number": {
          "type": "string",
          "description": "a reference number (max. 30 characters) that you want this shipment to be identified with. You can use this afterwards to easier find the shipment in the shipcloud.io backoffice"
        },
        "description": {
          "type": "string",
          "description": "text that describes the contents of the shipment. This parameter is mandatory if you're using UPS and the following conditions are true: from and to countries are not the same; from and/or to countries are not in the EU; from and to countries are in the EU and the shipments service is not `standard`. The parameter is also mandatory when using DHL Express as carrier."
        },
        "label": {
          "$ref": "#/$defs/label"
        },
        "notification_email": {
          "type": "string",
          "description": "email address that we should notify once there's an update for this shipment (usually the recipients')"
        },
        "incoterm": {
          "type": "string",
          "enum": [
            "ddp",
            "ddp_untaxed",
            "dap",
            "dap_cleared",
            "ddu",
            "ddu_cleared"
          ]
        },
        "billing": {
          "type": "object",
          "properties": {
            "transportation": {
              "type": "object",
              "description": "Determines, who will pay for transportation. This is applicable for domestic and international shipments",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "Providing the key that will determine, who will pay for transportation",
                  "enum": [
                    "receiver",
                    "sender",
                    "third_party"
                  ]
                },
                "account_number": {
                  "type": "string",
                  "description": "The account number that will be billed"
                },
                "zip_code": {
                  "type": "string",
                  "description": "The zip code / postalcode associated with the provided account number"
                },
                "country": {
                  "type": "string",
                  "description": "The country code associated with the provided account number"
                }
              },
              "required": [
                "type"
              ]
            },
            "duties_and_taxes": {
              "type": "object",
              "description": "Determines, who will pay for duties and taxes. This is only applicable for international shipments",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "Providing the key that will determine, who will pay for duties and taxes",
                  "enum": [
                    "receiver",
                    "sender",
                    "third_party"
                  ]
                },
                "account_number": {
                  "type": "string",
                  "description": "The account number that will be billed"
                },
                "zip_code": {
                  "type": "string",
                  "description": "The zip code / postalcode associated with the provided account number"
                },
                "country": {
                  "type": "string",
                  "description": "The country code associated with the provided account number"
                }
              },
              "required": [
                "type"
              ]
            }
          }
        },
        "additional_services": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "enum": [
                  "advance_notice",
                  "angel_de_delivery_date_time",
                  "asendia_bonus_tracking",
                  "cash_on_delivery",
                  "delivery_date",
                  "delivery_note",
                  "delivery_time",
                  "dhl_endorsement",
                  "dhl_gogreen",
                  "dhl_ident_check",
                  "dhl_named_person_only",
                  "dhl_no_neighbor_delivery",
                  "dhl_parcel_outlet_routing",
                  "dhl_preferred_neighbor",
                  "dpd_food",
                  "drop_authorization",
                  "gls_guaranteed24service",
                  "hazardous_goods",
                  "hermes_identservice",
                  "hermes_next_day",
                  "premium_international",
                  "saturday_delivery",
                  "ups_adult_signature",
                  "ups_carbon_neutral",
                  "ups_direct_delivery_only",
                  "ups_signature_required",
                  "visual_age_check"
                ],
                "description": "key to identify the additional service"
              },
              "properties": {
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Amount that should be payed (cash_on_delivery)"
                  },
                  "bank_account_holder": {
                    "type": "string",
                    "description": "Name of the person the bank account belongs to (cash_on_delivery)"
                  },
                  "bank_account_number": {
                    "type": "string",
                    "description": "IBAN (cash_on_delivery)"
                  },
                  "bank_code": {
                    "type": "string",
                    "description": "BIC/SWIFT (cash_on_delivery)"
                  },
                  "bank_name": {
                    "type": "string",
                    "description": "Name of the bank (cash_on_delivery)"
                  },
                  "currency": {
                    "type": "string",
                    "description": "Currency as uppercase ISO 4217 code (cash_on_delivery)"
                  },
                  "date": {
                    "type": "string",
                    "format": "date",
                    "description": "Date (angel_de_delivery_date_time, delivery_date"
                  },
                  "date_of_birth": {
                    "type": "string",
                    "format": "date",
                    "description": "A recipients date of birth (dhl_ident_check)"
                  },
                  "email": {
                    "type": "string",
                    "format": "email",
                    "description": "eMail address (advanced_notice)"
                  },
                  "first_name": {
                    "type": "string",
                    "description": "The persons first name (dhl_ident_check)"
                  },
                  "id_type": {
                    "type": "string",
                    "enum": [
                      "german_identity_card",
                      "german_passport",
                      "international_passport"
                    ],
                    "description": "Type of ID document that should be used for verifying (hermes_ident_check)"
                  },
                  "id_number": {
                    "type": "string",
                    "description": "Number of the ID document (hermes_ident_check)"
                  },
                  "language": {
                    "type": "string",
                    "description": "Language (in ISO-639-1 format) the customer should be notified in (advanced_notice)"
                  },
                  "last_name": {
                    "type": "string",
                    "description": "The persons last name (dhl_ident_check)"
                  },
                  "minimum_age": {
                    "type": "string",
                    "description": "Minimum age that should be checked (dhl_ident_check, visual_age_check)"
                  },
                  "phone": {
                    "type": "string",
                    "description": "Phone number that can be called for making the delivery (advanced_notice)"
                  },
                  "reference1": {
                    "type": "string",
                    "description": "Text that should be displayed as the reason for transfer (cash_on_delivery)"
                  },
                  "sms": {
                    "type": "string",
                    "description": "Phone number that can be texted for making the delivery (advanced_notice)"
                  },
                  "time_of_day_earliest": {
                    "type": "string",
                    "description": "Earliest pickup date and time (angel_de_delivery_date_time)"
                  },
                  "time_of_day_latest": {
                    "type": "string",
                    "description": "Latest pickup date and time(angel_de_delivery_date_time)"
                  }
                }
              }
            }
          },
          "required": [
            "name"
          ]
        },
        "pickup": {
          "$ref": "#/$defs/pickup"
        },
        "customs_declaration": {
          "$ref": "#/$defs/customs_declaration"
        },
        "order_id": {
          "type": "string",
          "description": "Identifier of a previously created order."
        },
        "returned_items": {
          "type": "array",
          "description": "List of items that get returned with this shipment",
          "items": {
            "type": "object",
            "properties": {
              "order_line_item_id": {
                "type": "string",
                "description": "UUID of the corresponding order line item within an order"
              },
              "quantity": {
                "type": "number",
                "description": "Number that defines how many items of this kind are in the shipment"
              },
              "reason_for_return": {
                "type": "string",
                "description": "A key that represents the reason why the item(s) will be returned",
                "enum": [
                  "delivery_too_late",
                  "delivery_wrong_product",
                  "garment_expectation_failed_style",
                  "garment_too_large",
                  "garment_too_long",
                  "garment_too_short",
                  "garment_too_small",
                  "ordered_choices",
                  "other",
                  "product_description_differing",
                  "product_expectation_failed_color",
                  "product_expectation_failed_material",
                  "product_expectation_failed_price",
                  "product_faulty"
                ]
              }
            }
          }
        },
        "create_shipping_label": {
          "type": "boolean",
          "description": "determines if a shipping label should be created at the carrier (this means you will be charged when using the production api key)"
        },
        "metadata": {
          "type": "object",
          "description": "here you can save additional data that you want to be associated with the shipment. Any combination of key-value pairs is possible"
        }
      },
      "required": [
        "carrier",
        "to"
      ]
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/shipcloud-shipment-response-object"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.