Skip to content

Depot mdmimports

Registers the import routes.

This page is generated from the Depot route table. Every operation carries the permission it needs and the anchor an agent can link to.

POSTmdm:managetenant facehosteditmspremote

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

createMdmImport uploads a Jamf, Intune or Kandji export as multipart form data (sourceKind, optional osFamily, then file) and parses it.

Secrets in the export are never stored as setting values; they are listed for a vault credential instead.

Required, sent as multipart/form-data.

The body is object.

StatusBodyDescription
201application/json, MdmImportViewCreated.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold mdm:manage.
413application/problem+json, ProblemDetailsExports can be at most 20 MiB.
500application/problem+json, ProblemDetailsNo client store in request context.
502application/problem+json, ProblemDetailsThe export could not be stored. Nothing was imported.
503application/problem+json, ProblemDetailsFile storage is not configured on this Depot.
507application/problem+json, ProblemDetailsThis client’s file storage is full.

201 response body

FieldTypeDescription
createdAtrequiredstring (date-time)
createdByUserIdstring or null
createdProfileIdstring or null
fileNamerequiredstring
fileSha256requiredstring
publicIdrequiredstring
resultrequiredany

Arbitrary JSON.

rowVersionrequiredinteger

int64.

sourceKindrequiredstring
staterequiredstring
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
curl -X POST 'https://depot.example.com/api/v1/mdm/imports' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: multipart/form-data' \
-b 'outpost_console=<console-session>' \
--data '{}'

GETmdm:readtenant facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

getMdmImport returns one import job with its mapped settings, unmapped items and the secrets that need a vault credential.

NameInTypeRequiredDescription
publicIdpathstringYesA uuid.
StatusBodyDescription
200application/json, MdmImportViewSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold mdm:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
createdAtrequiredstring (date-time)
createdByUserIdstring or null
createdProfileIdstring or null
fileNamerequiredstring
fileSha256requiredstring
publicIdrequiredstring
resultrequiredany

Arbitrary JSON.

rowVersionrequiredinteger

int64.

sourceKindrequiredstring
staterequiredstring
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/mdm/imports/<publicId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

DELETEmdm:managetenant facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

deleteMdmImport deletes an import job and its uploaded file.

A profile the import already created stays.

NameInTypeRequiredDescription
publicIdpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold mdm:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe import changed while it was being deleted. Try again.
500application/problem+json, ProblemDetailsNo client store in request context.
502application/problem+json, ProblemDetailsThe uploaded file could not be removed, so the import was kept. Try again.
503application/problem+json, ProblemDetailsFile storage is not configured on this Depot, so the uploaded file cannot be removed.
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X DELETE 'https://depot.example.com/api/v1/mdm/imports/<publicId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTmdm:managetenant facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

applyMdmImport creates a draft profile from a parsed import.

The profile has no assignments and is never active, so it reaches no device until a tech previews it and rolls it out. The uploaded file is deleted afterwards.

NameInTypeRequiredDescription
publicIdpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
namestring or null
StatusBodyDescription
200application/json, MdmImportViewSuccess.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold mdm:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThis import already created a profile.
422application/problem+json, ProblemDetailsNothing in this export maps to an Outpost setting.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
createdAtrequiredstring (date-time)
createdByUserIdstring or null
createdProfileIdstring or null
fileNamerequiredstring
fileSha256requiredstring
publicIdrequiredstring
resultrequiredany

Arbitrary JSON.

rowVersionrequiredinteger

int64.

sourceKindrequiredstring
staterequiredstring
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X POST 'https://depot.example.com/api/v1/mdm/imports/<publicId>/apply' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"name": "string"
}'

Content is licensed CC BY 4.0. Code samples are MIT. Outpost and the Outpost mark are trademarks of Outpost Business Solutions, PBC and are not covered by either license.