Skip to content

Depot portaldomains

Registers the custom-domain 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.

GETclientportal:domainsmsp facemspIdempotent

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

Source: [object Object]

listPortalDomains lists the practice’s custom portal domains and the DNS records each one needs.

NameInTypeRequiredDescription
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
StatusBodyDescription
200application/json, PagedResultPortalDomainViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold clientportal:domains.
500application/problem+json, ProblemDetailsThe request failed.

200 response body

FieldTypeDescription
itemsrequiredarray of PortalDomainView
items[].activatedAtstring (date-time) or null
items[].clientIdstring or null
items[].hostnamerequiredstring
items[].idrequiredstring
items[].lastCheckedAtstring (date-time) or null
items[].lastErrorstring or null
items[].nextCheckAtrequiredstring (date-time)
items[].recordsrequiredarray of Record
items[].records[].namerequiredstring
items[].records[].typerequiredstring
items[].records[].valuerequiredstring
items[].statusrequiredstring
items[].tlsModerequiredstring
items[].verifiedAtstring (date-time) or null
pagerequiredinteger
pageSizerequiredinteger
totalrequiredinteger
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/portal/domains?page=0&pageSize=0' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTclientportal:domainsmsp facemsp

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

Source: [object Object]

createPortalDomain adds a custom portal hostname for the MSP or one client and returns the CNAME and TXT records to create.

Required, sent as application/json.

FieldTypeDescription
clientIdstring or null
hostnamerequiredstring
StatusBodyDescription
201application/json, PortalDomainViewCreated.
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:domains.
500application/problem+json, ProblemDetailsThe request failed.

201 response body

FieldTypeDescription
activatedAtstring (date-time) or null
clientIdstring or null
hostnamerequiredstring
idrequiredstring
lastCheckedAtstring (date-time) or null
lastErrorstring or null
nextCheckAtrequiredstring (date-time)
recordsrequiredarray of Record
records[].namerequiredstring
records[].typerequiredstring
records[].valuerequiredstring
statusrequiredstring
tlsModerequiredstring
verifiedAtstring (date-time) or null
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/portal/domains' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"clientId": "string",
"hostname": "string"
}'

GETclientportal:domainsmsp facemspIdempotent

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

Source: [object Object]

getPortalDomain reads one custom portal domain with its records and status.

NameInTypeRequiredDescription
domainIDpathstringYesA uuid.
StatusBodyDescription
200application/json, PortalDomainViewSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold clientportal:domains.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsCould not read the portal domain.

200 response body

FieldTypeDescription
activatedAtstring (date-time) or null
clientIdstring or null
hostnamerequiredstring
idrequiredstring
lastCheckedAtstring (date-time) or null
lastErrorstring or null
nextCheckAtrequiredstring (date-time)
recordsrequiredarray of Record
records[].namerequiredstring
records[].typerequiredstring
records[].valuerequiredstring
statusrequiredstring
tlsModerequiredstring
verifiedAtstring (date-time) 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/portal/domains/<domainID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

DELETEclientportal:domainsmsp facemspIdempotent

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

Source: [object Object]

deletePortalDomain removes a custom portal domain and frees the hostname.

NameInTypeRequiredDescription
domainIDpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold clientportal:domains.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsCould not read the portal domain.
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/portal/domains/<domainID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/portal/domains/{domainID}/check

Section titled “POST /api/v1/portal/domains/{domainID}/check”

POSTclientportal:domainsmsp facemsp

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

Source: [object Object]

checkPortalDomain makes the domain due for a DNS check now (“Re-check now”); a failed domain starts over from pending_dns.

NameInTypeRequiredDescription
domainIDpathstringYesA uuid.
StatusBodyDescription
200application/json, PortalDomainViewSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold clientportal:domains.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsCould not read the portal domain.

200 response body

FieldTypeDescription
activatedAtstring (date-time) or null
clientIdstring or null
hostnamerequiredstring
idrequiredstring
lastCheckedAtstring (date-time) or null
lastErrorstring or null
nextCheckAtrequiredstring (date-time)
recordsrequiredarray of Record
records[].namerequiredstring
records[].typerequiredstring
records[].valuerequiredstring
statusrequiredstring
tlsModerequiredstring
verifiedAtstring (date-time) or null
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/portal/domains/<domainID>/check' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

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.