# 1.2.26. Configuration

The CouchDB Server Configuration API provide an interface to query and update the various configuration values within a running CouchDB instance.

## 1.2.26.1. Accessing the local node’s configuration

The literal string `_local` serves as an alias for the local node name, so for all configuration URLs, `{node-name}` may be replaced with `_local`, to interact with the local node’s configuration.

## 1.2.26.2. `/_node/{node-name}/_config`

GET /_node/{node-name}/_config

  Returns the entire CouchDB server configuration as a JSON structure. The structure is organized by different configuration sections, with individual values.

  Request Headers:

    - Accept –

      - application/json

      - text/plain

  Response Headers:

    - Content-Type –

      - application/json

      - text/plain; charset=utf-8

  Status Codes:

    - 200 OK – Request completed successfully

    - 401 Unauthorized – CouchDB Server Administrator privileges required

    - 403 Forbidden – Insufficient permissions / Too many requests with invalid credentials

  Request

      GET /_node/nonode@nohost/_config HTTP/1.1
      Accept: application/json
      Host: localhost:5984

  Response:

      HTTP/1.1 200 OK
      Cache-Control: must-revalidate
      Content-Length: 4148
      Content-Type: application/json
      Date: Sat, 10 Aug 2013 12:01:42 GMT
      Server: CouchDB (Erlang/OTP)

      {
          "attachments": {
              "compressible_types": "text/*, application/javascript, application/json,  application/xml",
              "compression_level": "8"
          },
          "couchdb": {
              "users_db_suffix": "_users",
              "database_dir": "/var/lib/couchdb",
              "max_attachment_chunk_size": "4294967296",
              "max_dbs_open": "100",
              "os_process_timeout": "5000",
              "uri_file": "/var/lib/couchdb/couch.uri",
              "util_driver_dir": "/usr/lib64/couchdb/erlang/lib/couch-1.5.0/priv/lib",
              "view_index_dir": "/var/lib/couchdb"
          },
          "chttpd": {
              "allow_jsonp": "false",
              "bind_address": "0.0.0.0",
              "port": "5984",
              "require_valid_user": "false",
              "socket_options": "[{sndbuf, 262144}, {nodelay, true}]",
              "server_options": "[{recbuf, undefined}, {acceptor_pool_size, 32}, {max, 65536}]",
              "secure_rewrites": "true"
          },
          "httpd": {
              "authentication_handlers": "{couch_httpd_auth, cookie_authentication_handler}, {couch_httpd_auth, default_authentication_handler}",
              "bind_address": "192.168.0.2",
              "max_connections": "2048",
              "port": "5984",
          },
          "log": {
              "writer": "file",
              "file": "/var/log/couchdb/couch.log",
              "include_sasl": "true",
              "level": "info"
          },
          "query_server_config": {
              "reduce_limit": "true"
          },
          "replicator": {
              "max_http_pipeline_size": "10",
              "max_http_sessions": "10"
          },
          "stats": {
              "interval": "10"
          },
          "uuids": {
              "algorithm": "utc_random"
          }
      }

## 1.2.26.3. `/_node/{node-name}/_config/{section}`

GET /_node/{node-name}/_config/{section}

  Gets the configuration structure for a single section.

  Parameters:

    - section – Configuration section name

  Request Headers:

    - Accept –

      - application/json

      - text/plain

  Response Headers:

    - Content-Type –

      - application/json

      - text/plain; charset=utf-8

  Status Codes:

    - 200 OK – Request completed successfully

    - 401 Unauthorized – CouchDB Server Administrator privileges required

    - 403 Forbidden – Insufficient permissions / Too many requests with invalid credentials

  Request:

      GET /_node/nonode@nohost/_config/httpd HTTP/1.1
      Accept: application/json
      Host: localhost:5984

  Response:

      HTTP/1.1 200 OK
      Cache-Control: must-revalidate
      Content-Length: 444
      Content-Type: application/json
      Date: Sat, 10 Aug 2013 12:10:40 GMT
      Server: CouchDB (Erlang/OTP)

      {
          "authentication_handlers": "{couch_httpd_auth, cookie_authentication_handler}, {couch_httpd_auth, default_authentication_handler}",
          "bind_address": "127.0.0.1",
          "default_handler": "{couch_httpd_db, handle_request}",
          "port": "5984"
      }

## 1.2.26.4. `/_node/{node-name}/_config/{section}/{key}`

GET /_node/{node-name}/_config/{section}/{key}

  Gets a single configuration value from within a specific configuration section.

  Parameters:

    - section – Configuration section name

    - key – Configuration option name

  Request Headers:

    - Accept –

      - application/json

      - text/plain

  Response Headers:

    - Content-Type –

      - application/json

      - text/plain; charset=utf-8

  Status Codes:

    - 200 OK – Request completed successfully

    - 401 Unauthorized – CouchDB Server Administrator privileges required

    - 403 Forbidden – Insufficient permissions / Too many requests with invalid credentials

  Request:

      GET /_node/nonode@nohost/_config/log/level HTTP/1.1
      Accept: application/json
      Host: localhost:5984

  Response:

      HTTP/1.1 200 OK
      Cache-Control: must-revalidate
      Content-Length: 8
      Content-Type: application/json
      Date: Sat, 10 Aug 2013 12:12:59 GMT
      Server: CouchDB (Erlang/OTP)

      "debug"

  Note

  The returned value will be the JSON of the value, which may be a string or numeric value, or an array or object. Some client environments may not parse simple strings or numeric values as valid JSON.

PUT /_node/{node-name}/_config/{section}/{key}

  Updates a configuration value. The new value should be supplied in the request body in the corresponding JSON format. If you are setting a string value, you must supply a valid JSON string. In response CouchDB sends old value for target section key.

  Parameters:

    - section – Configuration section name

    - key – Configuration option name

  Request Headers:

    - Accept –

      - application/json

      - text/plain

    - Content-Type – application/json

  Response Headers:

    - Content-Type –

      - application/json

      - text/plain; charset=utf-8

  Status Codes:

    - 200 OK – Request completed successfully

    - 400 Bad Request – Invalid JSON request body

    - 401 Unauthorized – CouchDB Server Administrator privileges required

    - 403 Forbidden – Insufficient permissions / Too many requests with invalid credentials

    - 500 Internal Server Error – Error setting configuration

  Request:

      PUT /_node/nonode@nohost/_config/log/level HTTP/1.1
      Accept: application/json
      Content-Length: 7
      Content-Type: application/json
      Host: localhost:5984

      "info"

  Response:

      HTTP/1.1 200 OK
      Cache-Control: must-revalidate
      Content-Length: 8
      Content-Type: application/json
      Date: Sat, 10 Aug 2013 12:12:59 GMT
      Server: CouchDB (Erlang/OTP)

      "debug"

DELETE /_node/{node-name}/_config/{section}/{key}

  Deletes a configuration value. The returned JSON will be the value of the configuration parameter before it was deleted.

  Parameters:

    - section – Configuration section name

    - key – Configuration option name

  Request Headers:

    - Accept –

      - application/json

      - text/plain

  Response Headers:

    - Content-Type –

      - application/json

      - text/plain; charset=utf-8

  Status Codes:

    - 200 OK – Request completed successfully

    - 401 Unauthorized – CouchDB Server Administrator privileges required

    - 403 Forbidden – Insufficient permissions / Too many requests with invalid credentials

    - 404 Not Found – Specified configuration option not found

  Request:

      DELETE /_node/nonode@nohost/_config/log/level HTTP/1.1
      Accept: application/json
      Host: localhost:5984

  Response:

      HTTP/1.1 200 OK
      Cache-Control: must-revalidate
      Content-Length: 7
      Content-Type: application/json
      Date: Sat, 10 Aug 2013 12:29:03 GMT
      Server: CouchDB (Erlang/OTP)

      "info"

## 1.2.26.5. `/_node/{node-name}/_config/_reload`

Added in version 3.0.

POST /_node/{node-name}/_config/_reload

  Reloads the configuration from disk. This has a side effect of flushing any in-memory configuration changes that have not been committed to disk.

  Request:

      POST /_node/nonode@nohost/_config/_reload HTTP/1.1
      Host: localhost:5984

  Response:

      HTTP/1.1 200 OK
      Cache-Control: must-revalidate
      Content-Length: 12
      Content-Type: application/json
      Date: Tues, 21 Jan 2020 11:09:35
      Server: CouchDB/3.0.0 (Erlang OTP)

      {"ok":true}