{"templateId":"openapi_docs","sharedDataIds":{"openAPIDocsStore":"oas-openapi/content-intelligence.yaml","sidebar":"sidebar-sidebars.yaml"},"props":{"definitionId":"openapi/content-intelligence.yaml","dynamicMarkdocComponents":[],"baseSlug":"/openapi/content-intelligence","seo":{"title":"Content Storage","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]},"description":"The Content Storage service manages references to binary content (files) through a\npluggable **adapter** model. Adapters represent different physical storage backends —\nfor example, AWS S3 (full read/write), CDN origins (Bunny, Bria), or external DAM\nconnectors. Callers never interact with storage directly; they work with **pre-signed\nURLs** that the service generates on demand, allowing content to be streamed directly\nfrom the storage provider without proxying through the platform.\n\nThe service supports **multiple adapters per organization with a priority ordering**,\nso that suitable storage defaults are chosen automatically without callers needing to\nspecify where content lives. Different adapters can be configured for different storage\nclasses (hot, warm, cold), affecting retrieval latency and cost.\n\n**Content lifecycle:**\n\n| Endpoint | Description |\n|---|---|\n| `register` | Record that a piece of content exists at a known storage location (used during channel sync) |\n| `retrieve-upload-url` | Get a pre-signed URL to upload a new file directly to the configured storage adapter |\n| `stage` | Prepare content for CDN delivery by writing it to the CDN origin adapter |\n| `retrieve-url` | Get a pre-signed download or streaming URL for a content item |\n| `retrieve-info` | Fetch content metadata: size, MIME type, checksums, dimensions (for images) |\n| `list-info` | Batch retrieval of content metadata for multiple items |\n| `update` | Update mutable content metadata (alt text, tags, etc.) |\n| `delete / undelete` | Soft-delete a content record with restore capability |\n| `purge` | Permanently remove the content record (does not delete the underlying file from storage) |\n| `deregister` | Remove the content reference without affecting the underlying stored file |\n\n**Adapter management:**\n\n| Endpoint | Description |\n|---|---|\n| `create-adapter` | Configure a new storage backend for the organization |\n| `update-adapter` | Modify adapter settings (credentials, priority, storage class) |\n| `retrieve-adapter / list-adapters` | Inspect configured adapters |\n| `delete-adapter / undelete-adapter / purge-adapter` | Manage adapter lifecycle |\n"},"itemId":"content-storage","disableAutoScroll":true,"metadata":{"subType":"openapi-operation"},"compilationErrors":[],"markdown":{"partials":{},"variables":{"rbac":{"teams":["anonymous"]},"user":{},"remoteAddr":{"hostname":"api.tenovos.com","port":4000,"ipAddress":"216.73.217.51"},"lang":"default_locale","env":{"PUBLIC_REDOCLY_BRANCH_NAME":"main"}}},"pagePropGetterError":{"message":"","name":""}},"slug":"/openapi/content-intelligence/content-storage","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}