OutSystems Domains API
Manage custom domains for environments.
Manage custom domains for environments.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/outsystems-domains-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Environment Configurations Domains API
description: REST endpoints for managing environment (stage) configurations in ODC. Covers custom domains, IP filters, and Private Gateways, enabling you to automate the same configurations available in ODC Portal.
version: v1
servers:
- url: https://ODC_PORTAL_DOMAIN/api/environment-configurations/v1
description: Replace ODC_PORTAL_DOMAIN with the domain of your organization.
- url: https://{odc-portal-domain}/api/environment-configurations/v1
description: Replace {odc-portal-domain} with the domain of your organization.
variables:
'{odc-portal-domain}':
default: '{odc-portal-domain}'
description: The domain of your organization
security:
- bearerAuth: []
tags:
- name: Domains
description: Manage custom domains for environments.
paths:
/environments/{environmentKey}/domains/{domainKey}:
delete:
tags:
- Domains
summary: Deletes a domain from an environment (stage).
description: 'Deletes a domain from an environment (stage).
API Client needs the **Configuration management > Manage custom domains** permission for the target environment (stage).'
operationId: Domains_Delete
parameters:
- name: environmentKey
in: path
description: The environment's key.
required: true
schema:
type: string
- name: domainKey
in: path
description: The domain's key.
required: true
schema:
type: string
responses:
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'204':
description: No Content
x-os-permissions: API Client needs the **Configuration management > Manage custom domains** permission for the target environment (stage).
get:
tags:
- Domains
summary: Returns the details of a specific domain for the given environment (stage).
description: 'Returns the details of a specific domain for the given environment (stage).
API Client needs the **Configuration management > View configurations** permission for the target environment (stage).'
operationId: Domains_Get
parameters:
- name: environmentKey
in: path
description: The environment's key.
required: true
schema:
type: string
- name: domainKey
in: path
description: The domain's key.
required: true
schema:
type: string
responses:
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Domain'
x-os-permissions: API Client needs the **Configuration management > View configurations** permission for the target environment (stage).
patch:
tags:
- Domains
summary: Patches the default app (App Domain) for the specified custom domain.
description: 'Patches the default app (App Domain) for the specified custom domain.
API Client needs the **Configuration management > Manage custom domains** permission for the target environment (stage).'
operationId: Domains_Patch
parameters:
- name: environmentKey
in: path
description: The environment's key.
required: true
schema:
type: string
- name: domainKey
in: path
description: The domain's key.
required: true
schema:
type: string
requestBody:
description: The patch request containing the application key and redirect option.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/DomainPatchRequest'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/DomainPatchRequest'
responses:
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DomainPatchResponse'
x-os-permissions: API Client needs the **Configuration management > Manage custom domains** permission for the target environment (stage).
/environments/{environmentKey}/domains:
get:
tags:
- Domains
summary: Returns a list of domains for a specific environment (stage).
description: 'Returns a list of domains for a specific environment (stage).
API Client needs the **Configuration management > View configurations** permission for the target environment (stage).'
operationId: Domains_Get
parameters:
- name: environmentKey
in: path
description: The environment's key.
required: true
schema:
type: string
- name: limit
in: query
description: 'Maximum number of results to return. Allowed values: 1 to 100. Default value: 100.'
schema:
type: integer
format: int32
- name: offset
in: query
description: 'Offset of the first result to return. Default value: 0.'
schema:
type: integer
format: int32
responses:
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DomainPagedListResponse'
x-os-permissions: API Client needs the **Configuration management > View configurations** permission for the target environment (stage).
post:
tags:
- Domains
summary: Creates a new domain for the specified environment (stage). You can provide the domain's hostname and name.
description: 'Creates a new domain for the specified environment (stage). You can provide the domain''s hostname and name.
API Client needs the **Configuration management > Manage custom domains** permission for the target environment (stage).'
operationId: Domains_Post
parameters:
- name: environmentKey
in: path
description: The environment's key.
required: true
schema:
type: string
requestBody:
description: The domain object with the necessary information
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/DomainRequest'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/DomainRequest'
responses:
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/Domain'
x-os-permissions: API Client needs the **Configuration management > Manage custom domains** permission for the target environment (stage).
/environments/{environmentKey}/default-domain:
get:
tags:
- Domains
summary: Retrieves the default domain for the given environment (stage).
description: 'Retrieves the default domain for the given environment (stage).
API Client needs the **Configuration management > View configurations** permission for the target environment (stage).'
operationId: EnvironmentConfigurations_Get
parameters:
- name: environmentKey
in: path
description: The environment's key.
required: true
schema:
type: string
responses:
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DefaultDomainResponse'
x-os-permissions: API Client needs the **Configuration management > View configurations** permission for the target environment (stage).
patch:
tags:
- Domains
summary: Updates the default domain for the given environment (stage).
description: 'Updates the default domain for the given environment (stage).
API Client needs the **Configuration management > Manage custom domains** permission for the target environment (stage).'
operationId: EnvironmentConfigurations_Patch
parameters:
- name: environmentKey
in: path
description: The environment's key.
required: true
schema:
type: string
requestBody:
description: The request object containing the new Default Domain.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PatchDefaultDomainRequest'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/PatchDefaultDomainRequest'
responses:
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'204':
description: No Content
x-os-permissions: API Client needs the **Configuration management > Manage custom domains** permission for the target environment (stage).
components:
schemas:
PatchDefaultDomainRequest:
type: object
properties:
defaultDomain:
type:
- string
- 'null'
description: The default domain to set for the environment (stage).
additionalProperties: false
Domain:
type: object
properties:
id:
type:
- string
- 'null'
description: The domain's unique identifier.
name:
type:
- string
- 'null'
description: The domain's name.
hostname:
type:
- string
- 'null'
description: The hostname used to access the applications that are deployed in the environment.
cNameValue:
type:
- string
- 'null'
description: The CName related to the domain.
builtIn:
type: boolean
description: Indicates if the domain is provided by OutSystems.
certificate:
allOf:
- $ref: '#/components/schemas/DomainCertificate'
description: The associated certificate for the domain.
isDefault:
type: boolean
description: Indicates if this domain is set as the default one for applications in the environment (stage).
defaultApplicationKey:
type:
- string
- 'null'
description: If this domain is set as the default one for this application key in that environment
format: uuid
redirectOption:
allOf:
- $ref: '#/components/schemas/RedirectOption'
description: 'The type of redirect to use, enum of [Permanent, Temporary, None]
Default is Permanent (301) redirect.'
additionalProperties: false
DomainRequest:
type: object
properties:
hostname:
type:
- string
- 'null'
description: The hostname for the new domain.
name:
type:
- string
- 'null'
description: The name for the new domain.
additionalProperties: false
PageInfoWithTotals:
type: object
properties:
count:
type: integer
description: Number of results in the current page.
format: int32
limit:
type: integer
description: Limit of results per page.
format: int32
offset:
type: integer
description: Offset of the current page of results.
format: int32
nextPageOffset:
type: integer
description: Offset of the next page of results.
format: int32
totalResults:
type: integer
description: Total of results.
format: int32
totalPages:
type: integer
description: Total of result pages.
format: int32
readOnly: true
additionalProperties: false
description: Contains response page information including totals.
DomainCertificate:
type: object
properties:
status:
allOf:
- $ref: '#/components/schemas/DomainCertificateStatus'
description: Current status of the certificate
cNameKey:
type:
- string
- 'null'
description: Key correlating CName with certificate
cNameValue:
type:
- string
- 'null'
description: CName correlated to certificate
renewalEligibility:
type: boolean
description: If it is renewable
statusErrorCode:
type:
- string
- 'null'
description: Associated error value for when the status is in Error
statusErrorMessage:
type:
- string
- 'null'
description: Associated error message for when the status is in Error
additionalProperties: false
ProblemDetails:
type: object
properties:
type:
type:
- string
- 'null'
description: A URI reference that identifies the problem type.
title:
type:
- string
- 'null'
description: A short, human-readable summary of the problem.
status:
type:
- integer
- 'null'
description: The HTTP status code applicable to the problem.
format: int32
detail:
type:
- string
- 'null'
description: A human-readable explanation of the error.
instance:
type:
- string
- 'null'
description: A URI that identifies the specific occurrence of the problem.
traceId:
type: string
description: This field helps OutSystems support track and investigate specific error occurrences. Providing this identifier when reporting an issue allows for more precise and faster troubleshooting.
errorCode:
type: string
description: This error code serves the purpose to communicate with OutSystems Support and help diagnose errors.
description: A standardized error response as per RFC 7807 (Problem Details for HTTP APIs).
DomainPatchRequest:
type: object
properties:
defaultApplicationKey:
type:
- string
- 'null'
description: The application key to set as the default for the domain.
format: uuid
redirectOption:
allOf:
- $ref: '#/components/schemas/RedirectOption'
description: 'The type of redirect to use, enum of [Permanent, Temporary, None]
Default is Permanent (301) redirect.'
additionalProperties: false
DefaultDomainResponse:
type: object
properties:
defaultDomain:
type:
- string
- 'null'
description: The default domain for the given environment (stage).
additionalProperties: false
RedirectOption:
enum:
- Permanent
- Temporary
- None
type: string
description: The type of redirect to use for domains.
DomainPagedListResponse:
type: object
properties:
page:
allOf:
- $ref: '#/components/schemas/PageInfoWithTotals'
description: Page information.
readOnly: true
results:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Domain'
description: List of results.
readOnly: true
additionalProperties: false
description: Represents a response containing a paged set of results.
DomainCertificateStatus:
enum:
- Creating
- PendingValidation
- Issued
- Failed
- Deleting
- Deleted
- Expired
- Active
type: string
DomainPatchResponse:
type: object
properties:
domain:
allOf:
- $ref: '#/components/schemas/Domain'
description: The updated domain information after the patch operation
additionalProperties: false
securitySchemes:
bearerAuth:
type: http
description: Enter your bearer token in the format 'Bearer {token}'
scheme: bearer
bearerFormat: JWT