Optimizely Library API

The Library API from Optimizely — 24 operation(s) for library.

Operations 41

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /folders List library folders · GET /folders #
Ask an LLM
“How do I see all the folders in my content marketing library?”
“Can I list only the subfolders inside one parent folder?”
Tell an agent
List the folders in my library, newest changes first.
Show the subfolders inside folder {parent_folder_id}.
POST /folders Create a library folder · POST /folders #
Ask an LLM
“How do I make a new folder in the Optimizely content library?”
“Can I create a folder nested inside another folder?”
Tell an agent
Create a library folder named {name}.
Create a folder called {name} inside parent folder {parent_folder_id}.
GET /folders/{id} Get a library folder · GET /folders/{id} #
Ask an LLM
“What are the details of a single library folder by its ID?”
“Can I look up one folder to see its name and parent?”
Tell an agent
Fetch library folder {id}.
Show me the details of folder {id}.
PATCH /folders/{id} Rename or move a library folder · PATCH /folders/{id} #
Ask an LLM
“How do I rename an existing library folder?”
“Can I move a folder under a different parent or back to the top level?”
Tell an agent
Rename folder {id} to {name}.
Move folder {id} under parent folder {parent_folder_id}.
DELETE /folders/{id} Delete a library folder · DELETE /folders/{id} #
Ask an LLM
“How do I remove a folder from my library?”
“Is deleting a library folder still an experimental feature?”
Tell an agent destructive · confirm first
Delete library folder {id}.
Remove the folder {id} from the library.
GET /folders/{id}/permissions List who can access a folder · GET /folders/{id}/permissions #
Ask an LLM
“Who has access to a particular library folder?”
“Can I filter a folder's permissions by access level?”
Tell an agent
List the users and teams with access to folder {id}.
Show accessors on folder {id} with at least {min_access} access.
POST /folders/{id}/permissions Grant folder access to users or teams · POST /folders/{id}/permissions #
Ask an LLM
“How do I share a library folder with a team?”
“Can I give specific users permission to a folder?”
Tell an agent
Grant {type} accessors {permissions} on folder {id}.
Share folder {id} with these accessors: {permissions}.
PATCH /folders/{id}/permissions/{accessor_id} Change someone's access level on a folder · PATCH /folders/{id}/permissions/{accessor_id} #
Ask an LLM
“How do I change a user's access level on a library folder?”
“Can I make someone an owner of a folder?”
Tell an agent
Set accessor {accessor_id}'s access on folder {id} to {access_type}.
Make {accessor_id} an owner of folder {id}.
DELETE /folders/{id}/permissions/{accessor_id} Revoke someone's access to a folder · DELETE /folders/{id}/permissions/{accessor_id} #
Ask an LLM
“How do I take away a user's access to a library folder?”
“Can I remove a team from a folder's permissions?”
Tell an agent destructive · confirm first
Remove accessor {accessor_id} from folder {id}.
Revoke folder {id} access for {accessor_id}.
POST /file-urls Generate download URLs for library files · POST /file-urls #
Ask an LLM
“How do I get download links for files stored in my library?”
“Can I generate download URLs for several files at once by their GUIDs?”
Tell an agent
Generate download URLs for file GUIDs {guids}.
Give me download links for the library files {guids}.
GET /assets List and search library assets · GET /assets #
Ask an LLM
“How do I list the images and videos in my content library?”
“Can I search library assets by title or description text?”
Tell an agent
List library assets of type {type}.
Search the library for assets matching {search_text}.
POST /assets Upload a new library asset · POST /assets #
Ask an LLM
“How do I add a new image, video or raw file to the library?”
“Can I put a newly uploaded asset straight into a specific folder?”
Tell an agent
Create an asset titled {title} from upload session {key}.
Add uploaded file {key} as asset {title} in folder {folder_id}.
GET /assets/{asset_id}/fields List an asset's custom fields · GET assets/{asset_id}/fields #
Ask an LLM
“What custom field values are set on a library asset?”
“Can I page through the fields attached to one asset?”
Tell an agent
List the fields on asset {asset_id}.
Show the custom field values for asset {asset_id}.
PUT /assets/{asset_id}/fields Replace all fields on an asset · PUT /assets/{asset_id}/fields #
Ask an LLM
“How do I overwrite every custom field on an asset in one call?”
“Can I replace an asset's whole set of field values?”
Tell an agent
Replace all field values on asset {asset_id}.
Overwrite the complete field set of asset {asset_id}.
PUT /assets/{asset_id}/fields/{field_id} Update one field value on an asset · PUT /assets/{asset_id}/fields/{field_id} #
Ask an LLM
“How do I change a single custom field value on an asset?”
“Can I edit one field without touching an asset's other fields?”
Tell an agent
Update field {field_id} on asset {asset_id}.
Set a new value for field {field_id} of asset {asset_id}.
POST /assets/{asset_id}/versions Add a new version to an asset · POST /assets/{asset_id}/versions #
Ask an LLM
“How do I upload a new version of an existing image or video?”
“Can I keep version history when replacing a library file?”
Tell an agent
Add a new version of asset {asset_id} from upload {key} titled {title}.
Upload upload-session {key} as the latest version of asset {asset_id}, titled {title}.
GET /assets/{asset_id}/renditions List an asset's renditions · GET /assets/{asset_id}/renditions #
Ask an LLM
“What renditions or resized versions exist for an asset?”
“Can I see every rendition generated for one image?”
Tell an agent
List the renditions of asset {asset_id}.
Show all renditions generated for asset {asset_id}.
GET /assets/{asset_id}/permissions List who can access an asset · GET /assets/{asset_id}/permissions #
Ask an LLM
“Who has permission to access a particular library asset?”
“Can I filter an asset's accessors by maximum access level?”
Tell an agent
List the users and teams with access to asset {asset_id}.
Show accessors on asset {asset_id} with {access} access.
POST /assets/{asset_id}/permissions Grant asset access to users or teams · POST /assets/{asset_id}/permissions #
Ask an LLM
“How do I share a single library asset with a team?”
“Can I give specific users permission to one asset?”
Tell an agent
Grant {type} accessors {permissions} on asset {asset_id}.
Share asset {asset_id} with these accessors: {permissions}.
PATCH /assets/{asset_id}/permissions/{accessor_id} Change someone's access level on an asset · PATCH /assets/{asset_id}/permissions/{accessor_id} #
Ask an LLM
“How do I change a user's access level on a single asset?”
“Can I make someone an owner of an asset?”
Tell an agent
Set accessor {accessor_id}'s access on asset {asset_id} to {access_type}.
Make {accessor_id} an owner of asset {asset_id}.
DELETE /assets/{asset_id}/permissions/{accessor_id} Revoke someone's access to an asset · DELETE /asstes/{asset_id}/permissions/{accessor_id} #
Ask an LLM
“How do I take away a user's access to a library asset?”
“Can I remove a team from an asset's permissions?”
Tell an agent destructive · confirm first
Remove accessor {accessor_id} from asset {asset_id}.
Revoke asset {asset_id} access for {accessor_id}.
GET /renditions/{id} Get a rendition · GET /renditions/{id} #
Ask an LLM
“What are the details of one rendition by its ID?”
“Can I look up a single rendition directly without its asset?”
Tell an agent
Fetch rendition {id}.
Show me the details of rendition {id}.
GET /rendition-configs/{id} Get a rendition configuration · GET /rendition-configs/{id} #
Ask an LLM
“How is a rendition configuration for my organization set up?”
“Can I inspect the settings of one rendition config by ID?”
Tell an agent
Get rendition configuration {id}.
Show the rendition config settings for {id}.
POST /assets/{asset_id}/lineages Record where an asset is used externally · POST /assets/{asset_id}/lineages #
Ask an LLM
“How do I track that an asset is used on an external website?”
“Can I record which rendition of an asset a page is using?”
Tell an agent
Record that asset {asset_id} is used at {uri} by source {name}.
Add a lineage for asset {asset_id} pointing to {uri}, named {name}, using rendition {rendition_id}.
DELETE /assets/{asset_id}/lineages/{lineage_id} Delete an asset lineage record · DELETE /assets/{asset_id}/lineages/{lineage_id} #
Ask an LLM
“How do I remove an external usage record from an asset?”
“Can I delete a lineage entry once an asset is no longer used there?”
Tell an agent destructive · confirm first
Delete lineage {lineage_id} from asset {asset_id}.
Remove the usage record {lineage_id} on asset {asset_id}.
GET /assets/{asset_id}/related-assets List an asset's related assets · GET /assets/{asset_id}/related-assets #
Ask an LLM
“Which assets are linked as related to a given article or image?”
“What asset types support related assets?”
Tell an agent
List the related assets of asset {asset_id}.
Show assets linked as related to {asset_id}.
PUT /assets/{asset_id}/related-assets Replace an asset's related assets · PUT /assets/{asset_id}/related-assets #
Ask an LLM
“How do I set the full list of related assets for an asset?”
“Can I overwrite which assets are linked as related to a video?”
Tell an agent
Replace the related assets of {asset_id} with {related_assets}.
Set {related_assets} as the only related assets on asset {asset_id}.
GET /asset-lineages List asset lineage records · GET /asset-lineages #
Ask an LLM
“Where are my library assets being used across external sites?”
“Can I filter lineage records by where an asset is used?”
Tell an agent
List all asset lineage records.
Show lineage records for asset {asset_id}.
GET /articles/{id} Get an article · GET /articles/{id} #
Ask an LLM
“How do I fetch a single article from the library?”
“Can I read an article's content by its ID?”
Tell an agent
Get article {id}.
Show me the library article {id}.
GET /images/{id} Get an image · GET /images/{id} #
Ask an LLM
“How do I fetch the details of a library image?”
“Can I see an image's alt text and tags by its ID?”
Tell an agent
Get image {id}.
Show me the library image {id}.
PATCH /images/{id} Update an image's metadata · PATCH /images/{id} #
Ask an LLM
“How do I change an image's title or alt text?”
“Can I make a library image public or set it to expire?”
Tell an agent
Set the alt text of image {id} to {alt_text}.
Rename image {id} to {title}.
DELETE /images/{id} Delete an image · DELETE /images/{id} #
Ask an LLM
“How do I delete an image from my content library?”
“Is deleting a library image permanent rather than archiving it?”
Tell an agent destructive · confirm first
Delete image {id}.
Remove the library image {id}.
GET /videos/{id} Get a video · GET /videos/{id} #
Ask an LLM
“How do I fetch the details of a library video?”
“Can I see a video's description and tags by its ID?”
Tell an agent
Get video {id}.
Show me the library video {id}.
PATCH /videos/{id} Update a video's metadata · PATCH /videos/{id} #
Ask an LLM
“How do I change a video's title or description?”
“Can I move a video into another folder or archive it?”
Tell an agent
Set the description of video {id} to {description}.
Move video {id} into folder {folder_id}.
DELETE /videos/{id} Delete a video · DELETE /videos/{id} #
Ask an LLM
“How do I delete a video from my content library?”
“Can I permanently remove a video asset by ID?”
Tell an agent destructive · confirm first
Delete video {id}.
Remove the library video {id}.
GET /raw-files/{id} Get a raw file · GET /raw-files/{id} #
Ask an LLM
“How do I fetch the details of a raw file in the library?”
“Can I look up a PDF or other raw file asset by ID?”
Tell an agent
Get raw file {id}.
Show me the library raw file {id}.
PATCH /raw-files/{id} Update a raw file's metadata · PATCH /raw-files/{id} #
Ask an LLM
“How do I rename a raw file or change its attribution text?”
“Can I make a raw file's URL public?”
Tell an agent
Rename raw file {id} to {title}.
Set the attribution text of raw file {id} to {attribution_text}.
DELETE /raw-files/{id} Delete a raw file · DELETE /raw-files/{id} #
Ask an LLM
“How do I delete a raw file from my content library?”
“Can I permanently remove a raw file asset by ID?”
Tell an agent destructive · confirm first
Delete raw file {id}.
Remove the library raw file {id}.
POST /structured-contents Create structured content · POST /structured-contents #
Ask an LLM
“How do I create a structured content asset in the library?”
“Can I put new structured content into a specific folder?”
Tell an agent
Create structured content titled {title} with body {content_body}.
Add structured content {content_body} to folder {folder_id}.
GET /structured-contents/{id} Get structured content · GET /structured-contents/{id} #
Ask an LLM
“How do I read a structured content asset by ID?”
“Can I fetch the body of one structured content item?”
Tell an agent
Get structured content {id}.
Show me the structured content body for {id}.
PATCH /structured-contents/{id} Update structured content · PATCH /structured-contents/{id} #
Ask an LLM
“How do I edit the body of a structured content asset?”
“Can I archive a structured content item?”
Tell an agent
Update the body of structured content {id} to {content_body}.
Archive structured content {id}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/optimizely:optimizely-library-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

optimizely-library-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: V3
  title: Optimizely CMP Open API Documentation Library API
servers:
- url: https://api.cmp.optimizely.com/v3
  description: v3 version of Optimizely CMP Open API
security:
- OAuth2:
  - openid
  - profile
  - offline_access
tags:


# --- truncated at 32 KB (171 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/optimizely/refs/heads/main/openapi/optimizely-library-api-openapi.yml