--- layout: default title: Popular APIs parent: OpenSearch nav_order: 96 --- # Popular APIs This page contains sample requests for popular OpenSearch APIs. --- #### Table of contents 1. TOC {:toc} --- ## Create index with non-default settings ```json PUT my-logs { "settings": { "number_of_shards": 4, "number_of_replicas": 2 }, "mappings": { "properties": { "title": { "type": "text" }, "year": { "type": "integer" } } } } ``` ## Index a document with a random ID ```json POST my-logs/_doc { "title": "Your Name", "year": "2016" } ``` ## Index a document with a specific ID ```json PUT my-logs/_doc/1 { "title": "Weathering with You", "year": "2019" } ``` ## Index several documents at once The blank line at the end of the request body is required. If you omit the `_id` field, OpenSearch generates a random ID. ```json POST _bulk { "index": { "_index": "my-logs", "_id": "2" } } { "title": "The Garden of Words", "year": 2013 } { "index" : { "_index": "my-logs", "_id" : "3" } } { "title": "5 Centimeters Per Second", "year": 2007 } ``` ## List all indices ``` GET _cat/indices?v ``` ## Open or close all indices that match a pattern ``` POST my-logs*/_open POST my-logs*/_close ``` ## Delete all indices that match a pattern ``` DELETE my-logs* ``` ## Create an index alias This request creates the alias `my-logs-today` for the index `my-logs-2019-11-13`. ``` PUT my-logs-2019-11-13/_alias/my-logs-today ``` ## List all aliases ``` GET _cat/aliases?v ``` ## Search an index or all indices that match a pattern ``` GET my-logs/_search?q=test GET my-logs*/_search?q=test ``` ## Get cluster settings, including defaults ``` GET _cluster/settings?include_defaults=true ``` ## Change disk watermarks (or other cluster settings) ```json PUT _cluster/settings { "transient": { "cluster.routing.allocation.disk.watermark.low": "80%", "cluster.routing.allocation.disk.watermark.high": "85%" } } ``` ## Get cluster health ``` GET _cluster/health ``` ## List nodes in the cluster ``` GET _cat/nodes?v ``` ## Get node statistics ``` GET _nodes/stats ``` ## Get snapshots in a repository ``` GET _snapshot/my-repository/_all ``` ## Take a snapshot ``` PUT _snapshot/my-repository/my-snapshot ``` ## Restore a snapshot ```json POST _snapshot/my-repository/my-snapshot/_restore { "indices": "-.opensearch_security", "include_global_state": false } ```