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

# Extensis Portfolio API

Jentic publishes the only available OpenAPI specification for Extensis Portfolio API, keeping it validated and agent-ready. Extensis Portfolio is a digital asset management (DAM) platform used by creative and marketing teams to organise images, video, and design files. This subset exposes the core read paths: list catalogs, list assets within a catalog, fetch a single asset's metadata, and search across a catalog. Authentication is by API key in the Authorization header.

## For AI agents

List Extensis Portfolio catalogs, browse assets within a catalog, fetch a single asset's metadata, and search assets across a catalog using API-key authentication.

## Scope

Does not handle asset upload, image transformation, user management, or font licensing - use for listing catalogs, browsing assets, fetching asset metadata, and searching a catalog only.

## Capabilities

- List the digital asset catalogs available to the authenticated user
- Browse the assets contained in a specific Portfolio catalog
- Fetch the metadata, file information, and version history for a single asset
- Search assets within a catalog using full-text or field-based queries
- Use stable catalog and asset IDs for repeatable agent workflows
- Authenticate per-request with a single API key in the Authorization header

## Use cases

### Creative Asset Discovery

Use POST `/catalogs/{catalog_id}/search` to find creative assets within a Portfolio catalog by keyword, tag, or metadata field. Combined with GET `/catalogs/{catalog_id}/assets/{asset_id}`, an agent can find candidates and retrieve full metadata for each. This supports creative-ops workflows that need to surface the right asset without forcing a human to log into Portfolio's UI.

Example prompt: Call POST `/catalogs/{catalog_id}/search` with a query like {"query": "summer-campaign"} and pick the top result, then call GET `/catalogs/{catalog_id}/assets/{asset_id}` for its full metadata.

### Catalog Inventory Sync

An automation that mirrors Portfolio metadata into a downstream system can call GET /catalogs to enumerate catalogs and GET `/catalogs/{catalog_id}/assets` to list each catalog's assets. This is useful when a marketing or creative team needs Portfolio metadata visible inside another system such as a CMS or a content review queue.

Example prompt: Call GET /catalogs to list catalogs, then for each catalog call GET `/catalogs/{catalog_id}/assets` and write the asset metadata to the downstream store.

### Asset Metadata Retrieval for Approval Workflows

When an asset is referenced in an approval ticket, an agent can call GET `/catalogs/{catalog_id}/assets/{asset_id}` to fetch its current metadata, version, and file information. This ensures the approver is reviewing the right version and lets the agent attach the correct preview link to the ticket.

Example prompt: Call GET `/catalogs/{catalog_id}/assets/{asset_id}` and include the returned metadata block in the approval ticket as the canonical reference.

### AI Brand Asset Agent via Jentic

An AI assistant uses Jentic to call Extensis Portfolio operations on demand - for example, an agent embedded in a chat tool that finds a brand-approved logo or hero image when asked. The Portfolio API key sits in your Jentic One instance and is injected into the Authorization header per call.

Example prompt: Through Jentic, search 'search extensis portfolio assets', load POST `/catalogs/{catalog_id}/search`, and execute it with the user's keyword query.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/catalogs` | List catalogs |
| GET | `/catalogs/{catalog_id}/assets` | List assets in a catalog |
| GET | `/catalogs/{catalog_id}/assets/{asset_id}` | Get a single asset's metadata |
| POST | `/catalogs/{catalog_id}/search` | Search assets within a catalog |

## Key resources

- **Catalogs** — Top-level groupings of digital assets
- **Assets** — Individual digital asset records with metadata and version history

## Why Jentic

- **Setup:** Wiring the Extensis Portfolio API by hand means learning its Authorization header key auth and tracking the catalog, asset, and search endpoints under `/api/v1` yourself. Through Jentic you install once, import Extensis Portfolio from the API Directory, store the API key once, and your agent calls it.
- **Permission scoping:** Extensis Portfolio puts the catalog id in the URL path (`/catalogs/{catalog_id}/assets`), so a rule can pin your agent to one catalog for asset browsing and search. You choose the operations it may call, so it reads and searches that catalog and does nothing outside the set you allow.
- **Credential handling:** Your Extensis Portfolio API key is stored once, encrypted, by your own Jentic One instance and injected into the Authorization header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'search extensis portfolio assets' or 'list portfolio catalogs', and Jentic returns the matching operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Cloudinary Upload API** — Cloudinary handles image transformation and CDN delivery for assets stored in Portfolio
- **Brandfolder API** — Brandfolder is a competing digital asset management platform
- **Box API** — Box stores raw creative files alongside Portfolio's metadata layer

## FAQ

### Why is there no official OpenAPI spec for Extensis Portfolio API?

Extensis does not publish an OpenAPI specification for Portfolio. Jentic generates and maintains this spec so that AI agents and developers can call Extensis Portfolio API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Extensis Portfolio API use?

Authentication is by API key sent in the Authorization header (the spec defines an apiKey scheme named Authorization). Through Jentic, the API key sits in the encrypted vault and is injected at request time so it never appears in agent prompts or logs.

### Can I download asset binaries through this spec?

These four endpoints cover catalog and asset metadata and search only; binary download URLs are typically returned in the asset metadata payload from GET `/catalogs/{catalog_id}/assets/{asset_id}` and fetched separately. Treat metadata as the source of truth for binary location.

### How do I search a Portfolio catalog by keyword?

Call POST `/catalogs/{catalog_id}/search` with a JSON body describing the query. The endpoint returns matching assets within that catalog. Cross-catalog search is not supported by these four endpoints - iterate over catalogs from GET /catalogs and search each.

### How do I find brand assets through Jentic?

Run pip install jentic, then search 'search extensis portfolio assets', load the POST `/catalogs/{catalog_id}/search` operation, and execute it with the catalog ID and your keyword query. Jentic injects the Authorization API key at execution time.

### What are the rate limits for the Portfolio API?

Rate limits are not declared in this spec. Extensis applies per-tenant limits in production; treat 429 responses as authoritative and back off using any Retry-After header returned. For high-volume sync workloads contact Extensis to confirm headroom.

### Can I limit what my agent is allowed to do with the Extensis Portfolio API?

Yes. Because you run Jentic One yourself, your own rules decide which Extensis Portfolio operations and credentials the agent may use. Since the catalog ID sits in the URL path, you can pin the agent to a single catalog and grant only the read and search calls, such as GET /catalogs, GET `/catalogs/{catalog_id}/assets`, GET `/catalogs/{catalog_id}/assets/{asset_id}`, and POST `/catalogs/{catalog_id}/search.` Anything outside the set you allow stays off limits.
