dotCMS Search Index API

Elasticsearch index management and operations

Operations 19

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

PUT /api/v1/esindex/activate/{params} Activate a search index · Activate index #
Ask an LLM
“How do I make a newly built index the live one content search uses?”
“Can I switch which Elasticsearch index is active?”
Tell an agent
Activate the search index given by {params}.
Make index {params} the active index for content search.
PUT /api/v1/esindex/clear/{params} Clear all documents from an index · Clear index #
Ask an LLM
“Can I empty an index of all its documents without deleting the index itself?”
“What wipes the contents of a dotCMS search index?”
Tell an agent destructive · confirm first
Clear every document out of index {params}.
Empty search index {params} but keep the index in place.
PUT /api/v1/esindex/close/{params} Close a search index · Close index #
Ask an LLM
“Can I close an index I'm not using right now?”
“Which call puts an Elasticsearch index into the closed state?”
Tell an agent
Close search index {params}.
Take index {params} offline by closing it.
PUT /api/v1/esindex/create/{params} Create a new search index · Create index #
Ask an LLM
“How do I create a fresh Elasticsearch index for content?”
“Can I set up a new index before reindexing into it?”
Tell an agent
Create a new search index using {params}.
Build an empty content index with settings {params}.
PUT /api/v1/esindex/deactivate/{params} Deactivate a search index · Deactivate index #
Ask an LLM
“Can I stop an index from being the active one without deleting it?”
“Which call deactivates a live content index?”
Tell an agent
Deactivate search index {params}.
Mark index {params} as no longer active.
GET /api/v1/esindex/failed Download records that failed to index · Download remaining records as csv #
Ask an LLM
“Which content items failed during the last reindex?”
“Can I export the failed reindex records as a CSV?”
Tell an agent
Download the failed reindex records as CSV.
Export the list of content that could not be indexed.
DELETE /api/v1/esindex/failed Clear the failed reindex records · Delete failed records #
Ask an LLM
“How do I clear out the list of records that failed to reindex?”
“Can I discard the failed indexing queue after I've reviewed it?”
Tell an agent destructive · confirm first
Delete all failed reindex records.
Purge the queue of content that failed to index.
PUT /api/v1/esindex/{indexName} Run an action on a named index · Mod index #
Ask an LLM
“Can I open, close or activate an index by name with a single endpoint?”
“Which call applies an action query parameter to a specific index?”
Tell an agent
Apply action {action} to index {indexName}.
Modify index {indexName} with the {action} operation.
DELETE /api/v1/esindex/{indexName} Delete a search index · Delete index #
Ask an LLM
“How do I permanently delete an old Elasticsearch index?”
“Can I remove an index by its name?”
Tell an agent destructive · confirm first
Delete search index {indexName}.
Permanently remove index {indexName} from the cluster.
DELETE /api/v1/esindex/cache Flush the search indices cache · Flush indicies cache #
Ask an LLM
“Can I flush the Elasticsearch caches when search results look stale?”
“What clears the indices cache on the search cluster?”
Tell an agent destructive · confirm first
Flush the search indices cache.
Clear the cached index data on the search cluster.
GET /api/v1/esindex/active/{params} Get the active search index · Get active #
Ask an LLM
“Which index is live for content search right now?”
“Can I check which index is currently active?”
Tell an agent
Get the active search index for {params}.
Tell me which index is currently live using {params}.
GET /api/v1/esindex/cluster Get search cluster statistics · Get cluster stats #
Ask an LLM
“How healthy is the Elasticsearch cluster behind dotCMS?”
“Can I pull statistics for the search cluster?”
Tell an agent
Get the search cluster statistics.
Show me the Elasticsearch cluster health and stats.
GET /api/v1/esindex List indices and their status · Get index status #
Ask an LLM
“What indices exist and which are active, closed or building?”
“Can I get the status of every content index at once?”
Tell an agent
List every search index with its status.
Show the current state of all content indices.
GET /api/v1/esindex/reindex Check reindex progress · Get reindexation progress #
Ask an LLM
“How far along is the full reindex that's running?”
“Is a reindex currently in progress?”
Tell an agent
Check the progress of the running reindex.
Report the status of the reindex that is running now.
POST /api/v1/esindex/reindex Start a content reindex · Start reindex #
Ask an LLM
“Can I reindex only one content type instead of everything?”
“How do I kick off a full reindex of site content?”
Tell an agent
Start a reindex of content type {contentType}.
Kick off a full content reindex.
DELETE /api/v1/esindex/reindex Stop a running reindex · Stop reindexation #
Ask an LLM
“Can I cancel a reindex that's taking too long?”
“When I stop a reindex, can I still switch over to the new index?”
Tell an agent destructive · confirm first
Stop the running reindex.
Abort the current reindex with switch set to {switch}.
GET /api/v1/esindex/indexlist/{params} List index names · Index list #
Ask an LLM
“What are the names of all the indices on the cluster?”
“Can I get just a plain list of index names?”
Tell an agent
List the index names using {params}.
Give me the names of every index matching {params}.
PUT /api/v1/esindex/open/{params} Reopen a closed search index · Open index #
Ask an LLM
“How do I reopen an index that was closed?”
“Can a closed index be brought back online?”
Tell an agent
Open closed search index {params}.
Bring index {params} back online by reopening it.
POST /api/v1/esindex/optimize Optimize the search indices · Optimize indices #
Ask an LLM
“Can I trigger an optimize of the content indices from the API?”
“Which call runs an optimize across the content indices?”
Tell an agent
Optimize all content indices.
Run an index optimization on the search indices.

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/dotcms:dotcms-search-index-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

dotcms-search-index-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: dotCMS REST Search Index API
  version: '3'
  description: Elasticsearch index management and operations
servers:
- url: /
  description: dotCMS Server
tags:
- name: Search Index
  description: Elasticsearch index management and operations
paths:
  /api/v1/esindex/activate/{params}:
    put:
      tags:
      - Search Index
      operationId: activateIndex
      parameters:
      - name: params
        in: path
        required: true
        schema:
          pattern: .*
          type: string
      responses:
        default:
          description: default response
          content:
            '*/*': {}
      deprecated: true
      summary: Activate index
      x-summary-source: derived
  /api/v1/esindex/clear/{params}:
    put:
      tags:
      - Search Index
      operationId: clearIndex
      parameters:
      - name: params
        in: path
        required: true
        schema:
          pattern: .*
          type: string
      responses:
        default:
          description: default response
          content:
            '*/*': {}
      deprecated: true
      summary: Clear index
      x-summary-source: derived
  /api/v1/esindex/close/{params}:
    put:
      tags:
      - Search Index
      operationId: closeIndex
      parameters:
      - name: params
        in: path
        required: true
        schema:
          pattern: .*
          type: string
      responses:
        default:
          description: default response
          content:
            '*/*': {}
      deprecated: true
      summary: Close index
      x-summary-source: derived
  /api/v1/esindex/create/{params}:
    put:
      tags:
      - Search Index
      operationId: createIndex
      parameters:
      - name: params
        in: path
        required: true
        schema:
          pattern: .*
          type: string
      responses:
        default:
          description: default response
          content:
            text/plain: {}
      deprecated: true
      summary: Create index
      x-summary-source: derived
  /api/v1/esindex/deactivate/{params}:
    put:
      tags:
      - Search Index
      operationId: deactivateIndex
      parameters:
      - name: params
        in: path
        required: true
        schema:
          pattern: .*
          type: string
      responses:
        default:
          description: default response
          content:
            '*/*': {}
      deprecated: true
      summary: Deactivate index
      x-summary-source: derived
  /api/v1/esindex/failed:
    get:
      tags:
      - Search Index
      operationId: downloadRemainingRecordsAsCsv
      responses:
        default:
          description: default response
          content:
            application/json: {}
      summary: Download remaining records as csv
      x-summary-source: derived
    delete:
      tags:
      - Search Index
      operationId: deleteFailedRecords
      responses:
        default:
          description: default response
          content:
            application/json: {}
      summary: Delete failed records
      x-summary-source: derived
  /api/v1/esindex/{indexName}:
    put:
      tags:
      - Search Index
      operationId: modIndex
      parameters:
      - name: indexName
        in: path
        required: true
        schema:
          pattern: .*
          type: string
      - name: action
        in: query
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json: {}
      summary: Mod index
      x-summary-source: derived
    delete:
      tags:
      - Search Index
      operationId: deleteIndex
      parameters:
      - name: indexName
        in: path
        required: true
        schema:
          pattern: .*
          type: string
      responses:
        default:
          description: default response
          content:
            application/json: {}
      summary: Delete index
      x-summary-source: derived
  /api/v1/esindex/cache:
    delete:
      tags:
      - Search Index
      operationId: flushIndiciesCache
      responses:
        default:
          description: default response
          content:
            application/json: {}
      summary: Flush indicies cache
      x-summary-source: derived
  /api/v1/esindex/active/{params}:
    get:
      tags:
      - Search Index
      operationId: getActive
      parameters:
      - name: params
        in: path
        required: true
        schema:
          pattern: .*
          type: string
      responses:
        default:
          description: default response
          content:
            text/plain: {}
      deprecated: true
      summary: Get active
      x-summary-source: derived
  /api/v1/esindex/cluster:
    get:
      tags:
      - Search Index
      operationId: getClusterStats
      responses:
        default:
          description: default response
          content:
            application/json: {}
      summary: Get cluster stats
      x-summary-source: derived
  /api/v1/esindex:
    get:
      tags:
      - Search Index
      operationId: getIndexStatus
      responses:
        default:
          description: default response
          content:
            application/json: {}
      summary: Get index status
      x-summary-source: derived
  /api/v1/esindex/reindex:
    get:
      tags:
      - Search Index
      operationId: getReindexationProgress
      responses:
        default:
          description: default response
          content:
            application/json: {}
      summary: Get reindexation progress
      x-summary-source: derived
    post:
      tags:
      - Search Index
      operationId: startReindex
      parameters:
      - name: contentType
        in: query
        schema:
          type: string
          default: DOTALL
      responses:
        default:
          description: default response
          content:
            application/json: {}
      summary: Start reindex
      x-summary-source: derived
    delete:
      tags:
      - Search Index
      operationId: stopReindexation
      parameters:
      - name: switch
        in: query
        schema:
          type: boolean
          default: true
      responses:
        default:
          description: default response
          content:
            application/json: {}
      summary: Stop reindexation
      x-summary-source: derived
  /api/v1/esindex/indexlist/{params}:
    get:
      tags:
      - Search Index
      operationId: indexList
      parameters:
      - name: params
        in: path
        required: true
        schema:
          pattern: .*
          type: string
      responses:
        default:
          description: default response
          content:
            application/json: {}
      summary: Index list
      x-summary-source: derived
  /api/v1/esindex/open/{params}:
    put:
      tags:
      - Search Index
      operationId: openIndex
      parameters:
      - name: params
        in: path
        required: true
        schema:
          pattern: .*
          type: string
      responses:
        default:
          description: default response
          content:
            '*/*': {}
      deprecated: true
      summary: Open index
      x-summary-source: derived
  /api/v1/esindex/optimize:
    post:
      tags:
      - Search Index
      operationId: optimizeIndices
      responses:
        default:
          description: default response
          content:
            application/json: {}
      summary: Optimize indices
      x-summary-source: derived