canonical: https://jentic.com/apis/damsuccess.com/damsuccess

# Damsuccess Webdam REST API

Webdam (now part of Bynder) is a digital asset management platform used by marketing and brand teams to organise and distribute approved creative. The REST API exposes 20 endpoints covering OAuth token issuance, asset upload and retrieval, folder hierarchy management, lightboxes for curated collections, search, and user lookup. It targets enterprise teams that need programmatic access to a controlled asset library rather than a general-purpose file store.

## For AI agents

Manage Webdam digital assets, folders, lightboxes, and search programmatically for brand-controlled creative distribution.

## Scope

Does not handle CDN delivery configuration, image transformations, or licence rights tracking - use for Webdam asset, folder, lightbox, and search management only.

## Capabilities

- Obtain an OAuth 2.0 access token via POST `/oauth2/token` to authenticate subsequent calls
- Browse the folder tree, including subfolders and assets within each folder
- Upload an approved asset into a target folder with POST `/folders/{folderId}/assets`
- Update asset metadata or delete an expired asset by assetId
- Download a Webdam asset binary via GET `/assets/{assetId}/download` for distribution
- Search the asset library with GET /search and curate matches into a lightbox

## Use cases

### Approved Creative Distribution

Brand teams that need to push freshly approved creative into channel partner workflows automate the upload and link-sharing path. The agent obtains an OAuth token, calls POST `/folders/{folderId}/assets` to upload the file, and then calls GET `/assets/{assetId}/download` to surface a download URL that can be shared with the partner without exposing the dashboard.

Example prompt: POST a logo file to `/folders/12345/assets` and return the resulting asset's /download URL.

### Campaign Lightbox Curation

Marketing managers running a multi-asset campaign use lightboxes to group approved creative for a specific launch. The agent calls POST /lightboxes to create the lightbox, runs GET /search for the campaign keyword, and POSTs each matching assetId to `/lightboxes/{lightboxId}/assets` so the campaign team has a single ready-to-share collection.

Example prompt: POST /lightboxes with name 'Q4 Launch', then for each asset returned by GET /search?q='Q4 launch' POST it to `/lightboxes/{lightboxId}/assets.`

### Folder Tree Audit and Cleanup

Operations teams that own asset hygiene walk the folder hierarchy via GET `/folders/{folderId}/folders` and GET `/folders/{folderId}/assets`, identify assets that have aged out or duplicate the same name in multiple folders, and call DELETE `/assets/{assetId}` or DELETE `/folders/{folderId}` to clean up. This makes governance of a multi-thousand-asset library practical.

Example prompt: Recursively walk `/folders/{folderId}/folders`, list assets per folder, and DELETE assets whose updated_at is older than 24 months.

### Agent-Assisted Asset Search

An AI agent helping a marketer find on-brand imagery for a deck calls GET /search with the prompt's keywords, ranks results by metadata match, and returns download URLs through GET `/assets/{assetId}/download.` The OAuth token is held in Jentic so the agent never sees the raw client secret, which matters for tightly governed asset libraries.

Example prompt: Call GET /search?q='blue product shot landscape' and return the top 5 download URLs from `/assets/{assetId}/download.`

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/oauth2/token` | Obtain an access token |
| GET | `/assets/{assetId}` | Get asset details |
| GET | `/assets/{assetId}/download` | Download an asset |
| POST | `/folders/{folderId}/assets` | Upload asset to folder |
| GET | `/search` | Search assets |
| POST | `/lightboxes` | Create a lightbox |
| POST | `/lightboxes/{lightboxId}/assets` | Add an asset to a lightbox |
| DELETE | `/assets/{assetId}` | Delete an asset |

## Key resources

- **Authentication** — OAuth 2.0 token issuance for subsequent API calls
- **Assets** — Asset metadata, update, delete, and binary download
- **Folders** — Folder hierarchy with subfolder and asset listings
- **Lightboxes** — Curated asset collections for campaigns and shares
- **Search** — Free-text asset search across the library
- **Users** — Current-user and user-list endpoints

## Why Jentic

- **Setup:** Wiring Webdam by hand means implementing its OAuth2 token flow against apiv2.webdamdb.com and building the upload, search, and retry plumbing for assets and lightboxes yourself. Through Jentic you install once, import the Webdam REST API from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** Webdam puts the asset and folder ids in the URL path (`/assets/{assetId}`, `/folders/{folderId}/assets`), so a rule can pin your agent to one folder for adding assets and to specific assets for reads and downloads. You choose the operations it may call, so deleting an asset is not included unless you add it.
- **Credential handling:** Your Webdam OAuth client credentials and issued access tokens are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'upload an asset to Webdam' or 'search the Webdam library', and Jentic returns the matching operation with its input schema so the agent calls the right endpoint without browsing the developer documentation.

## Related APIs

- **Brandfolder API** — DAM platform with similar asset, folder, and search surface aimed at brand teams.
- **Cloudinary Admin API** — Developer-focused image and video DAM with strong transformation pipeline.
- **Dropbox API v2** — General-purpose file storage that can stage assets before they land in Webdam.
- **Box Content API** — Enterprise content storage that pairs with Webdam as a wider document store.

## FAQ

### What authentication does the Webdam REST API use?

Webdam uses OAuth 2.0. You call POST `/oauth2/token` with your client credentials to obtain an access token, then pass it as Authorization: Bearer <token> on every subsequent request to apiv2.webdamdb.com. Through Jentic the OAuth client credentials are stored encrypted in the vault and the agent receives a scoped runtime token, so the raw client secret is never exposed.

### Can I upload an asset into a Webdam folder via the API?

Yes. POST `/folders/{folderId}/assets` accepts the binary upload along with metadata such as filename and description. Use GET `/folders/{folderId}/folders` to walk the tree to the right destination folder before uploading.

### What are the rate limits for the Webdam REST API?

The OpenAPI spec does not declare hard rate limits. Webdam's published guidance is plan-dependent; for sustained automation, treat 5 requests per second per token as a safe ceiling and stagger bulk uploads by chunking work across multiple short batches.

### How do I download a Webdam asset through Jentic?

Install pip install jentic and run an agent with the search query 'download a Webdam asset'. Jentic returns the GET `/assets/{assetId}/download` operation with its input schema; the agent supplies the assetId and writes the response binary to disk or to a downstream storage system.

### Can I search the Webdam library by keyword?

Yes. GET /search accepts a query parameter and returns matching asset records. Pair it with POST /lightboxes and POST `/lightboxes/{lightboxId}/assets` to convert a search result list into a curated collection for a campaign.

### Is the Webdam REST API free?

API access is included with paid Webdam (now Bynder) plans; there is no free tier for the platform itself. The API does not impose a per-call charge, so the constraint is the underlying plan rather than per-request pricing.

### Can I limit what my agent is allowed to do with the Webdam REST API?

Yes. Because you run Jentic One yourself, your own rules decide which Webdam operations and credentials the agent may use. Webdam carries the asset and folder ids in the URL path (`/assets/{assetId}`, `/folders/{folderId}/assets`), so you can pin the agent to a single folder for uploads and to specific assets for reads and downloads via GET `/assets/{assetId}/download.` You choose the operations it can call, so DELETE `/assets/{assetId}` stays off the list unless you explicitly allow it.
