ESC
Type to search...

PrintJob.ReadWrite.All

Export JSON
Export CSV
Copy URL
Print
ApplicationDelegated Read/Write All Resources

Allows the application to read and update the metadata and document content of print jobs without a signed-in user.

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

Permission Details

Application Permission

Read and write print jobs

Allows the application to read and update the metadata and document content of print jobs without a signed-in user.

Delegated Permission Admin consent required

Read and write print jobs

Allows the application to read and update the metadata and document content of print jobs on behalf of the signed-in user.

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/printers/{id}/jobs/{id}
GET /print/printers/{printerId}/jobs
GET /print/printers/{printerId}/jobs/{printJobId}/documents/{printDocumentId}/$value
GET /print/services
GET /print/services/{printServiceId}
GET /print/services/{printServiceId}/endpoints
GET /print/services/{printServiceId}/endpoints/{printServiceEndpointId}
GET /print/shares/{id}/jobs/{id}
GET /print/shares/{printerShareId}/jobs
POST /print/printers/{id}/jobs/{id}/documents/{id}/createUploadSession
POST /print/printers/{printerId}/jobs
POST /print/printers/{printerId}/jobs/{printJobId}/abort
POST /print/printers/{printerId}/jobs/{printJobId}/cancel
POST /print/shares/{id}/jobs/{id}/documents/{id}/createUploadSession
POST /print/shares/{printerShareId}/jobs
POST /print/shares/{printerShareId}/jobs/{printJobId}/start
PATCH /print/printers/{printerId}/jobs/{printJobId}
Exact Microsoft Learn match

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

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

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

Commands
Get-MgPrintPrinterJob /print/printers/{id}/jobs/{id}
Get printJob
Get-MgPrintPrinterJob /print/printers/{printerId}/jobs
List printJobs for a printer
Get-MgPrintPrinterJobDocumentContent /print/printers/{printerId}/jobs/{printJobId}/documents/{printDocumentId}/$value
Download printDocument binary file
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
Get-MgPrintShareJob /print/shares/{printerShareId}/jobs
List printJobs for a printerShare
Invoke-MgAbortPrintPrinterJob /print/printers/{printerId}/jobs/{printJobId}/abort
printJob: abort
New-MgPrintPrinterJob /print/printers/{printerId}/jobs
Create printJob
New-MgPrintPrinterJobDocumentUploadSession /print/printers/{id}/jobs/{id}/documents/{id}/createUploadSession
printDocument: createUploadSession
New-MgPrintShareJob /print/shares/{printerShareId}/jobs
Create printJob for a printerShare
Update-MgPrintPrinterJob /print/printers/{printerId}/jobs/{printJobId}
Update printJob
Exact Microsoft Learn PowerShell match

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

Commands
Get-MgBetaPrintPrinterJob /print/printers/{id}/jobs
List printJobs for a printer
Get-MgBetaPrintPrinterJob /print/printers/{id}/jobs/{id}
Get printJob
Get-MgBetaPrintPrinterJobDocumentContent /print/printers/{id}/jobs/{id}/documents/{id}/$value
Download printDocument binary file
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
Get-MgBetaPrintShareJob /print/shares/{id}/jobs
List printJobs for a printerShare
Invoke-MgBetaAbortPrintPrinterJob /print/printers/{id}/jobs/{id}/abort
printJob: abort
New-MgBetaPrintPrinterJob /print/printers/{id}/jobs
Create printJob for a printer
New-MgBetaPrintShareJob /print/shares/{id}/jobs
Create printJob for a printerShare
New-MgBetaPrintShareJobDocumentUploadSession /print/printers/{id}/jobs/{id}/documents/{id}/createUploadSession
printDocument: createUploadSession
Update-MgBetaPrintPrinterJob /print/printers/{id}/jobs/{id}
Update printJob

Code Examples

C# / .NET SDK
printDocument: createUploadSession
// Code snippets are only available for the latest version. Current version is 5.x

// Dependencies
using Microsoft.Graph.Print.Printers.Item.Jobs.Item.Documents.Item.CreateUploadSession;
using Microsoft.Graph.Models;

var requestBody = new CreateUploadSessionPostRequestBody
{
	Properties = new PrintDocumentUploadProperties
	{
		DocumentName = "TestFile.pdf",
		ContentType = "application/pdf",
		Size = 4533322L,
	},
};

// 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["{printJob-id}"].Documents["{printDocument-id}"].CreateUploadSession.PostAsync(requestBody);
JavaScript
printDocument: createUploadSession
const options = {
	authProvider,
};

const client = Client.init(options);

const uploadSession = {
  properties: {
    documentName: 'TestFile.pdf',
    contentType: 'application/pdf', 
    size: 4533322
  }
};

await client.api('/print/printers/{printerId}/jobs/{printJobId}/documents/{printDocumentId}/createUploadSession')
	.post(uploadSession);
PowerShell
printDocument: createUploadSession
Import-Module Microsoft.Graph.Devices.CloudPrint

$params = @{
	properties = @{
		documentName = "TestFile.pdf"
		contentType = "application/pdf"
		size = 4533322
	}
}

New-MgPrintPrinterJobDocumentUploadSession -PrinterId $printerId -PrintJobId $printJobId -PrintDocumentId $printDocumentId -BodyParameter $params
Python
printDocument: createUploadSession
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.print.printers.item.jobs.item.documents.item.create_upload_session.create_upload_session_post_request_body import CreateUploadSessionPostRequestBody
from msgraph.generated.models.print_document_upload_properties import PrintDocumentUploadProperties
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = CreateUploadSessionPostRequestBody(
	properties = PrintDocumentUploadProperties(
		document_name = "TestFile.pdf",
		content_type = "application/pdf",
		size = 4533322,
	),
)

result = await graph_client.print.printers.by_printer_id('printer-id').jobs.by_print_job_id('printJob-id').documents.by_print_document_id('printDocument-id').create_upload_session.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 Application permissions or delegated permissions and search for PrintJob.ReadWrite.All

4

Grant Admin Consent

Application permissions always require admin consent.