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

# Phraseanet API

Jentic publishes the only available OpenAPI specification for Phraseanet API, keeping it validated and agent-ready. Phraseanet is a digital asset management platform that provides a REST API for searching, organizing, and managing media records, stories, baskets, and feeds. The API exposes 16 endpoints for full-text search across media collections, metadata reading and writing, asset embedding, record upload, and collaborative basket workflows used by media teams, brand managers, and publishers.

## For AI agents

Search and manage digital assets including images, video, and documents. Retrieve records by metadata, organize into stories and baskets, upload new assets, and access embedded media files.

## Scope

Does not handle image editing, video transcoding, CDN delivery, or e-commerce storefront management - use for digital asset search, metadata, and organization only.

## Capabilities

- Search media records using full-text queries across metadata fields and collection scopes
- Retrieve record metadata and caption information for cataloging and rights management
- Upload new media assets with metadata into specific databoxes and collections
- Organize records into stories for editorial workflows and narrative sequencing
- Manage baskets for collaborative asset selection and approval workflows
- Access embedded media files in multiple rendition sizes for preview and download
- Browse content feeds for curated asset publishing and distribution

## Use cases

### Media Asset Search and Retrieval

Search across large media libraries using full-text queries against metadata fields including title, description, keywords, and custom fields. Phraseanet returns matching records with thumbnail previews and metadata summaries. Used by editorial teams, marketing departments, and publishers to locate specific assets from collections containing thousands of images, videos, and documents.

Example prompt: Search for records matching 'product launch 2026' using POST `/records/search` and return the first 10 results with their caption metadata

### Metadata Management and Updates

Read and write structured metadata on media records for cataloging, rights management, and workflow status tracking. Phraseanet supports custom metadata schemas per databox, enabling organization-specific fields. The API allows bulk metadata updates for re-categorization and rights assignment across multiple records.

Example prompt: Retrieve the caption for record ID 42 in databox 1 using GET `/records/1/42/caption`, then update its keywords using POST `/records/1/42/setmetadatas`

### Collaborative Asset Curation

Create and manage baskets for collaborative asset selection workflows. Teams add candidate records to shared baskets, review selections, and approve final assets for use in campaigns or publications. Baskets serve as lightweight project containers that multiple users can contribute to without modifying the source collections.

Example prompt: Create a new basket via POST `/baskets/add`, then retrieve its contents with GET `/baskets/{basket_id}/content` to verify it was created empty

### AI Agent Asset Discovery via Jentic

AI agents managing content workflows can search for and retrieve digital assets through Jentic without managing Phraseanet authentication directly. The agent searches for media operations, loads the endpoint schema, and executes searches or metadata lookups with Jentic handling instance-specific URL resolution and any authentication requirements.

Example prompt: Search Jentic for 'search digital assets by keyword', load the Phraseanet records/search operation, and execute a query for 'annual report' to find matching media files

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/records/search` | Full-text search across media records |
| GET | `/records/{databox_id}/{record_id}` | Retrieve a specific record by databox and ID |
| GET | `/records/{databox_id}/{record_id}/caption` | Get caption metadata for a record |
| POST | `/records/{databox_id}/{record_id}/setmetadatas` | Update metadata fields on a record |
| GET | `/records/{databox_id}/{record_id}/embed` | Get embedded media URLs in multiple sizes |
| POST | `/records/add` | Upload a new media record |
| POST | `/baskets/add` | Create a new basket for asset curation |
| GET | `/baskets/{basket_id}/content` | List records in a basket |

## Key resources

- **Records** — Search, retrieve, upload, and manage media records with metadata
- **Stories** — Organize records into editorial stories and narrative sequences
- **Baskets** — Create and manage collaborative asset selection baskets
- **Feeds** — Browse curated content feeds for publishing workflows
- **Databoxes** — List and manage collection containers with their metadata schemas

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 67 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 62 / 100
  - Developer Experience & Jentic Compatibility: 61 / 100
  - AI-Readiness & Agent Experience: 48 / 100
  - Agent Usability: 94 / 100
  - Security: 100 / 100
  - AI Discoverability: 100 / 100
- **View full report:** https://jentic.com/apis/phraseanet.com/phraseanet/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring the Phraseanet API by hand means pointing at your own {instance} host since the base URL is templated per deployment and formatting the record search and metadata requests yourself. Through Jentic you install once, import the Phraseanet API from the API Directory, and your agent calls it.
- **Permission scoping:** Phraseanet puts the databox and record ids in the URL path (`/records/{databox_id}/{record_id}`), so a rule can pin your agent to one record: it can read that record, its caption, and its embed. You choose the operations it may call, so writes like setting metadata or adding a record are not included unless you add them.
- **Credential handling:** The Phraseanet API needs no credential in this spec, so there is none for Jentic to store; any optional token you configure is stored once, encrypted, by your own Jentic One instance and injected at execution time, never entering the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'search the digital asset library', and Jentic returns the matching Phraseanet operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Brandfolder API** — Cloud-based digital asset management with brand portal and creative workflow features
- **Cloudinary Upload API** — Media transformation and CDN delivery for serving assets retrieved from Phraseanet
- **OpenAI API** — AI-powered metadata generation and image description for asset cataloging

## FAQ

### Why is there no official OpenAPI spec for Phraseanet API?

Phraseanet does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Phraseanet 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 Phraseanet API use?

The Phraseanet API authentication depends on instance configuration. Most deployments use OAuth 2.0 tokens passed in the Authorization header. Through Jentic, instance-specific credentials are stored in your Jentic One instance and injected at execution time regardless of the authentication method configured on the target instance.

### Can I search across multiple collections in a single query?

Yes. The POST `/records/search` endpoint accepts collection scope parameters that let you search across multiple databoxes simultaneously. Results include the databox ID and record ID for each match, enabling cross-collection asset discovery in a single API call.

### How do I upload a new asset with metadata to Phraseanet?

Use POST `/records/add` with the media file and metadata fields in the request body. You specify the target databox and collection, and Phraseanet creates the record with initial metadata. After upload, use POST `/records/{databox_id}/{record_id}/setmetadatas` to add or update additional metadata fields.

### How do I retrieve asset download URLs through Jentic?

Search Jentic for 'get media download URL from Phraseanet' to find the GET `/records/{databox_id}/{record_id}/embed` operation. Load the schema, provide the databox ID and record ID, and execute. The response includes URLs for multiple rendition sizes (thumbnail, preview, original) ready for download or embedding.

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

Yes. Jentic One is self-hosted by you, so your own rules decide which Phraseanet operations and credentials the agent may use. Because Phraseanet puts the databox and record IDs in the URL path (`/records/{databox_id}/{record_id}`), a rule can pin the agent to a single record and let it read only that record, its caption, and its embed. You choose the operations it may call, so writes such as POST `/records/{databox_id}/{record_id}/setmetadatas` or POST `/records/add` stay off limits unless you add them.
