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.
View Overlay File View on GitHub Overlay Specification

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

Raw ↑
# 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'