OutSystems Assets API
The Assets API from OutSystems — 19 operation(s) for assets.
The Assets API from OutSystems — 19 operation(s) for assets.
openapi: 3.2.0
info:
title: Outsystems Assets API
version: v1
description: 'Operations tagged Assets across 3 of this provider''s published API definitions: outsystems-asset-repository-api-v1-openapi.json, outsystems-code-quality-api-v1-openapi.json, outsystems-dependency-management-api-v1-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://ODC_PORTAL_DOMAIN/api/asset-repository/v1
description: Replace ODC_PORTAL_DOMAIN with the domain of your organization.
- url: https://{odc-portal-domain}/api/asset-repository/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
- url: https://ODC_PORTAL_DOMAIN/api/code-quality/v1
description: Replace ODC_PORTAL_DOMAIN with the domain of your organization.
- url: https://{odc-portal-domain}/api/code-quality/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
- url: https://ODC_PORTAL_DOMAIN/api/dependency-management/v1
description: Replace ODC_PORTAL_DOMAIN with the domain of your organization.
- url: https://{odc-portal-domain}/api/dependency-management/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
tags:
- name: Assets
paths:
/assets:
servers:
- url: https://ODC_PORTAL_DOMAIN/api/asset-repository/v1
description: Replace ODC_PORTAL_DOMAIN with the domain of your organization.
- url: https://{odc-portal-domain}/api/asset-repository/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
post:
tags:
- Assets
summary: Creates a new revision of an asset.
description: 'If the asset does not exist, it creates the asset and its first revision.
The new revision can be created from a source file (OML/XIF) or, for new assets, created empty or cloned from a template.
When providing the source file, you can pass it as a fileUri or send the binary directly using the application/octet-stream or multipart/form-data content types.
To create an asset, API Client needs the **Asset management > Create** permission.
To create a new revision for an existing asset, API Client needs the **Asset management > Change** permission.'
operationId: AssetRepository_CreateAssetRevision
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AssetVersionCreationRequest'
application/octet-stream:
schema:
format: binary
multipart/form-data:
schema:
type: object
properties:
creationRequest:
$ref: '#/components/schemas/AssetVersionCreationRequest'
assetFile:
type: string
format: binary
encoding:
creationRequest:
contentType: application/json
assetFile:
contentType: application/octet-stream
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationVersion'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-os-permissions: 'To create an asset, API Client needs the **Asset management > Create** permission.
To create a new revision for an existing asset, API Client needs the **Asset management > Change** permission.'
security:
- bearerAuth: []
get:
tags:
- Assets
summary: Lists all assets.
description: 'Returns a list of the latest revision for all assets that match the specified filters.
'
operationId: AssetRepository_ListAssets
parameters:
- name: nameContains
in: query
description: Filters assets by name.
schema:
type: string
- name: nameOrDescriptionContains
in: query
description: Filters assets by name or description.
schema:
type: string
- name: assetTypes
in: query
description: Filter by one or more asset types, recognized values are [WebApplication, MobileApplication, LowCodeLibrary, ExtensionLibrary, ExternalConnection, ExternalLibrary, Workflow, WidgetLibrary, AIModelConnection, SearchServiceConnection, Agent, MCPConnection, A2AConnection, KnowledgeBase].
schema:
type: array
items:
type: string
- name: assetKeys
in: query
description: Filter by one or more asset keys.
schema:
type: array
items:
type: string
- name: portfolioKeys
in: query
description: Filter by one or more portfolio keys.
schema:
type: array
items:
type: string
- name: embed
in: query
description: Embedded resources to return with the asset revision. Recognized values are [releaseNote, icon, sourceCode, signature, metadata].
schema:
type: array
items:
type: string
- name: metadata.urlPathContains
in: query
description: Filters assets by url path.
schema:
type: string
- name: metadata.templateType
in: query
description: Filter assets that are templates of a specific template type.
schema:
allOf:
- $ref: '#/components/schemas/TemplateType'
- name: metadata.isDeployable
in: query
description: Filter assets that can be deployed to environments (e.g. exclude libraries and templates).
schema:
type: boolean
- name: metadata.isBuiltInAsset
in: query
description: Filter asset based on if they are builtin type.
schema:
type: boolean
- name: isExternal
in: query
description: Filter asset based on if it is external or not.
schema:
type: boolean
- name: permissionFilter
in: query
description: Filter by a specific permission type.
schema:
allOf:
- $ref: '#/components/schemas/PermissionType'
- name: sort
in: query
description: 'Used for sorting the list. Ascending by default. Prepend a hyphen, "-", to get a descending sort. Allowed: name, createdAt.'
schema:
type: string
- name: limit
in: query
description: Maximum number of results returned.
schema:
maximum: 1000
minimum: 1
type: integer
format: int32
default: 100
- name: offset
in: query
description: Offset of the first result returned.
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
default: 0
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AssetRevisionV1PagedListResponse'
'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'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
security:
- bearerAuth: []
/assets/{assetKey}:
servers:
- url: https://ODC_PORTAL_DOMAIN/api/asset-repository/v1
description: Replace ODC_PORTAL_DOMAIN with the domain of your organization.
- url: https://{odc-portal-domain}/api/asset-repository/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
delete:
tags:
- Assets
summary: Deletes an asset.
description: 'Deleting an asset is an irreversible action. When doing so, an internal event is triggered to remove it from all stages where it''s published and to also delete all associated runtime data. Built-in assets are protected and cannot be deleted.
API Client needs the **Asset management > Delete** permission.'
operationId: AssetRepository_DeleteAsset
parameters:
- name: assetKey
in: path
description: The asset's key.
required: true
schema:
type: string
responses:
'204':
description: No Content
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-os-permissions: API Client needs the **Asset management > Delete** permission.
security:
- bearerAuth: []
get:
tags:
- Assets
summary: Gets the latest revision of a specific asset.
description: 'Returns the latest revision of a specific asset.
'
operationId: AssetRepository_GetAsset
parameters:
- name: assetKey
in: path
description: The asset's key.
required: true
schema:
type: string
- name: embed
in: query
description: Embedded resources to return with the asset revision. Recognized values are [releaseNote, icon, sourceCode, signature, metadata].
schema:
type: array
items:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AssetRevisionV1'
'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'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
security:
- bearerAuth: []
/assets/{assetKey}/highest-tag-revision:
servers:
- url: https://ODC_PORTAL_DOMAIN/api/asset-repository/v1
description: Replace ODC_PORTAL_DOMAIN with the domain of your organization.
- url: https://{odc-portal-domain}/api/asset-repository/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
get:
tags:
- Assets
summary: Gets the highest-tagged revision of an asset.
description: 'Returns the highest-tagged revision of the requested asset.
'
operationId: AssetRepository_GetApplicationHighestTagRevision
parameters:
- name: assetKey
in: path
description: The asset's key.
required: true
schema:
type: string
- name: embed
in: query
description: Embedded resources to return with the asset revision. Recognized values are [releaseNote, icon, sourceCode, signature, metadata].
schema:
type: array
items:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AssetRevisionV1'
'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'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
security:
- bearerAuth: []
/assets/{assetKey}/latest-revision:
servers:
- url: https://ODC_PORTAL_DOMAIN/api/asset-repository/v1
description: Replace ODC_PORTAL_DOMAIN with the domain of your organization.
- url: https://{odc-portal-domain}/api/asset-repository/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
get:
tags:
- Assets
summary: Gets the latest revision of an asset.
description: 'Returns the latest revision of the requested asset.
'
operationId: AssetRepository_GetAssetLatestRevision
parameters:
- name: assetKey
in: path
description: The asset's key.
required: true
schema:
type: string
- name: embed
in: query
description: Embedded resources to return with the asset revision. Recognized values are [releaseNote, icon, sourceCode, signature, metadata].
schema:
type: array
items:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AssetRevisionV1'
'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'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
security:
- bearerAuth: []
/assets/{assetKey}/revisions/{revisionNumber}:
servers:
- url: https://ODC_PORTAL_DOMAIN/api/asset-repository/v1
description: Replace ODC_PORTAL_DOMAIN with the domain of your organization.
- url: https://{odc-portal-domain}/api/asset-repository/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
get:
tags:
- Assets
summary: Gets a specific revision of an asset.
description: 'Returns the requested asset revision.
'
operationId: AssetRepository_GetAssetRevision
parameters:
- name: assetKey
in: path
description: The asset's key.
required: true
schema:
type: string
- name: revisionNumber
in: path
description: The revision number.
required: true
schema:
type: integer
format: int32
- name: embed
in: query
description: Embedded resources to return with the asset revision. Recognized values are [releaseNote, icon, sourceCode, signature, metadata].
schema:
type: array
items:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AssetRevisionV1'
'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'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
security:
- bearerAuth: []
patch:
tags:
- Assets
summary: Sets the version tag and/or labels for an existing revision.
description: 'Setting the tag to null clears the existing revision tag.
API Client needs the **Asset management > Change** or **Release management > Release** permission.'
operationId: AssetRepository_PatchVersion
parameters:
- name: assetKey
in: path
description: The asset's key.
required: true
schema:
type: string
- name: revisionNumber
in: path
description: The revision number.
required: true
schema:
type: integer
format: int32
requestBody:
description: The version tag and labels to apply to the revision.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/AssetVersionPatchRequest'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/AssetVersionPatchRequest'
responses:
'204':
description: No Content
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'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'
x-os-permissions: API Client needs the **Asset management > Change** or **Release management > Release** permission.
security:
- bearerAuth: []
/assets/{assetKey}/revisions/{revisionNumber}/icon:
servers:
- url: https://ODC_PORTAL_DOMAIN/api/asset-repository/v1
description: Replace ODC_PORTAL_DOMAIN with the domain of your organization.
- url: https://{odc-portal-domain}/api/asset-repository/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
get:
tags:
- Assets
summary: Gets the icon for a specific asset revision.
description: 'Returns the icon for the specific asset revision
'
operationId: AssetRepository_GetAssetRevisionIcon
parameters:
- name: assetKey
in: path
description: The asset's key.
required: true
schema:
type: string
- name: revisionNumber
in: path
description: The revision number.
required: true
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AssetIcon'
'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'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
security:
- bearerAuth: []
/assets/{assetKey}/revisions/{revisionNumber}/metadata:
servers:
- url: https://ODC_PORTAL_DOMAIN/api/asset-repository/v1
description: Replace ODC_PORTAL_DOMAIN with the domain of your organization.
- url: https://{odc-portal-domain}/api/asset-repository/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
get:
tags:
- Assets
summary: Gets the metadata for a specific asset revision.
description: 'Returns the metadata for the specific asset revision
'
operationId: AssetRepository_GetAssetRevisionMetadata
parameters:
- name: assetKey
in: path
description: The asset's key.
required: true
schema:
type: string
- name: revisionNumber
in: path
description: The revision number.
required: true
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AssetMetadata'
'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'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
security:
- bearerAuth: []
/assets/{assetKey}/revisions/{revisionNumber}/release-notes:
servers:
- url: https://ODC_PORTAL_DOMAIN/api/asset-repository/v1
description: Replace ODC_PORTAL_DOMAIN with the domain of your organization.
- url: https://{odc-portal-domain}/api/asset-repository/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
get:
tags:
- Assets
summary: Gets the release notes for a specific asset revision.
description: 'Returns the release notes for the specific asset revision
'
operationId: AssetRepository_GetAssetRevisionReleaseNotes
parameters:
- name: assetKey
in: path
description: The asset's key.
required: true
schema:
type: string
- name: revisionNumber
in: path
description: The revision number.
required: true
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AssetReleaseNoteContent'
'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'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
security:
- bearerAuth: []
/assets/{assetKey}/revisions/{revisionNumber}/signature:
servers:
- url: https://ODC_PORTAL_DOMAIN/api/asset-repository/v1
description: Replace ODC_PORTAL_DOMAIN with the domain of your organization.
- url: https://{odc-portal-domain}/api/asset-repository/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
get:
tags:
- Assets
summary: Gets the signature for a specific asset revision.
description: 'Returns the signature for the specific asset revision
'
operationId: AssetRepository_GetAssetRevisionSignature
parameters:
- name: assetKey
in: path
description: The asset's key.
required: true
schema:
type: string
- name: revisionNumber
in: path
description: The revision number.
required: true
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AssetSignature'
'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'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
security:
- bearerAuth: []
/assets/{assetKey}/revisions/{revisionNumber}/source-code:
servers:
- url: https://ODC_PORTAL_DOMAIN/api/asset-repository/v1
description: Replace ODC_PORTAL_DOMAIN with the domain of your organization.
- url: https://{odc-portal-domain}/api/asset-repository/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
get:
tags:
- Assets
summary: Gets the source code for a specific asset revision.
description: 'Returns the source code for a specific asset revision
API Client needs the **Asset management > Open** permissions.'
operationId: AssetRepository_GetAssetRevisionSourceCode
parameters:
- name: assetKey
in: path
description: The asset's key.
required: true
schema:
type: string
- name: revisionNumber
in: path
description: The revision n
# --- truncated at 32 KB (97 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/outsystems/refs/heads/main/openapi/outsystems-assets-api-openapi.yml