Working with TTL (time-to-live) indexes

Create a TTL index

post /_api/index#ttl
Creates a time-to-live (TTL) index for the collection collection-name if it does not already exist. The call expects an object containing the index details.
Path Parameters
    Query Parameters
    • The collection name.

    HTTP Headers
      Request Body application/json
      • The time interval (in seconds) from the point in time stored in the fields attribute after which the documents count as expired. Can be set to 0 to let documents expire as soon as the server time passes the point in time stored in the document attribute, or to a higher number to delay the expiration.

      • an array with exactly one attribute path.

      • You can set this option to true to create the index in the background, which will not write-lock the underlying collection for as long as if the index is built in the foreground. The default value is false.

      • An easy-to-remember name for the index to look it up or refer to it in index hints. Index names are subject to the same character restrictions as collection names. If omitted, a name is auto-generated so that it is unique with respect to the collection, e.g. idx_832910498.

      • must be equal to "ttl".

      Responses
      • If the index already exists, then a HTTP 200 is returned.

      • If the index does not already exist and could be created, then a HTTP 201 is returned.

      • If the collection already contains another TTL index, then an HTTP 400 is returned, as there can be at most one TTL index per collection.

      • If the collection-name is unknown, then a HTTP 404 is returned.

      Examples

      Creating a TTL index

      curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/index?collection=sessions
      {
        "type": "ttl",
        "expireAfter": 3600,
        "fields": [
          "createdAt"
        ]
      }
      Show output