Skip to main content

Bynder DAM Integration

See Bynder DAM REST API.

Configuration Example​

// /tenants/example.com/projects/datasheets/upload/config.ion
{
"connections": [
{
"url": "https://bynder.example.com",
"uploadType": "bynder",
"authentication": {
"type": "OAuth2",
"grantType": "ClientCredentials",
"clientId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"clientSecret": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
}
}
]
}

It is recommended to seal the value of the clientSecret so that it looks like

"clientSecret": "{sealed:1:xxx:xxx:xxxxxxxxxxxxxxxxxxxxxxxx}"

Scope​

The default scope is as follows:

  • offline
  • asset:read
  • asset:write
  • collection:read
  • collection:write
  • meta.assetbank:read
  • meta.assetbank:write

Users may want to override this setting by explicitly setting the authentication.scope for the connection. Scope is a comma-separated string.

"authentication" : {
"type": "OAuth2",
"scope": "asset:read,asset:write"
// ... other settings ...
}

Supported Parameters​

API users can set some custom parameters when starting a rendering via the API. Additionally, users can set export parameters in the renderpdf worker.

The following custom or export parameters are supported to control the Bynder upload:

NameDescription
bynder_asset_nameSets a custom asset_name. The default is priint-<ticket>.
bynder_media_idSets a fixed media_id for the Bynder upload (not recommended)
bynder_brand_idSets a fixed Brand ID for the Bynder upload (if not set the first available brand is used)
bynder_brand_copyrightSets a copyright note for the Bynder upload
bynder_brand_descriptionSets a description for the Bynder upload
bynder_tagsComma separated list of Bynder tag IDs
bynder_meta_propsComma separated list of meta property names
bynder_meta_key_<prop>Property key id for the property prop as declared in bynder_meta_props
bynder_meta_val_<prop>Property value id for the property prop as declared in bynder_meta_props

Examples:​

Setting asset name.

/rest/tenants/example.com/projects/datasheets/renderpdf?custom=bynder_asset_name:foo-bar`

Setting custom metaproperty

/rest/tenants/example.com/projects/datasheets/renderpdf \
?custom=bynder_meta_props:myprop \
&custom=bynder_meta_key_myprop:85eaeca7-6cab-407d-8f27-0bdeb9039daf \
&custom=bynder_meta_val_myprop:1bd9e59d-5d35-4c7b-889a-8c46238229b1

Bynder Media Object​

Content of Bynder Media after upload looks as follows (just if you were wondering):

// media
{
"archive": false,
"brandId": "9EEC65CC-E8D6-40D9-5FAF4F1DC5971741",
"copyright": "",
"customMetaproperties": {},
"dateCreated": "2026-05-04T03:02:001Z",
"dateModified": "2026-05-04T03:02:001Z",
"datePublished": "2026-05-04T03:02:001Z",
"description": "",
"extensions": [],
"fileSize": 4,
"focusPoint": {},
"height": 0,
"id": "27347D33-2F9C-CB45-930F1AF4B1F008FC",
"isLimited": false,
"isPublic": false,
"mediaItems": null,
"name": "priint-pm3m5dm3tcijdgvvrgrqtuj4rq",
"orientation": "",
"original": "https://bynder.example.com/m/69a98dc1add6c4a9/original/priint-pm3m5dm3tcijdgvvrgrqtuj4rq.pdf",
"propertyOptions": [],
"tags": null,
"thumbnails": [],
"type": "document",
"videoPreviewURLs": null,
"width": 0
}

Authorization Code + Refresh Token​

(Internal Use Only — Not Recommended)

⚠️ Warning
The Authorization Code flow is designed for human user delegation and requires an interactive redirect. It is not suitable for our headless service, which aligns with the Client Credentials grant type for technical integrations. Use this flow only for internal testing or exceptional cases.

If you have an authorization code and refresh token from Bynder’s OAuth2 Authorization Code flow, configure as follows:

// /tenants/example.com/projects/datasheets/upload/config.ion
{
"connections": [
{
"url": "https://bynder.example.com",
"uploadType": "bynder",
"authentication": {
"type": "OAuth2",
"grantType": "AuthorizationCode",
"clientId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"clientSecret": "{sealed:1:xxx:xxx:xxxxxxxxxxxxxxxxxxxxxxxx}",
"codeVerifier": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"redirectUri": "https://your-app.example.com/callback",
"params": {
"bynder_refresh_token": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
}
}
}
]
}

Notes:

  • No server-side redirect: The service cannot handle interactive redirects. Get the authorization code and refresh token externally (e.g., via browser or OAuth2 client tool) and add them to the configuration.
  • Refresh token scope: Include the offline scope in the authorization request to get a non-expiring refresh token for new access tokens without user interaction.
  • Preferred method: Use Client Credentials for technical integrations, as it is the supported flow for this service.