ESC
Type to search...

PrintJob.Create

Export JSON
Export CSV
Copy URL
Print
Delegated Read User Scope

Allows the application to create print jobs on behalf of the signed-in user and upload document content to print jobs that the signed-in user created.

Permission data: April 6, 2026 at 4:06 AM UTC
Delegated Access App-Only Access

Permission Details

Delegated Permission User consent allowed

Create print jobs

Allows the application to create print jobs on behalf of the signed-in user and upload document content to print jobs that the signed-in user created.

Properties

Microsoft Graph v1.0 exact-category-docs

Properties is shown from stable Microsoft Graph v1.0 metadata.

Property Type Description
configuration printJobConfiguration A group of settings that a printer should use to print a job.
createdBy userIdentity Read-only. Nullable.
createdDateTime DateTimeOffset The DateTimeOffset when the job was created. Read-only.
id String The ID of the print job. Read-only.
isFetchable Edm.Boolean If true, document can be fetched by printer.
redirectedFrom Edm.StringNullable Contains the source job URL, if the job has been redirected from another printer.
redirectedTo Edm.StringNullable Contains the destination job URL, if the job has been redirected to another printer.
status printJobStatus The status of the print job. Read-only.
errorCode Int32Nullable The error code of the print job. Read-only.
acknowledgedDateTime DateTimeOffsetNullable The dateTimeOffset when the job was acknowledged. Read-only.
documents printDocument collection
tasks printTask collection A list of printTasks that were triggered by this print job.

JSON Representation

Microsoft Graph v1.0 exact-category-docs

JSON representation is shown from stable Microsoft Graph v1.0 metadata.

JSON representation
{
  "@odata.type": "#microsoft.graph.printJob",
  "id": "String (identifier)",
  "createdDateTime": "String (timestamp)",
  "status": {
    "@odata.type": "microsoft.graph.printJobStatus"
  },
  "createdBy": {
    "@odata.type": "microsoft.graph.userIdentity"
  },
  "configuration": {
    "@odata.type": "microsoft.graph.printJobConfiguration"
  },
  "redirectedTo": "String",
  "redirectedFrom": "String",
  "isFetchable": "Boolean"
}

Relationships

Microsoft Graph v1.0 exact-category-docs

Relationships is shown from stable Microsoft Graph v1.0 metadata.

Relationship Type Description
documents printDocument collection Read-only.
tasks printTask collection A list of printTasks that were triggered by this print job.
configuration printJobConfiguration Related configuration data exposed by this resource.
status printJobStatus Related status data exposed by this resource.

Graph Methods

Delegated access App-only access
Exact Microsoft Learn match

Microsoft Graph v1.0 endpoints are mapped directly from refreshed Microsoft Learn permissions tables.

Methods
GET /print/services
GET /print/services/{printServiceId}
GET /print/services/{printServiceId}/endpoints
GET /print/services/{printServiceId}/endpoints/{printServiceEndpointId}
POST /print/printers/{id}/jobs/{id}/documents/{id}/createUploadSession
POST /print/printers/{printerId}/jobs
POST /print/shares/{id}/jobs/{id}/documents/{id}/createUploadSession
POST /print/shares/{printerShareId}/jobs/{printJobId}/start
Exact Microsoft Learn match

Microsoft Graph beta endpoints are mapped directly from refreshed Microsoft Learn permissions tables.

Methods
GET /print/services
GET /print/services/{id}
GET /print/services/{id}/endpoints
GET /print/services/{id}/endpoints/{name}
POST /print/printers/{id}/jobs
POST /print/printers/{id}/jobs/{id}/documents/{id}/createUploadSession
POST /print/shares/{id}/jobs/{id}/documents/{id}/createUploadSession
POST /print/shares/{id}/jobs/{id}/start
Exact Microsoft Learn PowerShell match

Microsoft Graph PowerShell v1.0 commands are mapped directly from refreshed Microsoft Learn PowerShell snippets.

Commands
Get-MgPrintService /print/services
List printServices
Get-MgPrintService /print/services/{printServiceId}
Get printService
Get-MgPrintServiceEndpoint /print/services/{printServiceId}/endpoints
List endpoints
Get-MgPrintServiceEndpoint /print/services/{printServiceId}/endpoints/{printServiceEndpointId}
Get printServiceEndpoint
New-MgPrintPrinterJob /print/printers/{printerId}/jobs
Create printJob
New-MgPrintPrinterJobDocumentUploadSession /print/printers/{id}/jobs/{id}/documents/{id}/createUploadSession
printDocument: createUploadSession
Exact Microsoft Learn PowerShell match

Microsoft Graph PowerShell beta commands are mapped directly from refreshed Microsoft Learn PowerShell snippets.

Commands
Get-MgBetaPrintService /print/services
List printServices
Get-MgBetaPrintService /print/services/{id}
Get printService
Get-MgBetaPrintServiceEndpoint /print/services/{id}/endpoints
List printServiceEndpoints
Get-MgBetaPrintServiceEndpoint /print/services/{id}/endpoints/{name}
Get printServiceEndpoint
New-MgBetaPrintPrinterJob /print/printers/{id}/jobs
Create printJob for a printer
New-MgBetaPrintShareJobDocumentUploadSession /print/printers/{id}/jobs/{id}/documents/{id}/createUploadSession
printDocument: createUploadSession

Code Examples

C# / .NET SDK
Create printJob
// Code snippets are only available for the latest version. Current version is 5.x

// Dependencies
using Microsoft.Graph.Models;

var requestBody = new PrintJob
{
	Configuration = new PrintJobConfiguration
	{
		OdataType = "microsoft.graph.printJobConfiguration",
		FeedOrientation = PrinterFeedOrientation.LongEdgeFirst,
		PageRanges = new List<IntegerRange>
		{
			new IntegerRange
			{
				OdataType = "microsoft.graph.integerRange",
				Start = 1L,
				End = 1L,
			},
		},
		Quality = PrintQuality.Medium,
		Dpi = 600,
		Orientation = PrintOrientation.Landscape,
		Copies = 1,
		DuplexMode = PrintDuplexMode.OneSided,
		ColorMode = PrintColorMode.BlackAndWhite,
		InputBin = "by-pass-tray",
		OutputBin = "output-tray",
		MediaSize = "A4",
		Margin = new PrintMargin
		{
			Top = 0,
			Bottom = 0,
			Left = 0,
			Right = 0,
		},
		MediaType = "stationery",
		Finishings = null,
		PagesPerSheet = 1,
		MultipageLayout = PrintMultipageLayout.ClockwiseFromBottomLeft,
		Collate = false,
		Scaling = PrintScaling.ShrinkToFit,
		FitPdfToPage = false,
	},
};

// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Print.Printers["{printer-id}"].Jobs.PostAsync(requestBody);
JavaScript
Create printJob
const options = {
	authProvider,
};

const client = Client.init(options);

const printJob = {
  configuration: {
    '@odata.type': 'microsoft.graph.printJobConfiguration',
    feedOrientation: 'longEdgeFirst',
    pageRanges: [
      {
        '@odata.type': 'microsoft.graph.integerRange',
        start: 1,
        end: 1
      }
    ],
    quality: 'medium',
    dpi: 600,
    orientation: 'landscape',
    copies: 1,
    duplexMode: 'oneSided',
    colorMode: 'blackAndWhite',
    inputBin: 'by-pass-tray',
    outputBin: 'output-tray',
    mediaSize: 'A4',
    margin: {
      top: 0,
      bottom: 0,
      left: 0,
      right: 0
    },
    mediaType: 'stationery',
    finishings: null,
    pagesPerSheet: 1,
    multipageLayout: 'clockwiseFromBottomLeft',
    collate: false,
    scaling: 'shrinkToFit',
    fitPdfToPage: false
  }
};

await client.api('/print/printers/{printerId}/jobs')
	.post(printJob);
PowerShell
Create printJob
Import-Module Microsoft.Graph.Devices.CloudPrint

$params = @{
	configuration = @{
		"@odata.type" = "microsoft.graph.printJobConfiguration"
		feedOrientation = "longEdgeFirst"
		pageRanges = @(
			@{
				"@odata.type" = "microsoft.graph.integerRange"
				start = 1
				end = 1
			}
		)
		quality = "medium"
		dpi = 600
		orientation = "landscape"
		copies = 1
		duplexMode = "oneSided"
		colorMode = "blackAndWhite"
		inputBin = "by-pass-tray"
		outputBin = "output-tray"
		mediaSize = "A4"
		margin = @{
			top = 0
			bottom = 0
			left = 0
			right = 0
		}
		mediaType = "stationery"
		finishings = $null
		pagesPerSheet = 1
		multipageLayout = "clockwiseFromBottomLeft"
		collate = $false
		scaling = "shrinkToFit"
		fitPdfToPage = $false
	}
}

New-MgPrintPrinterJob -PrinterId $printerId -BodyParameter $params
Python
Create printJob
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.print_job import PrintJob
from msgraph.generated.models.print_job_configuration import PrintJobConfiguration
from msgraph.generated.models.printer_feed_orientation import PrinterFeedOrientation
from msgraph.generated.models.integer_range import IntegerRange
from msgraph.generated.models.print_quality import PrintQuality
from msgraph.generated.models.print_orientation import PrintOrientation
from msgraph.generated.models.print_duplex_mode import PrintDuplexMode
from msgraph.generated.models.print_color_mode import PrintColorMode
from msgraph.generated.models.print_margin import PrintMargin
from msgraph.generated.models.print_multipage_layout import PrintMultipageLayout
from msgraph.generated.models.print_scaling import PrintScaling
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = PrintJob(
	configuration = PrintJobConfiguration(
		odata_type = "microsoft.graph.printJobConfiguration",
		feed_orientation = PrinterFeedOrientation.LongEdgeFirst,
		page_ranges = [
			IntegerRange(
				odata_type = "microsoft.graph.integerRange",
				start = 1,
				end = 1,
			),
		],
		quality = PrintQuality.Medium,
		dpi = 600,
		orientation = PrintOrientation.Landscape,
		copies = 1,
		duplex_mode = PrintDuplexMode.OneSided,
		color_mode = PrintColorMode.BlackAndWhite,
		input_bin = "by-pass-tray",
		output_bin = "output-tray",
		media_size = "A4",
		margin = PrintMargin(
			top = 0,
			bottom = 0,
			left = 0,
			right = 0,
		),
		media_type = "stationery",
		finishings = None,
		pages_per_sheet = 1,
		multipage_layout = PrintMultipageLayout.ClockwiseFromBottomLeft,
		collate = False,
		scaling = PrintScaling.ShrinkToFit,
		fit_pdf_to_page = False,
	),
)

result = await graph_client.print.printers.by_printer_id('printer-id').jobs.post(request_body)

App Registration

1

Navigate to Azure Portal

Go to App registrations in Microsoft Entra admin center

2

Add API Permission

Select your app → API permissions → Add a permission → Microsoft Graph

3

Select Permission Type

Choose Delegated permissions and search for PrintJob.Create

4

Grant Admin Consent

Users can consent to this permission during sign-in.