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**: \n\n- **Cursor-based pagination** - Use for more than 10,000 results

To fetch the first page, omit the `cursor` property.

Each response includes a `next` property containing a cursor string. To retrieve the next page, set the `cursor` property in your request to this `next` value. Continue this process until `next` is `null`, which indicates there are no more results.

The `limit` property can be used to control the number of assets returned per page.

Important considerations:\n" tags: - assets security: - BearerAuth: [] requestBody: required: true content: application/json: schema: type: object required: - query properties: query: description: A valid ShowQL string to query assets. type: string maxLength: 20000 cursor: description: Use this value from the previous response's `next` field to paginate using cursor-based pagination. type: string offset: description: 'The zero-based offset of the first asset returned in the result (used with offset-based pagination). This query parameter is used together with the `limit` query parameter to paginate through assets in the result. ' type: integer minimum: 0 maximum: 99999 default: 0 limit: description: 'The maximum number of assets to return in one page of results. Note that the actual number of assets returned in one page might be less than this limit. ' type: integer minimum: 0 maximum: 100 default: 20 examples: Simple: summary: An example using `name`, `updatedAt` and `createdAt` description: 'This query returns all non-archived assets whose name contains “eOS” and that were updated within the last 7 days, sorted by creation date in descending order. ' value: "{\n \"query\": \"name ~ \\\"eOS\\\" AND updatedAt >= -1w ORDER BY createdAt DESC\"\n}\n" Archived: summary: An example using `archivedAt` and `IS (NOT) EMPTY` description: 'A query that finds all assets of type "video" with more than 500 views, and that have been archived. ' value: "{\n \"query\": \"type = \\\"video\\\" AND views > 500 AND archivedAt IS NOT EMPTY\"\n}\n" Offset: summary: An example using offset-based paging description: 'A simple query that is also accompanied by an `offset` property to get a page of the search result different from the first one. ' value: "{\n \"query\": \"name ~ \\\"eOS\\\" AND likes > 5\",\n \"offset\": 21\n}\n" Cursor: summary: An example using cursor-based paging description: 'A simple query that is also accompanied by an `cursor` property to get the next page of the search result. The `limit` parameter is used to specify the number of results to return but may be omitted to use the default value. ' value: "{\n \"query\": \"name ~ \\\"eOS\\\" AND likes > 5\",\n \"limit: 10,\n \"cursor\": \"bm90aGluZ3Rvc2Vl\"\n}\n" responses: '200': description: OK. The request was successful. Returns a list of assets that match the given ShowQL query. content: application/json: schema: description: The response to a ShowQL query for assets. type: object required: - count - items properties: count: description: Total number of results matching the request criteria. type: integer format: int32 example: 20 items: type: array 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 next: description: The next cursor to use for retrieving more results. type: - string - 'null' example: "{\n \"count\": 5,\n \"next\": \"bm90aGluZ3Rvc2Vl\",\n \"items\": [{\n \"id\": \"5a1b013f3c84478889b1b26fecb7d58d\",\n \"currentFile\": {\n \"id\": \"1d5bd771a4a0e9e2b32b59440f19683c\"\n },\n \"name\": \"eOS.pdf\",\n \"division\": {\n \"id\": \"d1633a97f47671aa77a1d947a169dcf9\"\n },\n \"status\": \"active\",\n \"type\": \"document\",\n \"externalId\": null,\n \"description\": \"The most flexible & complete operating system\",\n \"createdAt\": \"2023-04-18T12:00:00Z\",\n \"updatedAt\": \"2023-04-18T18:41:00Z\",\n \"expiresAt\": null,\n \"releasedAt\": null,\n \"draftedAt\": null,\n \"lastUploadedAt\": \"2023-04-18T12:02:36Z\",\n \"permissions\": {\n \"isAnnotatable\": false,\n \"isEditable\": false,\n \"isShareable\": true\n },\n \"isProcessedUsed\": false,\n \"isDivisionShared\": false,\n \"isSensitive\": false,\n \"isArchived\": false,\n \"isRenderExternalAllowed\": true,\n \"isOnlyDocumentShareable\": true,\n \"isSpeakerNotesEnabled\": false,\n \"lockedPages\": [],\n \"pageCount\": 5,\n \"checksum\": \"5633b7f75c44f76f0b3f97e73f529cf6\",\n \"size\": 1800531,\n \"tags\": [],\n \"countries\": [\n {\n \"code\": \"US\"\n },\n {\n \"code\": \"UK\"\n }\n ],\n \"languages\": [\n {\n \"code\": \"en\"\n }\n ],\n \"authors\": [\n {\n \"id\": \"83a5a807b3c487c91f39d1c3da00b5d6\"\n }\n ],\n \"downloadableExternal\": [],\n \"downloadableInternal\": []\n }]\n}\n" '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. example: "{\n \"title\": \"Bad Request\",\n \"detail\": \"The ShowQL query is invalid\",\n \"status\": \"400\",\n \"meta\": {\n \"name\": \"query\",\n \"reason\": \"Syntax error at character 50\",\n \"category\": \"ParseError\"\n },\n \"type\": \"/problems/bad-request\"\n}\n" '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. example: "{\n \"title\": \"Unauthorized\",\n \"detail\": \"Authorization is either invalid or expired\",\n \"status\": 401,\n \"type\": \"/problems/unauthorized\"\n}\n" servers: - url: https://{subdomain}.api.showpad.com/v4 description: Production server x-environment: production variables: subdomain: default: customer description: Showpad customer subdomain /assets/{assetId}: parameters: - name: assetId in: path required: true description: The asset ID. schema: type: string example: ab4756bbdeytifj334tppqef get: operationId: getAsset summary: Retrieve an Asset description: 'Retrieves a single asset by its unique ID. This is helpful when you need to inspect or work with a specific piece of content and require its full details. Use this endpoint when you need to: - Fetch all available details for a specific asset - Display or preview asset content in an application - Retrieve metadata, tags, file info, and processing status - Check localization or download options for a given asset - Confirm the current state of an asset before performing an update or action.' tags: - assets security: - BearerAuth: [] responses: '200': description: OK. The request was successful. Returns the requested asset object. x-summary: OK. Request is successful. 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 '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. post: operationId: updateAsset summary: Update an asset description: 'Use this endpoint to update the properties of an existing asset by its unique ID. This is typically used to modify metadata, tags, external IDs, or other editable fields after the asset has been created. - Modify metadata such as name, description, or external ID - Update tags, countries, or languages assigned to the asset - Adjust sharing permissions or visibility settings' tags: - assets security: - BearerAuth: [] requestBody: description: 'The request payload for updating an asset. ' required: true content: application/json: schema: type: object properties: name: type: string example: my-asset.png 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: Description of the asset. permissions: type: object description: Defines the user actions that are permitted for the asset. properties: isAnnotatable: type: boolean default: true description: 'Indicates if the asset supports annotations (`true`) or not (`false`). ' isEditable: type: boolean default: false 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: For `url` assets only. The external URL the asset points to. 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. Use an empty array to remove all tags. 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 languages assigned to the asset. countries: type: array 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 description: List of countries assigned to the asset. 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" localization: type: - object - 'null' description: Details about localized versions of the asset. Null if not applicable. 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: oneOf: - type: object description: Link to an existing asset. properties: asset: type: object properties: id: type: string description: Unique identifier of the asset. example: my-asset-id 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 required: - id - type: object description: Representation of a placeholder asset, containing the same properties as the primary asset, combined with the specified languages, countries and authors. properties: asset: type: object properties: 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 required: - languages - countries required: - primary - variants responses: '200': description: OK. The request was successful. Returns the updated asset object. x-summary: OK. Request was successful. 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. delete: operationId: deleteAsset summary: Delete an asset description: 'Use this endpoint to permanently delete an asset from your Showpad library by its unique ID. Once deleted, the asset and its associated files, metadata, and permissions will no longer be accessible. - Remove outdated or incorrect content from the library - Ensure only current and approved assets remain available - Clean up assets that are no longer in use or have expired' tags: - assets security: - BearerAuth: [] responses: '204': description: The asset was successfully deleted and no longer exists in the system. No response body is returned. x-summary: No Content. Accepted the changes. '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/{assetId}/files: parameters: - name: assetId in: path required: true description: The asset ID. schema: type: string example: ab4756bbdeytifj334tppqef get: operationId: getAssetFiles summary: List Asset Files description: 'Use this endpoint to retrieve all file versions that belong to a specific asset. Asset files may include the original upload, optimized formats, or alternative versions of the same asset. This is useful when you need to: - Display all available file formats for a given asset - Download or preview specific asset versions - Inspect file-level metadata, such as size, checksum, or extension - Paginate through large sets of files associated with a single asset' 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 responses: '200': description: OK. Request was successful. 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 file objects. items: description: Created File object. type: object properties: id: type: string description: Unique identifier of the object. example: my-asset-file-id name: type: - string - 'null' description: The name of the uploaded file. example: video.mp4 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 error: type: - string - 'null' description: 'A short explanation of the issue during file processing. The value will be set to `null` if there is no error. ' example: null createdAt: type: string format: date-time description: 'Timestamp when the resource was created, in `ISO 8601` UTC format. ' updatedAt: type: string format: date-time description: 'Timestamp when the resource was last updated, in `ISO 8601` UTC format. ' '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: postAssetFiles summary: Create an Asset File description: "This endpoint attaches a new binary file to an existing asset. Use this endpoint when you need to:\n- Add a new file to an existing asset\n- Replace or update the binary content while keeping metadata intact\n- Verify file integrity with a checksum\n- Upload large files using a temporary upload link\n\nAttaching a new binary file happens in two steps:\n\nStep 1: Request an upload link.\n- Send a `POST` request with the `assetId` in the path.\n- Optionally provide a new `fileName` or a Base64-encoded `contentMD5`` checksum for validation.\n- The response body includes:\n - `uploadMeta`: Information required to perform the upload\n - `uploadUrl`: A temporary signed link where the binary file must be uploaded\n - `suggestedContentType`: The `Content-Type` header value required for the upload\n\nStep 2: Upload the file.\n- Send a `PUT` request to the `uploadUrl`.\n- Use the `suggestedContentType` header, and include the `Content-MD5` header if you provided a checksum.\n- If the checksum doesn’t match, you’ll get a `400` error.\n\nOnce the file is uploaded, Showpad processes it. After processing, the uploaded file becomes the `currentFile` for the asset." tags: - assets security: - BearerAuth: [] responses: '201': description: The file was successfully created and associated with the asset. Returns the created File object. x-summary: Created. The resource was successfully created. content: application/json: schema: description: Created File object. type: object properties: id: type: string description: Unique identifier of the object. example: my-asset-file-id name: type: - string - 'null' description: The name of the uploaded file. example: video.mp4 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 error: type: - string - 'null' description: 'A short explanation of the issue during file processing. The value will be set to `null` if there is no error. ' example: null uploadMeta: type: object properties: uploadUrl: type: - string - 'null' description: The signed URL where the binary file must be uploaded via a `PUT` request. The URL is valid for 15 minutes. format: uri example: https://s3.amazonaws.com/path/to/bucket/with/signed/credentials suggestedContentType: type: string description: The suggested `Content-Type` header for the upload request to `uploadUrl`. example: video/mp4 metadata: type: - object - 'null' description: Additional metadata that must be sent with the upload request. example: origin: api additionalProperties: type: string createdAt: type: string format: date-time description: 'Timestamp when the resource was created, in `ISO 8601` UTC format. ' updatedAt: type: string format: date-time description: 'Timestamp when the resource was last updated, in `ISO 8601` UTC format. ' '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. requestBody: description: 'The request payload for attaching a new file to an existing asset. ' content: application/json: schema: type: object properties: name: type: string description: Optional. A new name for the asset. If omitted, the asset’s current name is preserved. example: video.mp4 contentMD5: type: string description: 'Optional. A Base64-encoded MD5 checksum of the file to be uploaded. When provided, the uploaded file must match this checksum. This ensures data integrity during transfer. See [RFC-1864](https://datatracker.ietf.org/doc/html/rfc1864) for details. ' example: Q2hlY2sgSW50ZWdyaXR5IQ== servers: - url: https://{subdomain}.api.showpad.com/v4 description: Production server x-environment: production variables: subdomain: default: customer description: Showpad customer subdomain /assets/{assetId}/files/{fileId}: parameters: - name: assetId in: path required: true description: The asset ID. schema: type: string example: ab4756bbdeytifj334tppqef - name: fileId in: path required: true description: The File ID. schema: type: string example: 1b513fa042db4c95b673721527852cbb get: operationId: getAssetFileById summary: Retrieve an Asset File description: 'Use this endpoint to retrieve the metadata of a single asset file by its unique ID. This does not return the binary file itself but provides detailed information about the file. This is useful when you need to: - Inspect file-level metadata such as name, size, or status - Check the current processing state of an asset file (e.g., queued, processing, active) - Retrieve error details if file processing failed - Confirm creation and update timestamps for version tracking' tags: - assets security: - BearerAuth: [] responses: '200': description: OK. The request was successful. Returns the requested asset file object. x-summary: OK. Request is successful. content: application/json: schema: description: Created File object. type: object properties: id: type: string description: Unique identifier of the object. example: my-asset-file-id name: type: - string - 'null' description: The name of the uploaded file. example: video.mp4 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 error: type: - string - 'null' description: 'A short explanation of the issue during file processing. The value will be set to `null` if there is no error. ' example: null createdAt: type: string format: date-time description: 'Timestamp when the resource was created, in `ISO 8601` UTC format. ' updatedAt: type: string format: date-time description: 'Timestamp when the resource was last updated, in `ISO 8601` UTC format. ' '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 components: securitySchemes: bearerAuth: type: http scheme: bearer description: This is the Bearer token to identify the current requesting user. Please check out this [page](https://docs.api.showpad.com/docs/apis/concepts/authentication) for a more in-depth explanation on Showpad authentication. oAuth: type: oauth2 flows: password: tokenUrl: https://{customer}.showpad.biz/api/v3/oauth2/token scopes: refresh_token: Allows the refresh of access tokens. read_user_management: Allows read access for user data (includes users, usergroups and user permissions). write_user_management: Allows write access for user data (includes users, usergroups and user permissions). read_contentprofile_management: Allows read access for content profile-related resources (content profiles, assets, tags, tickets and comments). write_contentprofile_management: Allows write access for content profile-related resources (content profiles, assets, tags, tickets and comments). read_division_management: Allows read access for division-related resources (divisions and division permissions). write_division_management: Allows write accesss for division-related resources (divisions and division permissions). authorizationCode: authorizationUrl: https://{customer}.showpad.biz/api/v3/oauth2/authorize tokenUrl: https://{customer}.showpad.biz/api/v3/oauth2/token refresh_token: Allows the refresh of access tokens. scopes: read_user_management: Allows read access for user data (includes users, usergroups and user permissions). write_user_management: Allows write access for user data (includes users, usergroups and user permissions). read_contentprofile_management: Allows read access for content profile-related resources (content profiles, assets, tags, tickets and comments). write_contentprofile_management: Allows write access for content profile-related resources (content profiles, assets, tags, tickets and comments). read_division_management: Allows read access for division-related resources (divisions and division permissions). write_division_management: Allows write accesss for division-related resources (divisions and division permissions). BearerAuth: type: http scheme: bearer description: 'This is the Bearer token to identify the current requesting user. Please check out this [page](https://docs.api.showpad.com/docs/apis/concepts/authentication) for a more in-depth explanation on Showpad authentication. ' x-refined-from: - showpad-v3-openapi-original.yml - showpad-v4-openapi-original.yml