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.

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

Property Type Description
id string The unique identifier for an entity. Read-only.
documents microsoft.graph.printDocument collection
redirectedFrom stringNullable Contains the source job URL, if the job has been redirected from another printer.
displayName stringNullable The name of the print job.
createdDateTime date-time The DateTimeOffset when the job was created. Read-only.
errorCode int32Nullable
acknowledgedDateTime date-timeNullable
redirectedTo stringNullable Contains the destination job URL, if the job has been redirected to another printer.
tasks microsoft.graph.printTask collection A list of printTasks that were triggered by this print job.
status microsoft.graph.printJobStatus
isFetchable boolean If true, document can be fetched by printer.
completedDateTime date-timeNullable
createdBy object
configuration microsoft.graph.printJobConfiguration

JSON Representation

JSON representation
{
  "id": "String",
  "documents": "[...]",
  "redirectedFrom": "String",
  "displayName": "String",
  "createdDateTime": "String",
  "errorCode": "Int32",
  "acknowledgedDateTime": "String",
  "redirectedTo": "String",
  "tasks": "[...]",
  "status": "microsoft.graph.printjobstatus",
  "isFetchable": "Boolean",
  "completedDateTime": "String",
  "createdBy": "{...}",
  "configuration": "microsoft.graph.printjobconfiguration"
}

Graph Methods

Delegated access App-only access
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/{printerShareId}/jobs/{printJobId}/start
Methods
GET /print/services
GET /print/services/{id}
GET /print/services/{id}/endpoints
GET /print/services/{id}/endpoints/{name}
POST /print/printers/{id}/jobs/{id}/documents/{id}/createUploadSession
POST /print/shares/{id}/jobs/{id}/start
POST print/printers/{id}/jobs

Code Examples

C# / .NET SDK
// Install: dotnet add package Microsoft.Graph
// Install: dotnet add package Azure.Identity
using Microsoft.Graph;
using Azure.Identity;

// Delegated permissions - interactive user sign-in
var scopes = new[] { "PrintJob.Create" };
var options = new InteractiveBrowserCredentialOptions
{
    ClientId = "YOUR_CLIENT_ID",
    TenantId = "YOUR_TENANT_ID",
    RedirectUri = new Uri("http://localhost")
};
var credential = new InteractiveBrowserCredential(options);
var graphClient = new GraphServiceClient(credential, scopes);

// Example: GET /me
var result = await graphClient.Me.GetAsync();
Console.WriteLine($"User: {result?.DisplayName}");
JavaScript / TypeScript
// npm install @azure/msal-browser @microsoft/microsoft-graph-client
import { PublicClientApplication } from "@azure/msal-browser";
import { Client } from "@microsoft/microsoft-graph-client";
import { AuthCodeMSALBrowserAuthenticationProvider } from 
    "@microsoft/microsoft-graph-client/authProviders/authCodeMsalBrowser";

const msalConfig = {
    auth: {
        clientId: "YOUR_CLIENT_ID",
        authority: "https://login.microsoftonline.com/YOUR_TENANT_ID"
    }
};

const pca = new PublicClientApplication(msalConfig);
await pca.initialize();

// Delegated: Login with required scope
const loginResponse = await pca.loginPopup({
    scopes: ["PrintJob.Create"]
});

const authProvider = new AuthCodeMSALBrowserAuthenticationProvider(pca, {
    account: loginResponse.account,
    scopes: ["PrintJob.Create"],
    interactionType: "popup"
});

const graphClient = Client.initWithMiddleware({ authProvider });

// Example: GET /me
const result = await graphClient.api("/me").get();
console.log(result);
PowerShell
# Install Microsoft Graph PowerShell module
Install-Module Microsoft.Graph -Scope CurrentUser

# Delegated access - interactive sign-in
Connect-MgGraph -Scopes "PrintJob.Create"

# Verify connection
Get-MgContext | Select-Object Account, TenantId, Scopes

# Example: GET /me
$result = Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/v1.0/me"
$result | ConvertTo-Json -Depth 5


# Always disconnect when done
Disconnect-MgGraph
Python
# pip install msgraph-sdk azure-identity
from azure.identity import InteractiveBrowserCredential, ClientSecretCredential
from msgraph import GraphServiceClient
import asyncio

# Delegated permissions - interactive browser sign-in
credential = InteractiveBrowserCredential(
    client_id="YOUR_CLIENT_ID",
    tenant_id="YOUR_TENANT_ID"
)
scopes = ["PrintJob.Create"]
client = GraphServiceClient(credential, scopes)

async def get_data():
    # Example: GET /me
    result = await client.me.get()
    print(f"User: {result.display_name}")
    return result

asyncio.run(get_data())

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 themselves during sign-in.