PrintJobResponse
CompanyGovernmentUnited KingdomVehiclesDriving LicencesTransportationPublic Sector
Properties
| Name | Type | Description |
|---|---|---|
| id | string | Unique identifier used to identify a print job. |
| standardParams | object | |
| customParams | array | Custom parameters specific to job type as per agreement with OSG. If the value of any of the entries of custom params which were initially submitted when the job was created has signature of PDF, GIF, |
| callbackParams | object | |
| fileParams | array | File parameters specific to job type. The keys of any of the custom params entries which were initially submitted when the job was created and had base64 signature of PDF, GIF, PNG, JPEG, TIFF or BMP |
| status | object | |
| comment | string | The most recent comment of this print job. |
| batchNumber | string | OSG print run number, a run contains fulfilment jobs. |
| fulfilmentJobId | string | OSG RPD system job batch number, a fulfilment job contains documents. |
| documentId | string | OSG RPD system document identifier |
| printLocation | string | Printing location |
| serialNumber | string | Content varies with print job type, e.g. card serial number or document serial number. |
| despatchProperties | array | Despatch custom parameters from OSG |
| createdDate | string | |
| updatedDate | string | |
| printableAddress | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/dvla-gov-uk/json-schema/dvla-gov-uk-print-job-response-schema.json",
"title": "PrintJobResponse",
"x-generated": "2026-11-10",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/dvla-gov-uk-print-request-openapi.yml#/components/schemas/PrintJobResponse",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier used to identify a print job."
},
"standardParams": {
"$ref": "#/$defs/StandardParams"
},
"customParams": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/CustomParam"
},
"description": "Custom parameters specific to job type as per agreement with OSG. If the value of any of the entries of custom params which were initially submitted when the job was created has signature of PDF, GIF, PNG, JPEG, TIFF or BMP, their value would be replaced with \"See fileParams for file information\"."
},
"callbackParams": {
"$ref": "#/$defs/CallbackParams"
},
"fileParams": {
"type": "array",
"items": {
"$ref": "#/$defs/FileParam"
},
"description": "File parameters specific to job type. The keys of any of the custom params entries which were initially submitted when the job was created and had base64 signature of PDF, GIF, PNG, JPEG, TIFF or BMP would be returned here as fileParm fileIds."
},
"status": {
"$ref": "#/$defs/Status"
},
"comment": {
"type": "string",
"description": "The most recent comment of this print job."
},
"batchNumber": {
"type": "string",
"description": "OSG print run number, a run contains fulfilment jobs."
},
"fulfilmentJobId": {
"type": "string",
"description": "OSG RPD system job batch number, a fulfilment job contains documents."
},
"documentId": {
"type": "string",
"description": "OSG RPD system document identifier"
},
"printLocation": {
"type": "string",
"description": "Printing location"
},
"serialNumber": {
"type": "string",
"description": "Content varies with print job type, e.g. card serial number or document serial number."
},
"despatchProperties": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/DespatchProperty"
},
"description": "Despatch custom parameters from OSG"
},
"createdDate": {
"type": "string",
"format": "date-time"
},
"updatedDate": {
"type": "string",
"format": "date-time"
},
"printableAddress": {
"$ref": "#/$defs/PrintableAddressResponse"
}
},
"required": [
"standardParams",
"customParams"
],
"$defs": {
"Address": {
"description": "One and only one of the structured, unstructured, or international addresses must be provided. This is the address to be used for external dispatch and could be the customer residential address on record or a separate correspondence address. This will be converted into a standard printable address format for output in the address window. A print job may require an additional set of addresses to be used within the print output that differs from the printable dispatch address, either by format or by delivery point. These are often in specific formats so are not catered for in standard parameters and can be added as custom parameters as necessary. For bulk mail handling, mail providers require that the majority (90% at the time of writing) of dispatch addresses are supplied as validated Structured addresses with corresponding DPS and mailsort code information.",
"properties": {
"structuredAddress": {
"$ref": "#/$defs/StructuredAddress"
},
"unstructuredAddress": {
"$ref": "#/$defs/UnstructuredAddress"
},
"bfpoAddress": {
"$ref": "#/$defs/BfpoAddress"
},
"internationalAddress": {
"$ref": "#/$defs/InternationalAddress"
}
}
},
"BfpoAddress": {
"description": "",
"properties": {
"line1": {
"title": "Line 1",
"description": "Free text, expected to be SERVICE NUMBER, RANK and NAME.",
"type": "string",
"minLength": 1,
"maxLength": 45
},
"line2": {
"title": "Line 2",
"description": "Free text, expected to be UNIT or REGIMENT.",
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 45
},
"line3": {
"title": "Line 3",
"description": "Free text, expected to be OPERATION.",
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 45
},
"line4": {
"title": "Line 4",
"description": "Free text, expected to be BARRACKS or CAMP or RAF STATION or NAVAL SHIP (if applicable).",
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 45
},
"bfpoNumber": {
"title": "BFPO Number",
"type": "integer",
"minimum": 1,
"maximum": 9999
},
"postcode": {
"type": "string",
"minLength": 1,
"maxLength": 10
},
"language": {
"type": [
"string",
"null"
]
},
"country": {
"type": [
"string",
"null"
]
}
},
"required": [
"line1",
"bfpoNumber"
]
},
"CallbackParams": {
"description": "Specific parameters for the print job status update callback",
"properties": {
"target": {
"type": "string",
"nullable": false,
"minLength": 11,
"description": "The URL that callback requests will be sent to"
},
"authenticationHeader": {
"type": [
"string",
"null"
],
"minLength": 1,
"description": "String provided in the Authentication header for the callback request"
},
"retryParams": {
"description": "Callback retry parameters",
"$ref": "#/$defs/CallbackRetryParams"
}
},
"required": [
"target"
]
},
"CallbackRetryParams": {
"description": "Configuration block for Webhook retries",
"properties": {
"enabled": {
"type": [
"boolean",
"null"
],
"default": true,
"description": "Enable retries for failed webhook requests"
},
"maxRetryWindow": {
"type": [
"integer",
"null"
],
"minimum": 30,
"maximum": 86400,
"default": 10800,
"description": "The window we will retry to send failed webhooks for (in seconds), using exponential backoff"
}
}
},
"CustomParam": {
"description": "Specific set of parameters for print job based on job type",
"properties": {
"key": {
"type": "string",
"nullable": false,
"minLength": 1,
"description": "Provided keys must be unique. Duplication of keys will result in an error response."
},
"value": {
"type": "string",
"nullable": false,
"minLength": 1
}
},
"required": [
"key",
"value"
]
},
"DespatchProperty": {
"description": "A property (key-value pair) for a despatched print job.",
"properties": {
"key": {
"type": "string",
"description": "Must Be Unique",
"nullable": false,
"minLength": 1,
"maxLength": 50
},
"value": {
"type": "string",
"nullable": false,
"minLength": 1,
"maxLength": 255
}
},
"required": [
"key",
"value"
]
},
"FileParam": {
"description": "Specific set of file IDs submitted under custom params for print job.",
"properties": {
"fileId": {
"type": "string",
"description": "Key of file which was submitted via customParams."
}
}
},
"HandlingInstruction": {
"description": "An internal Handling Instruction may be used in exceptional cases where the print output is required to have a specific handling instruction, typically for routing to an internal address. The Handling Instruction is printed in front of the dispatch address and output within the address window. Handling Instructions are only used by specific templates. The template (templateReference) will indicate whether a Handling Instruction is supported. Where a Handling Instruction does apply to a template, at least one line must be supplied (line1). Supplying a Handling Instruction in a Print Request for a template that does not support a Handling Instruction will be ignored.",
"properties": {
"line1": {
"type": "string",
"minLength": 1,
"maxLength": 45
},
"line2": {
"type": "string",
"minLength": 0,
"maxLength": 45
},
"line3": {
"type": "string",
"minLength": 0,
"maxLength": 45
},
"line4": {
"type": "string",
"minLength": 0,
"maxLength": 45
},
"line5": {
"type": "string",
"minLength": 0,
"maxLength": 45
},
"line6": {
"type": "string",
"minLength": 0,
"maxLength": 45
},
"line7": {
"type": "string",
"minLength": 0,
"maxLength": 45
}
},
"required": [
"line1"
]
},
"InternationalAddress": {
"description": "An International Address for external consumers, field examples are not provided due to range of possible values",
"properties": {
"line1": {
"type": "string",
"minLength": 1,
"maxLength": 45
},
"line2": {
"type": "string",
"minLength": 0,
"maxLength": 45
},
"line3": {
"type": "string",
"minLength": 0,
"maxLength": 45
},
"line4": {
"type": "string",
"minLength": 0,
"maxLength": 45
},
"line5": {
"type": "string",
"minLength": 0,
"maxLength": 45
},
"country": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
"required": [
"line1",
"country"
]
},
"PrintableAddressResponse": {
"description": "Address in a print-ready format suitable for use by OSG",
"properties": {
"line1": {
"type": "string",
"minLength": 1,
"maxLength": 45
},
"line2": {
"type": "string",
"minLength": 0,
"maxLength": 45
},
"line3": {
"type": "string",
"minLength": 0,
"maxLength": 45
},
"line4": {
"type": "string",
"minLength": 0,
"maxLength": 45
},
"line5": {
"type": "string",
"minLength": 0,
"maxLength": 45
},
"postcode": {
"type": "string",
"minLength": 0,
"maxLength": 8
},
"dps": {
"type": [
"string",
"null"
]
},
"recipientLine1": {
"type": "string",
"minLength": 1,
"maxLength": 45
},
"recipientLine2": {
"type": "string",
"minLength": 0,
"maxLength": 45
}
}
},
"StandardParams": {
"description": "The standard set of generic parameters for all print jobs. Supplied structured/unstructured address is wrapped in a parent \"address\" object",
"properties": {
"jobType": {
"type": "string",
"nullable": false,
"minLength": 1,
"maxLength": 255,
"description": "Pre-agreed identifier for the type of print job submitted, describes the application the transaction relates too\n\n"
},
"templateReference": {
"type": "string",
"nullable": false,
"minLength": 1,
"maxLength": 255,
"description": "Reference to the pre-agreed print template e.g. MY TEMPLATE, ABCD\n"
},
"businessIdentifier": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 255,
"pattern": "[A-Za-z0-9_:\\.-]+",
"description": "Optional Business identifier to help identify the job for support purposes eg. a URN or customer reference that must only consist of any number of letters, digits ([0-9]), hyphens (\"-\"), underscores (\"_\"), colons (\":\"), and periods (\".\")."
},
"recipientName": {
"type": "string",
"nullable": false,
"minLength": 1,
"maxLength": 255,
"pattern": "^.{0,89}[A-Za-z0-9].*",
"description": "Full name of postal recipient including any title if relevant.\nNote that this field is mapped to two separate lines for the printable\naddress (fit for envelope window). The maximum length for each line\nis 45 characters.\n\nWhere the recipient name is greater than 45 characters in length, the first line\nis wrapped onto the second line using the following rules:\n\n - If the first line contains at least one space prior to the 45th character, the nearest space\n prior to the 45th character is removed and anything following the space is wrapped onto the\n second line.\n\n For example:\n\n Recipient name:\n This is a long name and it will show an example of how wrapping can occur.\n\n Would become:\n Line 1 - This is a long name and it will show an\n Line 2 - example of how wrapping can occur.\n\n - If the first line contains at least one hyphen prior to the 45th character, the nearest hyphen\n prior to the 45th character is left on the first line, and anything following the hyphen is wrapped to\n the next line.\n\n For example:\n\n Recipient name:\n This-is-a-long-name-and-it-will-show-an-example-of-how-wrapping-can-occur.\n\n Would become:\n Line 1 - This-is-a-long-name-and-it-will-show-an-\n Line 2 - example-of-how-wrapping-can-occur.\n\n - If neither a space or hyphen are present prior to the 45th character, then\n a hard wrap will result.\n\n Recipient name:\n Line 1 - Thisisalongnameanditwillshowanexampleofhowwra\n Line 2 - ppingcanoccur.\n\nAny characters beyond the length of 90 are omitted.\nThe field must contain at least one alphanumeric ([a-zA-Z0-9]) character within the first 90 characters."
},
"address": {
"description": "At least one and only one of the structured or unstructured addresses must be provided.",
"$ref": "#/$defs/Address"
},
"handlingInstruction": {
"description": "A Handling Instruction is passed to inform OSG where to send the printed items to once completed at OSG.",
"$ref": "#/$defs/HandlingInstruction"
},
"despatchMethod": {
"description": "Postage class despatch method for specific job types so that they can instruct OSG to send certain jobs out as eg. 1st class as opposed to the standard method.",
"type": "string",
"enum": [
"FIRST",
"INTERNAL",
"ECONOMY",
"INTERNATIONAL_EU",
"INTERNATIONAL_USA",
"INTERNATIONAL_ROW",
"SPECIAL"
]
}
},
"required": [
"jobType",
"templateReference",
"recipientName",
"address"
]
},
"Status": {
"description": "Defines the progress of the print job. The normal flow for a print job be PENDING -> PRODUCTION -> DESPATCHED. However, a job may end with a REJECTED status.",
"type": "string",
"enum": [
"QUARANTINE",
"VALIDATING",
"PENDING",
"PRODUCTION",
"DESPATCHED",
"REJECTED"
]
},
"StructuredAddress": {
"description": "Address containing PAF fields for a single address, including DPS which if provided open the opportunity for postal cost savings.\nNote that at least one of the following fields must be provided with\na non-empty value in order to provide a useful address to OSG for\ndelivery to a recipient:\ndepartmentName, organisationName, poBoxNumber,\nbuildingNumber, subBuildingName, buildingName, thoroughfareName,\ndoubleDependentLocality, dependentThoroughfareName,\ndependentLocality, postTown\n",
"properties": {
"poBoxNumber": {
"type": [
"string",
"null"
]
},
"organisationName": {
"type": [
"string",
"null"
]
},
"departmentName": {
"type": [
"string",
"null"
]
},
"subBuildingName": {
"type": [
"string",
"null"
]
},
"buildingName": {
"type": [
"string",
"null"
]
},
"buildingNumber": {
"type": [
"string",
"null"
]
},
"dependentThoroughfareName": {
"type": [
"string",
"null"
]
},
"thoroughfareName": {
"type": [
"string",
"null"
]
},
"doubleDependentLocality": {
"type": [
"string",
"null"
]
},
"dependentLocality": {
"type": [
"string",
"null"
]
},
"postTown": {
"type": [
"string",
"null"
]
},
"postcode": {
"type": [
"string",
"null"
]
},
"country": {
"type": [
"string",
"null"
]
},
"language": {
"type": [
"string",
"null"
]
},
"dps": {
"type": [
"string",
"null"
]
},
"uprn": {
"type": [
"string",
"null"
]
},
"udprn": {
"type": [
"string",
"null"
]
}
}
},
"UnstructuredAddress": {
"description": "Address manually entered by a user.",
"properties": {
"line1": {
"type": "string",
"minLength": 1,
"maxLength": 45,
"pattern": "^.*[a-zA-Z0-9].*$"
},
"line2": {
"type": "string",
"minLength": 0,
"maxLength": 45
},
"line3": {
"type": "string",
"minLength": 0,
"maxLength": 45
},
"line4": {
"type": "string",
"minLength": 0,
"maxLength": 45
},
"line5": {
"type": "string",
"minLength": 0,
"maxLength": 45
},
"postcode": {
"type": "string",
"minLength": 1,
"maxLength": 10
},
"dps": {
"type": "string",
"minLength": 0,
"maxLength": 2
}
},
"required": [
"line1",
"postcode"
]
}
}
}
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/dvla-gov-uk-print-job-response"
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.