United States Postal Service · Schema
Domestic Package Request
Destination address of the recipient. Used in pricing as the destination ZIP Code™.
GovernmentPostal ServiceShippingLogisticsAddress ValidationPackage Tracking
Properties
| Name | Type | Description |
|---|---|---|
| imageInfo | object | Image Information |
| toAddress | object | |
| fromAddress | object | |
| senderAddress | object | |
| returnAddress | object | The address where the package should be returned to if it is deemed undeliverable or returned to sender. This address will be printed in the return address block of the label. Note: * The First and La |
| packageDescription | object | Package description |
| customsForm | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/usps/json-schema/usps-label-request-schema.json",
"title": "Domestic Package Request",
"description": "Destination address of the recipient. Used in pricing as the destination ZIP Code™.",
"x-generated": "2026-11-11",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/usps-domestic-labels-openapi.yml#/components/schemas/LabelRequest",
"required": [
"fromAddress",
"packageDescription",
"toAddress"
],
"type": "object",
"properties": {
"imageInfo": {
"description": "Image Information",
"allOf": [
{
"$ref": "#/$defs/ImageInfo"
},
{
"type": "object",
"additionalProperties": true,
"properties": {
"suppressPostage": {
"type": "boolean",
"description": "Indicates if postage is printed on the label. If omitted then the request will be defaulted to true.\n",
"default": true
},
"suppressMailDate": {
"type": "boolean",
"description": "Indicates if the `mailingDate` is printed on the label. If omitted then the value will default to true.\n\nNote:\n * Mail Date cannot be suppressed on Domestic Customs Forms. The customs form will always display the Date of Mailing.\n * The date the label was created cannot be suppressed and will always print on the label.\n",
"default": true
},
"returnLabel": {
"type": "boolean",
"description": "Indicates if a pay on use returns label is requested along with the outbound label. If omitted then the request will be defaulted to false.\n\nThe mail class of the generated return label will be based off of the mail class provided in `packageDescription.mailClass`.\n* Priority Mail Express Return Service label will be generated with `packageDescription.mailClass` of `PRIORITY_MAIL_EXPRESS`.\n* Priority Mail Return Service label will be generated with `packageDescription.mailClass` of `PRIORITY_MAIL`.\n* USPS Ground Advantage Return Service label will be generated with all other `packageDescription.mailClass` enumerations.\n\nNote:\n * An `imageType` value of `LABEL_BROKER` is currently not supported when `returnLabel` is set to true.\n * A `packageDescription.mailClass` value of `USPS_CONNECT_MAIL` is currently not supported when `returnLabel` is set to true.\n * `returnLabel` cannot be set to `true` when generating customs forms.\n * `returnLabel` is not available when Extra Service Code `415 - USPS Label Delivery` is used.",
"default": false
},
"packageNumber": {
"maximum": 9999,
"minimum": 1,
"type": "integer",
"description": "The package number in a series such as 1 of 3, 2 of 3, etc. If `totalPackages` is populated then `packageNumber` is required. `packageNumber` must be less than or equal to `totalPackages`. This feature is not supported on the 2x7 or 4x4 label format.\n\nNote:\n* When `packageNumber` is provided with a Destination Entry Facility, the Drop-Off Location will not be displayed on the label."
},
"totalPackages": {
"maximum": 9999,
"minimum": 1,
"type": "integer",
"description": "The total number of packages in a series such as 999. If packageNumber is populated then totalPackages is required. totalPackages must be greater than or equal to packageNumber. This feature is not supported by the 2x7 or 4x4 label format."
}
}
}
],
"additionalProperties": true
},
"toAddress": {
"$ref": "#/$defs/DomesticLabelToAddress"
},
"fromAddress": {
"$ref": "#/$defs/DomesticLabelAddress"
},
"senderAddress": {
"$ref": "#/$defs/DomesticLabelSenderAddress"
},
"returnAddress": {
"description": "The address where the package should be returned to if it is deemed undeliverable or returned to sender. This address will be printed in the return address block of the label.\n\nNote:\n* The First and Last Name or Firm Name are always required.\n",
"allOf": [
{
"$ref": "#/$defs/DomesticLabelAddress"
}
]
},
"packageDescription": {
"description": "Package description",
"oneOf": [
{
"$ref": "#/$defs/DomesticPackageDescription"
},
{
"$ref": "#/$defs/DomesticPackageDescriptionWithoutRateIndicator"
}
]
},
"customsForm": {
"$ref": "#/$defs/DomesticCustomsForm"
}
},
"additionalProperties": false,
"$defs": {
"Address": {
"title": "Address",
"type": "object",
"properties": {
"streetAddress": {
"maxLength": 50,
"minLength": 1,
"type": "string",
"description": "The number of a building along with the name of the road or street on which it is located."
},
"streetAddressAbbreviation": {
"maxLength": 50,
"minLength": 0,
"type": "string",
"description": "This is the abbreviation of street address line for the address.",
"readOnly": true
},
"secondaryAddress": {
"maxLength": 50,
"type": "string",
"description": "The secondary unit designator, such as apartment(APT) or suite(STE) number, defining the exact location of the address within a building. For more information please see [Postal Explorer](https://pe.usps.com/text/pub28/28c2_003.htm)."
},
"cityAbbreviation": {
"type": "string",
"description": "This is the abbreviation of city name for the address.",
"readOnly": true
}
},
"additionalProperties": true,
"description": "Address fields standard to all locations."
},
"Addressee": {
"title": "Addressee",
"type": "object",
"properties": {
"firstName": {
"maxLength": 50,
"minLength": 1,
"type": "string",
"description": "First Name corresponding to the address."
},
"lastName": {
"maxLength": 50,
"minLength": 1,
"type": "string",
"description": "Last Name corresponding to the address."
},
"firm": {
"maxLength": 50,
"minLength": 0,
"type": "string",
"description": "Firm/business name corresponding to the address."
}
},
"additionalProperties": true,
"description": "Fields used to identity the entity receiving a mail piece or package"
},
"BaseDomesticPackageDescription": {
"title": "Package Description",
"additionalProperties": true,
"allOf": [
{
"$ref": "#/$defs/PackageDescription"
},
{
"required": [
"destinationEntryFacilityType",
"height",
"length",
"mailClass",
"mailingDate",
"processingCategory",
"weight",
"width"
],
"type": "object",
"properties": {
"mailClass": {
"type": "string",
"description": "The mail service requested.\n\nNote:\n- `PARCEL_SELECT` with a `destinationEntryFacilityType` of `NONE` will convert to `USPS_GROUND_ADVANTAGE`.\n- `PARCEL_SELECT_LIGHTWEIGHT` is deprecated and will convert to `PARCEL_SELECT`.\n- `FIRST-CLASS_PACKAGE_SERVICE` is deprecated and will convert to `USPS_GROUND_ADVANTAGE`.\n- Certain mail classes, such as `MEDIA_MAIL`, `BOUND_PRINTED_MATTER`, and `LIBRARY_MAIL`, have eligibility rules on what can be mailed using that service. For more details on these mail classes, please visit [What are Package Services?](https://faq.usps.com/s/article/What-are-Package-Services).\n- The Heavy Printed Matter product is supported with `MARKETING_MAIL_PARCELS`. To create Heavy Printed Matter labels, the `rateIndicator` should be set to `PR` or `NP` for Presorted or Nonpresorted USPS Marketing Mail Parcels Heavy Printed Matter or to `PN` or `NN` for Nonprofit Presorted or Nonpresorted USPS Marketing Mail Parcels Heavy Printed Matter respectively.\n",
"enum": [
"PARCEL_SELECT",
"PARCEL_SELECT_LIGHTWEIGHT",
"USPS_CONNECT_LOCAL",
"USPS_CONNECT_REGIONAL",
"USPS_CONNECT_MAIL",
"USPS_GROUND_ADVANTAGE",
"PRIORITY_MAIL_EXPRESS",
"PRIORITY_MAIL",
"FIRST-CLASS_PACKAGE_SERVICE",
"LIBRARY_MAIL",
"MEDIA_MAIL",
"BOUND_PRINTED_MATTER",
"MARKETING_MAIL_PARCELS"
]
},
"processingCategory": {
"type": "string",
"description": "Value designates if shipment is `MACHINABLE`, `NONSTANDARD`, `LETTERS`, or `FLATS`.\n\nNote:\n* When requesting the mail class `USPS_CONNECT_MAIL`, users are required to use a processing category of `FLATS`.\n* The processing category `LETTERS` is only valid for mail classes `PRIORITY_MAIL` and `PRIORITY_MAIL_EXPRESS` for outbound shipments.\n* The processing category `FLATS` is not valid for mail class `USPS_GROUND_ADVANTAGE`.\n* `IRREGULAR` is deprecated and will convert to `NONSTANDARD` as of 01/19/2025.\n* `NON_MACHINABLE` is deprecated and will convert to `NONSTANDARD` as of 01/19/2025.",
"enum": [
"LETTERS",
"FLATS",
"MACHINABLE",
"IRREGULAR",
"NON_MACHINABLE",
"NONSTANDARD"
]
},
"destinationEntryFacilityType": {
"type": "string",
"description": "Types of Facilities:\n* `NONE` - Translate to Destination Rate Indicator N\n* `DESTINATION_NETWORK_DISTRIBUTION_CENTER` - Translate to Destination Rate Indicator B\n* `DESTINATION_SECTIONAL_CENTER_FACILITY` - Translate to Destination Rate Indicator S\n* `DESTINATION_DELIVERY_UNIT` - Translate to Destination Rate Indicator D\n* `DESTINATION_SERVICE_HUB` - Translate to Destination Rate Indicator H\n* `DESTINATION_REGIONAL_PROCESSING_DISTRIBUTION_CENTER` - Translate to Destination Rate Indicator B\n\nNote:\n* If any value other than `NONE` is selected, a destinationEntryFacilityAddress is required.\n* The destinationEntryFacilityAddress must be a valid facility to drop your package\n* The destination entry facility type must be set to `NONE` when there is a value provided for the 'inductionZipCode' field\n* Effective 01/19/2025: `DESTINATION_DELIVERY_UNIT` is the only valid enumeration when using the 'USPS_CONNECT_MAIL' mail class\n* Effective 01/18/2026: `DESTINATION_NETWORK_DISTRIBUTION_CENTER` with `PARCEL_SELECT` is no longer eligible.\n* Effective 01/18/2026: (NSA Only) `DESTINATION_REGIONAL_PROCESSING_DISTRIBUTION_CENTER` with `PARCEL_SELECT` is available as an option.",
"enum": [
"NONE",
"DESTINATION_NETWORK_DISTRIBUTION_CENTER",
"DESTINATION_SECTIONAL_CENTER_FACILITY",
"DESTINATION_DELIVERY_UNIT",
"DESTINATION_SERVICE_HUB",
"DESTINATION_REGIONAL_PROCESSING_DISTRIBUTION_CENTER"
]
},
"destinationEntryFacilityAddress": {
"$ref": "#/$defs/DomesticAddress"
},
"packageOptions": {
"allOf": [
{
"$ref": "#/$defs/DomesticPackageOptions"
},
{
"type": "object",
"properties": {
"immediateManifest": {
"type": "boolean",
"default": false,
"description": "Setting this field to `true` will send electronic data to Postal systems within 15 minutes of label creation.\n\nIf invoked, this label <u><strong>cannot</strong></u> be canceled. Instead, one must request an unused label refund – which may be subject to an admin fee. \n\nDepending on time of label creation, your packages could be charged same day instead of next day.\n"
},
"originalPackage": {
"required": [
"originalConstructCode",
"originalTrackingNumber"
],
"type": "object",
"description": "* Note: packageOptions.originalPackage fields cannot be used in combination with packageOptions.returnReceiptTracking.\n",
"properties": {
"originalTrackingNumber": {
"maxLength": 34,
"minLength": 22,
"type": "string",
"description": "The tracking number associated with the package before it was over labeled.\nFor accurate tracking, this field requires a concatenated string consisting of the routingInformation and trackingNumber from the original label response.\n"
},
"originalConstructCode": {
"maxLength": 3,
"minLength": 3,
"type": "string",
"description": "A 3-character code to identify the construct of the Original Label Tracking Number"
}
}
}
},
"additionalProperties": true
}
]
},
"customerReference": {
"maxItems": 4,
"minItems": 0,
"type": "array",
"description": "Used for shippers to print a value on a label and included in the Shipping Services File (SSF).\n\nNote:\n * Customer Reference #3-4 are only supported with label types `4X5LABEL`, `4X6LABEL`, and `6X4LABEL`.\n * Customer Reference #3-4 cannot be used with a customs form.\n * Customer Reference #3-4 will not be added to the SSF.\n * Customer Reference will not display with `imageInfo.brandingImageFormat` value of `RECTANGLE`.\n * When Customer Reference #4 is provided with a Destination Entry Facility, the Drop-Off Location will not be displayed on the label.",
"items": {
"$ref": "#/$defs/DomesticCustomerReference"
}
},
"extraServices": {
"maxItems": 5,
"minItems": 0,
"type": "array",
"description": "Extra Service Code requested.\n* 365 - Global Direct Entry\n* 415 - USPS Label Delivery\n* 480 - Tracking Plus 6 Months\n* 481 - Tracking Plus 1 Year\n* 482 - Tracking Plus 3 Years\n* 483 - Tracking Plus 5 Years\n* 484 - Tracking Plus 7 Years\n* 485 - Tracking Plus 10 Years\n* 486 - Tracking Plus Signature 3 Years\n* 487 - Tracking Plus Signature 5 Years\n* 488 - Tracking Plus Signature 7 Years\n* 489 - Tracking Plus Signature 10 Years\n* 810 - HAZMAT Air Eligible Ethanol Package\n* 811 - HAZMAT Class 1 - Toy Propellant/Safety Fuse Package\n* 812 - HAZMAT Class 3 – Flammable Liquid Package\n* 813 - HAZMAT Class 7 - Radioactive Materials Package\n* 814 - HAZMAT Class 8 - Corrosive Materials Package\n* 815 - HAZMAT Class 8 - Nonspillable Wet Battery Package\n* 816 - HAZMAT Class 9 - Lithium Battery Marked - Ground Only Package\n* 817 - HAZMAT Class 9 - Lithium Battery - Returns Package\n* 818 - HAZMAT Class 9 - Lithium batteries, marked package\n* 819 - HAZMAT Class 9 - Dry Ice Package\n* 820 - HAZMAT Class 9 - Lithium batteries, unmarked package\n* 821 - HAZMAT Class 9 - Magnetized Materials Package\n* 822 - HAZMAT Division 4.1 – Flammable Solids or Safety Matches Package\n* 823 - HAZMAT Division 5.1 - Oxidizers Package\n* 824 - HAZMAT Division 5.2 - Organic Peroxides Package\n* 825 - HAZMAT Division 6.1 – Toxic Materials Package\n* 826 - HAZMAT Division 6.2 – Infectious Substances Package\n* 827 - HAZMAT Excepted Quantity Provision Package\n* 828 - HAZMAT Ground Only\n* 829 - HAZMAT ID8000 Consumer Commodity Package\n* 830 - HAZMAT Lighters Package\n* 831 - HAZMAT LTD QTY Ground Package\n* 832 - HAZMAT Small Quantity Provision Package\n* 857 - Hazardous Material\n* 910 - Certified Mail\n* 911 - Certified Mail Restricted Delivery\n* 912 - Certified Mail Adult Signature Required\n* 913 - Certified Mail Adult Signature Restricted Delivery\n* 920 - USPS Tracking\n* 921 - Signature Confirmation\n* 922 - Adult Signature Required 21 or Over\n* 923 - Adult Signature Restricted Delivery 21 or Over\n* 924 - Signature Confirmation Restricted Delivery\n* 925 - Priority Mail Express Merchandise Insurance\n* 930 - Insurance <= $500\n* 931 - Insurance > $500\n* 934 - Insurance Restricted Delivery\n* 955 - Return Receipt\n* 957 - Return Receipt Electronic\n* 981 - Signature Requested (PRIORITY_MAIL_EXPRESS only)\n* 986 - PO to Addressee (PRIORITY_MAIL_EXPRESS only)\n* 991 - Sunday Delivery\n\nNote:\n* When the extra service code \"930\" is provided in the request, if the item value is over $500, \"930\" will automatically be replaced with \"931\" - Insurance (Greater than $500).\n* USPS Label Delivery (Print and Deliver, extra service code \"415\"): When requesting this service, no images will be returned in the API response. The label and receipt will be printed and mailed to the `fromAddress` provided. The mailed label will always include a receipt on the page. This service is not available at all locations.\n* Some service codes require a combination with extra services such as \"955\" and \"957\". For all valid combinations, visit [https://postalpro.usps.com/IMPB_Service_Type_Codes](https://postalpro.usps.com/IMPB_Service_Type_Codes).",
"items": {
"$ref": "#/$defs/ExtraService"
}
},
"mailingDate": {
"type": "string",
"description": "The local date on which the package will be mailed. If the time is not provided, it will be defaulted to 10:00 p.m. local time. Local time will be based on the `destinationEntryFacilityAddress.ZIPCode` or `inductionZIPCode` when provided, otherwise `fromAddress.ZIPCode` will be used as the origin ZIP Code.\n",
"oneOf": [
{
"$ref": "#/$defs/MailingDate"
},
{
"$ref": "#/$defs/MailingDateTime"
}
]
},
"carrierRelease": {
"type": "boolean",
"description": "Indicates whether recipients authorize a carrier to leave a shipment if no one is available to receive it at the time of delivery. Priority Mail Express® shipments or items requiring a signature at delivery are not eligible (e.g. Signature Confirmation, Insurance > $500).\n\nNote:\n * Carrier Release is currently not supported when `holdForPickup` is set to `true`.\n * Carrier Release is currently not supported with mail class values of `PRIORITY_MAIL`, `PRIORITY_MAIL_EXPRESS`, or `USPS_GROUND_ADVANTAGE`.\n * Carrier Release is currently not supported with `extraServices` `910`, `911`, `912`, `913`, `921`, `922`, `923`, `924`, `925`, `930`, `931`, `934`, `955`, or `981`.\n"
},
"physicalSignatureRequired": {
"type": "boolean",
"description": "Indicates the method for the signature that will be used when signing for the package. Required when requesting signature `extraServices` including `910`, `911`, `912`, `913`, `921`, `922`, `923`, `924`, `925`, `931`, `934`, `955`, and `981`. Additionally required when requesting `extraServices` code `930` with a `packageValue` greater than $500.\n\nWhen `physicalSignatureRequired` is `false`, a USPS Electronic Signature Online (USPS eSOL) may be used to sign for the item. For more information on USPS eSOL, please visit the [USPS eSOL FAQ](https://faq.usps.com/s/article/USPS-Electronic-Signature-Online).\n\nWhen `physicalSignatureRequired` is `true`, the recipient will be required to physically sign for the item. A USPS eSOL on record will not be accepted as a valid signature for the item.\n\nNotes:\n * Regardless of the boolean, the printed label will still display \"SIGNATURE REQUIRED\" if a signature service is included with the label.\n * `carrierRelease` is not eligible to be used with `physicalSignatureRequired`.\n"
},
"inductionZIPCode": {
"$ref": "#/$defs/InductionZIPCode"
},
"serialNumberFormat": {
"$ref": "#/$defs/SerialNumberFormat"
},
"shipperVisibilityMethod": {
"type": "string",
"description": "When generating labels for a third party shipper the label provider must capture and provide contact details of the individual or entity to whom they provide the label. There are two methods for reporting shipper information to USPS:\n\n1. The label provider creates a unique USPS Mailer ID (MID) using the name, validated address, phone, and email contact information of each shipper. When using this method the Mailer ID should be submitted in the MID field in the LABEL_OWNER role when generating the payment authorization token and this field should be populated with 'MID_INFORMATION'\n\n2. An alternative method allows for the label provider to assign a unique alphanumeric value known as a platformUserId to each shipper and to report the platformUserId together with the required shipper contact details. When using this method the shipper contact details are required in the `senderAddress` object (including `streetAddress`, `city`, `state`, `ZIPCode`, `phone`, `email`, `platformUserId` & `firstName`/`lastName` or `firm`) and this field should be populated with 'SENDER_INFORMATION'.\n",
"enum": [
"SENDER_INFORMATION",
"MID_INFORMATION"
]
},
"mailOwnerMID": {
"pattern": "^(\\d{6}|\\d{9})$",
"type": "string",
"description": "This is the mailer ID associated with the mail owner for this label This provides an additional copy of the scan extract file to the MID's outbound folder."
},
"logisticsManagerMID": {
"pattern": "^(\\d{6}|\\d{9})$",
"type": "string",
"description": "This is the mailer ID associated with the logistics manager for this label This provides an additional copy of the scan extract file to the MID's outbound folder."
},
"nonprofit": {
"$ref": "#/$defs/Nonprofit"
}
},
"additionalProperties": true,
"description": "Package characteristics used to price the shipment including requested mail class, weight, dimensions, and more.\n"
}
]
},
"Container": {
"title": "Container",
"required": [
"containerID",
"sortType"
],
"type": "object",
"properties": {
"containerID": {
"maxLength": 34,
"type": "string",
"description": "Unique identifier for a container."
},
"sortType": {
"type": "string",
"description": "Sort Types requested.",
"enum": [
"TRUCK_BEDLOAD",
"OPEN_DISTRIBUTION_FULL_POSTAL_PAKS",
"OPEN_DISTRIBUTE_EMM_TRAY_BOX",
"OPEN_DISTRIBUTE_FULL_TRAY_BOX",
"OPEN_DISTRIBUTE_HALF_TRAY_BOX",
"OPEN_DISTRIBUTE_HALF_POSTAL_PAKS",
"OPEN_DISTRIBUTE_PALLET",
"OPEN_DISTRIBUTE_FLAT_TUB_TRAY_BOX",
"PALLET",
"RECEPTACLE",
"SACK"
]
}
},
"additionalProperties": false,
"description": "containers"
},
"CustomerReference": {
"title": "Customer Reference",
"description": "Customer Reference",
"type": "object",
"properties": {
"referenceNumber": {
"maxLength": 30,
"minLength": 1,
"type": "string",
"description": "A user-assigned number for internal use, such as Order, Invoice, Customer, or Return Merchandise Authorization Numbers. \n\nNote:\n* Domestic outbound label and return label with `labelType` of `4X6LABEL`, `4X5LABEL`, and `6X4LABEL` will display the entire value.\n* Return label with `labelType` of `4X6LABEL` with `brandingImageFormat` of `TWO_SQUARES` will show the first 25 characters.\n* These values will also be included in the Shipping Services File.\n"
}
},
"additionalProperties": true
},
"CustomsForm": {
"title": "Customs Form",
"type": "object",
"properties": {
"contentComments": {
"maxLength": 25,
"type": "string",
"description": "Required when customContentType is OTHER."
},
"restrictionType": {
"type": "string",
"description": "Restriction Types\n * QUARANTINE\n * SANITARY_INSPECTION\n * PHYTOSANITARY_INSPECTION\n * OTHER",
"enum": [
"QUARANTINE",
"SANITARY_INSPECTION",
"PHYTOSANITARY_INSPECTION",
"OTHER"
]
},
"restrictionComments": {
"maxLength": 25,
"type": "string",
"description": "Restriction Comments. Required when `restrictionType`=`OTHER`."
},
"AESITN": {
"maxLength": 35,
"minLength": 1,
"type": "string",
"description": "AES/ITN Exemption should be populated with the electronic export internal transaction number (if required), or the appropriate Exemption/Exclusion Legend.\n\n* **AES - Automated Export System / ITN - Internal Transaction Number**\\\n The [internal transaction number (ITN)](https://pe.usps.com/text/imm/immc5_010.htm) is a 14-digit number that corresponds to an export transaction in the Automated Export System. It serves as proof that an exporter met his or her legal obligation to inform the U.S. government about the details of an export shipment.\n* **EEL- Exemptions, Exclusions, Legend**\\\n An [AES exemption](https://pe.usps.com/text/imm/immc5_012.htm) is an instance in which you would not have to file in AES to get the 14-digit ITN. Instead of the ITN, you would enter the exemption’s section in the U.S. Foreign Trade Regulations on the export documentation where you would otherwise put the ITN.\n\nSample - `NO EEI 30.37(a)`: Shipments valued at $2,500 or less.\n"
},
"invoiceNumber": {
"maxLength": 15,
"minLength": 1,
"type": "string",
"description": "Invoice Number"
},
"licenseNumber": {
"maxLength": 16,
"minLength": 1,
"type": "string",
"description": "License Number"
},
"certificateNumber": {
"maxLength": 12,
"minLength": 1,
"type": "string",
"description": "Certificate Number"
}
},
"additionalProperties": true,
"description": "Additional details required when creating shipments originating from or destinating to MPOs, APOs, FPOs, or DPOs (Military, Army, Fleet, and Diplomatic Post Offices) and some Military and U.S. Possessions, Territories, and Freely Associated States (PTFAS).\nRequired only if a customs form is required based on Customs Content Type and Weight.\n\nNote:\n - Mail addressed to military and diplomatic post offices overseas is subject to certain conditions or restrictions of mailing regarding content, preparation, and handling. The APO/FPO/DPO table may be found on the most recent [postal bulletin](https://about.usps.com/resources/postal-bulletin.htm) found under `Pull-Out information` -> `Other Information` -> `Overseas Military/Diplomatic Mail`"
},
"DomesticAddress": {
"title": "Domestic Address",
"additionalProperties": true,
"description": "Address fields for US locations",
"allOf": [
{
"$ref": "#/$defs/Address"
},
{
"type": "object",
"properties": {
"city": {
"maxLength": 28,
"minLength": 1,
"type": "string",
"description": "This is the city name of the address."
},
"state": {
"$ref": "#/$defs/State"
},
"ZIPCode": {
"pattern": "^\\d{5}$",
"type": "string",
"description": "This is the 5-digit ZIP code."
},
"ZIPPlus4": {
"pattern": "^\\d{4}$",
"type": [
"string",
"null"
],
"description": "This is the 4-digit component of the ZIP+4 code. Using the correct Zip+4 reduces the number of times your mail is handled and can decrease the chance of a misdelivery or error."
},
"urbanization": {
"maxLength": 96,
"type": "string",
"description": "An area, sector, or residential development within a geographic area (typically used for addresses in Puerto Rico)."
}
},
"additionalProperties": true
}
]
},
"DomesticCustomerReference": {
"title": "Customer Reference",
"allOf": [
{
"$ref": "#/$defs/CustomerReference"
},
{
"type": "object",
"properties": {
"printReferenceNumber": {
"type": "boolean",
"default": false,
"description": "Indicates whether or not to print the customer reference number on the label in the Additional Information and User Segment.\n\nNote: \n- Customer Reference numbers are not displayed on label types `2X7LABEL` or `4X4LABEL`.\n- Customer Reference numbers are not displayed with Customs Forms.\n"
}
},
"additionalProperties": true
}
]
},
"DomesticCustomsForm": {
"title": "Customs Form",
"description": "Domestic Customs Form",
"allOf": [
{
"$ref": "#/$defs/CustomsForm"
},
{
"required": [
"contents",
"customsContentType"
],
"type": "object",
"properties": {
"customsContentType": {
"type": "string",
"description": "Specifies the content of the package or envelope.\n * MERCHANDISE\n * GIFT\n * DOCUMENT\n * COMMERCIAL_SAMPLE\n * RETURNED_GOODS\n * OTHER\n * HUMANITARIAN_DONATIONS\n * DANGEROUS_GOODS\n",
"enum": [
"MERCHANDISE",
"GIFT",
"DOCUMENT",
"COMMERCIAL_SAMPLE",
"RETURNED_GOODS",
"OTHER",
"HUMANITARIAN_DONATIONS",
"DANGEROUS_GOODS"
]
},
"importersReference": {
"maxLength": 40,
"type": "string",
"description": "Importers Reference. The Importer’s Reference might be a tax code, importer code, or VAT number used for sales tax."
},
"importersContact": {
"maxLength": 30,
"type": "string",
"description": "Importers Contact. Enter, if known, the Importer’s telephone number, fax number, or email address, as such information might facilitate customs clearance or delivery."
},
"exportersReference": {
"maxLength": 40,
"type": "string",
"description": "Exporters Reference. The Exporter’s Reference might be a tax code, importer code, or VAT number used for sales tax."
},
"exportersContact": {
"maxLength": 30,
"type": "string",
"description": "Exporters Contact. Enter, if known, the Exporter’s telephone number, fax number, or email address, as such information might facilitate customs clearance or delivery."
},
"contents": {
"minItems": 1,
"maxItems": 30,
"type": "array",
"description": "Details of the contents of the package. The first five items will print o
# --- truncated at 32 KB (74 KB total) ---
# Full source: https://artifacts.apis.io/usps/json-schema/usps-label-request-schema.json
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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/usps-label-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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.