If the standard PUT, PATCH and DELETE methods cannot adequately describe an operation on a resource the operation may itself be treated as a resource and the endpoint URLs will reflect this accordingly.
For example making a POST to /asset-uploads returns an AssetUpload resource which describes the URL(s) the client should PUT the binary data to upload a file to an asset.
If an operation is unlikely to complete via a synchronous REST call, or asynchronous behaviour is simply preferable, job resource endpoints may provided for the operation.
Created job resources can then be periodically polled to Get the status of the operation.
Such endpoints can be expected to contain a job qualifier. e.g /asset-download-jobs and /asset-download-jobs/{id}
All job resources can be expected to conform to a polymorphic job structure with common properties such as id, progress and type specific properties such as dateCompleted for successfully completed jobs.
If an operation can be applied to multiple resources an endpoint may provided to create a batch resource for the operation.
Such endpoints can be expected to contain a batch qualifier.
As batch operations almost always need to be asynchronous you can expect to see both qualifiers in the endpoint URL e.g /asset-download-batch-jobs and /asset-download-batch-jobs/{id}.
You should read the OAuth2 section if you want to set up programmatic API access to Dash. However, if you just want to try out an API endpoint, or want to request your client ID and secret (required for OAuth2 below), you can get a short-lived bearer token:
This token can be used to try out an endpoint directly from these docs. Just click "Try it..." in the right-hand panel and enter your token in the "Auth" tab.
Dash uses OAuth 2.0 for authorisation. A good overview of OAuth 2.0 can be found here.
Endpoints:
Scopes to note:
subdomain:my-accountAudience:
An query parameter of audience=https://assetplatform.io must be provided to the https://login.dash.app/authorize endpoint
To obtain your client ID and secret, follow the steps above to get a temporary bearer token and use this to create custom integration settings. The response you receive from the custom integrations settings endpoint will include your client ID and secret.
To begin the flow, send your user in a browser to to
Once the user successfully authenticates, they will be redirected to your redirect_uri with the Authorization Code provided in a query parameter.
Now that you have an Authorization Code, you must exchange it for your tokens via the https://login.dash.app/oauth/token endpoint
curl --request POST \
--url 'https://login.dash.app/oauth/token' \
--header 'content-type: application/x-www-form-urlencoded' \
--data grant_type=authorization_code \
--data 'client_id={YOUR_CLIENT_ID}' \
--data 'client_secret={YOUR_CLIENT_SECRET}' \
--data 'code={CODE_FROM_PREVIOUS_STEP}' \
--data 'redirect_uri={YOUR_REDIRECT}'A more detailed description of the Authorization Code Flow can be found here
Due to security concerns, neither OAuth grant types Client Credentials or Password are supported by the Dash API.
If you require an automated script to call the Dash API, we recommend going through the Authorization Code Flow described above once, specifying the offline_access scope to get a refresh token along with your access token. Your script can store and use this refresh token to call https://login.dash.app/oauth/token and get a new access token when the current one expires.
The Bearer Token is a standard JWT token so can be useful to decode in some cases.
For example, the sub field of the Bearer Token can be used in cases where you need access to the User.id of the current user.
e.g. When making an AssetSearch with the STAGED_BY criterion to find all Asset resources staged by the current user.
Alternatively the GET Current User endpoint contains properties for the current user to avoid needing to decode the Bearer Token.
In most responses from the Dash API you will find a permittedActions property alongside a result property which contains the resource.
This is to provide context for operations the current user is permitted to perform on that resource.
If an expected permitted action is not included in the permittedActions property then the current user does not have permission to perform the action.
The GET Current User endpoint houses permitted actions which are not associated with a specific API resource instance.
e.g. If the current user has permission to create new Asset resources then the GET Current User permittedActions property will contain the permitted action ASSETS : CREATE_ASSETS.
Asset.metadata consists of a map of String to String[]
The keys for map are Field IDs. Full details, including the field name, can be got via the GET Field endpoint or the full list of fields for an account can be retrieved via the GET Fields endpoint.
The map values are a list of plain text values if Field.hasFixedOptions = false or a list of FieldOption IDs if Field.hasFixedOptions = true
Where Field.hasFixedOptions = true details, including the field option name, can be got via the GET Field Option endpoint.
Where Field.hierarchical = true the complete branch of the tree will be returned and can be constructed via the FieldOption.parent property.
The full list of fields for an account can be retrieved via the GET Fields endpoint.
Where Field.hasFixedOptions = true the POST Field Option Searches endpoint can be used to get the available options.
Where Field.hierarchical = true you should start with a PARENT_ID FIELD_IS_EMPTY query to get the top level options and then PARENT_ID FIELD_EQUALS queries to get each sub-level.
A Folder in Dash is simply a FieldOption, for the built-in Folders Field. To determine the ID of the Folders Field, use the Folder Settings endpoint. Once you have this ID, Folders behave the same as any other Field.
For getting the folder tree see Getting fields and field options for asset metadata and Getting the full schema of fields and field options
For getting assets in folders see AssetSearch
For getting assets in no folders see the Search for field is empty example in the POST Asset Searches endpoint.
Assets are the main resources in Dash. An asset consists of a file, some fixed properties (such as the date the asset was added to Dash) and custom metadata.
To create new assets and upload files:
AssetUpload resources in the job's result property. For each file you want to upload:AssetUploadPart.etag property from the response of each PUT request and use them to complete the upload via the (POST Asset Upload Completion)(#operation/postAssetUploadCompletion)STAGED. Use the POST Asset lifecycle transition batch job endpoint if you'd like to change the state of the assets (e.g. to PENDING_APPROVAL or LIVE).AssetUpload via the POST Asset Upload endpointAssetUploadPart.etag property from the response of each PUT request and use them to complete the upload via the (POST Asset Upload Completion)(#operation/postAssetUploadCompletion)The current AssetFile for an Asset is returned in the Asset resource via the Asset.currentFile property.
The GET Asset Files endpoint can be used to get all AssetFile resources for an Asset
Edit the contents of one or more Asset.metadata map properties via the POST Asset Metadata Edit Batch Job endpoint and check on the progress and status of the edit via the GET Asset Metadata Edit Batch Job endpoint.
ASSOCIATED_WITH_USER criterion of the POST Collection Search endpoint to get all collections a user has access to.Asset resources in each collection see the All assets in a collection and Search within assets in a collection examples in the POST Asset Searches endpoint for how to specify the Collection.id in a COLLECTIONS : FIELD_EQUALS criterion.See the Search by file extension and Search by multiple file extensions example in the POST Asset Searches endpoint
The following date properties exist on an asset and can be supplied as FIXED field criteria in the POST Asset Searches endpoint
Asset.lifecycleStatus.dateStaged : The datetime the Asset was created but not yet live. DATE_STAGED in search criteria.Asset.lifecycleStatus.datePendingApproval : The datetime the Asset was set for approval (if it was). DATE_PENDING_APPROVAL in search criteria.Asset.lifecycleStatus.dateLive : The datetime the Asset was put live. DATE_LIVE in search criteria.Asset.currentAssetFile.dateAdded : The datetime the latest AssetFile was added. DATE_LAST_ASSET_FILE_ADDED in search criteria.Asset.dateLastModified : The datetime the any change was made to an Asset. This includes all of the above and any change to custom metadata DATE_LAST_MODIFIED in search criteria.There is currently no way to determine if only custom metadata has changes.
Several breaking changes have been introduced in the switch from V1 to V2, which are all the result of three changes.
brightdash.app to dash.app. All URLs used to access the API, including for authorisation, should be updated to the new domain.Attribute has been renamed to Field throughout, to mirror the change of terminology within the Dash frontend.All these changes are described in more specific detail below.
asset-staging-workflow-transition-batch-jobs to asset-lifecycle-transition-batch-jobs.criterion in the POST body has become selector, and the criterion now needs to be wrapped in the following {"type": "BY_CRITERION", "criterion": {...}}.For both scroll and paged searches:
criterion.field.fieldName and sorts.field.fieldName values have been renamed:DATE_ADDED -> DATE_LIVEADDED_BY -> STAGED_BYstagingStatus, addedBy, and dateAdded fields have been removed from the response. This data can now be found in the lifecycleStatus field.criterion in the POST body has become selector, and the criterion now needs to be wrapped in the following {"type": "BY_CRITERION", "criterion": {...}}.criterion in the POST body has become selector, and the criterion now needs to be wrapped in the following {"type": "BY_CRITERION", "criterion": {...}}.searchField field of search filter results of type HARD_CODED_FREE_OPTION have changed from DATE_ADDED to DATE_LIVE. This isn't really a breaking change as the specification says this field could return any string, but it feels worth mentioning.criterion.field.fieldName and sorts.field.fieldName values have been renamed for both POSTing and GETting SavedSearches:DATE_ADDED -> DATE_LIVEADDED_BY -> STAGED_BYAttribute has been replaced with the string Field throughout. This includes e.g. AttributeOption being renamed to FieldOption. A simple find and replace should be enough to migrate.Coming soon; contact us if you need access to this API endpoint.
Create an [Account]
This endpoint is unauthenticated. Do not send a Bearer Token in the Authorization Header
| subdomain required | string The subdomain of the |
| companyName | string The company name of the |
| trialSignUpSource | string Nullable |
object Nullable | |
| selfReportedCompanyDescription | string (SelfReportedCompanyDescription) Default: "SKIPPED" Enum: "SELLING_PRODUCTS" "CREATIVE_MARKETING_AGENCY" "NON_PROFIT" "OTHER" "SKIPPED" "NEVER_ASKED" |
| referrerCode | string Nullable |
| optInToBetas | Array of strings (Beta) Default: [] Items Value: "AI" |
{- "subdomain": "planto",
- "companyName": "Planto",
- "trialSignUpSource": "string",
- "attribution": {
- "source": "string",
- "freeText": "string"
}, - "selfReportedCompanyDescription": "SELLING_PRODUCTS",
- "referrerCode": "string",
- "optInToBetas": [ ]
}{- "result": {
- "id": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "subdomain": "planto",
- "companyName": "Planto",
- "plan": "STAFF",
- "dateCreated": "2021-02-17T09:24:01.417Z",
- "dateExpires": "2021-02-27",
- "trialSignUpSource": "string",
- "attribution": {
- "source": "string",
- "freeText": "string"
}, - "selfReportedCompanyDescription": "SELLING_PRODUCTS"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Create a new [AccountInviteRequest]
This endpoint is unauthenticated. Do not send a Bearer Token in the Authorization Header
| accountId required | string The ID of the account the invite request is for |
{- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd"
}{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Create a new PubliclyAvailableAccountData.
This endpoint is unauthenticated. Do not send a Bearer Token in the Authorization Header
| from required | integer Default: 0 The item number to begin the result set from |
| pageSize required | integer Default: 100 The maximum number of items to return in the result set |
required | any (PubliclyAvailableAccountDataSearchCriterion) |
| sorts required | Array of objects This search does not accept any sorts, but has the sorts parameter anyway to fit in with other searches. You must always provide an empty list for this parameter. |
{- "from": 0,
- "pageSize": 100,
- "criterion": {
- "type": "FIELD_EQUALS",
- "value": "Folder",
- "field": "SUBDOMAIN"
}, - "sorts": [ ]
}{- "results": [
- {
- "result": {
- "id": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "subdomain": "planto",
- "accentColour": "#333666",
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
], - "totalResults": 15
}Coming soon; contact us if you need access to this API endpoint.
curl -i -X GET \ https://api-v2.dash.app/account-security \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "mfaEnabled": true
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}| mfaEnabled required | boolean Whether users of the account must configure and use multi-factor authentication on login |
{- "mfaEnabled": true
}{- "result": {
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "mfaEnabled": true
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Coming soon; contact us if you need access to this API endpoint.
curl -i -X GET \ https://api-v2.dash.app/auto-tagging-image-settings \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "enabled": true,
- "confidence": true
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}| enabled | boolean Nullable Whether auto-tagging for images is enabled |
| confidence | number Nullable A number between 1 and 100 indicating how confident Dash should be about a tag being applicable to an image to include it. |
{- "enabled": true,
- "confidence": 85
}{- "result": {
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "enabled": true,
- "confidence": true
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Coming soon; contact us if you need access to this API endpoint.
Get the EntityQuotaOverride for the specified entity.
Valid entity IDs are:
| accountId required | string The ID of the account |
| id required | string The ID of the entity |
curl -i -X GET \ https://api-v2.dash.app/admin/accounts/:accountId/entities/:id/quota-override \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "id": "18214033-c6b0-4e53-be89-3eca66297c5d",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "entityName": "USER",
- "quota": 5000
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Create a EntityQuotaOverride for the specified entity.
| accountId required | string The ID of the account |
| id required | string The ID of the entity |
| quota required | number The entity's new quota amount for this account |
{- "quota": 5000
}{- "result": {
- "id": "18214033-c6b0-4e53-be89-3eca66297c5d",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "entityName": "USER",
- "quota": 5000
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}For the most part Folders in Dash are just like any custom Field with Field.hasFixedOptions = true, Field.hierarchical = true and Field.multiValue = true.
The Folders Field also has the following behaviour.
Field.indestructable = trueAsset permissions for a UserGroup (currently only configurable via the Dash frontend, not via the API)Field appears on your Dash app homepage.Folder Settings specify the Field.id of the Folders Field in your Dash.
curl -i -X GET \ https://api-v2.dash.app/folder-settings \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "fieldId": "7756d388-110c-4712-b350-0b2b48e156c1"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Coming soon; contact us if you need access to this API endpoint.
curl -i -X GET \ https://api-v2.dash.app/onboarding-checklist \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "hasCompletedInitialImport": true,
- "hasLoggedIn": true,
- "hasUploadedSomeFiles": true,
- "hasAddedSomeAttributes": true,
- "hasSignedUp": true,
- "hasCustomisedTheme": true,
- "hasInvitedUsers": true
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}| hasCompletedInitialImport | boolean Nullable |
| hasLoggedIn | boolean Nullable |
| hasUploadedSomeFiles | boolean Nullable |
| hasAddedSomeAttributes | boolean Nullable |
| hasSignedUp | boolean Nullable |
| hasCustomisedTheme | boolean Nullable |
| hasInvitedUsers | boolean Nullable |
{- "hasCompletedInitialImport": true,
- "hasLoggedIn": true,
- "hasUploadedSomeFiles": true,
- "hasAddedSomeAttributes": true,
- "hasSignedUp": true,
- "hasCustomisedTheme": true,
- "hasInvitedUsers": true
}{- "result": {
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "hasCompletedInitialImport": true,
- "hasLoggedIn": true,
- "hasUploadedSomeFiles": true,
- "hasAddedSomeAttributes": true,
- "hasSignedUp": true,
- "hasCustomisedTheme": true,
- "hasInvitedUsers": true
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}curl -i -X GET \ https://api-v2.dash.app/grouped-preset-transformations \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "itemGroupTypes": [
- {
- "id": "1080e904-187c-4e65-8b40-d93e63c391dc",
- "name": "Social media sizes",
- "groups": [
- {
- "id": "ce809f3d-c9e1-4802-9aa9-620c0bf00dd6",
- "name": "LinkedIn",
- "items": [
- {
- "id": null,
- "accountId": null,
- "name": null,
- "position": null,
- "candidatePresetTransformations": [ ]
}
]
}
]
}
], - "ungroupedItems": [
- {
- "id": "a060635d-5807-4115-a2ed-f0588d47e7ba",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "name": "Medium",
- "position": 1,
- "candidatePresetTransformations": [
- {
- "criteria": [
- {
- "type": null,
- "mediaTypes": [ ]
}
], - "transformationTemplate": [
- {
- "type": null,
- "width": null,
- "height": null
}
]
}
]
}
]
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Create a new PresetTransformationSearch. This is most commonly used for finding presets that are applicable to a set of assets, so that one can be selected for use to create some AssetDownloads.
| from required | integer Default: 0 The item number to begin the result set from |
| pageSize required | integer Default: 100 The maximum number of items to return in the result set |
any (PresetTransformationSearchCriterion) | |
Array of objects (PresetTransformationSort) Sorts to be applied to the search in order of precedence |
{- "from": 0,
- "pageSize": 100,
- "criterion": {
- "type": "AND",
- "criteria": [
- {
- "type": "APPLICABLE_FOR_ANY_ASSETS",
- "assetIds": [
- "2b746f61-d36d-4627-a547-936f6f20594b"
]
}, - {
- "type": "NOT",
- "criterion": {
- "type": "HAS_TRANSFORMATION_OF_TYPE",
- "transformationType": "CROP"
}
}
]
}, - "sorts": [ ]
}{- "results": [
- {
- "result": {
- "id": "a060635d-5807-4115-a2ed-f0588d47e7ba",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "name": "Medium",
- "position": 1,
- "candidatePresetTransformations": [
- {
- "criteria": [
- {
- "type": "MATCHES_MEDIA_TYPES",
- "mediaTypes": [
- {
- "type": "image",
- "subType": "*"
}, - {
- "type": "application",
- "subType": "psd"
}
]
}, - {
- "type": "IS_TRANSPARENT",
- "isTransparent": true
}
], - "transformationTemplate": [
- {
- "type": "RESIZE",
- "width": 1200,
- "height": 1200
}, - {
- "type": "CONVERT",
- "mediaType": {
- "type": "image",
- "subType": "png"
}
}
]
}, - {
- "criteria": [
- {
- "type": "MATCHES_MEDIA_TYPES",
- "mediaTypes": [
- {
- "type": "image",
- "subtype": "*"
}, - {
- "type": "application",
- "subtype": "psd"
}
]
}, - {
- "type": "IS_TRANSPARENT",
- "isTransparent": false
}
], - "transformationTemplate": [
- {
- "type": "RESIZE",
- "width": 1200,
- "height": 1200
}, - {
- "type": "CONVERT",
- "mediaType": {
- "type": "image",
- "subType": "jpeg"
}
}
]
}
]
}, - "permittedActions": [ ]
}, - {
- "result": {
- "id": "917087a6-8f76-4e77-be14-1ac637637c69",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "name": "Large",
- "position": 2,
- "candidatePresetTransformations": [
- {
- "criteria": [
- {
- "type": "MATCHES_MEDIA_TYPES",
- "mediaTypes": [
- {
- "type": "image",
- "subType": "*"
}, - {
- "type": "application",
- "subType": "psd"
}
]
}, - {
- "type": "IS_TRANSPARENT",
- "isTransparent": true
}
], - "transformationTemplate": [
- {
- "type": "RESIZE",
- "width": 1200,
- "height": 1200
}, - {
- "type": "CONVERT",
- "mediaType": {
- "type": "image",
- "subType": "png"
}
}
]
}, - {
- "criteria": [
- {
- "type": "MATCHES_MEDIA_TYPES",
- "mediaTypes": [
- "image/*",
- "application/psd"
]
}, - {
- "type": "IS_TRANSPARENT",
- "isTransparent": false
}
], - "transformationTemplate": [
- {
- "type": "RESIZE",
- "width": 2500,
- "height": 2500
}, - {
- "type": "CONVERT",
- "mediaType": {
- "type": "image",
- "subType": "jpeg"
}
}
]
}
]
}, - "permittedActions": [ ]
}
], - "totalResults": 2
}Create a new [PresetTransformationsForAssetSearch]
| from required | integer Default: 0 The item number to begin the result set from |
| pageSize required | integer Default: 100 The maximum number of items to return in the result set |
required | any (PresetTransformationsForAssetSearchCriterion) |
required | Array of objects (PresetTransformationsForAssetSort) Sorts to be applied to the search in order of precedence |
{- "from": 0,
- "pageSize": 100,
- "criterion": {
- "type": "FIELD_IN",
- "values": [
- "this",
- "that"
], - "field": "ASSET_ID"
}, - "sorts": [
- {
- "field": "ASSET_ID",
- "order": "ASC"
}
]
}{- "results": [
- {
- "result": {
- "assetId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "presetTransformationIds": [
- "string"
]
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
], - "totalResults": 1337
}The Search Filter View defines which filters appear, and the order in which they appear, in the left hand filter bar on the search page in the Dash frontend. These filters are used to build search criteria.
Filters either refer to a Field in your Dash or a one of a subset of the fixed search fields available in the search API (currently DATE_LIVE, FILE_TYPE or STAGED)
curl -i -X GET \ https://api-v2.dash.app/search-filters \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
[- {
- "result": {
- "id": "502318d9-b42e-406c-b69d-f58dc15d8fa0",
- "adminOnly": true,
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "allowEmpty": true,
- "type": "FIELD",
- "fieldId": "a52b5315-15b8-417f-b742-d6902108bac1"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
]Get the SearchFilter resources that have been configured as in use
curl -i -X GET \ https://api-v2.dash.app/search-filter-view \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "searchFilters": [
- {
- "type": "FIELD",
- "id": "502d1473-f047-4a2c-9885-16274e4407b9",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "fieldId": "88eb1aca-cf98-4e87-9165-33e7be8b1ea1",
- "allowEmpty": true
}, - {
- "type": "HARD_CODED_FIXED_OPTION",
- "id": "cb8ad3d9-0c26-4f0e-9884-585d24a86d59",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "searchField": "FILE_TYPE",
- "allowEmpty": false,
- "name": "File Type",
- "options": [
- "Image",
- "Video",
- "Audio",
- "Document",
- "Other"
]
}, - {
- "type": "HARD_CODED_FREE_OPTION",
- "id": "5c02e3a0-57f2-4576-b41c-a0a4e30688bd",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "searchField": "DATE_LIVE",
- "name": "Date Added",
- "dataType": "DATE_TIME",
- "allowEmpty": false
}, - {
- "type": "HARD_CODED_USER",
- "id": "246b1496-61d3-4b23-ad8e-d6dc990e9ef6",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "searchField": "STAGED_BY",
- "name": "Added by",
- "allowEmpty": false
}
]
}Configure a SearchFilter resource as in-use
| searchFilterId required | string Unique ID of the |
| position required | number The zero-based display position of this |
{- "searchFilterId": "4cb261ad-dffb-414e-89cf-6902e3031d44",
- "position": 0
}{- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "searchFilters": [
- {
- "type": "FIELD",
- "id": "502d1473-f047-4a2c-9885-16274e4407b9",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "fieldId": "88eb1aca-cf98-4e87-9165-33e7be8b1ea1",
- "allowEmpty": true
}, - {
- "type": "HARD_CODED_FIXED_OPTION",
- "id": "cb8ad3d9-0c26-4f0e-9884-585d24a86d59",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "searchField": "FILE_TYPE",
- "allowEmpty": false,
- "name": "File Type",
- "options": [
- "Image",
- "Video",
- "Audio",
- "Document",
- "Other"
]
}, - {
- "type": "HARD_CODED_FREE_OPTION",
- "id": "5c02e3a0-57f2-4576-b41c-a0a4e30688bd",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "searchField": "DATE_LIVE",
- "name": "Date Added",
- "dataType": "DATE_TIME",
- "allowEmpty": false
}, - {
- "type": "HARD_CODED_USER",
- "id": "246b1496-61d3-4b23-ad8e-d6dc990e9ef6",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "searchField": "STAGED_BY",
- "name": "Added by",
- "allowEmpty": false
}
]
}Change the display position of a SearchFilter resource in the search filter view
| id required | string The unique ID of the |
| position | number Nullable The zero-based display position of this |
{- "position": 0
}{- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "searchFilters": [
- {
- "type": "FIELD",
- "id": "502d1473-f047-4a2c-9885-16274e4407b9",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "fieldId": "88eb1aca-cf98-4e87-9165-33e7be8b1ea1",
- "allowEmpty": true
}, - {
- "type": "HARD_CODED_FIXED_OPTION",
- "id": "cb8ad3d9-0c26-4f0e-9884-585d24a86d59",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "searchField": "FILE_TYPE",
- "allowEmpty": false,
- "name": "File Type",
- "options": [
- "Image",
- "Video",
- "Audio",
- "Document",
- "Other"
]
}, - {
- "type": "HARD_CODED_FREE_OPTION",
- "id": "5c02e3a0-57f2-4576-b41c-a0a4e30688bd",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "searchField": "DATE_LIVE",
- "name": "Date Added",
- "dataType": "DATE_TIME",
- "allowEmpty": false
}, - {
- "type": "HARD_CODED_USER",
- "id": "246b1496-61d3-4b23-ad8e-d6dc990e9ef6",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "searchField": "STAGED_BY",
- "name": "Added by",
- "allowEmpty": false
}
]
}Configure a SearchFilter resource as not in-use
| id required | string The unique ID of the |
curl -i -X DELETE \ https://api-v2.dash.app/search-filter-view/search-filters/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "searchFilters": [
- {
- "type": "FIELD",
- "id": "502d1473-f047-4a2c-9885-16274e4407b9",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "fieldId": "88eb1aca-cf98-4e87-9165-33e7be8b1ea1",
- "allowEmpty": true
}, - {
- "type": "HARD_CODED_FIXED_OPTION",
- "id": "cb8ad3d9-0c26-4f0e-9884-585d24a86d59",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "searchField": "FILE_TYPE",
- "allowEmpty": false,
- "name": "File Type",
- "options": [
- "Image",
- "Video",
- "Audio",
- "Document",
- "Other"
]
}, - {
- "type": "HARD_CODED_FREE_OPTION",
- "id": "5c02e3a0-57f2-4576-b41c-a0a4e30688bd",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "searchField": "DATE_LIVE",
- "name": "Date Added",
- "dataType": "DATE_TIME",
- "allowEmpty": false
}, - {
- "type": "HARD_CODED_USER",
- "id": "246b1496-61d3-4b23-ad8e-d6dc990e9ef6",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "searchField": "STAGED_BY",
- "name": "Added by",
- "allowEmpty": false
}
]
}Coming soon; contact us if you need access to this API endpoint.
Get the Subscription associated with your account
curl -i -X GET \ https://api-v2.dash.app/subscription \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "type": "CREATED",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "startDate": "2021-02-17T09:24:01.417Z",
- "plan": {
- "type": "TIERED_VALUE_BASED",
- "planName": "STARTUP",
- "downloads": {
- "type": "LIMITED",
- "limit": 1000
}, - "assetsIncludedInPlan": 2000,
- "extraAssets": 1000,
- "assets": 3000
}, - "billing": {
- "name": "Example name",
- "email": "email@example.com",
- "address": {
- "country": "United Kingdom",
- "state": "Texas",
- "city": "Brighton",
- "postalCode": "BN1 1AB",
- "line1": "Flat 56",
- "line2": "13 some road"
}, - "period": "MONTHLY",
- "currency": "GBP",
- "nextBillingDate": "2021-02-17T09:24:01.417Z",
- "amount": {
- "amountWithTax": 12000,
- "amountWithoutTax": 10000,
- "includesTax": true
}
}, - "coupons": [
- {
- "id": "5%OFF-COUPON",
- "name": "5% off coupon",
- "discountPercentage": 12.5,
- "status": "ACTIVE"
}
], - "signupUser": {
- "email": "some@email.com",
- "name": "Some Name"
}
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Delete the Subscription associated with your account
curl -i -X DELETE \ https://api-v2.dash.app/subscription \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Get an estimate of the upcoming subscription based on current usage
curl -i -X GET \ https://api-v2.dash.app/subscription-estimate \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "type": "CREATED",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "startDate": "2021-02-17T09:24:01.417Z",
- "plan": {
- "type": "TIERED_VALUE_BASED",
- "planName": "STARTUP",
- "downloads": {
- "type": "LIMITED",
- "limit": 1000
}, - "assetsIncludedInPlan": 2000,
- "extraAssets": 1000,
- "assets": 3000
}, - "billing": {
- "name": "Example name",
- "email": "email@example.com",
- "address": {
- "country": "United Kingdom",
- "state": "Texas",
- "city": "Brighton",
- "postalCode": "BN1 1AB",
- "line1": "Flat 56",
- "line2": "13 some road"
}, - "period": "MONTHLY",
- "currency": "GBP",
- "nextBillingDate": "2021-02-17T09:24:01.417Z",
- "amount": {
- "amountWithTax": 12000,
- "amountWithoutTax": 10000,
- "includesTax": true
}
}, - "coupons": [
- {
- "id": "5%OFF-COUPON",
- "name": "5% off coupon",
- "discountPercentage": 12.5,
- "status": "ACTIVE"
}
], - "signupUser": {
- "email": "some@email.com",
- "name": "Some Name"
}
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Create a new Subscription Intent resource to indicate intent to subscribe to a paid plan
required | any (PlanRequest) |
required | object (BillingRequest) |
required | object (SignupUser) |
| couponIds required | Array of strings The coupon IDs to apply to the subscription you intend to pay for |
{- "planRequest": {
- "type": "TIERED_VALUE_BASED",
- "planName": "STARTUP",
- "extraAssets": 1000
}, - "billingRequest": {
- "billingPeriod": "MONTHLY",
- "currency": "GBP",
- "country": "GB"
}, - "signupUser": {
- "email": "some@email.com",
- "name": "Some Name"
}, - "couponIds": [
- "string"
]
}{- "result": {
- "id": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "setupIntentId": "some-setup-intent-id",
- "setupIntentClientSecret": "some-setup-intent-client-secret",
- "accountId": "string",
- "amount": {
- "amountWithTax": 12000,
- "amountWithoutTax": 10000,
- "includesTax": true
}, - "planRequest": {
- "type": "TIERED_VALUE_BASED",
- "planName": "STARTUP",
- "extraAssets": 1000
}, - "billingRequest": {
- "billingPeriod": "MONTHLY",
- "currency": "GBP",
- "country": "GB"
}, - "signupUser": {
- "email": "some@email.com",
- "name": "Some Name"
}, - "coupons": [
- {
- "id": "5%OFF-COUPON",
- "name": "5% off coupon",
- "discountPercentage": 12.5,
- "status": "ACTIVE"
}
], - "paymentStatus": {
- "type": "PENDING"
}
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Get a Subscription Intent resource
| id required | string The unique ID of the SubscriptionIntent |
curl -i -X GET \ https://api-v2.dash.app/subscription-intents/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "id": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "setupIntentId": "some-setup-intent-id",
- "setupIntentClientSecret": "some-setup-intent-client-secret",
- "accountId": "string",
- "amount": {
- "amountWithTax": 12000,
- "amountWithoutTax": 10000,
- "includesTax": true
}, - "planRequest": {
- "type": "TIERED_VALUE_BASED",
- "planName": "STARTUP",
- "extraAssets": 1000
}, - "billingRequest": {
- "billingPeriod": "MONTHLY",
- "currency": "GBP",
- "country": "GB"
}, - "signupUser": {
- "email": "some@email.com",
- "name": "Some Name"
}, - "coupons": [
- {
- "id": "5%OFF-COUPON",
- "name": "5% off coupon",
- "discountPercentage": 12.5,
- "status": "ACTIVE"
}
], - "paymentStatus": {
- "type": "PENDING"
}
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Update a Subscription Intent resource
| id required | string The unique ID of the SubscriptionIntent |
any (PlanRequest) | |
object (BillingRequest) | |
object (SignupUser) | |
| couponIds | Array of strings Nullable The coupon IDs to apply to the subscription you intend to pay for |
{- "planRequest": {
- "type": "TIERED_VALUE_BASED",
- "planName": "STARTUP",
- "extraAssets": 1000
}, - "billingRequest": {
- "billingPeriod": "MONTHLY",
- "currency": "GBP",
- "country": "GB"
}, - "signupUser": {
- "email": "some@email.com",
- "name": "Some Name"
}, - "couponIds": [
- "string"
]
}{- "result": {
- "id": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "setupIntentId": "some-setup-intent-id",
- "setupIntentClientSecret": "some-setup-intent-client-secret",
- "accountId": "string",
- "amount": {
- "amountWithTax": 12000,
- "amountWithoutTax": 10000,
- "includesTax": true
}, - "planRequest": {
- "type": "TIERED_VALUE_BASED",
- "planName": "STARTUP",
- "extraAssets": 1000
}, - "billingRequest": {
- "billingPeriod": "MONTHLY",
- "currency": "GBP",
- "country": "GB"
}, - "signupUser": {
- "email": "some@email.com",
- "name": "Some Name"
}, - "coupons": [
- {
- "id": "5%OFF-COUPON",
- "name": "5% off coupon",
- "discountPercentage": 12.5,
- "status": "ACTIVE"
}
], - "paymentStatus": {
- "type": "PENDING"
}
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Get a summary of your subscription usage for the last six months.
If you are on a tiered subscription (Starting, Growing or Dashing), the download counts will be bucketed by calendar month. For example, the last counts will include all downloads this calendar month up to today.
If you are on the new value-based pricing (Startup, Small Team, Growing Brand or Established Brand), then the download counts are bucketed based on your billing month.
curl -i -X GET \ https://api-v2.dash.app/subscription-usage \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "lastSixMonthsDownloadCountsChronologically": [
- {
- "dateFrom": "2024-01-15T00:00:00.000Z",
- "dateTo": "2024-02-15T00:00:00.000Z",
- "downloadCount": 15
}, - {
- "dateFrom": "2024-01-15T00:00:00.000Z",
- "dateTo": "2024-02-15T00:00:00.000Z",
- "downloadCount": 15
}, - {
- "dateFrom": "2024-01-15T00:00:00.000Z",
- "dateTo": "2024-02-15T00:00:00.000Z",
- "downloadCount": 15
}, - {
- "dateFrom": "2024-01-15T00:00:00.000Z",
- "dateTo": "2024-02-15T00:00:00.000Z",
- "downloadCount": 15
}, - {
- "dateFrom": "2024-01-15T00:00:00.000Z",
- "dateTo": "2024-02-15T00:00:00.000Z",
- "downloadCount": 15
}, - {
- "dateFrom": "2024-01-15T00:00:00.000Z",
- "dateTo": "2024-02-15T00:00:00.000Z",
- "downloadCount": 15
}
], - "lastMonthDownloadCountsByUserType": {
- "downloadsBySignedInUsers": 67,
- "downloadsByPublicVisitors": 0,
- "activeEmbeddableLinks": 15
}, - "storageBytesStored": 7981506322,
- "numberOfAssets": 2540
}Coming soon; contact us if you need access to this API endpoint.
curl -i -X GET \ https://api-v2.dash.app/text-in-image-settings \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "enabled": true,
- "confidence": true
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}| enabled | boolean Nullable Whether text in image extraction is enabled |
| confidence | number Nullable A number between 1 and 100 indicating how confident Dash should be about the text in the image |
{- "enabled": true,
- "confidence": 85
}{- "result": {
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "enabled": true,
- "confidence": true
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Coming soon; contact us if you need access to this API endpoint.
Get the account's Theme
| contextType required | string |
| contextId required | string |
curl -i -X GET \ https://api-v2.dash.app/context-types/:contextType/contexts/:contextId/theme \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "accentColour": "#333666",
- "showRecentlyAddedAssets": true,
- "contextType": "ACCOUNT",
- "contextId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Update the Theme of the account.
| contextType required | string |
| contextId required | string |
object (NullableStringFieldPatch) | |
| showRecentlyAddedAssets | boolean Nullable Whether to include a preview of recently added assets on the homepage |
{- "accentColour": {
- "value": "example value"
}, - "showRecentlyAddedAssets": true
}{- "result": {
- "accentColour": "#333666",
- "showRecentlyAddedAssets": true,
- "contextType": "ACCOUNT",
- "contextId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Post an upload object for one of the images in the account's Theme
| contextType required | string |
| contextId required | string |
| themeImageType required | string (ThemeImageType) Enum: "FAVICON" "LOGO" "HOMEPAGE_IMAGE" "LOGIN_IMAGE" |
{- "themeImageType": "FAVICON"
}{
}Create a new ThemeSearch. This can be used to search for a theme by subdomain.
This endpoint is unauthenticated. Do not send a Bearer Token in the Authorization Header
| from required | integer Default: 0 The item number to begin the result set from |
| pageSize required | integer Default: 100 The maximum number of items to return in the result set |
required | any (ThemeSearchCriterion) |
| sorts required | Array of objects This search does not accept any sorts, but has the sorts parameter anyway to fit in with other searches. You must always provide an empty list for this parameter. |
{- "from": 0,
- "pageSize": 100,
- "criterion": {
- "type": "string",
- "value": "Folder",
- "field": "SUBDOMAIN"
}, - "sorts": [ ]
}{- "results": [
- {
- "result": {
- "accentColour": "#333666",
- "showRecentlyAddedAssets": true,
- "contextType": "ACCOUNT",
- "contextId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
], - "totalResults": 15
}Delete the favicon from the Theme
| contextType required | string |
| contextId required | string |
curl -i -X DELETE \ https://api-v2.dash.app/context-types/:contextType/contexts/:contextId/theme/favicon \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Delete the homepage image from the Theme
| contextType required | string |
| contextId required | string |
curl -i -X DELETE \ https://api-v2.dash.app/context-types/:contextType/contexts/:contextId/theme/homepage-image \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Delete the login image from the Theme
| contextType required | string |
| contextId required | string |
curl -i -X DELETE \ https://api-v2.dash.app/context-types/:contextType/contexts/:contextId/theme/login-image \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Delete the logo from the Theme
| contextType required | string |
| contextId required | string |
curl -i -X DELETE \ https://api-v2.dash.app/context-types/:contextType/contexts/:contextId/theme/logo \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}curl -i -X GET \ https://api-v2.dash.app/theme \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "accentColour": "#333666",
- "showRecentlyAddedAssets": true,
- "contextType": "ACCOUNT",
- "contextId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Update the Theme of the account.
object (NullableStringFieldPatch) | |
| showRecentlyAddedAssets | boolean Nullable Whether to include a preview of recently added assets on the homepage |
{- "accentColour": {
- "value": "example value"
}, - "showRecentlyAddedAssets": true
}{- "result": {
- "accentColour": "#333666",
- "showRecentlyAddedAssets": true,
- "contextType": "ACCOUNT",
- "contextId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Post an upload object for one of the images in the account's Theme
| themeImageType required | string (ThemeImageType) Enum: "FAVICON" "LOGO" "HOMEPAGE_IMAGE" "LOGIN_IMAGE" |
{- "themeImageType": "FAVICON"
}{
}curl -i -X DELETE \ https://api-v2.dash.app/theme/favicon \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Delete the homepage image from the Theme
curl -i -X DELETE \ https://api-v2.dash.app/theme/homepage-image \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Delete the login image from the Theme
curl -i -X DELETE \ https://api-v2.dash.app/theme/login-image \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}curl -i -X DELETE \ https://api-v2.dash.app/theme/logo \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Coming soon; contact us if you need access to this API endpoint.
curl -i -X GET \ https://api-v2.dash.app/shopify-sku-settings \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "fieldId": "7756d388-110c-4712-b350-0b2b48e156c1"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}| fieldId required | string The ID of the field which should be used to match SKUs in Shopify |
{- "fieldId": "7756d388-110c-4712-b350-0b2b48e156c1"
}{- "result": {
- "fieldId": "7756d388-110c-4712-b350-0b2b48e156c1"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}curl -i -X DELETE \ https://api-v2.dash.app/shopify-sku-settings \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Coming soon; contact us if you need access to this API endpoint.
Generate an AI Image through an API for downloading or adding to Dash.
| prompt required | string Text prompt to feed into the AI image generator |
object (ReferenceImage) Nullable | |
| aspectRatio | string Default: "1:1" Aspect ratio of the output image from the AI image generator |
| promptUpsampling | boolean Default: false |
| seed | integer Nullable Default: null |
| safetyTolerance | integer Default: 2 |
| outputFormat | string Default: "png" Enum: "png" "jpeg" |
| numberOfImages | integer Default: 4 |
{- "prompt": "Oak table and chair set out in Wes Anderson style with green wall background and birch wood floor.",
- "referenceImage": {
- "type": "string",
- "id": "7af90a8b-7ccd-430f-a85d-e8614015bc47"
}, - "aspectRatio": "1:1",
- "promptUpsampling": false,
- "seed": null,
- "safetyTolerance": 2,
- "outputFormat": "png",
- "numberOfImages": 4
}{- "result": {
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Generate an S3 bucket key and url for uploading a reference image to for generating an AI Image.
curl -i -X POST \ https://api-v2.dash.app/reference-image-uploads \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}An Asset is the main resource in Dash. It consists of:
AssetFile resources, detailing the versions of a file for an Asset. Only the current AssetFile for an Asset is returned with the Asset resource. Use GET Asset Files to retrieve all AssetFile resources for an AssetAsset.metadata which defines the assigned values for this Asset for Field resourcesaddedBy the User.id of whoever added the AssetFor the sake of performance any Field and FieldOption resources referenced in the Asset.metadata.values will need to be retrieved separately, if required.
Searching allows you to find Asset resources in your Dash matching specific criteria.
Criteria can be constructed based on direct comparison or pattern matching of fields, where fields are either Asset.metadata.values or certain fixed Asset properties.
The fixed KEYWORDS field can be used for a general purpose search as it will search across all Asset.metadata.values and fixed Asset properties.
For searches involving Field resources where Field.hasFixedOptions = true a search using either the FieldOption.id or FieldOption.name will match.
Any Asset which is assigned an FieldOption.id value for a Field resource where Field.hierarchical = true implicitly has the values of any parent FieldOption resources too.
As such, any search using the parents FieldOption.id or FieldOption.name will match the Asset.
e.g. Given the hierarchical FieldOption structure Grandparent / Parent / Child, an Asset assigned the FieldOption.id of Child will also be returned in searches for Parent or Grandparent.
The logical operators AND, OR and NOT are provided to support complex queries based on multiple fields.
A list of sorts can also be provided to control the order in the which the results are returned.
The action property of a search, which defaults to SEARCH_FOR_VIEW, specifies the context in which the search is being run. For example if you only want to return Asset resources that the search User has permission to delete then set the action to be SEARCH_FOR_DELETE.
By default, searches will only returns results where
Asset.lifecycleStatus.state = 'LIVE'. If you require search results to contain results with other state values, this needs to be explicitly included in the criteria.
Two kinds of search are possible, a standard AssetSearch and a AssetScrollSearch.`
Dash provides a simple lifecycle for Asset resources to facilitate review and approval before they are accessible to other users, and also keep them BINNED after deletion so they can be retrieved.
The lifecycle has four states
Depending on the Asset.lifecycleStatus.state value an Asset resources will only be visible to certain users.
Asset resources begin in the STAGED state.
While in the STAGED state Asset resources are only visible to the user who created the Asset and users where User.isAdmin = true.
A User with permission to create new Asset resources may not have the permission to move it to the LIVE state.
While in the PENDING_APPROVAL state Asset resources are only visible to users where User.isAdmin = true.
Once in the LIVE state Asset resources visibility is defined by UserGroup permissions (currently only configurable via the Dash frontend, not via the API)
User can change the state of Assets to BINNED when the Asset is LIVE. A BINNED Asset can be restored to LIVE.
An AssetFile describes a version of a file for an Asset.
Properties describe details of the file such as mediaType and dimensions (for images and videos).
A previewUrl provides a means to access previews of the AssetFile
The current AssetFile for an Asset is returned with the Asset resource.
The AssetFile.id can be provided when creating an AssetDownload to download a specific AssetFile for an Asset.
An AssetUpload resource is created when you want to upload a file to an Asset.
Upon completion a new AssetFile is created and will subsequently be returned in Asset.currentAssetFile.
You can use GET Asset Files to retrieve the all AssetFile resources for an Asset.
The AssetUpload resource defines one or more URLs to which parts of the file should be PUT to.
Below is an example CURL PUT request that could be used to upload a local file part to an upload part URL taken from an AssetUpload:
curl --request PUT '<UPLOAD_PART_URL>' \
--header 'Content-Length: <SIZE_OF_PART>' \
--header 'Content-Type: <FILE_CONTENT_TYPE>' \
--data '@<PATH_TO_FILE_PART>'The upload is then completed by sending a list of the eTags returned from each of these PUTs to AssetUploadComplete
Get an Asset
| id required | string The unique ID of the |
curl -i -X GET \ https://api-v2.dash.app/assets/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "id": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "lifecycleStatus": {
- "state": "STAGED",
- "dateStaged": "2021-02-15T09:24:01.417Z",
- "stagedBy": "google-oauth2|110457667287511486432",
- "stagedBatchPosition": 0
}, - "dateLastModified": "2021-02-17T09:24:01.417Z",
- "metadata": {
- "version": 11,
- "values": {
- "a52b5315-15b8-417f-b742-d6902108bac1": [
- "A view from a mountain"
], - "f992794c-85db-11eb-8dcd-0242ac130003": [
- "Outdoors",
- "Mountain",
- "Snow"
], - "219bc1fa-85dc-11eb-8dcd-0242ac130003": [
- "a32fe863-0a1d-4b54-990a-b094139cf81c",
- "0e1bddba-9339-4e6e-b5ae-3adc60ad927a"
]
}
}, - "currentAssetFile": {
- "id": "e2b03444-8c5d-44ed-bd9f-7eee882bdf81",
- "assetId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "size": 44040192,
- "filename": "a_file.jpg",
- "checksum": "120EA8A25E5D487BF68B5F7096440019",
- "dateAdded": "2021-02-15T09:26:01.417Z",
- "fileType": "IMAGE",
- "dimensions": {
- "width": 800,
- "height": 600
}, - "orientation": "PORTRAIT",
- "orientationTransformation": "HORIZONTAL",
- "duration": null,
- "usesTransparency": false,
- "mediaType": {
- "type": "image",
- "subType": "jpeg"
}, - "gpsLocation": {
- "latitude": 50.8256345,
- "longitude": -0.143761
},
}, - "stats": {
- "downloadCount": 42
}, - "contextComments": {
- "property1": {
- "count": 4
}, - "property2": {
- "count": 4
}
}, - "origin": {
- "type": "GUEST_UPLOAD",
- "guestUploadId": "55f9964c-095d-4b8b-bb5e-4118d2e76ad0",
- "temporarySessionId": "431263a2-a84a-4a35-86a1-c9a1ea435600"
}
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}| id required | string The unique ID of the |
curl -i -X DELETE \ https://api-v2.dash.app/assets/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Patch an Asset
| id required | string The unique ID of the |
| currentAssetFileId | string Nullable The ID of the current |
{- "currentAssetFileId": "e2b03444-8c5d-44ed-bd9f-7eee882bdf81"
}{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Create a specified number of new Assets without files. AssetUploads can be done separately.
| numberToCreate required | integer The number of assets to create |
{- "numberToCreate": 42
}{- "result": {
- "assetIds": [
- "2b746f61-d36d-4627-a547-936f6f20594b",
- "23cfaab7-c9f3-4b28-ac21-7b5b18f2519a"
]
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}An AssetAndUploadBatchJob should be created when you want to create multiple Asset resources and also create an AssetUpload for each of them.
Each asset can be uploaded in a single part or in multiple parts. If the filesize is less than 5MiB then it must be uploaded in a single part. If the filesize is greater than 5GiB then it must be uploaded in multiple parts, each smaller than 5GiB.
The AssetUpload resources in the completed job should then be used to upload the files for each and asset and complete each upload.
After the Asset resources have been created and files uploaded to them they will still be in Asset.lifecycleStatus.state = 'STAGED'.
To send them for approval or put them live see Asset Lifecycle.
required | Array of objects (AssetAndUploadBatchRequestItem) |
{- "items": [
- {
- "batchItemId": "my-item-1",
- "path": "/Folder A/Folder D/a_file.jpg",
- "size": 15318362,
- "partSize": 7000000,
- "partUrlsRequest": {
- "uploadId": "5a2481e0-819f-4b46-a7e6-143f943345f2",
- "urlRequests": [
- {
- "partNumber": 2,
- "contentMd5": "86fb269d190d2c85f6e0468ceca42a20"
}
]
}
}
]
}{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "progress": {
- "steps": [
- {
- "name": "STEP_NAME",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 2
}
]
}, - "status": "PENDING"
}Get the status and eventual result of an AssetAndUploadBatchJob
| id required | string The unique ID of the |
curl -i -X GET \ https://api-v2.dash.app/asset-and-upload-batch-jobs/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "COMPLETED",
- "progress": {
- "steps": [
- {
- "id": "assetAndUploadGetJobItemsStep",
- "status": "COMPLETED",
- "completedItems": 2,
- "totalItems": 2
}, - {
- "id": "assetAndUploadProcessJobItemsStep",
- "status": "COMPLETED",
- "completedItems": 2,
- "totalItems": 2
}
]
}, - "dateCompleted": "2021-02-15T09:24:01.417Z",
- "result": {
- "successes": {
- "file-1": {
- "result": {
- "id": "5a2481e0-819f-4b46-a7e6-143f943345f2",
- "assetId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "uploadParts": [
- {
- "partNumber": 1,
- "startByte": 0,
- "endByte": 6999999,
}, - {
- "partNumber": "2,",
- "startByte": 7000000,
- "endByte": 13999999,
}, - {
- "partNumber": 3,
- "startByte": 14000000,
- "endByte": 15318361,
}
]
}, - "permittedActions": [ ]
}, - "file-2": {
- "result": {
- "id": "9f49416e-0813-4930-bf44-a3414ac57938",
- "assetId": "86739a63-a4f3-4655-bd45-7a567379356c",
- "uploadParts": [
- {
- "partNumber": 1,
- "startByte": 0,
- "endByte": 123456,
}
]
}, - "permittedActions": [ ]
}
}
}
}Create a new AssetUpload resource for an existing Asset.
| assetId required | string The ID of the |
| assetFileId | |
| path required | string The path of the file including filename and any folders. This path will to set the value of the |
| size required | integer The size of the file that is to be uploaded (in bytes) |
| partSize | integer <= 5368709120 Nullable Optionally specify the part size (in bytes) for multi-part uploading of the file. This must be less than 5368709120, and more than 5242880 unless it is the final part. If omitted or null a default part size will be used. |
object (AssetUploadPartUrlsRequest) |
{- "assetId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "assetFileId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "path": "/Folder A/Folder D/a_file.jpg",
- "size": 15318362,
- "partSize": 7000000,
- "partUrlsRequest": {
- "uploadId": "5a2481e0-819f-4b46-a7e6-143f943345f2",
- "urlRequests": [
- {
- "partNumber": 2,
- "contentMd5": "86fb269d190d2c85f6e0468ceca42a20"
}
]
}
}{- "result": {
- "id": "5a2481e0-819f-4b46-a7e6-143f943345f2",
- "assetId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "assetFileId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "uploadParts": [
]
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}An AssetUploadBatchJob should be created when you want to create an AssetUpload for multiple assets.
The AssetUpload resources in the completed job should then be used to upload the files for each and asset and complete each upload.
After the files have been uploaded to the Assets they will still be in Asset.lifecycleStatus.state = 'STAGED'.
To send them for approval or put them live see Asset Lifecycle.
required | Array of objects (AssetUploadBatchRequestItem) |
{- "items": [
- {
- "batchItemId": "my-item-1",
- "assetId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "assetFileId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "path": "/Folder A/Folder D/a_file.jpg",
- "size": 15318362,
- "partSize": 7000000,
- "partUrlsRequest": {
- "uploadId": "5a2481e0-819f-4b46-a7e6-143f943345f2",
- "urlRequests": [
- {
- "partNumber": 2,
- "contentMd5": "86fb269d190d2c85f6e0468ceca42a20"
}
]
}
}
]
}{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "progress": {
- "steps": [
- {
- "name": "STEP_NAME",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 2
}
]
}, - "status": "PENDING"
}Get the status and eventual result of an AssetUploadBatchJob
| id required | string The unique ID of the |
curl -i -X GET \ https://api-v2.dash.app/asset-upload-batch-jobs/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "COMPLETED",
- "progress": {
- "steps": [
- {
- "id": "assetAndUploadGetJobItemsStep",
- "status": "COMPLETED",
- "completedItems": 2,
- "totalItems": 2
}, - {
- "id": "assetAndUploadProcessJobItemsStep",
- "status": "COMPLETED",
- "completedItems": 2,
- "totalItems": 2
}
]
}, - "dateCompleted": "2021-02-15T09:24:01.417Z",
- "result": {
- "successes": {
- "file-1": {
- "result": {
- "id": "5a2481e0-819f-4b46-a7e6-143f943345f2",
- "assetId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "uploadParts": [
- {
- "partNumber": 1,
- "startByte": 0,
- "endByte": 6999999,
}, - {
- "partNumber": "2,",
- "startByte": 7000000,
- "endByte": 13999999,
}, - {
- "partNumber": 3,
- "startByte": 14000000,
- "endByte": 15318361,
}
]
}, - "permittedActions": [ ]
}, - "file-2": {
- "result": {
- "id": "9f49416e-0813-4930-bf44-a3414ac57938",
- "assetId": "86739a63-a4f3-4655-bd45-7a567379356c",
- "uploadParts": [
- {
- "partNumber": 1,
- "startByte": 0,
- "endByte": 123456,
}
]
}, - "permittedActions": [ ]
}
}
}
}After an AssetUpload has been created and each part of the file data has been PUT to the relavant URL the eTag from each PUT must be sent to indicate the upload is complete.
| assetId | string The ID of the |
| uploadId | string The unique identifier for the |
Array of objects (AssetUploadCompletedPart) |
{- "uploadId": "5a2481e0-819f-4b46-a7e6-143f943345f2",
- "assetId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "parts": [
- {
- "partNumber": 1,
- "eTag": "569726cc-2149-4167-abee-26a068fbda22"
}, - {
- "partNumber": 2,
- "eTag": "a9398831-2221-4c1f-90e7-b467b926aa16"
}, - {
- "partNumber": 3,
- "eTag": "820f3b61-3ac7-481c-a6e4-d6c5041683af"
}
]
}{- "result": {
- "type": "SUCCESS"
}, - "permittedActions": [ ]
}| id required | string The unique ID of the |
curl -i -X GET \ https://api-v2.dash.app/assets/:id/files \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
[- {
- "result": {
- "id": "e2b03444-8c5d-44ed-bd9f-7eee882bdf81",
- "assetId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "size": 44040192,
- "filename": "a_file.jpg",
- "checksum": "120EA8A25E5D487BF68B5F7096440019",
- "dateAdded": "2021-02-15T09:26:01.417Z",
- "fileType": "IMAGE",
- "dimensions": {
- "width": 800,
- "height": 600
}, - "orientation": "PORTRAIT",
- "orientationTransformation": "HORIZONTAL",
- "duration": null,
- "usesTransparency": false,
- "mediaType": {
- "type": "image",
- "subType": "jpeg"
}, - "gpsLocation": {
- "latitude": 50.8256345,
- "longitude": -0.143761
},
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
]Delete an AssetFile resource.
The Asset's current AssetFile cannot be deleted and will return an error if tried. (Only older version AssetFiles can be deleted.)
| id required | string The unique ID of the |
curl -i -X DELETE \ https://api-v2.dash.app/asset-files/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}An AssetDownloadBatchJob should be created when you want to download and optionally transform multiple AssetFile resources.
You can optionally request that a zip is created of all the transformed files.
The transformationDescription in the request can be one of two types, CUSTOM or PRESET.
A CUSTOM transformationDescription is a list of candidateTransformations which are evaluated in turn against each AssetFile specified in the request.
If the AssetFile meets the candidateTransformation.criteria then the candidateTransformation.transformation is applied. Otherwise, the next candiate is considered.
The candidateTransformation.transformation is a series of operations to apply to the AssetFile in order (e.g. resize to 200 by 100 and then covert to JPG). An empty list of operations indicates the file should be left untransformed.
Putting this all together this allows you to describe a transformations such as:
A PRESET transformationDescription is similar to a CUSTOM transformation except the transformationDescription has been predefined.
These presets are currently only configurable via the Dash frontend, but can be found via a PresetTransformationSearch.
required | Array of objects (AssetDownloadBatchRequestItem) |
required | any (TransformationDescription) |
| zip required | boolean Whether to combine all the output files into a zip |
{- "items": [
- {
- "batchItemId": "download-1",
- "assetId": "2b746f61-d36d-4627-a547-936f6f20594b"
}, - {
- "batchItemId": "download-2",
- "assetId": "23cfaab7-c9f3-4b28-ac21-7b5b18f2519a"
}, - {
- "batchItemId": "download-3",
- "assetId": "1ef8108f-6c94-4112-9736-abd147a7a940"
}
], - "transformationDescription": {
- "type": "CUSTOM",
- "candidateTransformations": [
- {
- "criteria": [
- {
- "type": "MATCHES_MEDIA_TYPES",
- "mediaTypes": [
- {
- "type": "*",
- "subType": "*"
}
]
}
], - "transformation": [
- {
- "type": "RESIZE",
- "width": 100,
- "height": 200
}, - {
- "type": "CONVERT",
- "mediaType": {
- "type": "image",
- "subType": "jpeg"
}
}
]
}
]
}, - "zip": true
}{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "status": "PENDING",
- "progress": {
- "steps": [
- {
- "id": "assetDownloadGetJobItemsStep",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 0
}, - {
- "id": "assetDownloadProcessJobItemsStep",
- "status": "PENDING",
- "completedItems": 0,
- "totalItems": 0
}
]
}
}Get the status and eventual result of an AssetDownloadBatchJob
| id required | string |
curl -i -X GET \ https://api-v2.dash.app/asset-download-batch-jobs/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "COMPLETED",
- "progress": {
- "steps": [
- {
- "id": "assetDownloadGetJobItemsStep",
- "status": "COMPLETED",
- "completedItems": 3,
- "totalItems": 3
}, - {
- "id": "assetDownloadProcessJobItemsStep",
- "status": "COMPLETED",
- "completedItems": 3,
- "totalItems": 3
}
]
}, - "dateCompleted": "2021-02-15T09:24:01.417Z",
- "result": {
- "successes": {
- "download-1": {
- "permittedActions": [ ]
}, - "download-2": {
- "permittedActions": [ ]
}, - "download-3": {
- "permittedActions": [ ]
}
},
}
}A standard AssetSearch will only allow you to page to 10,000 results regardless of the value returned in the totalResults property.
If you need to be able to process more than 10,000 results consider an AssetScrollSearch instead.
| from required | integer Default: 0 The item number to begin the result set from |
| pageSize required | integer Default: 100 The maximum number of items to return in the result set |
required | any (AssetSearchCriterion) |
required | Array of objects (AssetSort) Sorts to be applied to the search in order of precedence |
| action | string Default: "SEARCH_FOR_VIEW" Enum: "SEARCH_FOR_CHANGE_LIFECYCLE_STATE_TO_PENDING_APPROVAL" "SEARCH_FOR_CHANGE_LIFECYCLE_STATE_TO_LIVE" "SEARCH_FOR_CHANGE_LIFECYCLE_STATE_TO_BINNED" "SEARCH_FOR_DELETE" "SEARCH_FOR_EDIT" "SEARCH_FOR_PROMOTE_TO_LIVE" "SEARCH_FOR_SEND_FOR_APPROVAL" "SEARCH_FOR_VIEW" |
object A map of requested aggregations. The results will be returned in a map with the same provided keys. |
{- "from": 0,
- "pageSize": 100,
- "criterion": {
- "type": "FIELD_EQUALS",
- "value": "a32fe863-0a1d-4b54-990a-b094139cf81c",
- "field": {
- "type": "FIELD",
- "fieldId": "a52b5315-15b8-417f-b742-d6902108bac1"
}
}, - "sorts": [ ]
}{- "results": [
- {
- "result": {
- "id": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "lifecycleStatus": {
- "state": "STAGED",
- "dateStaged": "2021-02-15T09:24:01.417Z",
- "stagedBy": "google-oauth2|110457667287511486432",
- "stagedBatchPosition": 0
}, - "dateLastModified": "2021-02-17T09:24:01.417Z",
- "metadata": {
- "version": 11,
- "values": {
- "a52b5315-15b8-417f-b742-d6902108bac1": [
- "A view from a mountain"
], - "f992794c-85db-11eb-8dcd-0242ac130003": [
- "Outdoors",
- "Mountain",
- "Snow"
], - "219bc1fa-85dc-11eb-8dcd-0242ac130003": [
- "a32fe863-0a1d-4b54-990a-b094139cf81c",
- "0e1bddba-9339-4e6e-b5ae-3adc60ad927a"
]
}
}, - "currentAssetFile": {
- "id": "e2b03444-8c5d-44ed-bd9f-7eee882bdf81",
- "assetId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "size": 44040192,
- "filename": "a_file.jpg",
- "checksum": "120EA8A25E5D487BF68B5F7096440019",
- "dateAdded": "2021-02-15T09:26:01.417Z",
- "fileType": "IMAGE",
- "dimensions": {
- "width": 800,
- "height": 600
}, - "orientation": "PORTRAIT",
- "orientationTransformation": "HORIZONTAL",
- "duration": null,
- "usesTransparency": false,
- "mediaType": {
- "type": "image",
- "subType": "jpeg"
}, - "gpsLocation": {
- "latitude": 50.8256345,
- "longitude": -0.143761
},
}, - "stats": {
- "downloadCount": 42
}, - "contextComments": {
- "property1": {
- "count": 4
}, - "property2": {
- "count": 4
}
}, - "origin": {
- "type": "GUEST_UPLOAD",
- "guestUploadId": "55f9964c-095d-4b8b-bb5e-4118d2e76ad0",
- "temporarySessionId": "431263a2-a84a-4a35-86a1-c9a1ea435600"
}
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
], - "totalResults": 1337,
- "aggregations": {
- "property1": {
- "type": "string",
- "buckets": [
- {
- "key": null,
- "count": 15
}
]
}, - "property2": {
- "type": "string",
- "buckets": [
- {
- "key": null,
- "count": 15
}
]
}
}
}Asset scroll searches provide a means of scrolling one way through search results of any number of Asset resources.
Page size can stil be specified, but a scroll search will always proceed sequentially once through each page.
The AssetScrollSearch.scrollId in the search the response is used to continue the scroll search.
| pageSize | integer Default: 100 The maximum number of items to return in the result set |
required | any (AssetSearchCriterion) |
required | Array of objects (AssetSort) Sorts to be applied to the search in order of precedence |
| action | string Default: "SEARCH_FOR_VIEW" Enum: "SEARCH_FOR_CHANGE_LIFECYCLE_STATE_TO_PENDING_APPROVAL" "SEARCH_FOR_CHANGE_LIFECYCLE_STATE_TO_LIVE" "SEARCH_FOR_CHANGE_LIFECYCLE_STATE_TO_BINNED" "SEARCH_FOR_DELETE" "SEARCH_FOR_EDIT" "SEARCH_FOR_PROMOTE_TO_LIVE" "SEARCH_FOR_SEND_FOR_APPROVAL" "SEARCH_FOR_VIEW" |
{- "pageSize": 100,
- "criterion": {
- "type": "MATCH_ALL"
}, - "sorts": [
- {
- "field": {
- "type": "FIXED",
- "fieldName": "DATE_LIVE"
}, - "order": "DESC"
}
]
}{- "results": [
- {
- "result": {
- "id": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "lifecycleStatus": {
- "state": "STAGED",
- "dateStaged": "2021-02-15T09:24:01.417Z",
- "stagedBy": "google-oauth2|110457667287511486432",
- "stagedBatchPosition": 0
}, - "dateLastModified": "2021-02-17T09:24:01.417Z",
- "metadata": {
- "version": 11,
- "values": {
- "a52b5315-15b8-417f-b742-d6902108bac1": [
- "A view from a mountain"
], - "f992794c-85db-11eb-8dcd-0242ac130003": [
- "Outdoors",
- "Mountain",
- "Snow"
], - "219bc1fa-85dc-11eb-8dcd-0242ac130003": [
- "a32fe863-0a1d-4b54-990a-b094139cf81c",
- "0e1bddba-9339-4e6e-b5ae-3adc60ad927a"
]
}
}, - "currentAssetFile": {
- "id": "e2b03444-8c5d-44ed-bd9f-7eee882bdf81",
- "assetId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "size": 44040192,
- "filename": "a_file.jpg",
- "checksum": "120EA8A25E5D487BF68B5F7096440019",
- "dateAdded": "2021-02-15T09:26:01.417Z",
- "fileType": "IMAGE",
- "dimensions": {
- "width": 800,
- "height": 600
}, - "orientation": "PORTRAIT",
- "orientationTransformation": "HORIZONTAL",
- "duration": null,
- "usesTransparency": false,
- "mediaType": {
- "type": "image",
- "subType": "jpeg"
}, - "gpsLocation": {
- "latitude": 50.8256345,
- "longitude": -0.143761
},
}, - "stats": {
- "downloadCount": 42
}, - "contextComments": {
- "property1": {
- "count": 4
}, - "property2": {
- "count": 4
}
}, - "origin": {
- "type": "GUEST_UPLOAD",
- "guestUploadId": "55f9964c-095d-4b8b-bb5e-4118d2e76ad0",
- "temporarySessionId": "431263a2-a84a-4a35-86a1-c9a1ea435600"
}
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
], - "totalResults": 1337,
- "scrollId": "58b0d88b-d0c9-47fc-9038-7195b234cc0b"
}Continue a previoulsy started AssetScrollSearch.
You must use the scrollId resturned in each new response as a scrollId is not guarenteed to remain fixed over the course of a scroll
| scrollId required | string The ID to continue the |
{- "scrollId": "58b0d88b-d0c9-47fc-9038-7195b234cc0b"
}{- "results": [
- {
- "result": {
- "id": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "lifecycleStatus": {
- "state": "STAGED",
- "dateStaged": "2021-02-15T09:24:01.417Z",
- "stagedBy": "google-oauth2|110457667287511486432",
- "stagedBatchPosition": 0
}, - "dateLastModified": "2021-02-17T09:24:01.417Z",
- "metadata": {
- "version": 11,
- "values": {
- "a52b5315-15b8-417f-b742-d6902108bac1": [
- "A view from a mountain"
], - "f992794c-85db-11eb-8dcd-0242ac130003": [
- "Outdoors",
- "Mountain",
- "Snow"
], - "219bc1fa-85dc-11eb-8dcd-0242ac130003": [
- "a32fe863-0a1d-4b54-990a-b094139cf81c",
- "0e1bddba-9339-4e6e-b5ae-3adc60ad927a"
]
}
}, - "currentAssetFile": {
- "id": "e2b03444-8c5d-44ed-bd9f-7eee882bdf81",
- "assetId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "size": 44040192,
- "filename": "a_file.jpg",
- "checksum": "120EA8A25E5D487BF68B5F7096440019",
- "dateAdded": "2021-02-15T09:26:01.417Z",
- "fileType": "IMAGE",
- "dimensions": {
- "width": 800,
- "height": 600
}, - "orientation": "PORTRAIT",
- "orientationTransformation": "HORIZONTAL",
- "duration": null,
- "usesTransparency": false,
- "mediaType": {
- "type": "image",
- "subType": "jpeg"
}, - "gpsLocation": {
- "latitude": 50.8256345,
- "longitude": -0.143761
},
}, - "stats": {
- "downloadCount": 42
}, - "contextComments": {
- "property1": {
- "count": 4
}, - "property2": {
- "count": 4
}
}, - "origin": {
- "type": "GUEST_UPLOAD",
- "guestUploadId": "55f9964c-095d-4b8b-bb5e-4118d2e76ad0",
- "temporarySessionId": "431263a2-a84a-4a35-86a1-c9a1ea435600"
}
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
], - "totalResults": 1337,
- "scrollId": "58b0d88b-d0c9-47fc-9038-7195b234cc0b"
}Edit the metadata of a set of Assets by the specified assets selector.
Use the BY_IDS selector to edit a specific list of Asset.ids, or the BY_CRITERION selector to edit a search criterion, e.g. all Assets in a specific folder. See AssetSearch for more detail on the available criterion.
metadataFieldValueUpdates also has two types of objects that can be used. For example, a FieldOption with a value of "My Option" and an id of "3ba2cb5b-dbe9-48ed-8e07-71f26929e617" can be set either BY_VALUES by using the value "My Option", or BY_IDS by using the id "3ba2cb5b-dbe9-48ed-8e07-71f26929e617". For Fields that do not have FieldOptions (e.g. text fields), either type can be used.
required | any (AssetsSelector) |
required | Array of any (MetadataFieldValueUpdate) |
{- "selector": {
- "type": "BY_CRITERION",
- "criterion": {
- "type": "FIELD_EQUALS",
- "value": "Folder",
- "field": {
- "type": "FIXED",
- "fieldName": "STAGED_BY"
}, - "includeDescendants": true,
- "boost": null
}
}, - "metadataFieldValueUpdates": [
- {
- "type": "BY_VALUES",
- "operation": "REMOVE",
- "fieldId": "a52b5315-15b8-417f-b742-d6902108bac1",
- "values": [
- "string"
]
}
]
}{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "status": "PENDING",
- "progress": {
- "steps": [
- {
- "id": "GET_ITEMS",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 0
}, - {
- "id": "PROCESS_ITEMS",
- "status": "PENDING",
- "completedItems": 0,
- "totalItems": 0
}
]
}
}Get the status of a Asset Metadata Edit Batch Job
| id required | string |
curl -i -X GET \ https://api-v2.dash.app/asset-metadata-edit-batch-jobs/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "status": "PENDING",
- "progress": {
- "steps": [
- {
- "id": "GET_ITEMS",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 0
}, - {
- "id": "PROCESS_ITEMS",
- "status": "PENDING",
- "completedItems": 0,
- "totalItems": 0
}
]
}
}Get metadata suggestions for a set of Assets by the specified assets selector.
Use the BY_IDS selector to get suggestions for a specific list of Asset.ids, or the BY_CRITERION selector to get suggestions for a search criterion, e.g. all Assets in a specific folder. See AssetSearch for more detail on the available criterion.
required | any (AssetsSelector) |
{- "selector": {
- "type": "BY_CRITERION",
- "criterion": {
- "type": "FIELD_EQUALS",
- "value": "Folder",
- "field": {
- "type": "FIXED",
- "fieldName": "STAGED_BY"
}, - "includeDescendants": true,
- "boost": null
}
}
}{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "status": "PENDING",
- "progress": {
- "steps": [
- {
- "id": "GET_ITEMS",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 0
}, - {
- "id": "PROCESS_ITEMS",
- "status": "PENDING",
- "completedItems": 0,
- "totalItems": 0
}
]
}
}Record the fact that some asset metadata suggestions have been rejected, and should therefore not be suggested again for the given asset.
required | Array of objects (RejectedMetadataSuggestionRequestItem) |
{- "items": [
- {
- "batchItemId": "my-item-1",
- "assetId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "fieldId": "a52b5315-15b8-417f-b742-d6902108bac1",
- "value": "1fc6d6c3-c42d-48ue2-b0db-5d680a58ca52"
}
]
}{- "successes": {
- "property1": {
- "result": {
- "id": "9ca10283-b2a5-44aa-93b5-376644746170",
- "assetId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "fieldId": "a52b5315-15b8-417f-b742-d6902108bac1",
- "value": "1fc6d6c3-c42d-48ue2-b0db-5d680a58ca52"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}, - "property2": {
- "result": {
- "id": "9ca10283-b2a5-44aa-93b5-376644746170",
- "assetId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "fieldId": "a52b5315-15b8-417f-b742-d6902108bac1",
- "value": "1fc6d6c3-c42d-48ue2-b0db-5d680a58ca52"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
}
}Get the status of a Asset Suggestion Edit Batch Job
| id required | string |
curl -i -X GET \ https://api-v2.dash.app/asset-metadata-suggestion-batch-jobs/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "status": "PENDING",
- "progress": {
- "steps": [
- {
- "id": "GET_ITEMS",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 0
}, - {
- "id": "PROCESS_ITEMS",
- "status": "PENDING",
- "completedItems": 0,
- "totalItems": 0
}
]
}
}Move a set of Asset resources from one Asset.lifecycleStatus.state to another.
The Asset resources to be added to the batch job are specified using the AssetSearch criteria language or by a simple set of ids
If you are selecting by search criteria you must explicitly include criteria describing the state you are moving from in order to account for the fact that the Dash API will only return Assets in the 'LIVE' state by default. See the request examples for more.
any (AssetsSelector) | |
| transition | string (LifecycleTransition) The transition. Generally describe the state moving from and to. |
{- "transition": "STAGED_TO_PENDING_APPROVAL",
- "selector": {
- "type": "BY_CRITERION",
- "criterion": {
- "type": "AND",
- "criteria": [
- {
- "type": "FIELD_EQUALS",
- "value": "STAGED",
- "field": {
- "type": "FIXED",
- "fieldName": "LIFECYCLE_STATE"
}
}, - {
- "type": "FIELD_EQUALS",
- "value": "google-oauth2|110457667287511486432",
- "field": {
- "type": "FIXED",
- "fieldName": "STAGED_BY"
}
}
]
}
}
}{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "status": "PENDING",
- "progress": {
- "steps": [
- {
- "id": "lifecycleTransitionGetJobItemsStep",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 0
}, - {
- "id": "lifecycleTransitionProcessJobItemsStep",
- "status": "PENDING",
- "completedItems": 0,
- "totalItems": 0
}
]
}
}Get the status of an AssetLifecycleTransitionBatchJob
| id required | string |
curl -i -X GET \ https://api-v2.dash.app/asset-lifecycle-transition-batch-jobs/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "COMPLETED",
- "progress": {
- "steps": [
- {
- "id": "lifecycleTransitionGetJobItemsStep",
- "status": "COMPLETED",
- "completedItems": 3,
- "totalItems": 3
}, - {
- "id": "lifecycleTransitionProcessJobItemsStep",
- "status": "COMPLETED",
- "completedItems": 3,
- "totalItems": 3
}
]
}, - "dateCompleted": "2021-02-15T09:24:01.417Z"
}Delete a set of Asset by the specified assets selector
required | any (AssetsSelector) |
{- "selector": {
- "type": "BY_CRITERION",
- "criterion": {
- "type": "FIELD_EQUALS",
- "value": "Folder",
- "field": {
- "type": "FIXED",
- "fieldName": "STAGED_BY"
}, - "includeDescendants": true,
- "boost": null
}
}
}{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "progress": {
- "steps": [
- {
- "name": "STEP_NAME",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 2
}
]
}, - "status": "PENDING"
}Coming soon; contact us if you need access to this API endpoint.
| id required | string The unique ID of the |
curl -i -X GET \ https://api-v2.dash.app/assets/:id/comments \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
[- {
- "result": {
- "id": "8bc23748-39e0-4dce-a48e-f71845eeeec3",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "userId": "google-oauth2|110955770826801837334",
- "assetId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "contextType": "APPROVAL",
- "contextId": "collection/a52b5315-15b8-417f-b742-d6902108bac1",
- "text": "This is a comment that has been left by a user, how insightful!",
- "dateCreated": "2021-02-17T09:24:01.417Z"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
]| id required | string The unique ID of the |
| contextId required | string Identifies which context this |
| contextType | string (ContextType) The type of context the comment is in |
| text required | string <= 4000 characters The text content of the |
{- "contextId": "collection/a52b5315-15b8-417f-b742-d6902108bac1",
- "contextType": "APPROVAL",
- "text": "This is a comment that has been left by a user, how insightful!"
}{- "result": {
- "id": "8bc23748-39e0-4dce-a48e-f71845eeeec3",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "userId": "google-oauth2|110955770826801837334",
- "assetId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "contextType": "APPROVAL",
- "contextId": "collection/a52b5315-15b8-417f-b742-d6902108bac1",
- "text": "This is a comment that has been left by a user, how insightful!",
- "dateCreated": "2021-02-17T09:24:01.417Z"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Patch a Comment
| id required | string The unique ID of the |
| text | string <= 4000 characters The text content of the |
{- "text": "This is an edited comment that has been left by a user, how insightful!"
}{- "result": {
- "id": "8bc23748-39e0-4dce-a48e-f71845eeeec3",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "userId": "google-oauth2|110955770826801837334",
- "assetId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "contextType": "APPROVAL",
- "contextId": "collection/a52b5315-15b8-417f-b742-d6902108bac1",
- "text": "This is a comment that has been left by a user, how insightful!",
- "dateCreated": "2021-02-17T09:24:01.417Z"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Delete a Comment resource.
| id required | string The unique ID of the |
curl -i -X DELETE \ https://api-v2.dash.app/comments/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Coming soon; contact us if you need access to this API endpoint.
Deduplicate duplicate Assets, where a duplicate is an asset with the same file checksum as
another asset. Duplicates are deleted. Metadata values from duplicates are merged into the original asset's
metadata. For metadata multivalues, e.g. folders, the total set of values is merged. For metadata text values, the
longest length text value is merged. For metadata date and date-time values, the oldest value is merged.
curl -i -X POST \ https://api-v2.dash.app/asset-deduplication-batch-jobs \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "progress": {
- "steps": [
- {
- "name": "STEP_NAME",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 2
}
]
}, - "status": "PENDING"
}Update an AssetEmbeddableLink resource's status.
Currently only a patch to status: REVOKED is supported.
This will update the AssetEmbeddableLink resource's status to REVOKED and fileStatus to DELETED.
| id required | string The unique ID of the |
| status required | string The status of the AssetEmbeddableLink |
{- "status": "REVOKED"
}{- "result": {
- "id": "02e3b733-57c0-43f1-bee4-687569cf1bfa",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "assetId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "assetFileId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "transformationDescription": {
- "type": "CUSTOM",
- "candidateTransformations": [
- {
- "criteria": [
- {
- "type": "MATCHES_MEDIA_TYPES",
- "mediaTypes": [
- null
]
}
], - "transformation": [ ]
}
]
}, - "determinedTransformation": {
- "transformations": [
- {
- "type": "CROP",
- "x": 200,
- "y": 100,
- "width": 400,
- "height": 300
}
]
}, - "status": "ACTIVE",
- "fileStatus": "COPIED",
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}An AssetEmbeddableLinkBatchJob should be created when you want to create embeddable links for multiple AssetFile resources.
There is a limit of 500 batch request items for this endpoint. If more than 500 items are requested, the endpoint will error with a bad request(400) response.
The transformationDescription can be one of two types, CUSTOM or PRESET.
This definition and usage matches the transformationDescription used in AssetDownloadBatchJob.
A CUSTOM transformationDescription is a list of candidateTransformations which are evaluated in turn against each AssetFile specified in the request.
If the AssetFile meets the candidateTransformation.criteria then the candidateTransformation.transformation is applied. Otherwise, the next candidate is considered.
The candidateTransformation.transformation is a series of operations to apply to the AssetFile in order (e.g. resize to 200 by 100 and then covert to JPG). An empty list of operations indicates the file should be left untransformed.
A PRESET transformationDescription is similar to a CUSTOM transformation except the transformationDescription has been predefined.
These presets are currently only configurable via the Dash frontend, but can be found via a PresetTransformationSearch.
required | Array of objects (EmbeddableLinkBatchRequestItem) |
required | any (TransformationDescription) |
{- "items": [
- {
- "batchItemId": "my-item-1",
- "assetId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "assetFileId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "presetParameters": [ ]
}
], - "transformationDescription": {
- "type": "CUSTOM",
- "candidateTransformations": [
- {
- "criteria": [
- {
- "type": "MATCHES_MEDIA_TYPES",
- "mediaTypes": [
- {
- "type": null,
- "subType": null
}
]
}
], - "transformation": [ ]
}
]
}
}{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "status": "PENDING",
- "progress": {
- "steps": [
- {
- "id": "embeddableLinkGetJobItemsStep",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 0
}, - {
- "id": "embeddableLinkProcessJobItemsStep",
- "status": "PENDING",
- "completedItems": 0,
- "totalItems": 0
}
]
}
}Get the status and eventual result of an AssetEmbeddableLinkBatchJob
| id required | string The unique ID of the |
curl -i -X GET \ https://api-v2.dash.app/embeddable-link-batch-jobs/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "progress": {
- "steps": [
- {
- "name": "STEP_NAME",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 2
}
]
}, - "status": "PENDING"
}Stops an AssetEmbeddableLinkBatchJob and deletes it
| id required | string The unique ID of the |
curl -i -X DELETE \ https://api-v2.dash.app/embeddable-link-batch-jobs/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Create a new AssetEmbeddableLinkSearch.
The criterion and sort currently support search by ASSET_ID field only.
| from required | integer Default: 0 The item number to begin the result set from |
| pageSize required | integer Default: 100 The maximum number of items to return in the result set |
any (EmbeddableLinkSearchCriterion) | |
Array of objects (EmbeddableLinkSort) Sorts to be applied to the search in order of precedence |
{- "from": 0,
- "pageSize": 100,
- "criterion": {
- "type": "FIELD_IN",
- "values": [
- "this",
- "that"
], - "field": "ASSET_ID"
}, - "sorts": [
- {
- "field": "ASSET_ID",
- "order": "ASC"
}
]
}{- "results": [
- {
- "result": {
- "id": "02e3b733-57c0-43f1-bee4-687569cf1bfa",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "assetId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "assetFileId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "transformationDescription": {
- "type": "CUSTOM",
- "candidateTransformations": [
- {
- "criteria": [
- null
], - "transformation": [ ]
}
]
}, - "determinedTransformation": {
- "transformations": [
- {
- "type": "CROP",
- "x": 200,
- "y": 100,
- "width": 400,
- "height": 300
}
]
}, - "status": "ACTIVE",
- "fileStatus": "COPIED",
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
], - "totalResults": 15
}Coming soon; contact us if you need access to this API endpoint.
curl -i -X POST \ https://api-v2.dash.app/asset-metadata-export-batch-jobs \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "progress": {
- "steps": [
- {
- "name": "STEP_NAME",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 2
}
]
}, - "status": "PENDING"
}Get the status and eventual result of a MetadataExportJob
| id required | string The unique ID of the |
curl -i -X GET \ https://api-v2.dash.app/asset-metadata-export-batch-jobs/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "allOf": [
- {
- "$ref": "#/components/schemas/CompletedJob"
}, - {
- "type": "object",
- "required": [
- "result"
], - "properties": {
- "result": {
- "$ref": "#/components/schemas/MetadataExportResult"
}
}
}
]
}Update a MetadataExportJob
| id required | string The unique ID of the |
| status required | string Nullable The status of the job |
{- "status": "STARTED"
}{- "allOf": [
- {
- "$ref": "#/components/schemas/CompletedJob"
}, - {
- "type": "object",
- "required": [
- "result"
], - "properties": {
- "result": {
- "$ref": "#/components/schemas/MetadataExportResult"
}
}
}
]
}Stops a MetadataExportJob and deletes it
| id required | string The unique ID of the |
curl -i -X DELETE \ https://api-v2.dash.app/asset-metadata-export-batch-jobs/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}An Asset Saved Crop Area Summary resource is a saved crop area summary for a given AssetFile of an Asset.
Get all of the SavedCropAreaSummaries resources for the specified Asset.
| id required | string The unique ID of the |
curl -i -X GET \ https://api-v2.dash.app/assets/:id/saved-crop-area-summaries \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
[- {
- "result": {
- "id": "string",
- "presetId": "string",
- "assetId": "string",
- "cropParameters": {
- "x": 200,
- "y": 100,
- "width": 400,
- "height": 300
}
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
]Create a new Asset Saved Crop Area Summary Search
| from required | integer Default: 0 The item number to begin the result set from |
| pageSize required | integer Default: 100 The maximum number of items to return in the result set |
required | any (SavedCropAreaSummarySearchCriterion) |
required | Array of objects (SavedCropAreaSummarySort) Sorts to be applied to the search in order of precedence |
{- "from": 0,
- "pageSize": 100,
- "criterion": {
- "type": "FIELD_EQUALS",
- "value": "Folder",
- "field": "PRESET_ID"
}, - "sorts": [
- {
- "field": "PRESET_ID",
- "order": "ASC"
}
]
}{- "results": [
- {
- "result": {
- "id": "string",
- "presetId": "string",
- "assetId": "string",
- "cropParameters": {
- "x": 200,
- "y": 100,
- "width": 400,
- "height": 300
}
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
], - "totalResults": 15
}An Asset Saved Crop Area resource is a saved crop area for a given AssetFile of an Asset.
Create a SavedCropArea for the specified Asset.
| id required | string The unique ID of the |
| presetId required | string The unique ID for a |
required | object (CropParameters) |
| previewUri required | string The preview of this crop area in Base64 |
{- "presetId": "string",
- "cropParameters": {
- "x": 200,
- "y": 100,
- "width": 400,
- "height": 300
}, - "previewUri": "string"
}{- "result": {
- "id": "string",
- "presetId": "string",
- "assetId": "string",
- "cropParameters": {
- "x": 200,
- "y": 100,
- "width": 400,
- "height": 300
}, - "previewUri": "string"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Get a SavedCropArea resource.
| id required | string The unique ID of the |
curl -i -X GET \ https://api-v2.dash.app/asset-saved-crop-areas/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "id": "string",
- "presetId": "string",
- "assetId": "string",
- "cropParameters": {
- "x": 200,
- "y": 100,
- "width": 400,
- "height": 300
}, - "previewUri": "string"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Update a SavedCropArea resource. Only the provided fields will be updated
| id required | string The unique ID of the |
object (CropParameters) | |
| previewUri | string The preview of this crop area in Base64 |
{- "cropParameters": {
- "x": 200,
- "y": 100,
- "width": 400,
- "height": 300
}, - "previewUri": "string"
}{- "result": {
- "id": "string",
- "presetId": "string",
- "assetId": "string",
- "cropParameters": {
- "x": 200,
- "y": 100,
- "width": 400,
- "height": 300
}, - "previewUri": "string"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Delete a SavedCropArea resource.
| id required | string The unique ID of the |
curl -i -X DELETE \ https://api-v2.dash.app/asset-saved-crop-areas/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}A Collection is a user defined set of Asset resources.
The Asset resources in a Collection are not returned with the Collection resource.
To get the Asset resources you must create an Asset Search and use the Collection.id as the value in a COLLECTIONS : FIELD_EQUALS criterion.
Searching allows you to find Collection resources in your Dash matching specific criteria.
A list of sorts can also be provided to control the order in the which the results are returned.
Create a new Collection.
| name required | string Name of the |
{- "name": "Folders"
}{- "result": {
- "id": "a52b5315-15b8-417f-b742-d6902108bac1",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "name": "Folders",
- "creatorId": "google-oauth2|110955770826801837334",
- "dateCreated": "2021-02-17T09:24:01.417Z",
- "collaborators": [
- {
- "id": "76c5765e-4623-41c9-a521-23610343f019",
- "collectionId": "a52b5315-15b8-417f-b742-d6902108bac1",
- "userId": "google-oauth2|110955770826801837334"
}
], - "share": {
- "id": "4517a7ba-a482-4211-b97e-f4256f53fd32",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "collectionId": "a52b5315-15b8-417f-b742-d6902108bac1",
- "collectionName": "Folders",
- "currentSlug": "EW7DT/folders",
- "slugs": [
- "EW7DT/folders",
- "B35FP/old-name"
], - "expiry": "2021-02-17T09:24:01.417Z",
- "assetPermittedActions": "VIEW"
}
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Patch a Collection
| id required | string The unique ID of the |
| name | string Nullable Name of the |
{- "name": "Folders"
}{- "result": {
- "id": "a52b5315-15b8-417f-b742-d6902108bac1",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "name": "Folders",
- "creatorId": "google-oauth2|110955770826801837334",
- "dateCreated": "2021-02-17T09:24:01.417Z",
- "collaborators": [
- {
- "id": "76c5765e-4623-41c9-a521-23610343f019",
- "collectionId": "a52b5315-15b8-417f-b742-d6902108bac1",
- "userId": "google-oauth2|110955770826801837334"
}
], - "share": {
- "id": "4517a7ba-a482-4211-b97e-f4256f53fd32",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "collectionId": "a52b5315-15b8-417f-b742-d6902108bac1",
- "collectionName": "Folders",
- "currentSlug": "EW7DT/folders",
- "slugs": [
- "EW7DT/folders",
- "B35FP/old-name"
], - "expiry": "2021-02-17T09:24:01.417Z",
- "assetPermittedActions": "VIEW"
}
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Create a new CollectionSearch
The most commmon use of an CollectionSearch is to retrieve all the Collection resources associated with a User
| from required | integer Default: 0 The item number to begin the result set from |
| pageSize required | integer Default: 100 The maximum number of items to return in the result set |
any (CollectionSearchCriterion) | |
Array of objects (CollectionSort) Sorts to be applied to the search in order of precedence |
{- "from": 0,
- "pageSize": 100,
- "criterion": {
- "type": "ASSOCIATED_WITH_USER",
- "userId": "google-oauth2|110955770826801837334"
}, - "sorts": [
- {
- "field": "NAME",
- "order": "ASC"
}
]
}{- "results": [
- {
- "result": {
- "id": "1ecabbb8-85d5-11eb-8dcd-0242ac130003",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "name": "Collaboration Collection",
- "createdBy": "google-oauth2|340955570626871847637",
- "dateCreated": "2021-04-15T09:24:01.417Z",
- "permittedActions": [ ]
}
}, - {
- "result": {
- "id": "1fc6d6c3-c42d-48e2-b0db-5d680a58ca52",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "name": "My Collection 1",
- "createdBy": "google-oauth2|110955770826801837334",
- "dateCreated": "2021-02-15T09:24:01.417Z"
}, - "permittedActions": [ ]
}, - {
- "result": {
- "id": "a52b5315-15b8-417f-b742-d6902108bac1",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "name": "My Collection 2",
- "createdBy": "google-oauth2|110955770826801837334",
- "dateCreated": "2021-03-15T09:24:01.417Z"
}, - "permittedActions": [ ]
}
], - "totalResults": 3
}Coming soon; contact us if you need access to this API endpoint.
Create a new Cloud Connections resource to connect to a cloud storage providers and import assets into Dash
| type required | string GOOGLE GOOGLE DROPBOX |
| authorizationCode required | string The temporary OAuth2 authorization code that Dash can exchange for an access token to a user's Google Cloud |
| redirectUri required | string The redirect URI that was specified when getting the |
{- "type": "GOOGLE",
- "authorizationCode": "e2b03444-8c5d-44ed-bd9f-7eee882bdf81",
}{- "result": {
- "type": "string",
- "id": "e2b03444-8c5d-44ed-bd9f-7eee882bdf81",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "email": "john.smith@gmail.com",
- "name": "John Smith",
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Get a CloudConnection resource to connect which connects to Cloud Storage Providers in order to import assets into Dash
| id required | string The unique ID of the |
curl -i -X GET \ https://api-v2.dash.app/cloud-connections/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "type": "string",
- "id": "e2b03444-8c5d-44ed-bd9f-7eee882bdf81",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "email": "john.smith@gmail.com",
- "name": "John Smith",
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Delete a Cloud Connections resource
| id required | string The unique ID of the |
curl -i -X DELETE \ https://api-v2.dash.app/cloud-connections/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Get all the CloudConnection resources for the current user
curl -i -X GET \ https://api-v2.dash.app/current-user-cloud-connections \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
[- {
- "result": {
- "type": "string",
- "id": "e2b03444-8c5d-44ed-bd9f-7eee882bdf81",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "email": "john.smith@gmail.com",
- "name": "John Smith",
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
]This endpoint is unauthenticated. Do not send a Bearer Token in the Authorization Header
curl -i -X GET \ https://api-v2.dash.app/oauth-callback
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Coming soon; contact us if you need access to this API endpoint.
Create a new Cloud Import Job resource to import assets into Dash
| cloudConnectionId required | string The unique ID for the |
any (CloudObjectsSelector) | |
| keepFolderStructure required | boolean Whether to maintain the source folder structure beneath the selected objects |
| destinationPath required | string The path of the folder in Dash to import the files into. Use an empty string to import to the top level. |
Array of objects (CloudObjectPathMapping) A list of [ |
{- "cloudConnectionId": "e2b03444-8c5d-44ed-bd9f-7eee882bdf81",
- "selector": {
- "type": "BY_IDS",
- "cloudObjectIds": [
- "string"
]
}, - "keepFolderStructure": true,
- "destinationPath": "path/to/folder",
- "pathMappings": [
- {
- "matchPrefix": "path/to/folder",
- "removePrefix": "path/to/",
- "addPrefix": "new-folder/"
}
]
}{- "result": {
- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "progress": {
- "steps": [
- {
- "name": "STEP_NAME",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 2
}
]
}, - "status": "PENDING"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Get the status and eventual result of a CloudImportJob
| id required | string The unique ID of the |
curl -i -X GET \ https://api-v2.dash.app/cloud-import-jobs/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "progress": {
- "steps": [
- {
- "name": "STEP_NAME",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 2
}
]
}, - "status": "PENDING"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Update a CloudImportJob. Primarily used to stop a job.
| id required | string The unique ID of the |
| status required | string Nullable The status of the job |
{- "status": "STARTED"
}{- "result": {
- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "progress": {
- "steps": [
- {
- "name": "STEP_NAME",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 2
}
]
}, - "status": "PENDING"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Deletes a CloudImportJob
| id required | string The unique ID of the |
curl -i -X DELETE \ https://api-v2.dash.app/cloud-import-jobs/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Get all CloudImportJob resources for the current user
| type | string The cloud provider type of the jobs to get |
curl -i -X GET \ 'https://api-v2.dash.app/current-user-cloud-import-jobs?type=DROPBOX' \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
[- {
- "result": {
- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "progress": {
- "steps": [
- {
- "name": "STEP_NAME",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 2
}
]
}, - "status": "PENDING"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
]Coming soon; contact us if you need access to this API endpoint.
Get a CloudObject
| id required | string The unique ID of the CloudConnection that the CloudObject belongs to |
| cloudObjectId required | string The unique ID of the CloudObject |
curl -i -X GET \ https://api-v2.dash.app/cloud-connections/:id/cloud-objects/:cloudObjectId \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "parentId": {
- "type": "ROOT_FOLDER"
}, - "name": "My File",
- "type": "FILE",
- "size": 15318362,
- "dateLastModified": "2021-02-17T09:24:01.417Z",
- "thumbnailUrl": "string",
- "iconUrl": "string"
}| cloudConnectionId required | string The unique ID for the |
required | any (CloudObjectSearchCriterion) |
| pageSize | integer Default: 100 The maximum number of items to return in the result set |
| pageToken | string Nullable The page token to continue a previous search |
{- "cloudConnectionId": "e2b03444-8c5d-44ed-bd9f-7eee882bdf81",
- "criterion": {
- "type": "FIELD_EQUALS",
- "field": "PARENT_ID",
- "value": {
- "type": "ROOT_FOLDER"
}
}, - "pageSize": 100,
- "pageToken": "hds7bs78bbw7v8w"
}{- "results": [
- {
- "id": "be161977-d44e-4888-af3c-66522e223963",
- "parentId": {
- "type": "ROOT_FOLDER"
}, - "name": "My File",
- "type": "FILE",
- "size": 15318362,
- "dateLastModified": "2021-02-17T09:24:01.417Z",
- "thumbnailUrl": "string",
- "iconUrl": "string"
}
], - "nextPage": {
- "cloudConnectionId": "e2b03444-8c5d-44ed-bd9f-7eee882bdf81",
- "criterion": {
- "type": "FIELD_EQUALS",
- "field": "PARENT_ID",
- "value": {
- "type": "ROOT_FOLDER"
}
}, - "pageSize": 100,
- "pageToken": "hds7bs78bbw7v8w"
}
}A SubdomainAvailabilityCheck is used to check whether a Dash subdomain is in use or not.
This endpoint is unauthenticated. Do not send a Bearer Token in the Authorization Header
| subdomain | string The subdomain to check for availability |
{- "subdomain": "my-company"
}{- "subdomain": "my-company",
- "isAvailable": true
}This endpoint is unauthenticated. Do not send a Bearer Token in the Authorization Header
curl -i -X GET \ https://api-v2.dash.app/dash-ping
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}An Asset Download Event Search allows you to search and aggregate over Asset Download Events
Criteria can be constructed based on exact or ranged comparison of the queryable event fields listed in the request schema below.
Some fields like USER_TYPE and DOWNLOAD_TYPE have a fixed set of possible values which can be determined from the response scheme below.
The logical operators AND, OR and NOT are provided to support complex queries based on multiple fields.
A list of sorts can also be provided to control the order in the which the results are returned.
Only the ids of referenced resources such as Portal and Asset are provided in the response, which can then be used to GET the full resources.
Aggregations operations can also be performed on the events described by the criteria, in order to, for example
Note, an Asset Download Event Search will only allow you to page to 10,000 but values returned in any aggregations and the totalResults property will be correct.
Create a new Asset Download Event Search
| from required | integer Default: 0 The item number to begin the result set from |
| pageSize required | integer Default: 100 The maximum number of items to return in the result set |
required | any (AssetDownloadEventSearchCriterion) |
required | Array of objects (AssetDownloadEventSort) Default: [] Sorts to be applied to the search in order of precedence |
object A map of requested aggregations. The results will be returned in a map with the same provided keys. |
{- "from": 0,
- "pageSize": 100,
- "criterion": {
- "type": "FIELD_EQUALS",
- "field": "USER_ID",
- "value": "162c8739-b830-4d2f-b241-97951734a04e"
}, - "sorts": [
- {
- "field": "DATE_TIME",
- "order": "DESC"
}
], - "aggregations": { }
}{- "totalResults": 3,
- "results": [
- {
- "result": {
- "id": "7d240457-6232-4702-af61-7ce5e6ffc34e",
- "accountId": "a61a254c-4bbd-41e6-ba52-22a82ce9fca1",
- "assetId": "2441039a-fb70-4cf8-8070-b2ac6a70186f",
- "assetFileId": "2441239a-fb70-4cf8-8070-b2ac6a60186f",
- "dateTime": "2023-10-23T17:05:28.68Z",
- "downloadType": "PRESET",
- "downloadDescription": "Large",
- "downloadPresetId": "a2b1817f-ba85-47cf-87ec-3183df7a9bd0",
- "userData": {
- "type": "ACCOUNT_USER",
- "userId": "google-oauth2|101322069082130951052",
- "userEmail": "joe-blogs@test.com"
}
}, - "permittedActions": [ ]
}, - {
- "result": {
- "id": "9d240457-6232-4702-af61-7ce5e6ffc34e",
- "accountId": "a61a254c-4bbd-41e6-ba52-22a82ce9fca1",
- "assetId": "2441039a-fb70-4cf8-8070-b2ac6a70186f",
- "assetFileId": "3441239a-fb70-4cf8-8070-b2ac6a60186f",
- "dateTime": "2023-11-23T17:05:28.68Z",
- "downloadType": "PRESET",
- "downloadDescription": "Small",
- "downloadPresetId": "a2b1817f-ba85-47cf-87ec-3183df7a9bd0",
- "userData": {
- "type": "ACCOUNT_USER",
- "userId": "google-oauth2|201322069082130951052",
- "userEmail": "sue-blogs@test.com"
}
}, - "permittedActions": [ ]
}, - {
- "result": {
- "id": "9d240457-6232-4702-af61-7ce5e6ffc34e",
- "accountId": "a61a254c-4bbd-41e6-ba52-22a82ce9fca1",
- "assetId": "3441039a-fb70-4cf8-8070-b2ac6a70186f",
- "assetFileId": "3441239a-fb70-4cf8-8070-b2ac6a60186f",
- "dateTime": "2023-11-23T17:05:28.68Z",
- "downloadType": "PRESET",
- "downloadDescription": "Small",
- "downloadPresetId": "a2b1817f-ba85-47cf-87ec-3183df7a9bd0",
- "userData": {
- "type": "ACCOUNT_USER",
- "userId": "google-oauth2|201322069082130951052",
- "userEmail": "sue-blogs@test.com"
}
}, - "permittedActions": [ ]
}
], - "aggregations": [ ]
}Field resources define the custom metadata schema for Asset resources in your Dash account.
Every Asset in your Dash account can be assigned a value or values for each Field you define.
The type and structure of the data stored against the Asset for each Field is described by a series of properties specified on the Field.
curl -i -X GET \ https://api-v2.dash.app/fields \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
[- {
- "result": {
- "id": "a52b5315-15b8-417f-b742-d6902108bac1",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "name": "Folders",
- "dataType": "STRING",
- "multiValue": true,
- "hasFixedOptions": true,
- "hierarchical": true,
- "editControl": "FOLDER_PICKER",
- "indestructible": true,
- "recommended": true,
- "defaultSortField": "FIELD_ID",
- "browsable": true
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
]Create a Field resource.
| name required | string Human-readable name of the |
| dataType required | string (DataType) Defines the format the data can take
|
| multiValue required | |
| hasFixedOptions required | boolean If The set of fixed values for an If |
| hierarchical required | boolean Only applicable when If |
| editControl required | string An indication of the type of edit control would be sensible to use to edit the |
| recommended required | boolean If |
| defaultSortField | string (FieldOptionSearchField) The name of the |
| browsable required | boolean If |
{- "name": "Folders",
- "dataType": "STRING",
- "multiValue": true,
- "hasFixedOptions": true,
- "hierarchical": true,
- "editControl": "FOLDER_PICKER",
- "recommended": true,
- "defaultSortField": "FIELD_ID",
- "browsable": true
}{- "result": {
- "id": "a52b5315-15b8-417f-b742-d6902108bac1",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "name": "Folders",
- "dataType": "STRING",
- "multiValue": true,
- "hasFixedOptions": true,
- "hierarchical": true,
- "editControl": "FOLDER_PICKER",
- "indestructible": true,
- "recommended": true,
- "defaultSortField": "FIELD_ID",
- "browsable": true
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Get a Field resource.
When Field.hasFixedOptions = true the FieldOption resources for this Field can be retrieved via an FieldOptionSearch
| id required | string The unique ID of the field Example: cfb665ca-ce35-4418-b9d5-70ee815db4bd |
curl -i -X GET \ https://api-v2.dash.app/fields/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "id": "a52b5315-15b8-417f-b742-d6902108bac1",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "name": "Folders",
- "dataType": "STRING",
- "multiValue": true,
- "hasFixedOptions": true,
- "hierarchical": true,
- "editControl": "FOLDER_PICKER",
- "indestructible": true,
- "recommended": true,
- "defaultSortField": "FIELD_ID",
- "browsable": true
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Update a Field resource.
| id required | string The unique ID of the field Example: cfb665ca-ce35-4418-b9d5-70ee815db4bd |
| name | string Nullable Human-readable name of the |
| recommended | boolean Nullable If |
object (NullableFieldOptionSearchFieldPatch) | |
| browsable | boolean Nullable Whether assets with a value for this |
{- "name": "Folders",
- "recommended": true,
- "defaultSortField": {
- "value": "FIELD_ID"
}, - "browsable": false
}{- "result": {
- "id": "a52b5315-15b8-417f-b742-d6902108bac1",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "name": "Folders",
- "dataType": "STRING",
- "multiValue": true,
- "hasFixedOptions": true,
- "hierarchical": true,
- "editControl": "FOLDER_PICKER",
- "indestructible": true,
- "recommended": true,
- "defaultSortField": "FIELD_ID",
- "browsable": true
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Delete a Field resource.
| id required | string The unique ID of the field Example: cfb665ca-ce35-4418-b9d5-70ee815db4bd |
curl -i -X DELETE \ https://api-v2.dash.app/fields/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}FieldOption resources define the set of valid choices for a Field when Field.hasFixedOptions = true.
An FieldOption has human-readable FieldOption.value and an FieldOption.position which determines the order in which it appears in relation to the other FieldOption resources for a Field.
If Field.hierarchical = true then FieldOption.parent is the FieldOption which is the parent node of the FieldOption in the tree.
FieldOption.position then determines the order in which the option appears in relation to the other options with the same FieldOption.parent.
The FieldOption resource intentionally does not include the list of child FieldOption resources.
This is to prevent costly loading of large FieldOption tree structures.
FieldOption.leaf and FieldOption.numberOfChildren properties can be used to determine the number of children for a node, but it is recommended to implement a combination of lazy-loading strategies using the GET Field Option and POST Field Option Searches resources for retrieval.
e.g. Doing a GET Field Option with an FieldOption.id value found in Asset.metadata.values will give the complete branch of the tree necessary in the context of the viewing that Asset via the FieldOption.parent property.
For traversing down an FieldOption tree POST Field Option Searches can be used to first get all the top-level options and then each sub level as and when needed.
Searching allows you to find FieldOption resources in your Dash matching specific criteria
Criteria can be constructed based on direct comparison or pattern matching of a set of fixed FieldOption properties.
The logical operators AND, OR and NOT are provided to support complex queries based on multiple fields.
A list of sorts can also be provided to control the order in the which the results are returned.
Create a new FieldOption resource adding it to the set of valid choices for an Field where Field.hasFixedOptions = true.
| fieldId required | string The unique ID of the |
| value required | string The human-readable value of the |
| position required | integer The 0-based position the |
| parentId |
{- "fieldId": "a52b5315-15b8-417f-b742-d6902108bac1",
- "value": "My Top Level Folder",
- "position": 3,
- "parentId": null
}{- "result": {
- "id": "1fc6d6c3-c42d-48e2-b0db-5d680a58ca52",
- "fieldId": "a52b5315-15b8-417f-b742-d6902108bac1",
- "value": "My Top Level Folder",
- "position": 0,
- "leaf": false,
- "parent": null
}, - "permittedActions": [ ]
}Get an FieldOption resource for an Field where Field.hasFixedOptions = true.
| id required | string The unique ID of the |
curl -i -X GET \ https://api-v2.dash.app/field-options/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "id": "1fc6d6c3-c42d-48e2-b0db-5d680a58ca52",
- "fieldId": "a52b5315-15b8-417f-b742-d6902108bac1",
- "value": "My Top Level Folder",
- "position": 0,
- "leaf": false,
- "parent": null
}, - "permittedActions": [ ]
}Delete an FieldOption resource, removing it from the set of valid choices for an Field.
When deleting an option within a hierarchy of options all options in the hierarchy below the one being deleted will also be deleted.
| id required | string The unique ID of the |
curl -i -X DELETE \ https://api-v2.dash.app/field-options/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Create new FieldOption resources adding them to the set of valid choices for an Field where Field.hasFixedOptions = true.
required | Array of objects (FieldOptionBatchRequestItem) |
{- "items": [
- {
- "batchItemId": "my-item-1",
- "fieldId": "a52b5315-15b8-417f-b742-d6902108bac1",
- "value": "Folder A",
- "position": 2,
- "parentId": null
}
]
}{- "successes": {
- "property1": {
- "result": {
- "id": "1fc6d6c3-c42d-48e2-b0db-5d680a58ca52",
- "value": "Folder A",
- "fieldId": "a52b5315-15b8-417f-b742-d6902108bac1",
- "position": 2,
- "leaf": true,
- "numberOfChildren": 0,
- "parent": { }
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}, - "property2": {
- "result": {
- "id": "1fc6d6c3-c42d-48e2-b0db-5d680a58ca52",
- "value": "Folder A",
- "fieldId": "a52b5315-15b8-417f-b742-d6902108bac1",
- "position": 2,
- "leaf": true,
- "numberOfChildren": 0,
- "parent": { }
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
}, - "failures": {
- "property1": "OPTION_ALREADY_EXISTS_AT_THIS_LEVEL",
- "property2": "OPTION_ALREADY_EXISTS_AT_THIS_LEVEL"
}
}Create a new FieldOptionSearch
The most commmon uses of an FieldOptionSearch is to retrieve the FieldOption resources for an Field using the FIELD_ID field criterion.
When Field.hierarchical = true it is recommended to retrieve each level of the tree via a separate search using PARENT_ID field criteria.
| from required | integer Default: 0 The item number to begin the result set from |
| pageSize required | integer Default: 100 The maximum number of items to return in the result set |
required | any (FieldOptionSearchCriterion) |
required | Array of objects (FieldOptionSort) Sorts to be applied to the search in order of precedence |
{- "from": 0,
- "pageSize": 100,
- "criterion": {
- "type": "AND",
- "criteria": [
- {
- "type": "FIELD_EQUALS",
- "field": "FIELD_ID",
- "value": "a52b5315-15b8-417f-b742-d6902108bac1"
}, - {
- "type": "FIELD_IS_EMPTY",
- "field": "PARENT_ID"
}
]
}, - "sorts": [
- {
- "field": "POSITION",
- "order": "ASC"
}
]
}{- "results": [
- {
- "result": {
- "id": "1fc6d6c3-c42d-48e2-b0db-5d680a58ca52",
- "fieldId": "a52b5315-15b8-417f-b742-d6902108bac1",
- "value": "My Top Level Folder",
- "position": 0,
- "leaf": false,
- "parent": null
}, - "permittedActions": [ ]
}, - {
- "result": {
- "id": "1fc6d6c3-c42d-48e2-b0db-5d680a58ca52",
- "fieldId": "a52b5315-15b8-417f-b742-d6902108bac1",
- "value": "Another Top Level Folder",
- "position": 1,
- "leaf": false,
- "parent": null
}, - "permittedActions": [ ]
}
], - "totalResults": 2
}Coming soon; contact us if you need access to this API endpoint.
Get Field Option Images in batches
required | Array of objects (FieldOptionImageBatchRequestItem) |
{- "items": [
- {
- "batchItemId": 1,
- "fieldOptionId": "1fc6d6c3-c42d-48e2-b0db-5d680a58ca52"
}, - {
- "batchItemId": 2,
- "fieldOptionId": "1ecabbb8-85d5-11eb-8dcd-0242ac130003"
}, - {
- "batchItemId": 3,
- "fieldOptionId": "5a2481e0-819f-4b46-a7e6-143f943345f2"
}
]
}{- "successes": {
- "1": {
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "fieldId": "7756d388-110c-4712-b350-0b2b48e156c1",
- "fieldOptionId": "1fc6d6c3-c42d-48e2-b0db-5d680a58ca52",
}, - "2": {
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "fieldId": "7756d388-110c-4712-b350-0b2b48e156c1",
- "fieldOptionId": "1ecabbb8-85d5-11eb-8dcd-0242ac130003",
}
}, - "failures": {
- "3": "FIELD_OPTION_IMAGE_DOES_NOT_EXIST"
}
}Delete a field Option Image
| id required | string The unique ID of the |
curl -i -X DELETE \ https://api-v2.dash.app/field-option-images/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}| accountId required | string The ID of the |
| fieldId required | string The ID of the |
| fieldOptionId required | string The ID of the |
{- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "fieldId": "7756d388-110c-4712-b350-0b2b48e156c1",
- "fieldOptionId": "1fc6d6c3-c42d-48e2-b0db-5d680a58ca52"
}{
}curl -i -X GET \ https://api-v2.dash.app/field-views \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
[- {
- "result": {
- "id": "e9a367e4-8216-497f-b6a9-59e3b945a7f3",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "type": "INTERNAL_DETAILED",
- "fields": [
- {
- "id": "a52b5315-15b8-417f-b742-d6902108bac1",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "name": "Folders",
- "dataType": "STRING",
- "multiValue": true,
- "hasFixedOptions": true,
- "hierarchical": true,
- "editControl": "FOLDER_PICKER",
- "indestructible": true,
- "recommended": true,
- "defaultSortField": "FIELD_ID",
- "browsable": true
}
]
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
]Create a new GuestUpload URL, to share with a guest to upload files to a specified folder
| folderFieldOptionId required | string The unique ID of the |
| name required | string A human readable name for the |
| message | string Nullable Optional message shown to anyone that visits the |
| messageHeading | string Nullable Optional message header shown to anyone that visits the |
{- "folderFieldOptionId": "c4e146aa3-543a-4d58-bf99-0d33cf73e942",
- "name": "Social media Content",
- "message": "Please upload your favourite social media pics for approval",
- "messageHeading": "Social media uploads"
}{- "result": {
- "id": "55f9964c-095d-4b8b-bb5e-4118d2e76ad0",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "folderFieldOptionId": "c4e146aa3-543a-4d58-bf99-0d33cf73e942",
- "name": "Social media Content",
- "currentSlug": "puaon-social-media-content",
- "slugs": [
- "puaon-social-media-content",
- "azxmq-social-media-old"
], - "message": "Please upload your favourite social media pics for approval",
- "messageHeading": "Social media uploads"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Get a GuestUpload
| id required | string The unique ID of the |
curl -i -X GET \ https://api-v2.dash.app/guest-uploads/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "id": "55f9964c-095d-4b8b-bb5e-4118d2e76ad0",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "folderFieldOptionId": "c4e146aa3-543a-4d58-bf99-0d33cf73e942",
- "name": "Social media Content",
- "currentSlug": "puaon-social-media-content",
- "slugs": [
- "puaon-social-media-content",
- "azxmq-social-media-old"
], - "message": "Please upload your favourite social media pics for approval",
- "messageHeading": "Social media uploads"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Patch a GuestUpload
| id required | string The unique ID of the |
| folderFieldOptionId | string Nullable The unique ID of the |
| name | string Nullable A human readable name for the |
| message | string Nullable Message shown to anyone that visits the |
| messageHeading | string Nullable Optional message header shown to anyone that visits the |
{- "folderFieldOptionId": "c4e146aa3-543a-4d58-bf99-0d33cf73e942",
- "name": "Social media Content",
- "message": "Please upload your favourite social media pics for approval",
- "messageHeading": "Social media uploads"
}{- "result": {
- "id": "55f9964c-095d-4b8b-bb5e-4118d2e76ad0",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "folderFieldOptionId": "c4e146aa3-543a-4d58-bf99-0d33cf73e942",
- "name": "Social media Content",
- "currentSlug": "puaon-social-media-content",
- "slugs": [
- "puaon-social-media-content",
- "azxmq-social-media-old"
], - "message": "Please upload your favourite social media pics for approval",
- "messageHeading": "Social media uploads"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Delete a GuestUpload.
| id required | string The unique ID of the |
curl -i -X DELETE \ https://api-v2.dash.app/guest-uploads/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Create a new GuestUploadSearch
| from required | integer Default: 0 The item number to begin the result set from |
| pageSize required | integer Default: 100 The maximum number of items to return in the result set |
required | any (GuestUploadSearchCriterion) |
required | Array of objects (GuestUploadSort) Sorts to be applied to the search in order of precedence |
{- "from": 0,
- "pageSize": 100,
- "criterion": {
- "type": "MATCH_ALL"
}, - "sorts": [
- {
- "field": "NAME",
- "order": "ASC"
}
]
}{- "results": [
- {
- "result": {
- "id": "55f9964c-095d-4b8b-bb5e-4118d2e76ad0",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "folderFieldOptionId": "c4e146aa3-543a-4d58-bf99-0d33cf73e942",
- "name": "Social media Content",
- "currentSlug": "puaon-social-media-content",
- "slugs": [
- "puaon-social-media-content",
- "azxmq-social-media-old"
], - "message": "Please upload your favourite social media pics for approval",
- "messageHeading": "Social media uploads"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
], - "totalResults": 15
}Create an access token for making requests as a GuestUpload user. Using this access token, the guest can upload assets.
This endpoint is unauthenticated. Do not send a Bearer Token in the Authorization Header
| guestUploadId | string The unique ID for the |
| email required | string The email address of the |
{- "guestUploadId": "55f9964c-095d-4b8b-bb5e-4118d2e76ad0",
- "email": "john.smith@gmail.com"
}{- "result": {
- "accessToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5UZzNPRFV4TkVKQk56UTVRemswTjBFNFFUTTJOVUV6TlRnNU9VVXpRakU0UmtKQlJrSXpOUSJ9.eyJodHRwczovL2Fzc2V0cGxhdGZvcm0uaW8vYWNjb3VudF9pZCI6IjE3ZmNhYzg5LWNjMmUtNGE0MC1hYTZmLWI4NWQ4MDEzMDRkMyIsImh0dHBzOi8vYXNzZXRwbGF0Zm9ybS5pby9leHRlcm5hbF9hY2Nlc3NfaWQiOiI4NjVjNjBiYi02NzA5LTQxZTAtOGI0ZS0yNTljYTk4MjkzNTEiLCJodHRwczovL2Fzc2V0cGxhdGZvcm0uaW8vZXh0ZXJuYWxfYWNjZXNzX3Jlc291cmNlX3R5cGUiOiJTSEFSRSIsImh0dHBzOi8vYXNzZXRwbGF0Zm9ybS5pby9zY29wZSI6ImFjY2VzczpleHRlcm5hbF9hY2Nlc3MiLCJodHRwczovL2Fzc2V0cGxhdGZvcm0uaW8vdGVtcG9yYXJ5X3VzZXJfaWQiOiJ0ZW1wb3JhcnktdXNlci1mb3ItZXh0ZXJuYWwtYWNjZXNzfDg2NWM2MGJiLTY3MDktNDFlMC04YjRlLTI1OWNhOTgyOTM1MXxTSEFSRXxmMDJmNTE2Mi03OTc4LTRhMzktYWZkMS0zZGU1MzY1ODlmNDkiLCJpc3MiOiJodHRwczovL2xvZ2luLmJyaWdodGRhc2hzdGFnaW5nLmFwcC8iLCJzdWIiOiJWNFhJdWN1eEx5UzFmNjVkd2RmaWRib1BLcnFFb3lkWUBjbGllbnRzIiwiYXVkIjoiaHR0cHM6Ly9hc3NldHBzdGFnaW5nLmlvIiwiaWF0IjoxNjIwMTIzMjgyLCJleHAiOjE2MjAyMDk2ODIsImF6cCI6IlY0WEl1Y3V4THlTMWY2NWR3ZGZpZGJvUEtycUVveWRZIiwiZ3R5IjoiY2xpZW50LWNyZWRlbnRpYWxzIn0.clGEEfy-8yQNQ_f4TDc0OqA8Zi5gHq_-9gKFRif69DNnhzIbgqduVnaweR6x1KJU8CgnZiDMBKEwsiZw3gs-U8XnBIzbb8ImpdhYjoKnGv520oUKAA5RiAThamj1a0jGphmnDd3cCS6uIqdkSvxziE9ktL-MLNqbNFfgvdQuCo66YDqjhaHN7bqvliqaleUSRYZOd016M_N_ya21lamSxZcVintaktyvOApuAVgTMyIrrO8VuyhWW-cmiRFYKeTWnl2_kv9s_xQyWQ_PHH92rVCgRJwbofQEko4Isj4ZhLkA2xrurCPrz6VCtD5GYUfJNUWN_HcEHFsSqSYCsGfBAg"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Send a GuestUpload URL via email to a specified email address
| guestUploadId required | string The unique ID for the |
| email required | string The email address to send the |
{- "guestUploadId": "55f9964c-095d-4b8b-bb5e-4118d2e76ad0",
- "email": "john.smith@gmail.com"
}{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Get the publicly available data for a Guest Upload by subdomain and slug
| subdomain required | string The subdomain of the |
| slug required | string The slug of the |
curl -i -X GET \ https://api-v2.dash.app/subdomains/:subdomain/publicly-available-guest-upload-data/:slug \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "id": "55f9964c-095d-4b8b-bb5e-4118d2e76ad0",
- "name": "Social media Content",
- "message": "Please upload your favourite social media pics for approval",
- "messageHeading": "Social media uploads"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}At present the Corebook integration with Dash is configured entirely within Corebook. However, Dash allows admins to set their CorebookSettings.corebookUrl, which will then show up as a "Brand" link to all users.
curl -i -X GET \ https://api-v2.dash.app/corebook-settings \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "enabled": true,
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}| enabled | boolean Whether Corebook integration is enable |
| corebookUrl | string The URL to Corebook that will be used to link users to the brand guidelines |
{- "enabled": true,
}{- "result": {
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "enabled": true,
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}curl -i -X GET \ https://api-v2.dash.app/custom-integration-settings \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "clientId": "CFB665Cace354418B9D570EE815DB4bd",
- "clientSecret": "EE815DB4-CFB665Ca-fzHDlUibM9g6JwiOXf9Vxh6f_egJD",
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}| allowedWebOriginUrls required | Array of strings Allowed origins for use in the cross-origin authentication flow |
| allowedCallbackUrls required | Array of strings Allowed URLs for callback (i.e. with generated access token) during authentication flow |
| allowedLogoutUrls required | Array of strings Allowed URLs to redirect to after logout |
{
}{- "result": {
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "clientId": "CFB665Cace354418B9D570EE815DB4bd",
- "clientSecret": "EE815DB4-CFB665Ca-fzHDlUibM9g6JwiOXf9Vxh6f_egJD",
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}| allowedWebOriginUrls | Array of strings Nullable Allowed origins for use in the cross-origin authentication flow |
| allowedCallbackUrls | Array of strings Nullable Allowed URLs for callback (i.e. with generated access token) during authentication flow |
| allowedLogoutUrls | Array of strings Nullable Allowed URLs to redirect to after logout |
{
}{- "result": {
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "clientId": "CFB665Cace354418B9D570EE815DB4bd",
- "clientSecret": "EE815DB4-CFB665Ca-fzHDlUibM9g6JwiOXf9Vxh6f_egJD",
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}curl -i -X DELETE \ https://api-v2.dash.app/custom-integration-settings \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Associate an external app user ID with the currently authenticated Dash user
| externalAppUserId | string External app user ID |
| appName | string Value: "CANVA" |
{- "externalAppUserId": "string",
- "appName": "CANVA"
}{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Create external app SSO token for the current user
| appName required | string Value: "FRILL" |
{- "appName": "FRILL"
}{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Get all ExternalAppAccount resources ordered by ExternalAppAccount.externalAppAccountId
curl -i -X GET \ https://api-v2.dash.app/external-app-accounts \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
[- {
- "result": {
- "id": "55f9964c-095d-4b8b-bb5e-4118d2e76ad0",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "externalAppAccountId": "my.myshopify.com",
- "appName": "SHOPIFY",
- "configured": true
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
]Associate an external app account with the account of the currently authenticated Dash user
| externalAppAccountId required | string A unique identifier of the specific account to connect to in the external app |
| appName required | string (AppName) Value: "SHOPIFY" |
| connectionPayload required | object Any additional data that is required to connect to the external app |
{- "externalAppAccountId": "put the Shopify domain here",
- "appName": "SHOPIFY",
- "connectionPayload": {
- "type": "SHOPIFY",
- "clientId": "put the Client ID here",
- "clientSecret": "put the Client secret here",
- "accessToken": ""
}
}{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Coming soon; contact us if you need access to this API endpoint.
Get the status and eventual result of a ShopifyExportBatchJob
| id required | string The unique ID of the |
curl -i -X GET \ https://api-v2.dash.app/shopify-export-batch-jobs/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "progress": {
- "steps": [
- {
- "name": "STEP_NAME",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 2
}
]
}, - "status": "PENDING"
}Update a ShopifyExportBatchJob. Primarily used to stop a job.
| id required | string The unique ID of the |
| status required | string Nullable The status of the job |
{- "status": "STARTED"
}{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "progress": {
- "steps": [
- {
- "name": "STEP_NAME",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 2
}
]
}, - "status": "PENDING"
}Deletes a ShopifyExportBatchJob
| id required | string The unique ID of the |
curl -i -X DELETE \ https://api-v2.dash.app/shopify-export-batch-jobs/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Create a Shopify export batch job to upload multiple assets from Dash into your Shopify account. The uploaded assets can be associated with products and their position on the product listing can be specified. Existing Shopify images can also be reordered.
| shop required | string The shop to search within |
| shopifyAccessToken required | string An access token obtained for the above Shopify store that will be used to make requests to Shopify with |
required | Array of objects (ShopifyExportBatchRequestItem) |
{- "shop": "planto.myshopify.com",
- "shopifyAccessToken": "cjuqb_6bp89123d45516c78288f433bd8bc13j",
- "items": [
- {
- "batchItemId": "my-item-1",
- "source": {
- "type": "SHOPIFY_IMAGE",
- "shopifyImageId": "7af90a8b-7ccd-430f-a85d-e8614015bc47"
}, - "productImageDestinations": [
- {
- "productId": 1234,
- "position": 3
}
]
}
]
}{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "progress": {
- "steps": [
- {
- "name": "STEP_NAME",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 2
}
]
}, - "status": "PENDING"
}See AssetDownloadBatchJob for an idea of how to use this endpoint
| shop | string The "shop" slug for the specific Shopify shop to create images in |
| productId required | string The id of the product in Shopify to create images for |
required | Array of objects (AssetDownloadBatchRequestItem) |
required | any (TransformationDescription) |
{- "shop": "example.myshopify.com",
- "productId": 1234,
- "items": [
- {
- "batchItemId": "my-item-1",
- "assetId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "assetFileId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "outputFilename": "string",
- "presetParameters": [ ]
}
], - "transformationDescription": {
- "type": "CUSTOM",
- "candidateTransformations": [
- {
- "criteria": [
- {
- "type": "MATCHES_MEDIA_TYPES",
- "mediaTypes": [
- {
- "type": null,
- "subType": null
}
]
}
], - "transformation": [ ]
}
]
}
}{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "progress": {
- "steps": [
- {
- "name": "STEP_NAME",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 2
}
]
}, - "status": "PENDING"
}See AssetDownloadBatchJob for an idea of how to use this endpoint
| shop | string The "shop" slug for the specific Shopify shop to create images in |
required | any (ShopifyImageUsedIn) |
required | Array of objects (AssetDownloadBatchRequestItem) |
required | any (TransformationDescription) |
{- "shop": "example.myshopify.com",
- "usedIn": {
- "type": "PRODUCT",
- "productId": 1234
}, - "items": [
- {
- "batchItemId": "my-item-1",
- "assetId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "assetFileId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "outputFilename": "string",
- "presetParameters": [ ]
}
], - "transformationDescription": {
- "type": "CUSTOM",
- "candidateTransformations": [
- {
- "criteria": [
- {
- "type": "MATCHES_MEDIA_TYPES",
- "mediaTypes": [
- {
- "type": null,
- "subType": null
}
]
}
], - "transformation": [ ]
}
]
}
}{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "progress": {
- "steps": [
- {
- "name": "STEP_NAME",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 2
}
]
}, - "status": "PENDING"
}Get details about a particular connection to Shopify
| id required | string The shop name that uniquely identifies a Shopify connection |
curl -i -X GET \ https://api-v2.dash.app/shopify-connections/:id
{- "result": {
- "id": "example.myshopify.com",
- "clientId": "339764aa5d7d5cd60ad55a48d3e4fc8d"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}This is quite an internal endpoint and is only really in the API due to needing to be on the dash.app domain.
| shop required | string The shop name that uniquely identifies a Shopify connection |
| hmac required | string A hash of all other parameters created by using the Shopify secret key as the key |
| session | string The current session |
| timestamp | string |
| locale | string |
| host | string |
| embedded | string |
curl -i -X GET \ 'https://api-v2.dash.app/shopify-callback?shop=string&hmac=string&session=string×tamp=string&locale=string&host=string&embedded=string'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Search for products from a given Shopify store
| shop required | string The shop to search within |
| shopifyAccessToken required | string An access token obtained for the above Shopify store that will be used to make requests to Shopify with |
required | any (ShopifyProductSearchCriterion) |
| pageSize required | integer Number of results to include in a page |
| cursor | string Nullable The position to start the search results from. Starts from the start if no value provided |
{- "shop": "planto.myshopify.com",
- "shopifyAccessToken": "cjuqb_6bp89123d45516c78288f433bd8bc13j",
- "criterion": {
- "type": "FIELD_IN",
- "values": [
- "this",
- "that"
], - "field": "SKU"
}, - "pageSize": 100,
- "cursor": "eyJsYXN0X2lkIjo3MDE3MjQ0MDY1ODQ4LCJsYXN0X3ZhbHVlIjoiNzAxNzI0NDA2NTg0OCJ9"
}{- "results": [
- {
- "result": {
- "id": 7693497762034,
- "title": "Sol classic tee",
- "handle": "mens-premium-cotton-tshirt-1",
- "skus": [
- "string"
]
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
], - "nextCursor": "eyJsYXN0X2lkIjo3MDE3MjQ0MDY1ODQ4LCJsYXN0X3ZhbHVlIjoiNzAxNzI0NDA2NTg0OCJ9"
}curl -i -X GET \ https://api-v2.dash.app/wordpress-settings \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "clientId": "CFB665Cace354418B9D570EE815DB4bd",
- "clientSecret": "EE815DB4-CFB665Ca-fzHDlUibM9g6JwiOXf9Vxh6f_egJD",
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}| baseUrls required | Array of strings The base urls of your WordPress instances using the Dash plugin. |
{
}{- "result": {
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "clientId": "CFB665Cace354418B9D570EE815DB4bd",
- "clientSecret": "EE815DB4-CFB665Ca-fzHDlUibM9g6JwiOXf9Vxh6f_egJD",
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}| baseUrls | Array of strings Nullable The base urls of your WordPress instances using the Dash plugin. |
{
}{- "result": {
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "clientId": "CFB665Cace354418B9D570EE815DB4bd",
- "clientSecret": "EE815DB4-CFB665Ca-fzHDlUibM9g6JwiOXf9Vxh6f_egJD",
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}curl -i -X DELETE \ https://api-v2.dash.app/wordpress-settings \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Portals allow a public (or passcode protected) view on Assets within a set of folders.
Create a new Portal, allowing public access to specified folders to anyone who has one of the Portal.slugs.
| name required | string Name of the |
| slug required | string A human readable unique identifier, used in the Dash portal URL |
| whitelistedFolderFieldOptionIds required | Array of strings The folder |
required | object (WelcomeMessage) |
| showRecentlyAddedAssets required | boolean Whether this portal should include a preview of recently added assets |
| passcode | string Nullable A passcode that must be provided when viewing a portal. Note that this is NOT a password and as such is stored in plain text |
| assetPermittedActions | string (AssetPermittedActionsWithDefault) Default: "VIEW_AND_DOWNLOAD" Permissions users have on assets they are viewing |
{- "name": "Reseller portal",
- "slug": "reseller-portal",
- "whitelistedFolderFieldOptionIds": [
- "4cb261ad-dffb-414e-89cf-6902e3031d44",
- "4e14dc90-eb7b-4fd2-87e5-e8968c236ec0"
], - "welcomeMessage": {
- "title": "Welcome to our reseller portal",
- "body": "Take a look around our reseller portal and quickly find all the assets you need. Happy browsing!"
}, - "showRecentlyAddedAssets": true,
- "passcode": "LetMeInPlease",
- "assetPermittedActions": "VIEW"
}{- "result": {
- "id": "55f9964c-095d-4b8b-bb5e-4118d2e76ad0",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "name": "Reseller portal",
- "currentSlug": "reseller-portal",
- "slugs": [
- "reseller-portal",
- "old-slug-here"
], - "whitelistedFolderFieldOptionIds": [
- "4cb261ad-dffb-414e-89cf-6902e3031d44",
- "4e14dc90-eb7b-4fd2-87e5-e8968c236ec0"
], - "welcomeMessage": {
- "title": "Welcome to our reseller portal",
- "body": "Take a look around our reseller portal and quickly find all the assets you need. Happy browsing!"
}, - "showRecentlyAddedAssets": true,
- "passcode": "LetMeInPlease",
- "assetPermittedActions": "VIEW"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Get a Portal
| id required | string The unique ID of the |
curl -i -X GET \ https://api-v2.dash.app/portals/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "id": "55f9964c-095d-4b8b-bb5e-4118d2e76ad0",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "name": "Reseller portal",
- "currentSlug": "reseller-portal",
- "slugs": [
- "reseller-portal",
- "old-slug-here"
], - "whitelistedFolderFieldOptionIds": [
- "4cb261ad-dffb-414e-89cf-6902e3031d44",
- "4e14dc90-eb7b-4fd2-87e5-e8968c236ec0"
], - "welcomeMessage": {
- "title": "Welcome to our reseller portal",
- "body": "Take a look around our reseller portal and quickly find all the assets you need. Happy browsing!"
}, - "showRecentlyAddedAssets": true,
- "passcode": "LetMeInPlease",
- "assetPermittedActions": "VIEW"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Patch a Portal
| id required | string The unique ID of the |
| name | string Nullable Name of the |
| slug | string Nullable A human readable unique identifier, used in the Dash portal URL |
| whitelistedFolderFieldOptionIds | Array of strings Nullable The folder |
object Nullable | |
| showRecentlyAddedAssets | boolean Nullable Whether this portal should include a preview of recently added assets |
object (NullableStringFieldPatch) | |
| assetPermittedActions | string (AssetPermittedActionsWithDefault) Default: "VIEW_AND_DOWNLOAD" Permissions users have on assets they are viewing |
{- "name": "Reseller portal",
- "slug": "reseller-portal",
- "whitelistedFolderFieldOptionIds": [
- "4cb261ad-dffb-414e-89cf-6902e3031d44",
- "4e14dc90-eb7b-4fd2-87e5-e8968c236ec0"
], - "welcomeMessage": {
- "title": "Welcome to our reseller portal",
- "body": "Take a look around our reseller portal and quickly find all the assets you need. Happy browsing!"
}, - "showRecentlyAddedAssets": true,
- "passcode": {
- "value": "example value"
}, - "assetPermittedActions": "VIEW"
}{- "result": {
- "id": "55f9964c-095d-4b8b-bb5e-4118d2e76ad0",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "name": "Reseller portal",
- "currentSlug": "reseller-portal",
- "slugs": [
- "reseller-portal",
- "old-slug-here"
], - "whitelistedFolderFieldOptionIds": [
- "4cb261ad-dffb-414e-89cf-6902e3031d44",
- "4e14dc90-eb7b-4fd2-87e5-e8968c236ec0"
], - "welcomeMessage": {
- "title": "Welcome to our reseller portal",
- "body": "Take a look around our reseller portal and quickly find all the assets you need. Happy browsing!"
}, - "showRecentlyAddedAssets": true,
- "passcode": "LetMeInPlease",
- "assetPermittedActions": "VIEW"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Delete a Portal.
| id required | string The unique ID of the |
curl -i -X DELETE \ https://api-v2.dash.app/portals/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Create a new PortalSearch
| from required | integer Default: 0 The item number to begin the result set from |
| pageSize required | integer Default: 100 The maximum number of items to return in the result set |
required | any (PortalSearchCriterion) |
required | Array of objects (PortalSort) Sorts to be applied to the search in order of precedence |
{- "from": 0,
- "pageSize": 100,
- "criterion": {
- "type": "MATCH_ALL"
}, - "sorts": [
- {
- "field": "NAME",
- "order": "ASC"
}
]
}{- "results": [
- {
- "result": {
- "id": "55f9964c-095d-4b8b-bb5e-4118d2e76ad0",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "name": "Reseller portal",
- "currentSlug": "reseller-portal",
- "slugs": [
- "reseller-portal",
- "old-slug-here"
], - "whitelistedFolderFieldOptionIds": [
- "4cb261ad-dffb-414e-89cf-6902e3031d44",
- "4e14dc90-eb7b-4fd2-87e5-e8968c236ec0"
], - "welcomeMessage": {
- "title": "Welcome to our reseller portal",
- "body": "Take a look around our reseller portal and quickly find all the assets you need. Happy browsing!"
}, - "showRecentlyAddedAssets": true,
- "passcode": "LetMeInPlease",
- "assetPermittedActions": "VIEW"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
], - "totalResults": 15
}Get an access token for making requests as Portal user. Use this access token in the same way as the normal signed-in user token to make requests with the permissions of the share applied.
This endpoint is not authenticated with a Bearer token. Do not send a Bearer Token in the Authorization Header
If the portal has a passcode, select the portalPasscode Authorization header and prefix the passcode with "Passcode ".
| id required | string The unique ID of the |
curl -i -X GET \ https://api-v2.dash.app/portals/:id/access-token
{- "result": {
- "accessToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5UZzNPRFV4TkVKQk56UTVRemswTjBFNFFUTTJOVUV6TlRnNU9VVXpRakU0UmtKQlJrSXpOUSJ9.eyJodHRwczovL2Fzc2V0cGxhdGZvcm0uaW8vYWNjb3VudF9pZCI6IjE3ZmNhYzg5LWNjMmUtNGE0MC1hYTZmLWI4NWQ4MDEzMDRkMyIsImh0dHBzOi8vYXNzZXRwbGF0Zm9ybS5pby9leHRlcm5hbF9hY2Nlc3NfaWQiOiI4NjVjNjBiYi02NzA5LTQxZTAtOGI0ZS0yNTljYTk4MjkzNTEiLCJodHRwczovL2Fzc2V0cGxhdGZvcm0uaW8vZXh0ZXJuYWxfYWNjZXNzX3Jlc291cmNlX3R5cGUiOiJTSEFSRSIsImh0dHBzOi8vYXNzZXRwbGF0Zm9ybS5pby9zY29wZSI6ImFjY2VzczpleHRlcm5hbF9hY2Nlc3MiLCJodHRwczovL2Fzc2V0cGxhdGZvcm0uaW8vdGVtcG9yYXJ5X3VzZXJfaWQiOiJ0ZW1wb3JhcnktdXNlci1mb3ItZXh0ZXJuYWwtYWNjZXNzfDg2NWM2MGJiLTY3MDktNDFlMC04YjRlLTI1OWNhOTgyOTM1MXxTSEFSRXxmMDJmNTE2Mi03OTc4LTRhMzktYWZkMS0zZGU1MzY1ODlmNDkiLCJpc3MiOiJodHRwczovL2xvZ2luLmJyaWdodGRhc2hzdGFnaW5nLmFwcC8iLCJzdWIiOiJWNFhJdWN1eEx5UzFmNjVkd2RmaWRib1BLcnFFb3lkWUBjbGllbnRzIiwiYXVkIjoiaHR0cHM6Ly9hc3NldHBzdGFnaW5nLmlvIiwiaWF0IjoxNjIwMTIzMjgyLCJleHAiOjE2MjAyMDk2ODIsImF6cCI6IlY0WEl1Y3V4THlTMWY2NWR3ZGZpZGJvUEtycUVveWRZIiwiZ3R5IjoiY2xpZW50LWNyZWRlbnRpYWxzIn0.clGEEfy-8yQNQ_f4TDc0OqA8Zi5gHq_-9gKFRif69DNnhzIbgqduVnaweR6x1KJU8CgnZiDMBKEwsiZw3gs-U8XnBIzbb8ImpdhYjoKnGv520oUKAA5RiAThamj1a0jGphmnDd3cCS6uIqdkSvxziE9ktL-MLNqbNFfgvdQuCo66YDqjhaHN7bqvliqaleUSRYZOd016M_N_ya21lamSxZcVintaktyvOApuAVgTMyIrrO8VuyhWW-cmiRFYKeTWnl2_kv9s_xQyWQ_PHH92rVCgRJwbofQEko4Isj4ZhLkA2xrurCPrz6VCtD5GYUfJNUWN_HcEHFsSqSYCsGfBAg"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Send a Portal via email to a specified email address
| portalId | string The unique ID for the |
string The email address to send the |
{- "portalId": "55f9964c-095d-4b8b-bb5e-4118d2e76ad0",
- "email": "john.smith@gmail.com"
}{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Get the publicly available data for a portal by subdomain and slug
curl -i -X GET \ https://api-v2.dash.app/subdomains/:subdomain/publicly-available-portal-datas/:slug \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "id": "55f9964c-095d-4b8b-bb5e-4118d2e76ad0",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "name": "Reseller portal",
- "currentSlug": "reseller-portal",
- "slugs": [
- "reseller-portal",
- "old-slug-here"
], - "whitelistedFolderFieldOptionIds": [
- "4cb261ad-dffb-414e-89cf-6902e3031d44",
- "4e14dc90-eb7b-4fd2-87e5-e8968c236ec0"
], - "welcomeMessage": {
- "title": "Welcome to our reseller portal",
- "body": "Take a look around our reseller portal and quickly find all the assets you need. Happy browsing!"
}, - "showRecentlyAddedAssets": true,
- "requiresPasscode": true,
- "assetPermittedActions": "VIEW"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}A SavedSearch is an AssetSearch(#operation/postAssetSearch).criterion and AssetSearch(#operation/postAssetSearch).sorts that have been saved by a user. The user may also chose to receive email updates every time a new asset matches the saved criterion.
Searching allows you to find SavedSearches resources in your Dash matching specific criteria.
Create a new SavedSearch resource.
| name required | string Name of the |
| emailUserOnNewUploads required | boolean Whether to email the creator when a new upload matches the saved search criterion |
required | any (AssetSearchCriterion) |
required | Array of objects (AssetSort) Sorts to be applied to the search in order of precedence |
{- "name": "My favourite search",
- "emailUserOnNewUploads": true,
- "criterion": {
- "type": "FIELD_EQUALS",
- "value": "Folder",
- "field": {
- "type": "FIXED",
- "fieldName": "STAGED_BY"
}, - "includeDescendants": true,
- "boost": null
}, - "sorts": [
- {
- "field": {
- "type": "FIXED",
- "fieldName": "STAGED_BY"
}, - "order": "ASC"
}
]
}{- "id": "1627573b-1273-441e-90d1-505d1f8ab47c",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "name": "My favourite search",
- "emailUserOnNewUploads": true,
- "criterion": {
- "type": "FIELD_EQUALS",
- "value": "Folder",
- "field": {
- "type": "FIXED",
- "fieldName": "STAGED_BY"
}, - "includeDescendants": true,
- "boost": null
}, - "sorts": [
- {
- "field": {
- "type": "FIXED",
- "fieldName": "STAGED_BY"
}, - "order": "ASC"
}
]
}Get a SavedSearch resource.
| id required | string The unique ID of the |
curl -i -X GET \ https://api-v2.dash.app/saved-searches/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "id": "1627573b-1273-441e-90d1-505d1f8ab47c",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "name": "My favourite search",
- "emailUserOnNewUploads": true,
- "criterion": {
- "type": "FIELD_EQUALS",
- "value": "Folder",
- "field": {
- "type": "FIXED",
- "fieldName": "STAGED_BY"
}, - "includeDescendants": true,
- "boost": null
}, - "sorts": [
- {
- "field": {
- "type": "FIXED",
- "fieldName": "STAGED_BY"
}, - "order": "ASC"
}
]
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Update a SavedSearch resource. Only the provided fields will be updated
| id required | string The unique ID of the |
| name | string Nullable Name of the |
| emailUserOnNewUploads | boolean Nullable Whether to email the creator when a new upload matches the saved search criterion |
{- "name": "My favourite search",
- "emailUserOnNewUploads": true
}{- "result": {
- "id": "1627573b-1273-441e-90d1-505d1f8ab47c",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "name": "My favourite search",
- "emailUserOnNewUploads": true,
- "criterion": {
- "type": "FIELD_EQUALS",
- "value": "Folder",
- "field": {
- "type": "FIXED",
- "fieldName": "STAGED_BY"
}, - "includeDescendants": true,
- "boost": null
}, - "sorts": [
- {
- "field": {
- "type": "FIXED",
- "fieldName": "STAGED_BY"
}, - "order": "ASC"
}
]
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Create a new SavedSearchSearch
The only use of a SavedSearchSearch as of now is to retrieve all the SavedSearch resources created by a User
| from required | integer Default: 0 The item number to begin the result set from |
| pageSize required | integer Default: 100 The maximum number of items to return in the result set |
required | any (SavedSearchSearchCriterion) |
| sorts required | Array of objects This search does not accept any sorts, but has the sorts parameter anyway to fit in with other searches. You must always provide an empty list for this parameter. |
{- "from": 0,
- "pageSize": 100,
- "criterion": {
- "type": "FIELD_EQUALS",
- "field": "CREATOR_ID",
- "value": "google-oauth2|110955770826801837334"
}, - "sorts": [ ]
}{- "results": [
- {
- "result": {
- "id": "1ecabbb8-85d5-11eb-8dcd-0242ac130003",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|340955570626871847637",
- "name": "Favourite search",
- "emailUserOnNewUploads": true,
- "criterion": {
- "type": "FIELD_EQUALS",
- "value": "a32fe863-0a1d-4b54-990a-b094139cf81c",
- "field": {
- "type": "FIELD",
- "fieldId": "a52b5315-15b8-417f-b742-d6902108bac1"
}
}, - "sorts": [ ]
}, - "permittedActions": [ ]
}, - {
- "result": {
- "id": "1fc6d6c3-c42d-48e2-b0db-5d680a58ca52",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|340955570626871847637",
- "name": "Added in January",
- "emailUserOnNewUploads": false,
- "criterion": {
- "type": "FIELD_MATCHES",
- "value": "[2021-01-01 TO 2021-02-01]",
- "field": {
- "type": "FIXED",
- "fieldName": "DATE_LIVE"
}
}, - "sorts": [ ]
}, - "permittedActions": [ ]
}, - {
- "result": {
- "id": "a52b5315-15b8-417f-b742-d6902108bac1",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|340955570626871847637",
- "name": "My saved search",
- "emailUserOnNewUploads": true,
- "criterion": {
- "type": "MATCH_ALL"
}, - "sorts": [
- {
- "field": {
- "type": "FIXED",
- "fieldName": "DATE_LIVE"
}, - "order": "DESC"
}
]
}, - "permittedActions": [ ]
}
], - "totalResults": 3
}curl -i -X GET \ https://api-v2.dash.app/groups \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
[- {
- "result": {
- "id": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "name": "My Group Name",
- "role": "BASIC",
- "numberOfUsers": 56,
- "fieldWhitelist": {
- "fieldWhitelistType": "ALL_OPTIONS"
}
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
]Create a Group
| name required | string The name of the group |
| role required | string (GroupRole) The role of users in this group |
required | any (FieldWhitelist) |
{- "name": "string",
- "role": "BASIC",
- "fieldWhitelist": {
- "fieldWhitelistType": "ALL_OPTIONS"
}
}{- "result": {
- "id": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "name": "My Group Name",
- "role": "BASIC",
- "numberOfUsers": 56,
- "fieldWhitelist": {
- "fieldWhitelistType": "ALL_OPTIONS"
}
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Get a Group
| id required | string The unique ID of the group Example: cff665ca-ce35-5418-b9d5-70ee815db4bc |
curl -i -X GET \ https://api-v2.dash.app/groups/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "id": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "name": "My Group Name",
- "role": "BASIC",
- "numberOfUsers": 56,
- "fieldWhitelist": {
- "fieldWhitelistType": "ALL_OPTIONS"
}
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Update a Group
| id required | string The unique ID of the group Example: cff665ca-ce35-5418-b9d5-70ee815db4bc |
| name | string Nullable The name of the group |
| role | string Nullable The role of users in this group |
object Nullable |
{- "name": "string",
- "role": "BASIC",
- "fieldWhitelist": {
- "fieldWhitelistType": "ALL_OPTIONS"
}
}{- "result": {
- "id": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "name": "My Group Name",
- "role": "BASIC",
- "numberOfUsers": 56,
- "fieldWhitelist": {
- "fieldWhitelistType": "ALL_OPTIONS"
}
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Delete a Group
| id required | string The unique ID of the group Example: cff665ca-ce35-5418-b9d5-70ee815db4bc |
curl -i -X DELETE \ https://api-v2.dash.app/groups/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Coming soon; contact us if you need access to this API endpoint.
Delete Staff Member with the specified ID.
| id required | string The unique ID of the |
curl -i -X DELETE \ https://api-v2.dash.app/staff-members/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}curl -i -X GET \ https://api-v2.dash.app/staff-members \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
[- {
- "id": "55f9964c-095d-4b8b-bb5e-4118d2e76ad0",
- "email": "some-staff-name@dash.app"
}
]Create a new Staff Member. Staff Members can log in to any Dash account.
| email required | string Email of the |
{- "email": "some-staff-name@dash.app"
}{- "id": "55f9964c-095d-4b8b-bb5e-4118d2e76ad0",
- "email": "some-staff-name@dash.app"
}The User resource contains information about a user in Dash such as their email address and their name (if provided).
Create a new User in the current account
| type required | string ADMIN IN_GROUPS ADMIN |
| email required | string The email address of the |
| welcomeMessage | string Default: "You have been invited to join Dash — a tool for managing images, videos and more." An optional welcome message included in the |
{- "type": "ADMIN",
- "email": "john.smith@gmail.com",
- "welcomeMessage": "You have been invited to join Dash — a tool for managing images, videos and more."
}{- "result": {
- "type": "ACTIVE_ACCOUNT_USER",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "id": "google-oauth2|110955770826801837334",
- "email": "john.smith@gmail.com",
- "permissions": {
- "permissionsType": "ADMIN"
}, - "name": "Ken Hassleback",
- "firstName": "Ken",
- "lastName": "Hassleback",
- "lastLogin": "2021-02-16T16:21:58.640+00:00"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Get a User
| id required | string The unique ID of the |
curl -i -X GET \ https://api-v2.dash.app/users/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "type": "ACTIVE_ACCOUNT_USER",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "id": "google-oauth2|110955770826801837334",
- "email": "john.smith@gmail.com",
- "permissions": {
- "permissionsType": "ADMIN"
}, - "name": "Ken Hassleback",
- "firstName": "Ken",
- "lastName": "Hassleback",
- "lastLogin": "2021-02-16T16:21:58.640+00:00"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Patch a User
| id required | string The unique ID of the |
| type required | string ADMIN IN_GROUPS ADMIN |
{- "type": "ADMIN"
}{- "result": {
- "type": "ACTIVE_ACCOUNT_USER",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "id": "google-oauth2|110955770826801837334",
- "email": "john.smith@gmail.com",
- "permissions": {
- "permissionsType": "ADMIN"
}, - "name": "Ken Hassleback",
- "firstName": "Ken",
- "lastName": "Hassleback",
- "lastLogin": "2021-02-16T16:21:58.640+00:00"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Delete a User and delete all AssetShares belonging to that user
| id required | string The unique ID of the |
curl -i -X DELETE \ https://api-v2.dash.app/users/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Create new User resources in the current account
required | Array of any (UserBatchRequestItem) |
{- "items": [
- {
- "batchItemId": "my-item-1",
- "type": "ADMIN",
- "email": "john.smith@gmail.com",
- "welcomeMessage": "You have been invited to join Dash — a tool for managing images, videos and more."
}
]
}{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "progress": {
- "steps": [
- {
- "name": "STEP_NAME",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 2
}
]
}, - "status": "PENDING"
}Get the status and eventual result of an UserBatchJob
| id required | string The unique ID of the |
curl -i -X GET \ https://api-v2.dash.app/user-batch-jobs/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "id": "be161977-d44e-4888-af3c-66522e223963",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "creatorId": "google-oauth2|110955770826801837334",
- "type": "IN_PROGRESS",
- "progress": {
- "steps": [
- {
- "name": "STEP_NAME",
- "status": "STARTED",
- "completedItems": 0,
- "totalItems": 2
}
]
}, - "status": "PENDING"
}Create a new UserSearch
| from required | integer Default: 0 The item number to begin the result set from |
| pageSize required | integer Default: 100 The maximum number of items to return in the result set |
required | any (UserSearchCriterion) |
required | Array of objects (UserSort) Sorts to be applied to the search in order of precedence |
{- "from": 0,
- "pageSize": 100,
- "criterion": {
- "type": "MATCH_ALL"
}, - "sorts": [
- {
- "field": "EMAIL",
- "order": "ASC"
}
]
}{- "results": [
- {
- "result": {
- "type": "ACTIVE_ACCOUNT_USER",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "id": "google-oauth2|110955770826801837334",
- "email": "john.smith@gmail.com",
- "permissions": {
- "permissionsType": "ADMIN"
}, - "name": "Ken Hassleback",
- "firstName": "Ken",
- "lastName": "Hassleback",
- "lastLogin": "2021-02-16T16:21:58.640+00:00"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
], - "totalResults": 10
}Delete a User with the option to delete all AssetShares belonging to that user
| id | string The unique ID of the |
| deleteAssetShares | boolean Whether to delete all |
{- "id": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "deleteAssetShares": true
}{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}curl -i -X GET \ https://api-v2.dash.app/current-user \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "type": "ACTIVE_ACCOUNT_USER",
- "accountId": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "id": "google-oauth2|110955770826801837334",
- "email": "john.smith@gmail.com",
- "permissions": {
- "permissionsType": "ADMIN"
}, - "name": "Ken Hassleback",
- "firstName": "Ken",
- "lastName": "Hassleback",
- "lastLogin": "2021-02-16T16:21:58.640+00:00"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
], - "deniedActionsWithReasons": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET",
- "denialReason": {
- "type": "UNVERIFIED_FREE_TRIAL"
}
}
]
}Get the currently authenticated User's creation status (used for detecting if a temporary signup token has been used)
curl -i -X GET \ https://api-v2.dash.app/current-user-creation-status \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "status": "PENDING"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Create a new Platform User
| email required | string The email address of the new user |
| password required | string The password of the new user |
| firstName | string Nullable The first name of the new user |
| lastName | string Nullable The last name of the new user |
{- "email": "ken.hasselback@gmail.com",
- "password": "password",
- "firstName": "Ken",
- "lastName": "Hasselback"
}{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Update a Platform User
| id required | string The unique ID of the |
| firstName | string Nullable The updated first name of the user |
| lastName | string Nullable The updated last name of the user |
{- "firstName": "Bob",
- "lastName": "Syurunkl"
}{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Get accounts which the currently authenticated Platform User's has a seat in
| from | integer Default: 0 The item number to begin the result set from |
| pageSize | integer Default: 100 The maximum number of items to return in the result set |
{- "from": 0,
- "pageSize": 100
}{- "results": [
- {
- "result": {
- "id": "cfb665ca-ce35-4418-b9d5-70ee815db4bd",
- "subdomain": "planto",
- "accentColour": "#333666",
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}
], - "totalResults": 15
}Request a Platform User password reset
| email required | string The email address to send the password reset to |
{- "email": "john.smith@gmail.com"
}{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Reset a Platform User password
| userId required | string The id of the user to reset the password for |
| password required | string The new password |
{- "userId": "john.smith@gmail.com",
- "password": "password2"
}{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Get an authentication token needed to create a Platform User
| email required | string The email address that the token should allow sign-up for |
| verificationCode | string The code which confirms the caller is verified owner of the supplied email address |
{- "email": "john.smith@gmail.com",
- "verificationCode": "string"
}{- "token": "string"
}Request verification code needed to retrieve authentication token to create a Platform User
| email required | string The email address to send the verification code to |
{- "email": "john.smith@gmail.com"
}{- "timestamp": "2021-02-16T16:21:58.640+00:00",
- "status": 401,
- "error": "Unauthorized",
- "message": null,
- "path": "/folder-settings"
}Coming soon; contact us if you need access to this API endpoint.
Get the currently authenticated User's referrer code
curl -i -X GET \ https://api-v2.dash.app/current-user-referrer \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "code": "5fb665ca-ce35-4418-b9d5-70ee815db4bd"
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Coming soon; contact us if you need access to this API endpoint.
Get the currently authenticated User's preferences
curl -i -X GET \ https://api-v2.dash.app/current-user-preferences \ -H 'Authorization: Bearer <YOUR_JWT_HERE>'
{- "result": {
- "userId": "google-oauth2|110955770826801837334",
- "defaultSort": {
- "field": {
- "type": "FIXED",
- "fieldName": "STAGED_BY"
}, - "order": "ASC"
}, - "defaultSearchFiltersMatchValues": {
- "property1": "ALL",
- "property2": "ALL"
}
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}Update the currently authenticated User's preferences
object Nullable | |
object Nullable |
{- "defaultSort": {
- "value": {
- "field": {
- "type": "FIXED",
- "fieldName": "STAGED_BY"
}, - "order": "ASC"
}
}, - "defaultSearchFiltersMatchValues": {
- "property1": "ALL",
- "property2": "ALL"
}
}{- "result": {
- "userId": "google-oauth2|110955770826801837334",
- "defaultSort": {
- "field": {
- "type": "FIXED",
- "fieldName": "STAGED_BY"
}, - "order": "ASC"
}, - "defaultSearchFiltersMatchValues": {
- "property1": "ALL",
- "property2": "ALL"
}
}, - "permittedActions": [
- {
- "resourceType": "ASSET",
- "resourceId": "7af90a8b-7ccd-430f-a85d-e8614015bc47",
- "action": "VIEW_ASSET"
}
]
}