United States Postal Service · Schema
Campaign
GovernmentPostal ServiceShippingLogisticsAddress ValidationPackage Tracking
Properties
| Name | Type | Description |
|---|---|---|
| campaignID | string | |
| campaignType | string | Identifier on how the campaign should be applied to mail pieces * A01 (Non-Sequential or NON-SEQ): Individual barcodes added to campaign after submission * A02 (Mailer ID or MID): All mailpieces with |
| mailpieceShape | string | Identifier on what types of mail pieces the campaign should be applied to * LT (Letter) * CD (Card) * FL (Flat) |
| MID | string | The Mailer ID for the campaign - this field will be used to match IMBs to MID and SEQ type campaigns. If an IMB has the Mailer ID (MID) associated with an active MID/SEQ campaign, it is eligible to be |
| submitterName | string | The campaign submitter's Name. |
| submitterCRID | string | The campaign submitter's Customer Registration ID (CRID). |
| mailOwnerCRID | string | Customer Registration ID (CRID) of the Mail Owner associated with the Informed Delivery campaign. |
| mailOwnerName | string | Name of the Mail Owner associated with the Informed Delivery campaign. |
| campaignCode | string | User defined field that describes the campaign being created. This field is put into the campaign reports created for the campaign. |
| campaignTitle | string | User defined field that describes the campaign being created. This field is put into the campaign reports created for the campaign. |
| brandDisplayName | string | User defined field that is placed on Informed Delivery's UIs when campaign is displayed. |
| startDate | string | First day campaign will be displayed |
| endDate | string | Last day campaign will be displayed |
| startSerial | string | The lower limit of the serial range for SEQ type campaigns. This field is required for SEQ campaigns only and is not allowed for submission for any other campaign types. |
| endSerial | string | The upper limit of the serial range for SEQ type campaigns. This field is required for SEQ campaigns only and is not allowed for submission for any other campaign types. |
| targetUrl | string | The URL that users are redirected to when clicking on the Ridealong image or Learn More link for a campaign. This field is required. |
| campaignSource | string | Gives information on system that was originally used to create campaign (e.g. API, PO!, MCP, Admin Console). This field will not update if campaign is subsequently edited or cancelled. |
| hasUrlParams | boolean | An indicator dictating whether a campaign is eligible for MID and Serial Number parameters to be appended to the end of the Target URL for tracking purposes. By default, the MID and Serial Number para |
| isShareable | boolean | An indicator dictating whether a campaign is eligible for Social Sharing. By default, mail campaigns will be displayed alongside options to share the campaign to various social media platforms. If a m |
| postalOneSaturationJobID | string | A PostalOne! generated unique identifier for a saturation type campaign. This field should not be used for NON-SEQ, MID, or SEQ campaigns. |
| rideAlong | string | The image that is displayed below the replacement or mailpiece image for mailpieces matched with a mail campaign. When clicked, this image will take users to the Target URL of the campaign. This field |
| replacementImage | string | The image that is displayed instead of the mailpiece image for mailpieces matched with a mail campaign. This field is required if the Campaign Shape Type is 'FL', otherwise this field is optional. |
| addBarcode | boolean | Boolean that gives information on whether a campaign is eligible for having individual mailpieces added to it. This flag will be true only if the campaign has a NON-SEQ campaign type and an End Date i |
| barcodeCount | number | Number of mailpieces associated with the campaign. The number will only get greater than 0 for NON-SEQ campaigns. |
| cancel | boolean | Boolean that gives information on whether a campaign is eligible for cancellation. This flag will be true only if the campaign is in an Active status. |
| createdDatetime | string | Timestamp of initial campaign creation. This timestamp will be returned in UTC. |
| delete | boolean | Boolean that gives information on whether a campaign is eligible for cancellation. This flag will be true only if the campaign is in a Submitted, Draft, or Inactive status. |
| fullEdit | boolean | Boolean that gives information on whether a campaign is eligible for edit inclusive of the campaign's MID. This flag will be true only if the campaign is in a Submitted and is not a NON-SEQ campaign w |
| lastModifiedDatetime | string | Timestamp of last update made to campaign, inclusive of status changes that occur when a campaign activates or completes. This timestamp will be returned in UTC. |
| lastModifiedSource | string | Gives information on system that was used to make last update to campaign (e.g. API, PO!, MCP, Admin Console). This field will update each time a campaign is created, edited, or cancelled. |
| lastModifiedUsername | string | Gives information on Cust Reg user name associated with last update to campaign. This field will update each time a campaign is created, edited, or cancelled. |
| limitedEdit | boolean | Boolean that gives information on whether a campaign is eligible for edit, not inclusive of the campaign's MID. This flag will be true only if the campaign is in a Submitted status, is a NON-SEQ campa |
| noEdit | boolean | Boolean that gives information on whether a campaign is not eligible for edit. This flag will be true if the campaign has an Active, Complete, Cancelled, or Deleted status. |
| status | string | Status of campaign - possible values include Submitted, Active, Complete, Inactive, Draft, Cancelled, and Deleted |
| submittedDatetime | string | Timestamp of initial campaign submission. This timestamp will be returned in UTC. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/usps/json-schema/usps-campaign-schema.json",
"title": "Campaign",
"x-generated": "2026-11-11",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/usps-informed-delivery-mail-campaigns-openapi.yml#/components/schemas/Campaign",
"required": [
"MID",
"brandDisplayName",
"campaignCode",
"campaignTitle",
"campaignType",
"endDate",
"mailOwnerCRID",
"mailOwnerName",
"mailpieceShape",
"rideAlong",
"startDate",
"submitterName",
"targetUrl"
],
"type": "object",
"properties": {
"campaignID": {
"type": "string",
"readOnly": true
},
"campaignType": {
"type": "string",
"description": "Identifier on how the campaign should be applied to mail pieces\n * A01 (Non-Sequential or NON-SEQ): Individual barcodes added to campaign after submission\n * A02 (Mailer ID or MID): All mailpieces with given Mailer ID added to campaign\n * A03 (Sequential or SEQ): All mailpieces with given Mailer ID and serial range added to campaign\n * A04 (Saturation or SAT): Mailpieces will be matched to saturation pieces"
},
"mailpieceShape": {
"type": "string",
"description": "Identifier on what types of mail pieces the campaign should be applied to\n * LT (Letter)\n * CD (Card)\n * FL (Flat)"
},
"MID": {
"type": "string",
"description": "The Mailer ID for the campaign - this field will be used to match IMBs to MID and SEQ type campaigns. If an IMB has the Mailer ID (MID) associated with an active MID/SEQ campaign, it is eligible to be displayed with the campaign's image and Target URL."
},
"submitterName": {
"type": "string",
"description": "The campaign submitter's Name."
},
"submitterCRID": {
"type": "string",
"description": "The campaign submitter's Customer Registration ID (CRID).",
"readOnly": true
},
"mailOwnerCRID": {
"type": "string",
"description": "Customer Registration ID (CRID) of the Mail Owner associated with the Informed Delivery campaign."
},
"mailOwnerName": {
"type": "string",
"description": "Name of the Mail Owner associated with the Informed Delivery campaign."
},
"campaignCode": {
"type": "string",
"description": "User defined field that describes the campaign being created. This field is put into the campaign reports created for the campaign."
},
"campaignTitle": {
"type": "string",
"description": "User defined field that describes the campaign being created. This field is put into the campaign reports created for the campaign."
},
"brandDisplayName": {
"type": "string",
"description": "User defined field that is placed on Informed Delivery's UIs when campaign is displayed."
},
"startDate": {
"type": "string",
"description": "First day campaign will be displayed",
"format": "date"
},
"endDate": {
"type": "string",
"description": "Last day campaign will be displayed",
"format": "date"
},
"startSerial": {
"type": "string",
"description": "The lower limit of the serial range for SEQ type campaigns. This field is required for SEQ campaigns only and is not allowed for submission for any other campaign types."
},
"endSerial": {
"type": "string",
"description": "The upper limit of the serial range for SEQ type campaigns. This field is required for SEQ campaigns only and is not allowed for submission for any other campaign types."
},
"targetUrl": {
"type": "string",
"description": "The URL that users are redirected to when clicking on the Ridealong image or Learn More link for a campaign. This field is required."
},
"campaignSource": {
"type": "string",
"description": "Gives information on system that was originally used to create campaign (e.g. API, PO!, MCP, Admin Console). This field will not update if campaign is subsequently edited or cancelled.",
"readOnly": true
},
"hasUrlParams": {
"type": "boolean",
"description": "An indicator dictating whether a campaign is eligible for MID and Serial Number parameters to be appended to the end of the Target URL for tracking purposes. By default, the MID and Serial Number parameters for a given mailpiece will be added to end of the Target URL that users are taken to upon clicking on a campaign. If a mailer opts out of this feature, then these MID and Serial Number fields will not be appended to the campaign's Target URL."
},
"isShareable": {
"type": "boolean",
"description": "An indicator dictating whether a campaign is eligible for Social Sharing. By default, mail campaigns will be displayed alongside options to share the campaign to various social media platforms. If a mailer opts out of this feature, then these options will not be displayed with the campaign."
},
"postalOneSaturationJobID": {
"type": "string",
"description": "A PostalOne! generated unique identifier for a saturation type campaign. This field should not be used for NON-SEQ, MID, or SEQ campaigns."
},
"rideAlong": {
"type": "string",
"description": "The image that is displayed below the replacement or mailpiece image for mailpieces matched with a mail campaign. When clicked, this image will take users to the Target URL of the campaign. This field is required.",
"format": "byte"
},
"replacementImage": {
"type": "string",
"description": "The image that is displayed instead of the mailpiece image for mailpieces matched with a mail campaign. This field is required if the Campaign Shape Type is 'FL', otherwise this field is optional."
},
"addBarcode": {
"type": "boolean",
"description": "Boolean that gives information on whether a campaign is eligible for having individual mailpieces added to it. This flag will be true only if the campaign has a NON-SEQ campaign type and an End Date in the future.",
"readOnly": true
},
"barcodeCount": {
"type": "number",
"description": "Number of mailpieces associated with the campaign. The number will only get greater than 0 for NON-SEQ campaigns.",
"readOnly": true
},
"cancel": {
"type": "boolean",
"description": "Boolean that gives information on whether a campaign is eligible for cancellation. This flag will be true only if the campaign is in an Active status.",
"readOnly": true
},
"createdDatetime": {
"type": "string",
"description": "Timestamp of initial campaign creation. This timestamp will be returned in UTC.",
"readOnly": true,
"format": "date-time"
},
"delete": {
"type": "boolean",
"description": "Boolean that gives information on whether a campaign is eligible for cancellation. This flag will be true only if the campaign is in a Submitted, Draft, or Inactive status.",
"readOnly": true
},
"fullEdit": {
"type": "boolean",
"description": "Boolean that gives information on whether a campaign is eligible for edit inclusive of the campaign's MID. This flag will be true only if the campaign is in a Submitted and is not a NON-SEQ campaign with associated barcodes. ",
"readOnly": true
},
"lastModifiedDatetime": {
"type": "string",
"description": "Timestamp of last update made to campaign, inclusive of status changes that occur when a campaign activates or completes. This timestamp will be returned in UTC.",
"readOnly": true,
"format": "date-time"
},
"lastModifiedSource": {
"type": "string",
"description": "Gives information on system that was used to make last update to campaign (e.g. API, PO!, MCP, Admin Console). This field will update each time a campaign is created, edited, or cancelled.",
"readOnly": true
},
"lastModifiedUsername": {
"type": "string",
"description": "Gives information on Cust Reg user name associated with last update to campaign. This field will update each time a campaign is created, edited, or cancelled.",
"readOnly": true
},
"limitedEdit": {
"type": "boolean",
"description": "Boolean that gives information on whether a campaign is eligible for edit, not inclusive of the campaign's MID. This flag will be true only if the campaign is in a Submitted status, is a NON-SEQ campaign, and already has associated barcodes.",
"readOnly": true
},
"noEdit": {
"type": "boolean",
"description": "Boolean that gives information on whether a campaign is not eligible for edit. This flag will be true if the campaign has an Active, Complete, Cancelled, or Deleted status.",
"readOnly": true
},
"status": {
"type": "string",
"description": "Status of campaign - possible values include Submitted, Active, Complete, Inactive, Draft, Cancelled, and Deleted",
"readOnly": true
},
"submittedDatetime": {
"type": "string",
"description": "Timestamp of initial campaign submission. This timestamp will be returned in UTC.",
"readOnly": true,
"format": "date-time"
}
},
"additionalProperties": false
}
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-campaign"
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.