dotCMS · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for dotCMS REST Content Delivery API
9 actions
9 updates
phrasing
extends
openapi/dotcms-content-delivery-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for dotCMS's API. It is a proposal applied on top of the contract, not a document dotCMS publishes.
What the actions change
x-apievangelist-phrasing
Targets 9
$.info
$.paths['/api/content/canLock/{params}'].put
$.paths['/api/content/{params}'].get
$.paths['/api/content/{params}'].put
$.paths['/api/content/{params}'].post
$.paths['/api/content/indexcount/{query}'].get
$.paths['/api/content/indexsearch/{query}/sortby/{sortby}/limit/{limit}/offset/{offset}'].get
$.paths['/api/content/lock/{params}'].put
$.paths['/api/content/unlock/{params}'].put
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for dotCMS REST Content Delivery API
version: 1.0.0
extends: openapi/dotcms-content-delivery-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 8
- target: $.paths['/api/content/canLock/{params}'].put
update:
x-apievangelist-phrasing:
intent: Check if a contentlet can be locked (legacy)
effect: read
questions:
- Before editing, can I check whether I'm allowed to lock a piece of content and who holds the lock now?
- Which deprecated content endpoint reports lock status and the lock owner?
instructions:
- text: Check whether I can lock the contentlet given by {params}.
slots:
params: path.params
- text: Report the current lock status and owner for content {params} using the legacy canLock route.
slots:
params: path.params
method: generated
generated: '2026-09-26'
- target: $.paths['/api/content/{params}'].get
update:
x-apievangelist-phrasing:
intent: Retrieve content by ID, inode or query
effect: read
questions:
- Can I pull a contentlet by its identifier and include related content two levels deep?
- How do I fetch only the live version of content in a specific language?
- Can I get content back as XML instead of JSON?
instructions:
- text: Get content using the path parameters {params}.
slots:
params: path.params
- text: Fetch the live contentlet described by {params}, rendering its widgets.
slots:
params: path.params
method: generated
generated: '2026-09-26'
- target: $.paths['/api/content/{params}'].put
update:
x-apievangelist-phrasing:
intent: Create or update content via PUT (deprecated)
effect: write
questions:
- Can the old /api/content PUT endpoint update an existing contentlet as well as create one?
- Which deprecated endpoint accepts form-encoded or XML data to save content?
instructions:
- text: Create or update the contentlet described by {params} with the deprecated PUT endpoint.
slots:
params: path.params
- text: Save changes to existing content {params} through the legacy PUT content route.
slots:
params: path.params
method: generated
generated: '2026-09-26'
- target: $.paths['/api/content/{params}'].post
update:
x-apievangelist-phrasing:
intent: Create content via POST (deprecated)
effect: write
questions:
- Can I still create new content by POSTing JSON to the old content endpoint?
- Which legacy POST route adds a brand-new contentlet?
instructions:
- text: Create a new contentlet using the deprecated POST endpoint with {params}.
slots:
params: path.params
- text: Add brand-new content via the legacy POST content route, passing {params}.
slots:
params: path.params
method: generated
generated: '2026-09-26'
- target: $.paths['/api/content/indexcount/{query}'].get
update:
x-apievangelist-phrasing:
intent: Count content matching a Lucene query
effect: read
questions:
- How many contentlets match a Lucene query?
- Can I get just a total count of search matches as plain text?
instructions:
- text: Count the content matching Lucene query {query}.
slots:
query: path.query
- text: Tell me how many items match {query} in the content index.
slots:
query: path.query
method: generated
generated: '2026-09-26'
- target: $.paths['/api/content/indexsearch/{query}/sortby/{sortby}/limit/{limit}/offset/{offset}'].get
update:
x-apievangelist-phrasing:
intent: Search the content index with Lucene
effect: read
questions:
- Can I search content with a Lucene query and get back identifiers and inodes?
- How do I page through index search results with a sort field, limit and offset?
instructions:
- text: Search the content index for {query}, sorted by {sortby}, returning {limit} results from offset {offset}.
slots:
query: path.query
sortby: path.sortby
limit: path.limit
offset: path.offset
- text: Find identifiers of content matching {query} ordered by {sortby}, {limit} at a time starting at {offset}.
slots:
query: path.query
sortby: path.sortby
limit: path.limit
offset: path.offset
method: generated
generated: '2026-09-26'
- target: $.paths['/api/content/lock/{params}'].put
update:
x-apievangelist-phrasing:
intent: Lock a contentlet (deprecated)
effect: write
questions:
- How do I lock content so nobody else edits it at the same time?
- Is there a legacy endpoint to lock a contentlet by inode or identifier?
instructions:
- text: Lock the contentlet given by {params}.
slots:
params: path.params
- text: Lock content {params} to prevent concurrent edits using the legacy lock route.
slots:
params: path.params
method: generated
generated: '2026-09-26'
- target: $.paths['/api/content/unlock/{params}'].put
update:
x-apievangelist-phrasing:
intent: Unlock a contentlet (deprecated)
effect: write
questions:
- How do I release a lock on content so others can edit it?
- Which older endpoint unlocks a previously locked contentlet?
instructions:
- text: Unlock the contentlet given by {params}.
slots:
params: path.params
- text: Release the edit lock on content {params} via the legacy unlock route.
slots:
params: path.params
method: generated
generated: '2026-09-26'
Work with this as data
Every overlay 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 openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.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.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/dotcms-content-delivery-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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.