Skip to content

Depot portaldirconsent

Registers the MSP’s consent link and status routes (clientportal:manage).

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

GET /api/v1/clients/{clientID}/portal/directory/consent

Section titled “GET /api/v1/clients/{clientID}/portal/directory/consent”

GETclientportal:managemsp facemspIdempotent

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

Source: [object Object]

consentStatus reports which Entra tenants the client’s broker-mode SSO domains name and whether each is connected for directory sync.

NameInTypeRequiredDescription
clientIDpathstringYes
StatusBodyDescription
200application/json, PortalDirectoryConsentStatusSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold clientportal:manage.
404application/problem+json, ProblemDetailsNo client matches that id.
500application/problem+json, ProblemDetailsCould not read the client’s portal settings.

200 response body

FieldTypeDescription
brokerAvailablerequiredboolean
tenantsrequiredarray of PortalDirectoryTenantStatus
tenants[].boundrequiredboolean
tenants[].boundAtstring (date-time) or null
tenants[].emailDomainsrequiredarray of string
tenants[].tenantIdstring or null
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/clients/<clientID>/portal/directory/consent' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'
Section titled “POST /api/v1/clients/{clientID}/portal/directory/consent”

POSTclientportal:managemsp facemsp

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

Source: [object Object]

consentLink mints a single-use link (7 days) that starts the client’s Microsoft tenant consent for portal directory sync.

Send it to the client’s Microsoft administrator, or open it yourself if you are one.

NameInTypeRequiredDescription
clientIDpathstringYes

Required, sent as application/json.

FieldTypeDescription
tenantstring or null
StatusBodyDescription
201application/json, PortalDirectoryConsentLinkCreated.
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 clientportal:manage.
404application/problem+json, ProblemDetailsNo client matches that id.
500application/problem+json, ProblemDetailsCould not read the client’s portal settings.

201 response body

FieldTypeDescription
expiresAtrequiredstring (date-time)
urlrequiredstring
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/clients/<clientID>/portal/directory/consent' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"tenant": "string"
}'

GET /api/v1/public/directory-consent/return

Section titled “GET /api/v1/public/directory-consent/return”

GETNo permission neededpublic facemspIdempotentNot fully resolved

What this page does not know
  • response

These are parts of the route the extractor could not read from the source. Everything else on this page came straight from it.

Source: [object Object]

consentReturnPage records a granted consent once Core confirms the binding.

NameInTypeRequiredDescription
directory_consentquerystringNo
tquerystringNo
tenantquerystringNo
StatusBodyDescription
200NoneSuccess. The body shape was not resolved; see x-outpost-unresolved.
Terminal window
# This operation is public. It takes no credentials.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/public/directory-consent/return?directory_consent=<directory_consent>&t=<t>&tenant=<tenant>'

GET /api/v1/public/directory-consent/start

Section titled “GET /api/v1/public/directory-consent/start”

GETNo permission neededpublic facemspIdempotentNot fully resolved

What this page does not know
  • response

These are parts of the route the extractor could not read from the source. Everything else on this page came straight from it.

Source: [object Object]

consentStart opens a consent link: a fresh admin-consent URL from Core, then a redirect to it.

NameInTypeRequiredDescription
tquerystringNo
StatusBodyDescription
200NoneSuccess. The body shape was not resolved; see x-outpost-unresolved.
Terminal window
# This operation is public. It takes no credentials.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/public/directory-consent/start?t=<t>'

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.