Raw schema
{
"type": "object",
"properties": {
"sender": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"description": "Recipient (person) name"
},
"company": {
"description": "Company or organisation (optional)",
"type": "string",
"maxLength": 60
},
"line1": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"description": "Street and house number, or PO box"
},
"line2": {
"description": "Additional line: c/o, apartment, building",
"type": "string",
"maxLength": 60
},
"postal_code": {
"description": "Postcode / ZIP (required in most countries)",
"type": "string",
"maxLength": 16
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 50
},
"region": {
"description": "State / province where the country uses it (e.g. US state code CA)",
"type": "string",
"maxLength": 50
},
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "ISO 3166-1 alpha-2 country code, e.g. DE, FR, US"
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"phone": {
"type": "string",
"maxLength": 40
}
},
"required": [
"name",
"line1",
"city",
"country"
],
"description": "The user's own name and address (any country), printed in the letter's sender block (the envelope always shows our return address)"
},
"recipient": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"description": "Recipient (person) name"
},
"company": {
"description": "Company or organisation (optional)",
"type": "string",
"maxLength": 60
},
"line1": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"description": "Street and house number, or PO box"
},
"line2": {
"description": "Additional line: c/o, apartment, building",
"type": "string",
"maxLength": 60
},
"postal_code": {
"description": "Postcode / ZIP (required in most countries)",
"type": "string",
"maxLength": 16
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 50
},
"region": {
"description": "State / province where the country uses it (e.g. US state code CA)",
"type": "string",
"maxLength": 50
},
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "ISO 3166-1 alpha-2 country code, e.g. DE, FR, US"
}
},
"required": [
"name",
"line1",
"city",
"country"
]
},
"subject": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"body": {
"type": "string",
"minLength": 1,
"maxLength": 20000,
"description": "Letter text including the salutation (e.g. 'Dear Sir or Madam,'), without closing or signature"
},
"language": {
"default": "en",
"description": "Language of the letter, e.g. en, de, fr — sets date format and default closing",
"type": "string",
"minLength": 2,
"maxLength": 5
},
"place": {
"description": "Place shown next to the date, e.g. the sender's city",
"type": "string",
"maxLength": 60
},
"date": {
"description": "ISO date; defaults to today",
"type": "string"
},
"closing": {
"description": "e.g. 'Kind regards' (default by language)",
"type": "string",
"maxLength": 200
},
"signature": {
"description": "Name under the closing; defaults to the sender name",
"type": "string",
"maxLength": 80
},
"references": {
"description": "Lines like 'Customer no. 12345'",
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"maxLength": 120
}
},
"duplex": {
"default": false,
"type": "boolean"
},
"color": {
"default": "bw",
"type": "string",
"enum": [
"bw",
"color"
]
},
"envelope": {
"type": "string",
"enum": [
"DL",
"C5",
"C4"
]
},
"registered": {
"default": false,
"description": "Registered mail (tracking + signature on delivery), e.g. for cancellations and deadlines",
"type": "boolean"
}
},
"required": [
"sender",
"recipient",
"subject",
"body"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}