openapi: 3.2.0
info:
title: Showpad Assets API
contact:
name: Showpad
email: support@showpad.com
url: https://help.showpad.com/hc/en-us/requests/new
termsOfService: https://www.showpad.com/terms-of-service
x-audience: external-partner
x-refined-note:
- x-logo differs across the merged source definitions and was not carried
- x-serviceName differs across the merged source definitions and was not carried
version: '1.0'
description: 'Operations tagged assets across 2 of this provider''s published API definitions: showpad-v3-openapi-original.yml, showpad-v4-openapi-original.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://{subdomain}.showpad.biz/api/v3/
description: Production server
x-environment: production
variables:
subdomain:
default: customer
description: Showpad customer subdomain
- url: https://{subdomain}.api.showpad.com/v4
description: Production server
x-environment: production
variables:
subdomain:
default: customer
description: Showpad customer subdomain
tags:
- name: assets
description: ''
paths:
/assets.json:
get:
deprecated: true
tags:
- assets
operationId: get_assets
description: 'Generates a list of Asset items.
*Note*: This endpoint continues to function, but future improvements will only be available in v4. We recommend switching to this [v4 version](https://developer.showpad.com/docs/apis/references/v4#/operations/getAssets).'
summary: /assets.json
security:
- bearerAuth: []
- oAuth:
- read_contentprofile_management
responses:
default:
description: successful operation
content:
application/json:
schema:
type: object
required:
- response
properties:
meta:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
serverTime:
type: string
format: date-time
lastUpdatedTime:
type: string
format: date-time
requestRateLimit:
type: integer
format: int32
requestRateLimitReset:
type: integer
format: int32
requestsRemaining:
type: integer
format: int32
location:
type: string
format: link
userTimezone:
type: object
properties:
offset:
type: string
name:
type: string
response:
type: object
properties:
count:
description: Total number of results.
type: integer
format: int32
example: 20
items:
type: array
description: List of resources.
items:
type: object
properties:
id:
description: Unique identifier for the resource
type: string
resourcetype:
description: The type of resource
type: string
createdAt:
description: The date that the file was created
type: string
format: date-time
uploadedAt:
description: The date that the file was uploaded
type: string
format: date-time
description:
description: Custom description about the file
type:
- string
- 'null'
href:
description: Location of the asset
type: string
division:
description: The location of the divisions related to this asset
type: object
properties:
href:
type: string
format: link
id:
type: string
downloadLink:
description: Link where the file can be downloaded.
type:
- string
- 'null'
shortLivedDownloadLink:
description: Short-lived link where the file can be publicly downloaded.
type:
- string
- 'null'
shortLivedDownloadDuration:
description: Amount of days the short-lived download link will be valid for.
type:
- integer
- 'null'
format: int32
externalId:
description: External ID of the asset as used in the source application
type:
- string
- 'null'
fileSize:
description: Size of the file in bytes
type: integer
format: int32
filetype:
description: Type of file
type: string
processedDownloadLink:
description: Link where the processed file can be downloaded
type: string
isAnnotatable:
description: Set to true if you want to allow tablet users to share to annotate this file
type: boolean
isSensitive:
description: Set to true if you do not want this file to be visible in Kiosk mode on the tablet
type: boolean
isShareable:
description: Set to true if you want to allow users to share this file with other people
type: boolean
isDownloadable:
description: Set to true if you want to allow recipients to be able to download this file
type: boolean
isDivisionShared:
description: Set to true if you want to share this file across divisions
type: boolean
useOptimized:
description: Set to true if you want to use the optimized version of this file
type: boolean
name:
description: Display name of the file
type: string
url:
description: Url to link to
type:
- string
- 'null'
originalName:
description: Original name of the file
type: string
previewDownloadLink:
description: Link where the preview of the file can be downloaded.
type: string
thumbnailDownloadLink:
description: Link where the thumbnail of the file can be downloaded.
type: string
tags:
description: The location of the tags related to this asset
type: object
properties:
href:
type: string
format: link
assetView:
description: The location of the asset view related to this asset
type: object
properties:
id:
type: string
href:
type: string
format: link
updatedAt:
description: The date that the file was updated
type: string
format: date-time
views:
description: The number of views by tablet users on this file
type: integer
format: int32
appLink:
description: Link to asset inside application
type: string
liked:
description: The asset was liked by the current user
type: boolean
likesCount:
description: Count of people who have liked an asset
type: integer
format: int32
standardId:
description: Standard ID with version (e.g. ph-135.v1)
type: string
externalDate:
description: An external date of the asset as used in the source application
type:
- string
- 'null'
format: date
archivedAt:
description: The date that the file was sent to trash
type:
- string
- 'null'
format: date
expiresAt:
description: The expiry date of the asset
type:
- string
- 'null'
format: date
releasedAt:
description: The release date of the asset
type:
- string
- 'null'
format: date
draftedAt:
description: The draft date of the asset
type:
- string
- 'null'
format: date
extension:
description: Extension of the file
type: string
lockedPages:
description: The pages that are locked together in this asset
type:
- array
- 'null'
items:
type: string
pageCount:
description: The number of pages the document has, if applicable
type:
- integer
- 'null'
format: int32
onlyShareEntireDocument:
description: Whether or not we can only share the entire document
type: boolean
isPersonal:
description: Whether or not the asset is a 'personal' asset - in your own division
type: boolean
isMarketing:
description: Whether or not the asset is a 'marketing' asset - not a personal division
type: boolean
externalServiceId:
description: External Service ID of the asset as used in the source application
type:
- string
- 'null'
currentChannelTemplateConfigId:
description: Current channel template config ID corresponding to this asset
type:
- string
- 'null'
format: link
channelTemplateConfigId:
description: Channel template config ID
type:
- string
- 'null'
format: link
slug:
description: The slug of the asset (valid and unique UUIDv4)
type: string
hideLabel:
description: Set to true if you want to hide the label for this asset
type: boolean
isEditable:
description: Set true if the asset can be edited in the Showpad Edit App
type: boolean
sourceAsset:
description: The original asset from which this asset was created from
type:
- string
- 'null'
format: link
sourceAssetName:
description: The original asset name from which this asset was created from
type: string
sourceAssetLink:
description: The link to the original asset
type: string
videoLength:
description: Length of the video
type:
- integer
- 'null'
format: int32
duration:
description: Duration of the media
type:
- integer
- 'null'
format: int32
wordCount:
description: The number of words the asset contains, if applicable
type:
- integer
- 'null'
format: int32
allowRenderExternal:
description: Indicates if a url asset should be opened in a new window, or rendered inside showpad (iframe)
type: boolean
downloadableInternal:
description: Indicates type of content that can be downloaded by internal users
type:
- array
- 'null'
items:
type: string
downloadableExternal:
description: Indicates type of content that can be downloaded by external users
type:
- array
- 'null'
items:
type: string
md5Checksum:
description: The MD5 checksum of the contents of the original file
type:
- string
- 'null'
fileUuid:
description: The Uuid of the current file
type:
- string
- 'null'
version:
description: The version of asset as an integer
type: integer
format: int32
parentAssetId:
description: The ID of the parent asset if it exist
type:
- string
- 'null'
oAuth2ClientId:
description: The OAuth2 client that can manage the asset via an external service
type: string
parameters:
- name: archivedAt
description: The date that the file was sent to trash
required: false
in: query
schema:
type: string
format: date
- name: describe_apis
description: Describes the different api calls available together with the allowed parameters
required: false
in: query
schema:
type: boolean
- name: describe_model
description: Describes the data model behind the resource including properties and their description
required: false
in: query
schema:
type: boolean
- name: expand
description: Comma separated list of all expanded relationships that need to be retrieved.
required: false
in: query
schema:
type: string
- name: externalId
description: External ID of the asset as used in the source application
required: false
in: query
schema:
type: string
- name: externalServiceId
description: External Service ID of the asset as used in the source application
required: false
in: query
schema:
type: string
- name: fields
description: Comma separated list of all fields that need to be retrieved.
required: false
in: query
schema:
type: string
- name: filetype
description: Type of file
required: false
in: query
schema:
type: string
anyOf:
- title: 3d-model
type: string
- title: audio
type: string
- title: document
type: string
- title: personal-video-recording
type: string
- title: photo
type: string
- title: raw
type: string
- title: scorm
type: string
- title: video
type: string
- title: webapp
type: string
- title: url
type: string
- title: page
type: string
- name: hideLabel
description: Set to true if you want to hide the label for this asset
required: false
in: query
schema:
type: boolean
- name: isAnnotatable
description: Set to true if you want to allow tablet users to share to annotate this file
required: false
in: query
schema:
type: boolean
- name: isDivisionShared
description: Set to true if you want to share this file across divisions
required: false
in: query
schema:
type: boolean
- name: isDownloadable
description: Set to true if you want to allow recipients to be able to download this file
required: false
in: query
schema:
type: boolean
- name: isEditable
description: Set true if the asset can be edited in the Showpad Edit App
required: false
in: query
schema:
type: boolean
- name: isPersonal
description: Whether or not the asset is a 'personal' asset - in your own division
required: false
in: query
schema:
type: boolean
- name: isSensitive
description: Set to true if you do not want this file to be visible in Kiosk mode on the tablet
required: false
in: query
schema:
type: boolean
- name: isShareable
description: Set to true if you want to allow users to share this file with other people
required: false
in: query
schema:
type: boolean
- name: limit
description: Sets the maximum number of returned items. The maximum limit is set to 1000. For example, if 'limit' is 0, only 0 items will be retrieved.
required: false
in: query
schema:
type: integer
format: int32
minimum: 0
maximum: 1000
- name: lockedPages
description: The pages that are locked together in this asset
required: false
in: query
schema:
type: array
items:
type: string
- name: method
description: '''method'' can be used by HTTP clients who are not able to set certain HTTP verbs such as a DELETE of a PUT'
required: false
in: query
schema:
type: string
anyOf:
- title: post
type: string
- name: name
description: Display name of the file
required: false
in: query
schema:
type: string
- name: offset
description: Set the offset of the returned items.For example, if 'offset' is 5 and 'limit' is 10, items 6 to 15 will be returned.
required: false
in: query
schema:
type: integer
format: int32
minimum: 0
- name: onlyShareEntireDocument
description: Whether or not we can only share the entire document
required: false
in: query
schema:
type: boolean
- name: originalName
description: Original name of the file
required: false
in: query
schema:
type: string
- name: slug
description: The slug of the asset (valid and unique UUIDv4)
required: false
in: query
schema:
type: string
- name: sort
description: The field you want to sort on. Adding a '-' in front of the field name allows you to sort descending.
required: false
in: query
schema:
type: string
- name: standardId
description: Standard ID with version (e.g. ph-135.v1)
required: false
in: query
schema:
type: string
- name: suppress_response_codes
description: 'This forces the HTTP status code of the response to be set to 200 '
required: false
in: query
schema:
type: boolean
- name: url
description: Url to link to
required: false
in: query
schema:
type: string
- name: useOptimized
description: Set to true if you want to use the optimized version of this file
required: false
in: query
schema:
type: boolean
- name: version
description: The version of asset as an integer
required: false
in: query
schema:
type: integer
format: int32
post:
deprecated: true
tags:
- assets
operationId: post_assets
description: 'Create a Asset item.
*Note*: This endpoint continues to function, but future improvements will only be available in v4. We recommend switching to this [v4 version](https://developer.showpad.com/docs/apis/references/v4#/operations/postAssets) or this [v4 version](https://developer.showpad.com/docs/apis/references/v4#/operations/postAssetFiles).'
summary: /assets.json
responses:
default:
description: successful operation
content:
application/json:
schema:
type: object
required:
- response
properties:
meta:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
serverTime:
type: string
format: date-time
lastUpdatedTime:
type: string
format: date-time
requestRateLimit:
type: integer
format: int32
requestRateLimitReset:
type: integer
format: int32
requestsRemaining:
type: integer
format: int32
location:
type: string
format: link
userTimezone:
type: object
properties:
offset:
type: string
name:
type: string
response:
type: object
properties:
id:
description: Unique identifier for the resource
type: string
resourcetype:
description: The type of resource
type: string
createdAt:
description: The date that the file was created
type: string
format: date-time
uploadedAt:
description: The date that the file was uploaded
type: string
format: date-time
description:
description: Custom description about the file
type:
- string
- 'null'
href:
description: Location of the asset
type: string
division:
description: The location of the divisions related to this asset
type: object
properties:
href:
type: string
format: link
id:
type: string
downloadLink:
description: Link where the file can be downloaded.
type:
- string
- 'null'
shortLivedDownloadLink:
description: Short-lived link where the file can be publicly downloaded.
type:
- string
- 'null'
shortLivedDownloadDuration:
description: Amount of days the short-lived download link will be valid for.
type:
- integer
- 'null'
format: int32
externalId:
description: External ID of the asset as used in the source application
type:
- string
- 'null'
fileSize:
description: Size of the file in bytes
type: integer
format: int32
filetype:
description: Type of file
type: string
processedDownloadLink:
description: Link where the processed file can be downloaded
type: string
isAnnotatable:
description: Set to true if you want to allow tablet users to share to annotate this file
type: boolean
isSensitive:
description: Set to true if you do not want this file to be visible in Kiosk mode on the tablet
type: boolean
isShareable:
description: Set to true if you want to allow users to share this file with other people
type: boolean
isDownloadable:
description: Set to true if you want to allow recipients to be able to download this file
type: boolean
isDivisionShared:
description: Set to true if you want to share this file across divisions
type: boolean
useOptimized:
description: Set to true if you want to use the optimized version of this file
type: boolean
name:
description: Display name of the file
type: string
url:
description: Url to link to
type:
- string
- 'null'
originalName:
description: Original name of the file
type: string
previewDownloadLink:
description: Link where the preview of the file can be downloaded.
type: string
thumbnailDownloadLink:
description: Link where the thumbnail of the file can be downloaded.
type: string
tags:
description: The location of the tags related to this asset
type: object
properties:
href:
type: string
format: link
assetView:
description: The location of the asset view related to this asset
type: object
properties:
id:
type: string
href:
type: string
format: link
updatedAt:
description: The date that the file was updated
type: string
format: date-time
views:
description: The number of views by tablet users on this file
type: integer
format: int32
appLink:
description: Link to asset inside application
type: string
liked:
description: The asset was liked by the current user
type: boolean
likesCount:
description: Count of people who have liked an asset
type: integer
format: int32
standardId:
description: Standard ID with version (e.g. ph-135.v1)
type: string
externalDate:
description: An external date of the asset as used in the source application
type:
- string
- 'null'
format: date
archivedAt:
description: The date that the file was sent to trash
type:
- string
- 'null'
format: date
expiresAt:
description: The expiry date of the asset
type:
- string
- 'null'
format: date
releasedAt:
description: The release date of the asset
type:
- string
- 'null'
format: date
draftedAt:
description: The draft date of the asset
type:
- string
- 'null'
format: date
extension:
description: Extension of the file
type: string
lockedPages:
description: The pages that are locked together in this asset
type:
- array
- 'null'
items:
type: string
pageCount:
description: The number of pages the document has, if applicable
type:
- integer
- 'null'
format: int32
onlyShareEntireDocument:
description: Whether or not we can only share the entire document
type: boolean
isPersonal:
description: Whether or not the asset is a 'personal' asset - in your own division
type: boolean
isMarketing:
description: Whether or not the asset is a 'marketing' asset - not a personal division
type: boolean
externalServiceId:
description: External Service ID of the asset as used in the source application
type:
- string
- 'null'
currentChannelTemplateConfigId:
description: Current channel template config ID corresponding to this asset
type:
- string
- 'null'
format: link
channelTemplateConfigId:
description: Channel template config ID
type:
- string
- 'null'
format: link
slug:
description: The slug of the asset (valid and unique UUIDv4)
type: string
hideLabel:
description: Set to true if you want to hide the label for this asset
type: boolean
isEditable:
description: Set true if the asset can be edited in the Showpad Edit App
type: boolean
sourceAsset:
description: The original asset from which this asset was created from
type:
- string
- 'null'
format: link
sourceAssetName:
description: The original asset name from which this asset was created from
type: string
sourceAssetLink:
description: The link to the original asset
type: string
videoLength:
description: Length of the video
type:
- integer
- 'null'
format: int32
duration:
description: Duration of the media
type:
- integer
- 'null'
format: int32
wordCount:
description: The number of words the asset contains, if applicable
type:
- integer
- 'null'
format: int32
allowRenderExternal:
description: Indicates if a url asset should be opened in a new window, or rendered inside showpad (iframe)
type: boolean
downloadableInternal:
description: Indicates type of content that can be downloaded by internal users
type:
- array
- 'null'
items:
type: string
downloadableExternal:
description: Indicates type of content that can be downloaded by external users
type:
- array
- 'null'
items:
type: string
md5Checksum:
description: The MD5 checksum of the contents of the original file
type:
- string
- 'null'
fileUuid:
description: The Uuid of the current file
type:
- string
- 'null'
version:
description: The version of asset as an integer
type: integer
format: int32
parentAssetId:
description: The ID of the parent asset if it exist
type:
- string
- 'null'
oAuth2ClientId:
description: The OAuth2 client that can manage the asset via an external service
type: string
security:
- bearerAuth: []
- oAuth:
- write_contentprofile_management
parameters:
- name: Link
description: A comma-separated list of '<resourceID>; rel="ResourceType"'
required: false
in: header
schema:
type: string
- name: describe_apis
description: Describes the different api calls available together with the allowed parameters
required: false
in: query
schema:
type: boolean
- name: describe_model
description: Describes the data model behind the resource including properties and their description
required: false
in: query
schema:
type: boolean
- name: expand
description: Comma separated list of all expanded relationships that need to be retrieved.
required: false
in: query
schema:
type: string
- name: fields
description: Comma separated list of all fields that need to be retrieved.
required: false
in: query
schema:
type: string
- name: suppress_response_codes
description: 'This forces the HTTP status code of the response to be set to 200 '
required: false
in: query
schema:
type: boolean
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
channelTemplateConfigId:
type: string
description:
type: string
expiresAt:
type: string
format: date
externalDate:
type: string
format: date
externalId:
type: string
externalServiceId:
type: string
file:
type: string
format: binary
filetype:
type: string
anyOf:
- title: 3d-model
type: string
- title: audio
type: string
- title: document
type: string
- title: personal-video-recording
type: string
- title: photo
type: string
- title: raw
type: string
- title: scorm
type: string
- title: video
type: string
- title: webapp
type: string
- title: url
type: string
- title: page
type: string
hideLabel:
type: boolean
icon:
type: string
format: binary
isAnnotatable:
type: boolean
isDivisionShared:
type: boolean
isDownloadable:
type: boolean
isEditable:
type: boolean
isPersonal:
type: boolean
isSensitive:
type: boolean
isShareable:
type: boolean
liked:
type: boolean
lockedPages:
type: array
items:
type: string
name:
type: string
oAuth2ClientId:
type: string
onlyShareEntireDocument:
type: boolean
postProcessingInstructions:
type: string
releasedAt:
type: string
format: date
draftedAt:
type: string
format: date
slug:
type: string
url:
type: string
useOptimized:
type: boolean
servers:
- url: https://{subdomain}.showpad.biz/api/v3/
description: Production server
x-environment: production
variables:
subdomain:
default: customer
description: Showpad customer subdomain
/assets/count.json:
get:
deprecated: false
tags:
- assets
operationId: get_assets_count
description: Retrieve the number of Asset items
summary: /assets/count.json
responses:
default:
description: successful operation
content:
application/json:
schema:
type: object
properties:
meta:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
serverTime:
type: string
format: date-time
lastUpdatedTime:
type: string
format: date-time
requestRateLimit:
type: integer
format: int32
requestRateLimitReset:
type: integer
format: int32
requestsRemaining:
type: integer
format: int32
location:
type: string
format: link
userTimezone:
type: object
properties:
offset:
type: string
name:
type: string
response:
type: object
security:
- bearerAuth: []
- oAuth:
- read_contentprofile_management
parameters:
- name: archivedAt
description: The date that the file was sent to trash
required: false
in: query
schema:
type: string
format: date
- name: describe_apis
description: Describes the different api calls available together with the allowed parameters
required: false
in: query
schema:
type: boolean
- name: describe_model
description: Describes the data model behind the resource including properties and their description
required: false
in: query
schema:
type: boolean
- name: externalId
description: External ID of the asset as used in the source application
required: false
in: query
schema:
type: string
- name: externalServiceId
description: External Service ID of the asset as used in the source application
required: false
in: query
schema:
type: string
- name: filetype
description: Type of file
required: false
in: query
schema:
type: string
anyOf:
- title: 3d-model
type: string
- title: audio
type: string
- title: document
type: string
- title: personal-video-recording
type: string
- title: photo
type: string
- title: raw
type: string
- title: scorm
type: string
- title: video
type: string
- title: webapp
type: string
- title: url
type: string
- title: page
type: string
- name: hideLabel
description: Set to true if you want to hide the label for this asset
required: false
in: query
schema:
type: boolean
- name: isAnnotatable
description: Set to true if you want to allow tablet users to share to annotate this file
required: false
in: query
schema:
type: boolean
- name: isDivisionShared
description: Set to true if you want to share this file across divisions
required: false
in: query
schema:
type: boolean
- name: isDownloadable
description: Set to true if you want to allow recipients to be able to download this file
required: false
in: query
schema:
type: boolean
- name: isEditable
description: Set true if the asset can be edited in the Showpad Edit App
required: false
in: query
schema:
type: boolean
- name: isPersonal
description: Whether or not the asset is a 'personal' asset - in your own division
required: false
in: query
schema:
type: boolean
- name: isSensitive
description: Set to true if you do not want this file to be visible in Kiosk mode on the tablet
required: false
in: query
schema:
type: boolean
- name: isShareable
description: Set to true if you want to allow users to share this file with other people
required: false
in: query
schema:
type: boolean
- name: lockedPages
description: The pages that are locked together in this asset
required: false
in: query
schema:
type: array
items:
type: string
- name: name
description: Display name of the file
required: false
in: query
schema:
type: string
- name: onlyShareEntireDocument
description: Whether or not we can only share the entire document
required: false
in: query
schema:
type: boolean
- name: originalName
description: Original name of the file
required: false
in: query
schema:
type: string
- name: slug
description: The slug of the asset (valid and unique UUIDv4)
required: false
in: query
schema:
type: string
- name: standardId
description: Standard ID with version (e.g. ph-135.v1)
required: false
in: query
schema:
type: string
- name: suppress_response_codes
description: 'This forces the HTTP status code of the response to be set to 200 '
required: false
in: query
schema:
type: boolean
- name: url
description: Url to link to
required: false
in: query
schema:
type: string
- name: useOptimized
description: Set to true if you want to use the optimized version of this file
required: false
in: query
schema:
type: boolean
- name: version
description: The version of asset as an integer
required: false
in: query
schema:
type: integer
format: int32
servers:
- url: https://{subdomain}.showpad.biz/api/v3/
description: Production server
x-environment: production
variables:
subdomain:
default: customer
description: Showpad customer subdomain
/assets/description.json:
get:
deprecated: false
tags:
- assets
operationId: get_assets_description
description: Generates information about the Asset model and available apis
summary: /assets/description.json
responses:
default:
description: successful operation
content:
application/json:
schema:
type: object
properties:
meta:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
serverTime:
type: string
format: date-time
lastUpdatedTime:
type: string
format: date-time
requestRateLimit:
type: integer
format: int32
requestRateLimitReset:
type: integer
format: int32
requestsRemaining:
type: integer
format: int32
location:
type: string
format: link
userTimezone:
type: object
properties:
offset:
type: string
name:
type: string
response:
type: object
security:
- bearerAuth: []
- oAuth:
- read_contentprofile_management
parameters:
- name: suppress_response_codes
description: 'This forces the HTTP status code of the response to be set to 200 '
required: false
in: query
schema:
type: boolean
servers:
- url: https://{subdomain}.showpad.biz/api/v3/
description: Production server
x-environment: production
variables:
subdomain:
default: customer
description: Showpad customer subdomain
/assets/{id1}/tags/{id2}.json:
get:
deprecated: true
tags:
- assets
operationId: get_assets_id1_tags_id2
description: 'Link or unlink an asset with ID = ''id1'' to a tag with ID = ''id2''.
*Note*: This endpoint continues to function, but future improvements will only be available in v4. We recommend switching to this [v4 version](https://developer.showpad.com/docs/apis/references/v4#/operations/updateAsset).'
summary: /assets/{id1}/tags/{id2}.json
responses:
default:
description: successful operation
content:
application/json:
schema:
type: object
properties:
meta:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
serverTime:
type: string
format: date-time
lastUpdatedTime:
type: string
format: date-time
requestRateLimit:
type: integer
format: int32
requestRateLimitReset:
type: integer
format: int32
requestsRemaining:
type: integer
format: int32
location:
type: string
format: link
userTimezone:
type: object
properties:
offset:
type: string
name:
type: string
response:
type: object
security:
- bearerAuth: []
- oAuth:
- write_contentprofile_management
parameters:
- name: id1
description: ID of the Asset item
required: true
in: path
schema:
type: string
- name: id2
description: ID of the Tag item
required: true
in: path
schema:
type: string
- name: method
description: '''method'' can be used by HTTP clients who are not able to set certain HTTP verbs such as a DELETE of a PUT'
required: true
in: query
schema:
type: string
anyOf:
- title: link
type: string
- title: unlink
type: string
- name: describe_apis
description: Describes the different api calls available together with the allowed parameters
required: false
in: query
schema:
type: boolean
- name: describe_model
description: Describes the data model behind the resource including properties and their description
required: false
in: query
schema:
type: boolean
- name: suppress_response_codes
description: 'This forces the HTTP status code of the response to be set to 200 '
required: false
in: query
schema:
type: boolean
servers:
- url: https://{subdomain}.showpad.biz/api/v3/
description: Production server
x-environment: production
variables:
subdomain:
default: customer
description: Showpad customer subdomain
/assets/{id1}/tags/{id2}/link.json:
post:
deprecated: true
tags:
- assets
operationId: link_assets_id1_tags_id2_link
description: 'Link an asset with ID = ''id1'' to a tag with ID = ''id2''.
*Note*: This endpoint continues to function, but future improvements will only be available in v4. We recommend switching to this [v4 version](https://developer.showpad.com/docs/apis/references/v4#/operations/updateAsset).'
summary: /assets/{id1}/tags/{id2}/link.json
responses:
default:
description: successful operation
content:
application/json:
schema:
type: object
properties:
meta:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
serverTime:
type: string
format: date-time
lastUpdatedTime:
type: string
format: date-time
requestRateLimit:
type: integer
format: int32
requestRateLimitReset:
type: integer
format: int32
requestsRemaining:
type: integer
format: int32
location:
type: string
format: link
userTimezone:
type: object
properties:
offset:
type: string
name:
type: string
response:
type: object
security:
- bearerAuth: []
- oAuth:
- write_contentprofile_management
parameters:
- name: id1
description: ID of the Asset item
required: true
in: path
schema:
type: string
- name: id2
description: ID of the Tag item
required: true
in: path
schema:
type: string
- name: describe_apis
description: Describes the different api calls available together with the allowed parameters
required: false
in: query
schema:
type: boolean
- name: describe_model
description: Describes the data model behind the resource including properties and their description
required: false
in: query
schema:
type: boolean
- name: suppress_response_codes
description: 'This forces the HTTP status code of the response to be set to 200 '
required: false
in: query
schema:
type: boolean
servers:
- url: https://{subdomain}.showpad.biz/api/v3/
description: Production server
x-environment: production
variables:
subdomain:
default: customer
description: Showpad customer subdomain
/assets/{id1}/tags/{id2}/unlink.json:
post:
deprecated: true
tags:
- assets
operationId: unlink_assets_id1_tags_id2_unlink
description: 'Unlink an asset with ID = ''id1'' from a tag with ID = ''id2''.
*Note*: This endpoint continues to function, but future improvements will only be available in v4. We recommend switching to this [v4 version](https://developer.showpad.com/docs/apis/references/v4#/operations/updateAsset).'
summary: /assets/{id1}/tags/{id2}/unlink.json
responses:
default:
description: successful operation
content:
application/json:
schema:
type: object
properties:
meta:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
serverTime:
type: string
format: date-time
lastUpdatedTime:
type: string
format: date-time
requestRateLimit:
type: integer
format: int32
requestRateLimitReset:
type: integer
format: int32
requestsRemaining:
type: integer
format: int32
location:
type: string
format: link
userTimezone:
type: object
properties:
offset:
type: string
name:
type: string
response:
type: object
security:
- bearerAuth: []
- oAuth:
- write_contentprofile_management
parameters:
- name: id1
description: ID of the Asset item
required: true
in: path
schema:
type: string
- name: id2
description: ID of the Tag item
required: true
in: path
schema:
type: string
- name: describe_apis
description: Describes the different api calls available together with the allowed parameters
required: false
in: query
schema:
type: boolean
- name: describe_model
description: Describes the data model behind the resource including properties and their description
required: false
in: query
schema:
type: boolean
- name: suppress_response_codes
description: 'This forces the HTTP status code of the response to be set to 200 '
required: false
in: query
schema:
type: boolean
servers:
- url: https://{subdomain}.showpad.biz/api/v3/
description: Production server
x-environment: production
variables:
subdomain:
default: customer
description: Showpad customer subdomain
/assets/{id}.json:
get:
deprecated: true
tags:
- assets
operationId: get_assets_id
description: 'Retrieve Asset item with ID=''id''.
*Note*: This endpoint continues to function, but future improvements will only be available in v4. We recommend switching to this [v4 version](https://developer.showpad.com/docs/apis/references/v4#/operations/getAsset).'
summary: /assets/{id}.json
responses:
default:
description: successful operation
content:
application/json:
schema:
type: object
required:
- response
properties:
meta:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
serverTime:
type: string
format: date-time
lastUpdatedTime:
type: string
format: date-time
requestRateLimit:
type: integer
format: int32
requestRateLimitReset:
type: integer
format: int32
requestsRemaining:
type: integer
format: int32
location:
type: string
format: link
userTimezone:
type: object
properties:
offset:
type: string
name:
type: string
response:
type: object
properties:
id:
description: Unique identifier for the resource
type: string
resourcetype:
description: The type of resource
type: string
createdAt:
description: The date that the file was created
type: string
format: date-time
uploadedAt:
description: The date that the file was uploaded
type: string
format: date-time
description:
description: Custom description about the file
type:
- string
- 'null'
href:
description: Location of the asset
type: string
division:
description: The location of the divisions related to this asset
type: object
properties:
href:
type: string
format: link
id:
type: string
downloadLink:
description: Link where the file can be downloaded.
type:
- string
- 'null'
shortLivedDownloadLink:
description: Short-lived link where the file can be publicly downloaded.
type:
- string
- 'null'
shortLivedDownloadDuration:
description: Amount of days the short-lived download link will be valid for.
type:
- integer
- 'null'
format: int32
externalId:
description: External ID of the asset as used in the source application
type:
- string
- 'null'
fileSize:
description: Size of the file in bytes
type: integer
format: int32
filetype:
description: Type of file
type: string
processedDownloadLink:
description: Link where the processed file can be downloaded
type: string
isAnnotatable:
description: Set to true if you want to allow tablet users to share to annotate this file
type: boolean
isSensitive:
description: Set to true if you do not want this file to be visible in Kiosk mode on the tablet
type: boolean
isShareable:
description: Set to true if you want to allow users to share this file with other people
type: boolean
isDownloadable:
description: Set to true if you want to allow recipients to be able to download this file
type: boolean
isDivisionShared:
description: Set to true if you want to share this file across divisions
type: boolean
useOptimized:
description: Set to true if you want to use the optimized version of this file
type: boolean
name:
description: Display name of the file
type: string
url:
description: Url to link to
type:
- string
- 'null'
originalName:
description: Original name of the file
type: string
previewDownloadLink:
description: Link where the preview of the file can be downloaded.
type: string
thumbnailDownloadLink:
description: Link where the thumbnail of the file can be downloaded.
type: string
tags:
description: The location of the tags related to this asset
type: object
properties:
href:
type: string
format: link
assetView:
description: The location of the asset view related to this asset
type: object
properties:
id:
type: string
href:
type: string
format: link
updatedAt:
description: The date that the file was updated
type: string
format: date-time
views:
description: The number of views by tablet users on this file
type: integer
format: int32
appLink:
description: Link to asset inside application
type: string
liked:
description: The asset was liked by the current user
type: boolean
likesCount:
description: Count of people who have liked an asset
type: integer
format: int32
standardId:
description: Standard ID with version (e.g. ph-135.v1)
type: string
externalDate:
description: An external date of the asset as used in the source application
type:
- string
- 'null'
format: date
archivedAt:
description: The date that the file was sent to trash
type:
- string
- 'null'
format: date
expiresAt:
description: The expiry date of the asset
type:
- string
- 'null'
format: date
releasedAt:
description: The release date of the asset
type:
- string
- 'null'
format: date
draftedAt:
description: The draft date of the asset
type:
- string
- 'null'
format: date
extension:
description: Extension of the file
type: string
lockedPages:
description: The pages that are locked together in this asset
type:
- array
- 'null'
items:
type: string
pageCount:
description: The number of pages the document has, if applicable
type:
- integer
- 'null'
format: int32
onlyShareEntireDocument:
description: Whether or not we can only share the entire document
type: boolean
isPersonal:
description: Whether or not the asset is a 'personal' asset - in your own division
type: boolean
isMarketing:
description: Whether or not the asset is a 'marketing' asset - not a personal division
type: boolean
externalServiceId:
description: External Service ID of the asset as used in the source application
type:
- string
- 'null'
currentChannelTemplateConfigId:
description: Current channel template config ID corresponding to this asset
type:
- string
- 'null'
format: link
channelTemplateConfigId:
description: Channel template config ID
type:
- string
- 'null'
format: link
slug:
description: The slug of the asset (valid and unique UUIDv4)
type: string
hideLabel:
description: Set to true if you want to hide the label for this asset
type: boolean
isEditable:
description: Set true if the asset can be edited in the Showpad Edit App
type: boolean
sourceAsset:
description: The original asset from which this asset was created from
type:
- string
- 'null'
format: link
sourceAssetName:
description: The original asset name from which this asset was created from
type: string
sourceAssetLink:
description: The link to the original asset
type: string
videoLength:
description: Length of the video
type:
- integer
- 'null'
format: int32
duration:
description: Duration of the media
type:
- integer
- 'null'
format: int32
wordCount:
description: The number of words the asset contains, if applicable
type:
- integer
- 'null'
format: int32
allowRenderExternal:
description: Indicates if a url asset should be opened in a new window, or rendered inside showpad (iframe)
type: boolean
downloadableInternal:
description: Indicates type of content that can be downloaded by internal users
type:
- array
- 'null'
items:
type: string
downloadableExternal:
description: Indicates type of content that can be downloaded by external users
type:
- array
- 'null'
items:
type: string
md5Checksum:
description: The MD5 checksum of the contents of the original file
type:
- string
- 'null'
fileUuid:
description: The Uuid of the current file
type:
- string
- 'null'
version:
description: The version of asset as an integer
type: integer
format: int32
parentAssetId:
description: The ID of the parent asset if it exist
type:
- string
- 'null'
oAuth2ClientId:
description: The OAuth2 client that can manage the asset via an external service
type: string
security:
- bearerAuth: []
- oAuth:
- read_contentprofile_management
parameters:
- name: id
description: ID of the Asset item
required: true
in: path
schema:
type: string
- name: describe_apis
description: Describes the different api calls available together with the allowed parameters
required: false
in: query
schema:
type: boolean
- name: describe_model
description: Describes the data model behind the resource including properties and their description
required: false
in: query
schema:
type: boolean
- name: expand
description: Comma separated list of all expanded relationships that need to be retrieved.
required: false
in: query
schema:
type: string
- name: fields
description: Comma separated list of all fields that need to be retrieved.
required: false
in: query
schema:
type: string
- name: method
description: '''method'' can be used by HTTP clients who are not able to set certain HTTP verbs such as a DELETE of a PUT'
required: false
in: query
schema:
type: string
anyOf:
- title: get
type: string
- title: post
type: string
- title: put
type: string
- title: delete
type: string
- title: link
type: string
- title: unlink
type: string
- name: suppress_response_codes
description: 'This forces the HTTP status code of the response to be set to 200 '
required: false
in: query
schema:
type: boolean
put:
deprecated: false
tags:
- assets
operationId: put_assets_id
description: Update the Asset item with ID='id'
summary: /assets/{id}.json
responses:
default:
description: successful operation
content:
application/json:
schema:
type: object
required:
- response
properties:
meta:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
serverTime:
type: string
format: date-time
lastUpdatedTime:
type: string
format: date-time
requestRateLimit:
type: integer
format: int32
requestRateLimitReset:
type: integer
format: int32
requestsRemaining:
type: integer
format: int32
location:
type: string
format: link
userTimezone:
type: object
properties:
offset:
type: string
name:
type: string
response:
type: object
properties:
id:
description: Unique identifier for the resource
type: string
resourcetype:
description: The type of resource
type: string
createdAt:
description: The date that the file was created
type: string
format: date-time
uploadedAt:
description: The date that the file was uploaded
type: string
format: date-time
description:
description: Custom description about the file
type:
- string
- 'null'
href:
description: Location of the asset
type: string
division:
description: The location of the divisions related to this asset
type: object
properties:
href:
type: string
format: link
id:
type: string
downloadLink:
description: Link where the file can be downloaded.
type:
- string
- 'null'
shortLivedDownloadLink:
description: Short-lived link where the file can be publicly downloaded.
type:
- string
- 'null'
shortLivedDownloadDuration:
description: Amount of days the short-lived download link will be valid for.
type:
- integer
- 'null'
format: int32
externalId:
description: External ID of the asset as used in the source application
type:
- string
- 'null'
fileSize:
description: Size of the file in bytes
type: integer
format: int32
filetype:
description: Type of file
type: string
processedDownloadLink:
description: Link where the processed file can be downloaded
type: string
isAnnotatable:
description: Set to true if you want to allow tablet users to share to annotate this file
type: boolean
isSensitive:
description: Set to true if you do not want this file to be visible in Kiosk mode on the tablet
type: boolean
isShareable:
description: Set to true if you want to allow users to share this file with other people
type: boolean
isDownloadable:
description: Set to true if you want to allow recipients to be able to download this file
type: boolean
isDivisionShared:
description: Set to true if you want to share this file across divisions
type: boolean
useOptimized:
description: Set to true if you want to use the optimized version of this file
type: boolean
name:
description: Display name of the file
type: string
url:
description: Url to link to
type:
- string
- 'null'
originalName:
description: Original name of the file
type: string
previewDownloadLink:
description: Link where the preview of the file can be downloaded.
type: string
thumbnailDownloadLink:
description: Link where the thumbnail of the file can be downloaded.
type: string
tags:
description: The location of the tags related to this asset
type: object
properties:
href:
type: string
format: link
assetView:
description: The location of the asset view related to this asset
type: object
properties:
id:
type: string
href:
type: string
format: link
updatedAt:
description: The date that the file was updated
type: string
format: date-time
views:
description: The number of views by tablet users on this file
type: integer
format: int32
appLink:
description: Link to asset inside application
type: string
liked:
description: The asset was liked by the current user
type: boolean
likesCount:
description: Count of people who have liked an asset
type: integer
format: int32
standardId:
description: Standard ID with version (e.g. ph-135.v1)
type: string
externalDate:
description: An external date of the asset as used in the source application
type:
- string
- 'null'
format: date
archivedAt:
description: The date that the file was sent to trash
type:
- string
- 'null'
format: date
expiresAt:
description: The expiry date of the asset
type:
- string
- 'null'
format: date
releasedAt:
description: The release date of the asset
type:
- string
- 'null'
format: date
draftedAt:
description: The draft date of the asset
type:
- string
- 'null'
format: date
extension:
description: Extension of the file
type: string
lockedPages:
description: The pages that are locked together in this asset
type:
- array
- 'null'
items:
type: string
pageCount:
description: The number of pages the document has, if applicable
type:
- integer
- 'null'
format: int32
onlyShareEntireDocument:
description: Whether or not we can only share the entire document
type: boolean
isPersonal:
description: Whether or not the asset is a 'personal' asset - in your own division
type: boolean
isMarketing:
description: Whether or not the asset is a 'marketing' asset - not a personal division
type: boolean
externalServiceId:
description: External Service ID of the asset as used in the source application
type:
- string
- 'null'
currentChannelTemplateConfigId:
description: Current channel template config ID corresponding to this asset
type:
- string
- 'null'
format: link
channelTemplateConfigId:
description: Channel template config ID
type:
- string
- 'null'
format: link
slug:
description: The slug of the asset (valid and unique UUIDv4)
type: string
hideLabel:
description: Set to true if you want to hide the label for this asset
type: boolean
isEditable:
description: Set true if the asset can be edited in the Showpad Edit App
type: boolean
sourceAsset:
description: The original asset from which this asset was created from
type:
- string
- 'null'
format: link
sourceAssetName:
description: The original asset name from which this asset was created from
type: string
sourceAssetLink:
description: The link to the original asset
type: string
videoLength:
description: Length of the video
type:
- integer
- 'null'
format: int32
duration:
description: Duration of the media
type:
- integer
- 'null'
format: int32
wordCount:
description: The number of words the asset contains, if applicable
type:
- integer
- 'null'
format: int32
allowRenderExternal:
description: Indicates if a url asset should be opened in a new window, or rendered inside showpad (iframe)
type: boolean
downloadableInternal:
description: Indicates type of content that can be downloaded by internal users
type:
- array
- 'null'
items:
type: string
downloadableExternal:
description: Indicates type of content that can be downloaded by external users
type:
- array
- 'null'
items:
type: string
md5Checksum:
description: The MD5 checksum of the contents of the original file
type:
- string
- 'null'
fileUuid:
description: The Uuid of the current file
type:
- string
- 'null'
version:
description: The version of asset as an integer
type: integer
format: int32
parentAssetId:
description: The ID of the parent asset if it exist
type:
- string
- 'null'
oAuth2ClientId:
description: The OAuth2 client that can manage the asset via an external service
type: string
security:
- bearerAuth: []
- oAuth:
- write_contentprofile_management
parameters:
- name: id
description: ID of the Asset item
required: true
in: path
schema:
type: string
- name: Link
description: A comma-separated list of '<resourceID>; rel="ResourceType"'
required: false
in: header
schema:
type: string
- name: describe_apis
description: Describes the different api calls available together with the allowed parameters
required: false
in: query
schema:
type: boolean
- name: describe_model
description: Describes the data model behind the resource including properties and their description
required: false
in: query
schema:
type: boolean
- name: expand
description: Comma separated list of all expanded relationships that need to be retrieved.
required: false
in: query
schema:
type: string
- name: fields
description: Comma separated list of all fields that need to be retrieved.
required: false
in: query
schema:
type: string
- name: suppress_response_codes
description: 'This forces the HTTP status code of the response to be set to 200 '
required: false
in: query
schema:
type: boolean
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
description:
type: string
expiresAt:
type: string
format: date
externalDate:
type: string
format: date
externalId:
type: string
externalServiceId:
type: string
file:
type: string
format: binary
filetype:
type: string
anyOf:
- title: 3d-model
type: string
- title: audio
type: string
- title: document
type: string
- title: personal-video-recording
type: string
- title: photo
type: string
- title: raw
type: string
- title: scorm
type: string
- title: video
type: string
- title: webapp
type: string
- title: url
type: string
- title: page
type: string
hideLabel:
type: boolean
icon:
type: string
format: binary
isAnnotatable:
type: boolean
isDivisionShared:
type: boolean
isDownloadable:
type: boolean
isEditable:
type: boolean
isPersonal:
type: boolean
isSensitive:
type: boolean
isShareable:
type: boolean
liked:
type: boolean
lockedPages:
type: array
items:
type: string
name:
type: string
oAuth2ClientId:
type: string
onlyShareEntireDocument:
type: boolean
releasedAt:
type: string
format: date
draftedAt:
type: string
format: date
url:
type: string
useOptimized:
type: boolean
post:
deprecated: true
tags:
- assets
operationId: post_assets_id
description: 'Update the Asset item with ID=''id''.
*Note*: This endpoint continues to function, but future improvements will only be available in v4. We recommend switching to this [v4 version](https://developer.showpad.com/docs/apis/references/v4#/operations/updateAsset).'
summary: /assets/{id}.json
responses:
default:
description: successful operation
content:
application/json:
schema:
type: object
required:
- response
properties:
meta:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
serverTime:
type: string
format: date-time
lastUpdatedTime:
type: string
format: date-time
requestRateLimit:
type: integer
format: int32
requestRateLimitReset:
type: integer
format: int32
requestsRemaining:
type: integer
format: int32
location:
type: string
format: link
userTimezone:
type: object
properties:
offset:
type: string
name:
type: string
response:
type: object
properties:
id:
description: Unique identifier for the resource
type: string
resourcetype:
description: The type of resource
type: string
createdAt:
description: The date that the file was created
type: string
format: date-time
uploadedAt:
description: The date that the file was uploaded
type: string
format: date-time
description:
description: Custom description about the file
type:
- string
- 'null'
href:
description: Location of the asset
type: string
division:
description: The location of the divisions related to this asset
type: object
properties:
href:
type: string
format: link
id:
type: string
downloadLink:
description: Link where the file can be downloaded.
type:
- string
- 'null'
shortLivedDownloadLink:
description: Short-lived link where the file can be publicly downloaded.
type:
- string
- 'null'
shortLivedDownloadDuration:
description: Amount of days the short-lived download link will be valid for.
type:
- integer
- 'null'
format: int32
externalId:
description: External ID of the asset as used in the source application
type:
- string
- 'null'
fileSize:
description: Size of the file in bytes
type: integer
format: int32
filetype:
description: Type of file
type: string
processedDownloadLink:
description: Link where the processed file can be downloaded
type: string
isAnnotatable:
description: Set to true if you want to allow tablet users to share to annotate this file
type: boolean
isSensitive:
description: Set to true if you do not want this file to be visible in Kiosk mode on the tablet
type: boolean
isShareable:
description: Set to true if you want to allow users to share this file with other people
type: boolean
isDownloadable:
description: Set to true if you want to allow recipients to be able to download this file
type: boolean
isDivisionShared:
description: Set to true if you want to share this file across divisions
type: boolean
useOptimized:
description: Set to true if you want to use the optimized version of this file
type: boolean
name:
description: Display name of the file
type: string
url:
description: Url to link to
type:
- string
- 'null'
originalName:
description: Original name of the file
type: string
previewDownloadLink:
description: Link where the preview of the file can be downloaded.
type: string
thumbnailDownloadLink:
description: Link where the thumbnail of the file can be downloaded.
type: string
tags:
description: The location of the tags related to this asset
type: object
properties:
href:
type: string
format: link
assetView:
description: The location of the asset view related to this asset
type: object
properties:
id:
type: string
href:
type: string
format: link
updatedAt:
description: The date that the file was updated
type: string
format: date-time
views:
description: The number of views by tablet users on this file
type: integer
format: int32
appLink:
description: Link to asset inside application
type: string
liked:
description: The asset was liked by the current user
type: boolean
likesCount:
description: Count of people who have liked an asset
type: integer
format: int32
standardId:
description: Standard ID with version (e.g. ph-135.v1)
type: string
externalDate:
description: An external date of the asset as used in the source application
type:
- string
- 'null'
format: date
archivedAt:
description: The date that the file was sent to trash
type:
- string
- 'null'
format: date
expiresAt:
description: The expiry date of the asset
type:
- string
- 'null'
format: date
releasedAt:
description: The release date of the asset
type:
- string
- 'null'
format: date
draftedAt:
description: The draft date of the asset
type:
- string
- 'null'
format: date
extension:
description: Extension of the file
type: string
lockedPages:
description: The pages that are locked together in this asset
type:
- array
- 'null'
items:
type: string
pageCount:
description: The number of pages the document has, if applicable
type:
- integer
- 'null'
format: int32
onlyShareEntireDocument:
description: Whether or not we can only share the entire document
type: boolean
isPersonal:
description: Whether or not the asset is a 'personal' asset - in your own division
type: boolean
isMarketing:
description: Whether or not the asset is a 'marketing' asset - not a personal division
type: boolean
externalServiceId:
description: External Service ID of the asset as used in the source application
type:
- string
- 'null'
currentChannelTemplateConfigId:
description: Current channel template config ID corresponding to this asset
type:
- string
- 'null'
format: link
channelTemplateConfigId:
description: Channel template config ID
type:
- string
- 'null'
format: link
slug:
description: The slug of the asset (valid and unique UUIDv4)
type: string
hideLabel:
description: Set to true if you want to hide the label for this asset
type: boolean
isEditable:
description: Set true if the asset can be edited in the Showpad Edit App
type: boolean
sourceAsset:
description: The original asset from which this asset was created from
type:
- string
- 'null'
format: link
sourceAssetName:
description: The original asset name from which this asset was created from
type: string
sourceAssetLink:
description: The link to the original asset
type: string
videoLength:
description: Length of the video
type:
- integer
- 'null'
format: int32
duration:
description: Duration of the media
type:
- integer
- 'null'
format: int32
wordCount:
description: The number of words the asset contains, if applicable
type:
- integer
- 'null'
format: int32
allowRenderExternal:
description: Indicates if a url asset should be opened in a new window, or rendered inside showpad (iframe)
type: boolean
downloadableInternal:
description: Indicates type of content that can be downloaded by internal users
type:
- array
- 'null'
items:
type: string
downloadableExternal:
description: Indicates type of content that can be downloaded by external users
type:
- array
- 'null'
items:
type: string
md5Checksum:
description: The MD5 checksum of the contents of the original file
type:
- string
- 'null'
fileUuid:
description: The Uuid of the current file
type:
- string
- 'null'
version:
description: The version of asset as an integer
type: integer
format: int32
parentAssetId:
description: The ID of the parent asset if it exist
type:
- string
- 'null'
oAuth2ClientId:
description: The OAuth2 client that can manage the asset via an external service
type: string
security:
- bearerAuth: []
- oAuth:
- write_contentprofile_management
parameters:
- name: id
description: ID of the Asset item
required: true
in: path
schema:
type: string
- name: Link
description: A comma-separated list of '<resourceID>; rel="ResourceType"'
required: false
in: header
schema:
type: string
- name: describe_apis
description: Describes the different api calls available together with the allowed parameters
required: false
in: query
schema:
type: boolean
- name: describe_model
description: Describes the data model behind the resource including properties and their description
required: false
in: query
schema:
type: boolean
- name: expand
description: Comma separated list of all expanded relationships that need to be retrieved.
required: false
in: query
schema:
type: string
- name: fields
description: Comma separated list of all fields that need to be retrieved.
required: false
in: query
schema:
type: string
- name: suppress_response_codes
description: 'This forces the HTTP status code of the response to be set to 200 '
required: false
in: query
schema:
type: boolean
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
description:
type: string
expiresAt:
type: string
format: date
externalDate:
type: string
format: date
externalId:
type: string
externalServiceId:
type: string
file:
type: string
format: binary
filetype:
type: string
anyOf:
- title: 3d-model
type: string
- title: audio
type: string
- title: document
type: string
- title: personal-video-recording
type: string
- title: photo
type: string
- title: raw
type: string
- title: scorm
type: string
- title: video
type: string
- title: webapp
type: string
- title: url
type: string
- title: page
type: string
hideLabel:
type: boolean
icon:
type: string
format: binary
isAnnotatable:
type: boolean
isDivisionShared:
type: boolean
isDownloadable:
type: boolean
isEditable:
type: boolean
isPersonal:
type: boolean
isSensitive:
type: boolean
isShareable:
type: boolean
liked:
type: boolean
lockedPages:
type: array
items:
type: string
name:
type: string
oAuth2ClientId:
type: string
onlyShareEntireDocument:
type: boolean
releasedAt:
type: string
format: date
draftedAt:
type: string
format: date
url:
type: string
useOptimized:
type: boolean
delete:
deprecated: true
tags:
- assets
operationId: delete_assets_id
description: 'Delete the Asset item with ID=''id''.
*Note*: This endpoint continues to function, but future improvements will only be available in v4. We recommend switching to this [v4 version](https://developer.showpad.com/docs/apis/references/v4#/operations/deleteAsset).'
summary: /assets/{id}.json
responses:
default:
description: successful operation
content:
application/json:
schema:
type: object
properties:
meta:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
serverTime:
type: string
format: date-time
lastUpdatedTime:
type: string
format: date-time
requestRateLimit:
type: integer
format: int32
requestRateLimitReset:
type: integer
format: int32
requestsRemaining:
type: integer
format: int32
location:
type: string
format: link
userTimezone:
type: object
properties:
offset:
type: string
name:
type: string
response:
type: object
security:
- bearerAuth: []
- oAuth:
- write_contentprofile_management
parameters:
- name: id
description: ID of the Asset item
required: true
in: path
schema:
type: string
- name: describe_apis
description: Describes the different api calls available together with the allowed parameters
required: false
in: query
schema:
type: boolean
- name: describe_model
description: Describes the data model behind the resource including properties and their description
required: false
in: query
schema:
type: boolean
- name: suppress_response_codes
description: 'This forces the HTTP status code of the response to be set to 200 '
required: false
in: query
schema:
type: boolean
servers:
- url: https://{subdomain}.showpad.biz/api/v3/
description: Production server
x-environment: production
variables:
subdomain:
default: customer
description: Showpad customer subdomain
/assets/{id}/comments.json:
get:
deprecated: false
tags:
- assets
operationId: get_assets_id_comments
description: Get all comments that belong to the asset with ID='id'
summary: /assets/{id}/comments.json
responses:
default:
description: successful operation
content:
application/json:
schema:
type: object
required:
- response
properties:
meta:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
serverTime:
type: string
format: date-time
lastUpdatedTime:
type: string
format: date-time
requestRateLimit:
type: integer
format: int32
requestRateLimitReset:
type: integer
format: int32
requestsRemaining:
type: integer
format: int32
location:
type: string
format: link
userTimezone:
type: object
properties:
offset:
type: string
name:
type: string
response:
type: object
properties:
id:
description: Unique identifier for the resource
type: string
resourcetype:
description: The type of resource
type: string
createdAt:
description: The date that the comment was created
type: string
format: date
division:
description: The division this comment resides in
type: string
format: link
externalId:
description: External ID of the comment as used in the source application
type: string
isUnregisteredUserComment:
description: Indicates whether this comment is made by an unregistered user
type: boolean
message:
description: The message of the comment
type: string
parent:
description: The resource this comment is given on
type: string
format: link
parentType:
description: The type of resource this comment is given on
type: string
unregisteredUserFirstName:
description: First Name of the unregistered user
type: string
unregisteredUserLastName:
description: Last Name of the unregistered user
type: string
updatedAt:
description: The date that the comment was updated
type: string
format: date
user:
description: The user that created this comment
type: string
format: link
parentMobileApiId:
description: Element ID in mobile-API format (e.g. ph-125)
type: string
asset:
description: The asset linked to this comment
type: string
format: link
collectionItem:
description: The collection item linked to this comment
type: string
format: link
share:
description: The share linked to this comment
type: string
format: link
comment:
description: The parent comment linked to this comment
type: string
format: link
security:
- bearerAuth: []
- oAuth:
- read_contentprofile_management
parameters:
- name: id
description: ID of the Asset item
required: true
in: path
schema:
type: string
- name: createdSince
description: Filter comments on createdAt greater than or equal to this value
required: false
in: query
schema:
type: string
format: date
- name: describe_apis
description: Describes the different api calls available together with the allowed parameters
required: false
in: query
schema:
type: boolean
- name: describe_model
description: Describes the data model behind the resource including properties and their description
required: false
in: query
schema:
type: boolean
- name: expand
description: Comma separated list of all expanded relationships that need to be retrieved.
required: false
in: query
schema:
type: string
- name: externalId
description: External ID of the comment as used in the source application
required: false
in: query
schema:
type: string
- name: fields
description: Comma separated list of all fields that need to be retrieved.
required: false
in: query
schema:
type: string
- name: isUnregisteredUserComment
description: Indicates whether this comment is made by an unregistered user
required: false
in: query
schema:
type: boolean
- name: limit
description: Sets the maximum number of returned items. The maximum limit is set to 1000. For example, if 'limit' is 0, only 0 items will be retrieved.
required: false
in: query
schema:
type: integer
format: int32
minimum: 0
maximum: 1000
- name: method
description: '''method'' can be used by HTTP clients who are not able to set certain HTTP verbs such as a DELETE of a PUT'
required: false
in: query
schema:
type: string
anyOf:
- title: post
type: string
- name: offset
description: Set the offset of the returned items.For example, if 'offset' is 5 and 'limit' is 10, items 6 to 15 will be returned.
required: false
in: query
schema:
type: integer
format: int32
minimum: 0
- name: sort
description: The field you want to sort on. Adding a '-' in front of the field name allows you to sort descending.
required: false
in: query
schema:
type: string
- name: suppress_response_codes
description: 'This forces the HTTP status code of the response to be set to 200 '
required: false
in: query
schema:
type: boolean
- name: unregisteredUserFirstName
description: First Name of the unregistered user
required: false
in: query
schema:
type: string
- name: unregisteredUserLastName
description: Last Name of the unregistered user
required: false
in: query
schema:
type: string
post:
deprecated: false
tags:
- assets
operationId: post_assets_id_comments
description: Add a comment to the asset with ID='id'
summary: /assets/{id}/comments.json
responses:
default:
description: successful operation
content:
application/json:
schema:
type: object
required:
- response
properties:
meta:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
serverTime:
type: string
format: date-time
lastUpdatedTime:
type: string
format: date-time
requestRateLimit:
type: integer
format: int32
requestRateLimitReset:
type: integer
format: int32
requestsRemaining:
type: integer
format: int32
location:
type: string
format: link
userTimezone:
type: object
properties:
offset:
type: string
name:
type: string
response:
type: object
properties:
id:
description: Unique identifier for the resource
type: string
resourcetype:
description: The type of resource
type: string
createdAt:
description: The date that the comment was created
type: string
format: date
division:
description: The division this comment resides in
type: string
format: link
externalId:
description: External ID of the comment as used in the source application
type: string
isUnregisteredUserComment:
description: Indicates whether this comment is made by an unregistered user
type: boolean
message:
description: The message of the comment
type: string
parent:
description: The resource this comment is given on
type: string
format: link
parentType:
description: The type of resource this comment is given on
type: string
unregisteredUserFirstName:
description: First Name of the unregistered user
type: string
unregisteredUserLastName:
description: Last Name of the unregistered user
type: string
updatedAt:
description: The date that the comment was updated
type: string
format: date
user:
description: The user that created this comment
type: string
format: link
parentMobileApiId:
description: Element ID in mobile-API format (e.g. ph-125)
type: string
asset:
description: The asset linked to this comment
type: string
format: link
collectionItem:
description: The collection item linked to this comment
type: string
format: link
share:
description: The share linked to this comment
type: string
format: link
comment:
description: The parent comment linked to this comment
type: string
format: link
security:
- bearerAuth: []
- oAuth:
- write_contentprofile_management
parameters:
- name: id
description: ID of the Asset item
required: true
in: path
schema:
type: string
- name: describe_apis
description: Describes the different api calls available together with the allowed parameters
required: false
in: query
schema:
type: boolean
- name: describe_model
description: Describes the data model behind the resource including properties and their description
required: false
in: query
schema:
type: boolean
- name: suppress_response_codes
description: 'This forces the HTTP status code of the response to be set to 200 '
required: false
in: query
schema:
type: boolean
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
message:
type: string
externalId:
type: string
isUnregisteredUserComment:
type: boolean
unregisteredUserFirstName:
type: string
unregisteredUserLastName:
type: string
required:
- message
application/json:
schema:
type: object
properties:
message:
type: string
externalId:
type: string
isUnregisteredUserComment:
type: boolean
unregisteredUserFirstName:
type: string
unregisteredUserLastName:
type: string
required:
- message
servers:
- url: https://{subdomain}.showpad.biz/api/v3/
description: Production server
x-environment: production
variables:
subdomain:
default: customer
description: Showpad customer subdomain
/assets/{id}/link.json:
post:
deprecated: true
tags:
- assets
operationId: link_assets_id_link
description: 'Link the Asset item with ID=''id''.
*Note*: This endpoint continues to function, but future improvements will only be available in v4. We recommend switching to this [v4 version](https://developer.showpad.com/docs/apis/references/v4#/operations/updateAsset).'
summary: /assets/{id}/link.json
responses:
default:
description: successful operation
content:
application/json:
schema:
type: object
properties:
meta:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
serverTime:
type: string
format: date-time
lastUpdatedTime:
type: string
format: date-time
requestRateLimit:
type: integer
format: int32
requestRateLimitReset:
type: integer
format: int32
requestsRemaining:
type: integer
format: int32
location:
type: string
format: link
userTimezone:
type: object
properties:
offset:
type: string
name:
type: string
response:
type: object
security:
- bearerAuth: []
- oAuth:
- write_contentprofile_management
parameters:
- name: id
description: ID of the Asset item
required: true
in: path
schema:
type: string
- name: describe_apis
description: Describes the different api calls available together with the allowed parameters
required: false
in: query
schema:
type: boolean
- name: describe_model
description: Describes the data model behind the resource including properties and their description
required: false
in: query
schema:
type: boolean
- name: suppress_response_codes
description: 'This forces the HTTP status code of the response to be set to 200 '
required: false
in: query
schema:
type: boolean
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
Link:
type: string
required:
- Link
application/json:
schema:
type: object
properties:
Link:
type: string
required:
- Link
servers:
- url: https://{subdomain}.showpad.biz/api/v3/
description: Production server
x-environment: production
variables:
subdomain:
default: customer
description: Showpad customer subdomain
/assets/{id}/tags.json:
get:
deprecated: false
tags:
- assets
operationId: get_assets_id_tags
description: Get all tags that belong to the asset with ID='id'
summary: /assets/{id}/tags.json
responses:
default:
description: successful operation
content:
application/json:
schema:
type: object
required:
- response
properties:
meta:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
serverTime:
type: string
format: date-time
lastUpdatedTime:
type: string
format: date-time
requestRateLimit:
type: integer
format: int32
requestRateLimitReset:
type: integer
format: int32
requestsRemaining:
type: integer
format: int32
location:
type: string
format: link
userTimezone:
type: object
properties:
offset:
type: string
name:
type: string
response:
type: object
properties:
count:
description: Total number of results.
type: integer
format: int32
example: 20
items:
type: array
description: List of resources.
items:
type: object
properties:
id:
description: Unique identifier for the resource
type: string
resourcetype:
description: The type of resource
type: string
href:
description: Url link to the tag
type: string
assets:
description: The assets linked to this tag
type: object
properties:
href:
type: string
format: link
type:
description: The type of tag
type: string
createdAt:
description: The date that the tag was created
type: string
format: date-time
description:
description: Description of the tag
type: string
division:
description: The division of the tag
type: object
properties:
href:
type: string
format: link
id:
type: string
divisionId:
description: The division ID of the tag
type: string
externalId:
description: External ID of the tag as used in the source application
type:
- string
- 'null'
name:
description: Name of the tag
type: string
updatedAt:
description: The date that the tag was updated
type: string
format: date-time
externalService:
description: External Service of the tag as used in the source application
type:
- string
- 'null'
format: link
security:
- bearerAuth: []
- oAuth:
- read_contentprofile_management
parameters:
- name: id
description: ID of the Asset item
required: true
in: path
schema:
type: string
- name: describe_apis
description: Describes the different api calls available together with the allowed parameters
required: false
in: query
schema:
type: boolean
- name: describe_model
description: Describes the data model behind the resource including properties and their description
required: false
in: query
schema:
type: boolean
- name: expand
description: Comma separated list of all expanded relationships that need to be retrieved.
required: false
in: query
schema:
type: string
- name: externalId
description: External ID of the tag as used in the source application
required: false
in: query
schema:
type: string
- name: fields
description: Comma separated list of all fields that need to be retrieved.
required: false
in: query
schema:
type: string
- name: limit
description: Sets the maximum number of returned items. The maximum limit is set to 1000. For example, if 'limit' is 0, only 0 items will be retrieved.
required: false
in: query
schema:
type: integer
format: int32
minimum: 0
maximum: 1000
- name: method
description: '''method'' can be used by HTTP clients who are not able to set certain HTTP verbs such as a DELETE of a PUT'
required: false
in: query
schema:
type: string
anyOf:
- title: post
type: string
- name: name
description: Name of the tag
required: false
in: query
schema:
type: string
- name: offset
description: Set the offset of the returned items.For example, if 'offset' is 5 and 'limit' is 10, items 6 to 15 will be returned.
required: false
in: query
schema:
type: integer
format: int32
minimum: 0
- name: sort
description: The field you want to sort on. Adding a '-' in front of the field name allows you to sort descending.
required: false
in: query
schema:
type: string
- name: suppress_response_codes
description: 'This forces the HTTP status code of the response to be set to 200 '
required: false
in: query
schema:
type: boolean
post:
deprecated: false
tags:
- assets
operationId: post_assets_id_tags
description: Add a tag to the asset with ID='id'
summary: /assets/{id}/tags.json
responses:
default:
description: successful operation
content:
application/json:
schema:
type: object
required:
- response
properties:
meta:
type: object
location:
type:
- string
- 'null'
properties:
code:
type: integer
format: int32
message:
type: string
serverTime:
type: string
format: date-time
lastUpdatedTime:
type: string
format: date-time
requestRateLimit:
type: integer
format: int32
requestRateLimitReset:
type: integer
format: int32
requestsRemaining:
type: integer
format: int32
location:
type: string
format: link
userTimezone:
type: object
properties:
offset:
type: string
name:
type: string
response:
type: object
properties:
id:
description: Unique identifier for the resource
type: string
resourcetype:
description: The type of resource
type: string
href:
description: Url link to the tag
type: string
assets:
description: The assets linked to this tag
type: object
properties:
href:
type: string
format: link
type:
description: The type of tag
type: string
createdAt:
description: The date that the tag was created
type: string
format: date-time
description:
description: Description of the tag
type: string
division:
description: The division of the tag
type: object
properties:
href:
type: string
format: link
id:
type: string
divisionId:
description: The division ID of the tag
type: string
externalId:
description: External ID of the tag as used in the source application
type:
- string
- 'null'
name:
description: Name of the tag
type: string
updatedAt:
description: The date that the tag was updated
type: string
format: date-time
externalService:
description: External Service of the tag as used in the source application
type:
- string
- 'null'
format: link
security:
- bearerAuth: []
- oAuth:
- write_contentprofile_management
parameters:
- name: id
description: ID of the Asset item
required: true
in: path
schema:
type: string
- name: describe_apis
description: Describes the different api calls available together with the allowed parameters
required: false
in: query
schema:
type: boolean
- name: describe_model
description: Describes the data model behind the resource including properties and their description
required: false
in: query
schema:
type: boolean
- name: suppress_response_codes
description: 'This forces the HTTP status code of the response to be set to 200 '
required: false
in: query
schema:
type: boolean
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
name:
type: string
description:
type: string
divisionId:
type: string
externalId:
type: string
required:
- name
application/json:
schema:
type: object
properties:
name:
type: string
description:
type: string
divisionId:
type: string
externalId:
type: string
required:
- name
servers:
- url: https://{subdomain}.showpad.biz/api/v3/
description: Production server
x-environment: production
variables:
subdomain:
default: customer
description: Showpad customer subdomain
/assets/{id}/unlink.json:
post:
deprecated: true
tags:
- assets
operationId: unlink_assets_id_unlink
description: 'Link the Asset item with ID=''id''.
*Note*: This endpoint continues to function, but future improvements will only be available in v4. We recommend switching to this [v4 version](https://developer.showpad.com/docs/apis/references/v4#/operations/updateAsset).'
summary: /assets/{id}/unlink.json
responses:
default:
description: successful operation
content:
application/json:
schema:
type: object
properties:
meta:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
serverTime:
type: string
format: date-time
lastUpdatedTime:
type: string
format: date-time
requestRateLimit:
type: integer
format: int32
requestRateLimitReset:
type: integer
format: int32
requestsRemaining:
type: integer
format: int32
location:
type: string
format: link
userTimezone:
type: object
properties:
offset:
type: string
name:
type: string
response:
type: object
security:
- bearerAuth: []
- oAuth:
- write_contentprofile_management
parameters:
- name: id
description: ID of the Asset item
required: true
in: path
schema:
type: string
- name: describe_apis
description: Describes the different api calls available together with the allowed parameters
required: false
in: query
schema:
type: boolean
- name: describe_model
description: Describes the data model behind the resource including properties and their description
required: false
in: query
schema:
type: boolean
- name: suppress_response_codes
description: 'This forces the HTTP status code of the response to be set to 200 '
required: false
in: query
schema:
type: boolean
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
Link:
type: string
required:
- Link
application/json:
schema:
type: object
properties:
Link:
type: string
required:
- Link
servers:
- url: https://{subdomain}.showpad.biz/api/v3/
description: Production server
x-environment: production
variables:
subdomain:
default: customer
description: Showpad customer subdomain
/assets:
get:
operationId: getAssets
summary: List all Assets
description: 'Retrieve a list of assets available in your Showpad instance. Assets can include documents, videos, images, or other media files uploaded to the platform. This endpoint supports powerful filtering options by ID, name, tag, external identifiers, and more, enabling precise control over which assets are returned.
Use this endpoint when you need to:
- Build custom asset galleries or search interfaces
- Integrate Showpad asset metadata into external systems
- Filter assets by tag, name, or organizational Divisions for targeted access
Supports pagination for large datasets and is ideal for asset syncing, reporting, or content discovery use cases.'
tags:
- assets
security:
- BearerAuth: []
parameters:
- name: limit
in: query
description: Defines the maximum number of items to return in the response. Useful for paginating results when fetching items in batches.
example: limit=100
schema:
type: integer
format: int32
default: 50
minimum: 0
maximum: 1000
- name: offset
in: query
description: Specifies the number of items to skip before returning results. Use in combination with `limit` to implement pagination when retrieving large datasets.
required: false
example: offset=0
schema:
type: integer
format: int32
default: 0
minimum: 0
- name: divisionIds
in: query
description: Filters the results to include only assets that belong to one or more specific Divisions. This is useful for multi-Division organizations to retrieve content scoped to particular business units or regions.
explode: false
style: form
example: division-id-1,division-id-2
schema:
type: array
items:
type: string
- name: ids
in: query
description: Returns only the assets with the specified Showpad asset IDs. This is helpful when you already have a list of asset IDs and need to fetch full details.
explode: false
style: form
example: abc123,def456
schema:
type: array
items:
type: string
- name: name
in: query
description: Searches by full or partial name. Use this for free-text search or to narrow down results by known naming conventions.
schema:
type: string
example: customer
- name: externalIds
in: query
description: Filters assets by custom external identifiers. Use this if your system assigns unique IDs to assets outside of Showpad and you need to cross-reference them.
explode: false
style: form
example: custom-id-1,custom-id-2
schema:
type: array
items:
type: string
- name: tagIds
in: query
description: Returns only assets that are tagged with all of the provided tag IDs. Use this to refine results based on tagging taxonomies such as product type, industry, or content category.
explode: false
style: form
example: tag-id-1,tag-id-2
schema:
type: array
items:
type: string
- name: slugs
in: query
description: Filters assets by their slugs, which are unique, human-readable identifiers often used in URLs or integrations. Use this when referring to assets via slug-based references.
explode: false
style: form
example: ea7134d3-1706-4a79-b808-617cb6b6d95c,245b9712-65d9-4bfc-8505-2d56939a8b6f
schema:
type: array
items:
type: string
responses:
'200':
description: OK. The request was successful. Returns a paginated list of assets matching the applied filters.
content:
application/json:
schema:
type: object
properties:
count:
description: Total number of results matching the request criteria.
type: integer
format: int32
example: 20
items:
type: array
description: List of asset objects returned in the response.
items:
type: object
properties:
id:
type: string
description: Unique identifier of the asset.
example: my-asset-id
currentFile:
type:
- object
- 'null'
properties:
id:
type: string
description: Unique identifier of the object.
example: my-asset-file-id
name:
type: string
description: Name of the asset.
example: my-asset.png
division:
description: Information about the Division the asset belongs to. Cannot be changed after creation.
type: object
properties:
id:
type: string
description: Unique identifier of the Division.
example: f541710283954a89bdfd40f221882451
status:
type: string
description: 'Current processing state of the asset:
* `prepared` - The asset is prepared and waiting for the binary file to be uploaded.
* `queued` - The asset is currently queued for processing.
* `processing` - The asset is currently being processed.
* `active` - The asset is done processing and can be used.
* `failed` - The asset encountered an error while processing.
'
enum:
- prepared
- queued
- processing
- active
- failed
type:
type: string
description: 'The type of the asset.
'
enum:
- 3d-model
- audio
- document
- page
- personal-video-recording
- photo
- raw
- scorm
- unknown
- url
- video
- webapp
slug:
type: string
description: URL-friendly identifier of the asset.
externalId:
type:
- string
- 'null'
description: A custom external reference ID for the asset. Only editable when the application owns the asset and the user has `manage_content` permissions for the Division.
example: my-custom-id
minLength: 1
maxLength: 128
description:
type:
- string
- 'null'
description: A description of the asset.
createdAt:
type:
- string
- 'null'
format: date-time
description: Timestamp when the asset was created, in `ISO 8601` UTC format.
updatedAt:
type:
- string
- 'null'
format: date-time
description: Timestamp when the asset was last updated, in `ISO 8601` UTC format.
expiresAt:
type:
- string
- 'null'
format: date-time
description: Optional expiration date of the asset, in `ISO 8601` UTC format.
releasedAt:
type:
- string
- 'null'
format: date-time
description: Optional release date of the asset, in `ISO 8601` UTC format.
draftedAt:
type:
- string
- 'null'
format: date-time
description: Optional draft date of the asset, in `ISO 8601` UTC format.
lastUploadedAt:
type:
- string
- 'null'
format: date-time
description: Timestamp when the latest version of the asset was uploaded, in `ISO 8601` UTC format.
permissions:
type: object
description: Defines the actions the current user is permitted to take on the asset.
properties:
isAnnotatable:
type: boolean
description: Indicates if the asset supports annotations (`true`) or not (`false`).
isEditable:
type: boolean
description: Indicates if the asset is editable (true) or not (false). This permission is applicable to `document` assets except PDFs.
isShareable:
type: boolean
description: Indicates if the asset can be shared (`true`) or not (`false`). Defaults to `true`.
isProcessedUsed:
type: boolean
description: Indicates if the optimized version (`true`) or the original file (`false`) is used when downloaded. Defaults to `true`.
isSpeakerNotesEnabled:
type: boolean
description: Indicates whether speaker notes are enabled for the asset (`true`) or not (`false`). When enabled, allows presenters to add and view speaker notes associated with the asset. Defaults to `false`.
isDivisionShared:
type: boolean
description: 'Indicates whether the asset is shared across multiple Divisions (`true`) or restricted to its own Division (`false`). To enable cross-Division sharing, Division-level asset sharing must be enabled on the Division provided (`isAssetSharingEnabled` set to true).
'
isSensitive:
type: boolean
description: If `true`, the asset is hidden in kiosk mode.
isArchived:
type: boolean
description: If `true`, the asset has been archived and is no longer active.
isRenderExternalAllowed:
type: boolean
description: 'For `url` assets only. Indicates whether the URL should be opened:
- `true` – in a new tab (target="_blank")
- `false` – embedded in an iframe.'
isOnlyEntireDocumentShareable:
type: boolean
description: Indicates whether individual pages of a document can be shared (`true`) or not (`false`). Defaults to `false`.
lockedPages:
type: array
description: Defines a range of pages that cannot be shared individually.
items:
type: object
required:
- start
- end
properties:
start:
type: integer
description: The first page in the range (inclusive).
end:
type: integer
description: The last page in the range (inclusive).
enforcedPages:
type:
- object
- 'null'
description: Pages that are enforced to be prepended or appended when sharing.
properties:
prepend:
type:
- array
- 'null'
items:
type: object
required:
- start
- end
properties:
start:
type: integer
description: The first page in the range (inclusive).
end:
type: integer
description: The last page in the range (inclusive).
append:
type:
- array
- 'null'
items:
type: object
required:
- start
- end
properties:
start:
type: integer
description: The first page in the range (inclusive).
end:
type: integer
description: The last page in the range (inclusive).
duration:
type:
- integer
- 'null'
description: The duration in seconds of the video/audio file.
readOnly: true
pageCount:
type:
- integer
- 'null'
description: Total number of pages in the document. Applicable to `document` assets only.
wordCount:
type:
- integer
- 'null'
format: int64
description: The number of words in the content.
example: 100
readOnly: true
competencies:
type: array
description: List of competency UUIDs associated with this asset.
readOnly: true
items:
type: string
pattern: ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$
example: a3e72bbf-ae0b-8738-1106-b1beb685ea88
url:
type:
- string
- 'null'
description: For `url` assets only. The external URL the asset points to.
checksum:
type:
- string
- 'null'
description: MD5 hash of the uploaded file, used to verify data integrity.
size:
type:
- integer
- 'null'
description: Size of the uploaded asset file, in bytes.
tags:
type: array
description: List of tags assigned to the asset. Only the `id` is returned.
items:
type: object
properties:
id:
type: string
description: Unique identifier of the tag.
example: df391e1da6ed4db8a8085838f7abd130
countries:
type: array
description: List of countries assigned to the asset.
items:
description: using `ISO 3166-1 alpha-2` country code
type: object
properties:
code:
type: string
format: iso-3166
description: The `ISO 3166-1 alpha-2` country code identifying the supported country.
example: US
languages:
type: array
description: List of languages assigned to the asset.
items:
description: The `ISO 639-1` language code identifying the supported language.
type: object
properties:
code:
type: string
description: '`BCP 47` language tag.'
example: en
authors:
type: array
description: List of assigned content authors.
items:
type: object
properties:
id:
description: User ID of the content author.
type: string
example: 83a5a807b3c487c91f39d1c3da00b5d6
downloadableExternal:
type: array
description: 'List of asset versions available for external download. An empty array means the asset is not downloadable externally.
'
items:
type: string
enum:
- original
- pdf
description: 'Types of downloads that are possible:
* `original` - The original file can be downloaded
* `pdf` - The generated PDF version can be downloaded
'
downloadableInternal:
type: array
description: 'List of asset versions available for download by authenticated users. An empty array means the asset is not downloadable internally.
'
items:
type: string
enum:
- original
- pdf
description: 'Types of downloads that are possible:
* `original` - The original file can be downloaded
* `pdf` - The generated PDF version can be downloaded
'
localization:
type:
- object
- 'null'
description: Details about localized versions of the asset. Null if not applicable.
required:
- primary
- variants
properties:
primary:
type: object
description: The primary asset of the localization configuration.
properties:
asset:
type: object
properties:
id:
type: string
description: Unique identifier of the asset.
example: my-asset-id
variants:
type: array
description: List of variants associated with the primary asset.
minItems: 0
maxItems: 50
items:
type: object
required:
- asset
- status
properties:
asset:
type: object
required:
- id
- languages
- countries
- authors
properties:
id:
type: string
description: Unique identifier of the asset.
example: my-asset-id
languages:
type: array
description: List of assigned languages.
items:
description: The `ISO 639-1` language code identifying the supported language.
type: object
properties:
code:
type: string
description: '`BCP 47` language tag.'
example: en
countries:
type: array
description: List of assigned countries.
items:
description: using `ISO 3166-1 alpha-2` country code
type: object
properties:
code:
type: string
format: iso-3166
description: The `ISO 3166-1 alpha-2` country code identifying the supported country.
example: US
authors:
type: array
description: List of assigned content authors.
items:
type: object
properties:
id:
description: User ID of the content author.
type: string
example: 83a5a807b3c487c91f39d1c3da00b5d6
status:
type: string
description: 'Current status of the variant:
* `to-be-localized` - The variant refers to the binary file of the primary asset; it must be localized.
* `outdated` - The variant is explicitly marked as outdated by a Showpad user.
* `localized` - The variant is a localized variant with its own binary file.
'
enum:
- to-be-localized
- outdated
- localized
'401':
description: Unauthorized. The request lacks valid authentication credentials, or the provided token has expired.
content:
application/problem+json:
schema:
type: object
required:
- title
- detail
- status
properties:
title:
type: string
description: 'A short summary of the error type. This is intended for engineers and technical users. It is always in English and not localized.
'
example: Invalid Payload
detail:
type: string
description: 'A human-readable explanation of the specific reason for the failure.
'
example: Property value provided is not valid.
status:
type: integer
format: int32
description: 'The HTTP status code returned by the server.
'
minimum: 400
maximum: 599
example: 400
meta:
type:
- array
- 'null'
description: Additional metadata entries providing field-level context about the error. Null if not applicable.
items:
type: object
description: Additional metadata entries providing field-level context about the error.
required:
- name
- reason
- category
properties:
name:
type: string
example: color
description: The name of the field or parameter associated with the error, if applicable.
reason:
type: string
example: Value must be 'green', 'red' or 'blue'.
description: A descriptive message explaining what is wrong with the field or parameter.
category:
type: string
example: propertyRequired
description: Classification of the error, useful for programmatic handling.
type:
type:
- string
- 'null'
description: URI reference to a resource that defines the error type, if available. Null if not applicable.
'403':
description: Forbidden. The server understood the request but refuses to authorize it. The authenticated user does not have the necessary permissions to perform this action.
content:
application/problem+json:
schema:
type: object
required:
- title
- detail
- status
properties:
title:
type: string
description: 'A short summary of the error type. This is intended for engineers and technical users. It is always in English and not localized.
'
example: Invalid Payload
detail:
type: string
description: 'A human-readable explanation of the specific reason for the failure.
'
example: Property value provided is not valid.
status:
type: integer
format: int32
description: 'The HTTP status code returned by the server.
'
minimum: 400
maximum: 599
example: 400
meta:
type:
- array
- 'null'
description: Additional metadata entries providing field-level context about the error. Null if not applicable.
items:
type: object
description: Additional metadata entries providing field-level context about the error.
required:
- name
- reason
- category
properties:
name:
type: string
example: color
description: The name of the field or parameter associated with the error, if applicable.
reason:
type: string
example: Value must be 'green', 'red' or 'blue'.
description: A descriptive message explaining what is wrong with the field or parameter.
category:
type: string
example: propertyRequired
description: Classification of the error, useful for programmatic handling.
type:
type:
- string
- 'null'
description: URI reference to a resource that defines the error type, if available. Null if not applicable.
post:
operationId: postAssets
summary: Create an asset
description: 'This endpoint creates a new asset record in Showpad. An asset represents a digital resource such as a document, image, video, or URL. Creating an asset involves providing its metadata, assigning it to a Division, and optionally setting additional properties such as tags, countries, languages, authors, sharing permissions, and expiration details.
Note: The asset file (binary content) is not uploaded through this endpoint. Once the asset has been created successfully, you must upload the file by creating an asset file (see [Create an asset file](https://developer.showpad.com/docs/apis/references/v4#/operations/postAssetFiles)).
Assets can be created as either:
- Local assets — Files that are stored and managed directly in Showpad.
- External assets — Assets managed by external OAuth2 clients.
The request requires authentication and appropriate content management permissions for the specified Division.'
tags:
- assets
security:
- BearerAuth: []
requestBody:
description: 'The request payload to create a new asset.
'
content:
application/json:
schema:
type: object
required:
- name
- division
properties:
name:
type: string
description: The name of the asset.
example: My Document.pdf
division:
type: object
allOf:
- type: object
properties:
id:
type: string
description: Unique identifier of the Division.
example: f541710283954a89bdfd40f221882451
description: The Division the asset belongs to. Cannot be changed after creation.
externalId:
type:
- string
- 'null'
description: A custom external reference ID for the asset. Only editable when the application owns the asset and the user has `manage_content` permissions for the Division.
example: my-custom-id
minLength: 1
maxLength: 128
description:
type:
- string
- 'null'
description: A description of the asset.
permissions:
type: object
description: Defines the user actions that are permitted for this asset.
properties:
isAnnotatable:
type: boolean
default: true
description: Indicates if the asset supports annotations (`true`) or not (`false`).
isEditable:
type: boolean
description: Indicates if the asset is editable (true) or not (false). This permission is applicable to `document` assets except PDFs.
isShareable:
type: boolean
default: true
description: Indicates if the asset can be shared (`true`) or not (`false`).
isProcessedUsed:
type: boolean
description: Indicates if the optimized version (`true`) or the original file (`false`) is used when downloaded. Defaults to `true`.
isDivisionShared:
type: boolean
default: false
description: 'Indicates whether the asset is shared across multiple Divisions (`true`) or restricted to its own Division (`false`). To enable cross-Division sharing, Division-level asset sharing must be enabled on the Division provided (`isAssetSharingEnabled` set to true).
'
enforcedPages:
type:
- object
- 'null'
description: Pages that are enforced to be prepended or appended when sharing.
properties:
prepend:
type:
- array
- 'null'
items:
type: object
required:
- start
- end
properties:
start:
type: integer
description: The first page in the range (inclusive).
end:
type: integer
description: The last page in the range (inclusive).
append:
type:
- array
- 'null'
items:
type: object
required:
- start
- end
properties:
start:
type: integer
description: The first page in the range (inclusive).
end:
type: integer
description: The last page in the range (inclusive).
isSensitive:
type: boolean
default: false
description: 'If `true`, the asset is hidden in kiosk mode.
'
isArchived:
type:
- boolean
- 'null'
default: false
description: If `true`, the asset has been archived and is no longer active.
isRenderExternalAllowed:
type: boolean
description: 'For URL assets only. Indicates whether the URL should be opened:
- `true`: in a new tab (target="_blank").
- `false`: embedded in an iframe.'
isOnlyEntireDocumentShareable:
type: boolean
description: Indicates whether individual pages of a document can be shared (`true`) or not (`false`). Defaults to `false`.
isSpeakerNotesEnabled:
type: boolean
description: Indicates whether speaker notes are enabled for the asset (`true`) or not (`false`). When enabled, allows presenters to add and view speaker notes associated with the asset. Defaults to `false`.
lockedPages:
type: array
description: Defines a range of pages that cannot be shared individually.
items:
type: object
required:
- start
- end
properties:
start:
type: integer
description: The first page in the range (inclusive).
end:
type: integer
description: The last page in the range (inclusive).
expiresAt:
type:
- string
- 'null'
format: date-time
description: Optional expiration date of the asset, in `ISO 8601` UTC format.
releasedAt:
type:
- string
- 'null'
format: date-time
description: Optional release date of the asset, in `ISO 8601` UTC format.
draftedAt:
type:
- string
- 'null'
format: date-time
description: Optional draft date of the asset, in `ISO 8601` UTC format.
url:
type:
- string
- 'null'
description: Only for URL-based assets. The target URL.
tags:
type: array
items:
type: object
properties:
id:
type: string
description: Unique identifier of the tag.
example: df391e1da6ed4db8a8085838f7abd130
description: List of tags assigned to the asset.
languages:
type: array
items:
description: The `ISO 639-1` language code identifying the supported language.
type: object
properties:
code:
type: string
description: '`BCP 47` language tag.'
example: en
description: List of assigned languages.
countries:
type: array
description: List of assigned countries.
items:
description: using `ISO 3166-1 alpha-2` country code
type: object
properties:
code:
type: string
format: iso-3166
description: The `ISO 3166-1 alpha-2` country code identifying the supported country.
example: US
authors:
type: array
description: List of assigned content authors.
items:
type: object
properties:
id:
description: User ID of the content author.
type: string
example: 83a5a807b3c487c91f39d1c3da00b5d6
downloadableExternal:
type: array
items:
type: string
enum:
- original
- pdf
description: 'Types of downloads that are possible:
* `original` - The original file can be downloaded
* `pdf` - The generated PDF version can be downloaded
'
description: 'List of asset versions available for external download. An empty array means the asset is not downloadable externally.
'
downloadableInternal:
type: array
items:
type: string
enum:
- original
- pdf
description: 'Types of downloads that are possible:
* `original` - The original file can be downloaded
* `pdf` - The generated PDF version can be downloaded
'
description: 'List of asset versions available for download by authenticated users. An empty array means the asset is not downloadable internally.
'
origin:
type: object
description: 'Defines the source of the asset, determining whether it is managed locally within Showpad or externally by an OAuth2 client.
- Local asset: Either omit the origin object entirely, or provide an origin object with type set to `local` and id set to `showpad`.
- External asset: Provide an origin object with type set to `oauth2client`, linking the asset to the external OAuth2 client associated with the authenticated user.
Any other combination of values will result in a 400 Bad Request error.'
properties:
id:
type: string
enum:
- showpad
description: 'Required for local assets with `id` set to `showpad`.
'
type:
type: string
enum:
- local
- oauth2client
description: 'Asset origin type.
- Local asset: `type` must be set to `local` and `id` set to `showpad`.
- External asset: `type` must be set to `oauth2client`. This links the asset to the external OAuth2 client associated with the authenticated user.'
required:
- type
example: "{\n \"type\": \"oauth2client\"\n}\n"
examples:
Microsoft Word document (docx):
summary: A Division-shared Microsoft Word (docx) asset
description: 'This example creates a Microsoft Word (docx) asset. The `isDivisionShared` property is used to indicate that this asset is shared across Divisions. The permissions are set to allow annotations, editing and sharing of the asset.
'
value: "{\n \"name\": \"My Document.docx\",\n \"division\": {\n \"id\": \"26092c300714ba38ecc245b0da65daef\"\n },\n \"isDivisionShared\": true,\n \"permissions\": {\n \"isAnnotatable\": true,\n \"isEditable\": true,\n \"isShareable\": true\n }\n}\n"
PDF document:
summary: A PDF asset with tags, languages, countries and authors.
description: 'This example creates a PDF (document) asset in a Division. A tag is set on the asset as well as other metadata like languages, countries and authors. The permissions to share and annotate the asset have been allowed. Note that the `isEditable` permission is not applicable to PDF assets and providing this will result in a 400 (`Bad request`) response.
'
value: "{\n \"name\": \"My Document.pdf\",\n \"division\": {\n \"id\": \"f541710283954a89bdfd40f221882451\"\n },\n \"description\": \"the asset description\",\n \"tags\": [\n {\n \"id\": \"df391e1da6ed4db8a8085838f7abd130\"\n }\n ],\n \"permissions\": {\n \"isAnnotatable\": true,\n \"isShareable\": true\n },\n \"languages\": [\n {\n \"code\": \"en\"\n }\n ],\n \"countries\": [\n {\n \"code\": \"US\"\n }\n ],\n \"authors\": [\n {\n \"id\": \"83a5a807b3c487c91f39d1c3da00b5d6\"\n }\n ]\n}\n"
Photo asset (png):
summary: A photo (png) asset
description: 'This example creates a photo (png) asset. The asset is not allowed to be shared.
'
value: "{\n \"name\": \"My Photo.png\",\n \"division\": {\n \"id\": \"26092c300714ba38ecc245b0da65daef\"\n },\n \"permissions\": {\n \"isShareable\": false\n }\n}\n"
URL asset:
summary: A URL asset
description: 'This example creates a URL (hyperlink) asset in a Division. Note that the name needs to have a `.url` extension.
The `url` field must be used to provide the location.
'
value: "{\n \"name\": \"Showpad.url\",\n \"division\": {\n \"id\": \"26092c300714ba38ecc245b0da65daef\"\n },\n \"url\": \"https://www.showpad.com\"\n}\n"
Video asset linked to the integration:
summary: A video asset linked to your integration
description: 'This example creates an video (mp4) asset. This asset is linked to the integration.
The `externalId` is optional but can be provided to maintain a reference to another system.
'
value: "{\n \"name\": \"how-to-use-showpad.mp4\",\n \"division\": {\n \"id\": \"26092c300714ba38ecc245b0da65daef\"\n },\n \"origin\": {\n \"type\": \"oauth2client\"\n },\n \"externalId\": \"abc-123\"\n}\n"
responses:
'201':
description: Created. The asset record was successfully created.
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: Unique identifier of the asset.
example: my-asset-id
currentFile:
type:
- object
- 'null'
properties:
id:
type: string
description: Unique identifier of the object.
example: my-asset-file-id
name:
type: string
description: Name of the asset.
example: my-asset.png
division:
description: Information about the Division the asset belongs to. Cannot be changed after creation.
type: object
properties:
id:
type: string
description: Unique identifier of the Division.
example: f541710283954a89bdfd40f221882451
status:
type: string
description: 'Current processing state of the asset:
* `prepared` - The asset is prepared and waiting for the binary file to be uploaded.
* `queued` - The asset is currently queued for processing.
* `processing` - The asset is currently being processed.
* `active` - The asset is done processing and can be used.
* `failed` - The asset encountered an error while processing.
'
enum:
- prepared
- queued
- processing
- active
- failed
type:
type: string
description: 'The type of the asset.
'
enum:
- 3d-model
- audio
- document
- page
- personal-video-recording
- photo
- raw
- scorm
- unknown
- url
- video
- webapp
slug:
type: string
description: URL-friendly identifier of the asset.
externalId:
type:
- string
- 'null'
description: A custom external reference ID for the asset. Only editable when the application owns the asset and the user has `manage_content` permissions for the Division.
example: my-custom-id
minLength: 1
maxLength: 128
description:
type:
- string
- 'null'
description: A description of the asset.
createdAt:
type:
- string
- 'null'
format: date-time
description: Timestamp when the asset was created, in `ISO 8601` UTC format.
updatedAt:
type:
- string
- 'null'
format: date-time
description: Timestamp when the asset was last updated, in `ISO 8601` UTC format.
expiresAt:
type:
- string
- 'null'
format: date-time
description: Optional expiration date of the asset, in `ISO 8601` UTC format.
releasedAt:
type:
- string
- 'null'
format: date-time
description: Optional release date of the asset, in `ISO 8601` UTC format.
draftedAt:
type:
- string
- 'null'
format: date-time
description: Optional draft date of the asset, in `ISO 8601` UTC format.
lastUploadedAt:
type:
- string
- 'null'
format: date-time
description: Timestamp when the latest version of the asset was uploaded, in `ISO 8601` UTC format.
permissions:
type: object
description: Defines the actions the current user is permitted to take on the asset.
properties:
isAnnotatable:
type: boolean
description: Indicates if the asset supports annotations (`true`) or not (`false`).
isEditable:
type: boolean
description: Indicates if the asset is editable (true) or not (false). This permission is applicable to `document` assets except PDFs.
isShareable:
type: boolean
description: Indicates if the asset can be shared (`true`) or not (`false`). Defaults to `true`.
isProcessedUsed:
type: boolean
description: Indicates if the optimized version (`true`) or the original file (`false`) is used when downloaded. Defaults to `true`.
isSpeakerNotesEnabled:
type: boolean
description: Indicates whether speaker notes are enabled for the asset (`true`) or not (`false`). When enabled, allows presenters to add and view speaker notes associated with the asset. Defaults to `false`.
isDivisionShared:
type: boolean
description: 'Indicates whether the asset is shared across multiple Divisions (`true`) or restricted to its own Division (`false`). To enable cross-Division sharing, Division-level asset sharing must be enabled on the Division provided (`isAssetSharingEnabled` set to true).
'
isSensitive:
type: boolean
description: If `true`, the asset is hidden in kiosk mode.
isArchived:
type: boolean
description: If `true`, the asset has been archived and is no longer active.
isRenderExternalAllowed:
type: boolean
description: 'For `url` assets only. Indicates whether the URL should be opened:
- `true` – in a new tab (target="_blank")
- `false` – embedded in an iframe.'
isOnlyEntireDocumentShareable:
type: boolean
description: Indicates whether individual pages of a document can be shared (`true`) or not (`false`). Defaults to `false`.
lockedPages:
type: array
description: Defines a range of pages that cannot be shared individually.
items:
type: object
required:
- start
- end
properties:
start:
type: integer
description: The first page in the range (inclusive).
end:
type: integer
description: The last page in the range (inclusive).
enforcedPages:
type:
- object
- 'null'
description: Pages that are enforced to be prepended or appended when sharing.
properties:
prepend:
type:
- array
- 'null'
items:
type: object
required:
- start
- end
properties:
start:
type: integer
description: The first page in the range (inclusive).
end:
type: integer
description: The last page in the range (inclusive).
append:
type:
- array
- 'null'
items:
type: object
required:
- start
- end
properties:
start:
type: integer
description: The first page in the range (inclusive).
end:
type: integer
description: The last page in the range (inclusive).
duration:
type:
- integer
- 'null'
description: The duration in seconds of the video/audio file.
readOnly: true
pageCount:
type:
- integer
- 'null'
description: Total number of pages in the document. Applicable to `document` assets only.
wordCount:
type:
- integer
- 'null'
format: int64
description: The number of words in the content.
example: 100
readOnly: true
competencies:
type: array
description: List of competency UUIDs associated with this asset.
readOnly: true
items:
type: string
pattern: ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$
example: a3e72bbf-ae0b-8738-1106-b1beb685ea88
url:
type:
- string
- 'null'
description: For `url` assets only. The external URL the asset points to.
checksum:
type:
- string
- 'null'
description: MD5 hash of the uploaded file, used to verify data integrity.
size:
type:
- integer
- 'null'
description: Size of the uploaded asset file, in bytes.
tags:
type: array
description: List of tags assigned to the asset. Only the `id` is returned.
items:
type: object
properties:
id:
type: string
description: Unique identifier of the tag.
example: df391e1da6ed4db8a8085838f7abd130
countries:
type: array
description: List of countries assigned to the asset.
items:
description: using `ISO 3166-1 alpha-2` country code
type: object
properties:
code:
type: string
format: iso-3166
description: The `ISO 3166-1 alpha-2` country code identifying the supported country.
example: US
languages:
type: array
description: List of languages assigned to the asset.
items:
description: The `ISO 639-1` language code identifying the supported language.
type: object
properties:
code:
type: string
description: '`BCP 47` language tag.'
example: en
authors:
type: array
description: List of assigned content authors.
items:
type: object
properties:
id:
description: User ID of the content author.
type: string
example: 83a5a807b3c487c91f39d1c3da00b5d6
downloadableExternal:
type: array
description: 'List of asset versions available for external download. An empty array means the asset is not downloadable externally.
'
items:
type: string
enum:
- original
- pdf
description: 'Types of downloads that are possible:
* `original` - The original file can be downloaded
* `pdf` - The generated PDF version can be downloaded
'
downloadableInternal:
type: array
description: 'List of asset versions available for download by authenticated users. An empty array means the asset is not downloadable internally.
'
items:
type: string
enum:
- original
- pdf
description: 'Types of downloads that are possible:
* `original` - The original file can be downloaded
* `pdf` - The generated PDF version can be downloaded
'
localization:
type:
- object
- 'null'
description: Details about localized versions of the asset. Null if not applicable.
required:
- primary
- variants
properties:
primary:
type: object
description: The primary asset of the localization configuration.
properties:
asset:
type: object
properties:
id:
type: string
description: Unique identifier of the asset.
example: my-asset-id
variants:
type: array
description: List of variants associated with the primary asset.
minItems: 0
maxItems: 50
items:
type: object
required:
- asset
- status
properties:
asset:
type: object
required:
- id
- languages
- countries
- authors
properties:
id:
type: string
description: Unique identifier of the asset.
example: my-asset-id
languages:
type: array
description: List of assigned languages.
items:
description: The `ISO 639-1` language code identifying the supported language.
type: object
properties:
code:
type: string
description: '`BCP 47` language tag.'
example: en
countries:
type: array
description: List of assigned countries.
items:
description: using `ISO 3166-1 alpha-2` country code
type: object
properties:
code:
type: string
format: iso-3166
description: The `ISO 3166-1 alpha-2` country code identifying the supported country.
example: US
authors:
type: array
description: List of assigned content authors.
items:
type: object
properties:
id:
description: User ID of the content author.
type: string
example: 83a5a807b3c487c91f39d1c3da00b5d6
status:
type: string
description: 'Current status of the variant:
* `to-be-localized` - The variant refers to the binary file of the primary asset; it must be localized.
* `outdated` - The variant is explicitly marked as outdated by a Showpad user.
* `localized` - The variant is a localized variant with its own binary file.
'
enum:
- to-be-localized
- outdated
- localized
'400':
description: Bad Request. Returned when the request payload is invalid or incomplete. The response provides structured error details to help identify and correct the issue.
content:
application/problem+json:
schema:
type: object
required:
- title
- detail
- status
properties:
title:
type: string
description: 'A short summary of the error type. This is intended for engineers and technical users. It is always in English and not localized.
'
example: Invalid Payload
detail:
type: string
description: 'A human-readable explanation of the specific reason for the failure.
'
example: Property value provided is not valid.
status:
type: integer
format: int32
description: 'The HTTP status code returned by the server.
'
minimum: 400
maximum: 599
example: 400
meta:
type:
- array
- 'null'
description: Additional metadata entries providing field-level context about the error. Null if not applicable.
items:
type: object
description: Additional metadata entries providing field-level context about the error.
required:
- name
- reason
- category
properties:
name:
type: string
example: color
description: The name of the field or parameter associated with the error, if applicable.
reason:
type: string
example: Value must be 'green', 'red' or 'blue'.
description: A descriptive message explaining what is wrong with the field or parameter.
category:
type: string
example: propertyRequired
description: Classification of the error, useful for programmatic handling.
type:
type:
- string
- 'null'
description: URI reference to a resource that defines the error type, if available. Null if not applicable.
'401':
description: Unauthorized. The request lacks valid authentication credentials, or the provided token has expired.
content:
application/problem+json:
schema:
type: object
required:
- title
- detail
- status
properties:
title:
type: string
description: 'A short summary of the error type. This is intended for engineers and technical users. It is always in English and not localized.
'
example: Invalid Payload
detail:
type: string
description: 'A human-readable explanation of the specific reason for the failure.
'
example: Property value provided is not valid.
status:
type: integer
format: int32
description: 'The HTTP status code returned by the server.
'
minimum: 400
maximum: 599
example: 400
meta:
type:
- array
- 'null'
description: Additional metadata entries providing field-level context about the error. Null if not applicable.
items:
type: object
description: Additional metadata entries providing field-level context about the error.
required:
- name
- reason
- category
properties:
name:
type: string
example: color
description: The name of the field or parameter associated with the error, if applicable.
reason:
type: string
example: Value must be 'green', 'red' or 'blue'.
description: A descriptive message explaining what is wrong with the field or parameter.
category:
type: string
example: propertyRequired
description: Classification of the error, useful for programmatic handling.
type:
type:
- string
- 'null'
description: URI reference to a resource that defines the error type, if available. Null if not applicable.
'403':
description: Forbidden. The server understood the request but refuses to authorize it. The authenticated user does not have the necessary permissions to perform this action.
content:
application/problem+json:
schema:
type: object
required:
- title
- detail
- status
properties:
title:
type: string
description: 'A short summary of the error type. This is intended for engineers and technical users. It is always in English and not localized.
'
example: Invalid Payload
detail:
type: string
description: 'A human-readable explanation of the specific reason for the failure.
'
example: Property value provided is not valid.
status:
type: integer
format: int32
description: 'The HTTP status code returned by the server.
'
minimum: 400
maximum: 599
example: 400
meta:
type:
- array
- 'null'
description: Additional metadata entries providing field-level context about the error. Null if not applicable.
items:
type: object
description: Additional metadata entries providing field-level context about the error.
required:
- name
- reason
- category
properties:
name:
type: string
example: color
description: The name of the field or parameter associated with the error, if applicable.
reason:
type: string
example: Value must be 'green', 'red' or 'blue'.
description: A descriptive message explaining what is wrong with the field or parameter.
category:
type: string
example: propertyRequired
description: Classification of the error, useful for programmatic handling.
type:
type:
- string
- 'null'
description: URI reference to a resource that defines the error type, if available. Null if not applicable.
'404':
description: Not Found. Returned when the requested asset does not exist or the user does not have permission to access it.
content:
application/problem+json:
schema:
type: object
required:
- title
- detail
- status
properties:
title:
type: string
description: 'A short summary of the error type. This is intended for engineers and technical users. It is always in English and not localized.
'
example: Invalid Payload
detail:
type: string
description: 'A human-readable explanation of the specific reason for the failure.
'
example: Property value provided is not valid.
status:
type: integer
format: int32
description: 'The HTTP status code returned by the server.
'
minimum: 400
maximum: 599
example: 400
meta:
type:
- array
- 'null'
description: Additional metadata entries providing field-level context about the error. Null if not applicable.
items:
type: object
description: Additional metadata entries providing field-level context about the error.
required:
- name
- reason
- category
properties:
name:
type: string
example: color
description: The name of the field or parameter associated with the error, if applicable.
reason:
type: string
example: Value must be 'green', 'red' or 'blue'.
description: A descriptive message explaining what is wrong with the field or parameter.
category:
type: string
example: propertyRequired
description: Classification of the error, useful for programmatic handling.
type:
type:
- string
- 'null'
description: URI reference to a resource that defines the error type, if available. Null if not applicable.
servers:
- url: https://{subdomain}.api.showpad.com/v4
description: Production server
x-environment: production
variables:
subdomain:
default: customer
description: Showpad customer subdomain
/assets/query:
post:
operationId: postAssetsQuery
summary: Query assets using ShowQL
description: "This endpoint enables you to query your asset library using [ShowQL](https://developer.showpad.com/docs/apis/content/showql), a Showpad domain-specific language (DSL) that allows for flexible and complex filtering of assets based on metadata, tags, languages, countries, and more.\nUse this endpoint when you need to: \n- Retrieve a precise set of assets using complex filter logic\n- Search by metadata, custom fields, tags, or localized attributes\n- Page through large result sets with consistent performance using cursor-based pagination \n#### Iterating over results\nThere are two ways to paginate through the results of a ShowQL query: offset-based and cursor-based pagination. The method you choose depends on the expected number of results and performance considerations. Only one pagination strategy can be used at a time. Providing both an `offset` and a `cursor` in the same request is not supported.\n- **Offset-based pagination** - Use for fewer than 10,000 results
To fetch the first page of results, either omit the `offset` property or set it to `0`. The `limit` property controls the maximum number of assets returned per page. If its omitted, the default value is applied.
To fetch the next page of results, calculate the new offset by adding the number of items returned in the previous page to the current offset:
`offset = offset + items.length`
Pagination should stop when the next offset value would be greater than or equal to the `count` value returned in the response.
**Note**: