Reference table

This page is generated when anything in the implementation changes, at least every release. Sorry for the current ugly presentation: functionality first.

Development progress counts

The implementation is really new, therefore, not everything is ready and complete. Below, you find the follow conditions.
DONE 32 Minimally tested.
PARTIAL 4 Minimally tested, not completely implemented.
UNTESTED 88 Implemented but never tried.
TODO 2 Implementation not started.
UNSUPPORTED 5 For some reason, it seems useless to implement this.

Reference table

API 3.3.3 and official summary impl status Couch::DB use
GET / DONE $client->serverInfo(%options)

Returns the welcome message and version information

GET /_active_tasks DONE $client->activeTasks(%options)

Obtains a list of the tasks running in the server

GET /_all_dbs DONE $client->databaseNames(%options)

Returns a list of all the databases

GET /_cluster_setup UNTESTED $cluster->clusterState(%options)

Return the status of the cluster setup wizard

POST /_cluster_setup UNTESTED $cluster->clusterSetup(%options)

Sets up a node as a single node or as part of a cluster.

GET /_db_updates UNTESTED $client->dbUpdates()

Return the server changes of databases

GET /_dbs_info DONE $client->databaseInfo(%options)

Returns all databases information

POST /_dbs_info DONE $client->databaseInfo(%options)

Returns information of a list of the specified databases

GET /_membership UNTESTED $client->clusterNodes(%options)

Returns a list of nodes

GET /_node/{node-name} UNTESTED $client->nodeName($name, %options)

Returns node name

GET /_node/{node-name}/_config UNTESTED $node->config(%options)

Obtains a list of the entire server configuration

POST /_node/{node-name}/_config/_reload UNTESTED $node->configReload(%options)

Reload the configuration from disk

GET /_node/{node-name}/_config/{section} UNTESTED $node->config(%options)

Returns all the configuration values for the specified section

DELETE /_node/{node-name}/_config/{section}/{key} UNTESTED $node->configDelete($section, $key, %options)

Removes the current setting

GET /_node/{node-name}/_config/{section}/{key} UNTESTED $node->config(%options)

Returns a specific section/configuration value

PUT /_node/{node-name}/_config/{section}/{key} UNTESTED $node->configChange($section, $key, $value, %options)

Sets the specified configuration value

GET /_node/{node-name}/_prometheus UNSUPPORTED

Returns server statistics in prometheus format

POST /_node/{node-name}/_restart UNTESTED $node->restart(%options)

Restarts CouchDB application on a given node

GET /_node/{node-name}/_stats UNTESTED $node->stats(%options)

Returns server statistics

GET /_node/{node-name}/_system UNTESTED $node->server(%options)

Returns system-level server statistics

GET /_node/{node-name}/_versions UNTESTED $node->software(%options)

Returns system-level server version informations

POST /_replicate UNTESTED $client->replicate(%options)

Starts or cancels the replication

GET /_reshard UNTESTED $cluster->reshardStatus(%options)

Retrieve summary information about resharding on the cluster

GET /_reshard/jobs UNTESTED $cluster->reshardJobs(%options)

Retrieve information about all the resharding jobs on the cluster

POST /_reshard/jobs UNTESTED $cluster->reshardCreate(%options)

Create one or more resharding jobs

DELETE /_reshard/jobs/{jobid} UNTESTED $cluster->reshardJobRemove($jobid, %options)

Remove a resharding job

GET /_reshard/jobs/{jobid} UNTESTED $cluster->reshardJob($jobid, %options)

Retrieve information about a particular resharding job

GET /_reshard/jobs/{jobid}/state UNTESTED $cluster->reshardJobState($jobid, %options)

Retrieve the state of a single resharding job

PUT /_reshard/jobs/{jobid}/state UNTESTED $cluster->reshardJobChange($jobid, %options)

Change the state of a resharding job

GET /_reshard/state UNTESTED $cluster->reshardStatus(%options)

Retrieve the state of resharding on the cluster

PUT /_reshard/state UNTESTED $cluster->resharding(%options)

Change resharding state on the cluster

GET /_scheduler/docs UNTESTED $client->replicationDocs(%options)

Retrieve information about replication documents from the ``_replicator`` database.

GET /_scheduler/docs/{replicator_db} UNTESTED $client->replicationDocs(%options)

Retrieve information about replication documents from a specific replicator database.

GET /_scheduler/docs/{replicator_db}/{docid} UNTESTED $client->replicationDoc($doc|$docid, %options)

Retrieve information about a particular replication document

GET /_scheduler/jobs UNTESTED $client->replicationJobs(%options)

Retrieve information about replication jobs

POST /_search_analyze UNTESTED $couch->searchAnalyse(%options)

Tests the results of analyzer tokenization

DELETE /_session UNTESTED $client->logout(%options)

Logout Cookie-based user

GET /_session UNTESTED $client->session(%options)

Returns Cookie-based login user information

POST /_session UNTESTED $client->login(%options)

Authenticates user by Cookie-based user login

GET /_up UNTESTED $client->serverStatus()

Health check endpoint

GET /_utils UNSUPPORTED

Redirects to /_utils/

GET /_utils/ UNSUPPORTED

CouchDB administration interface (Fauxton)

GET /_uuids UNTESTED $couch->requestUUIDs($count, %options)

Generates a list of UUIDs from the server

GET /favicon.ico UNSUPPORTED

Returns the site icon

DELETE /{db} DONE $db->remove(%options)

Deletes an existing database

GET /{db} DONE $db->details(%options)

Returns the database information

HEAD /{db} DONE $db->ping(%options)

Checks the database existence

POST /{db} DONE $doc->create(\%data, %options)

Creates a new document with generated ID if _id is not specified

PUT /{db} DONE $db->create(%options)

Creates a new database

GET /{db}/_all_docs UNTESTED $db->listDocuments(%options)

Returns a built-in view of all documents in this database

POST /{db}/_all_docs UNTESTED $db->listDocuments(%options)

Returns a built-in view of all documents in this database

POST /{db}/_all_docs/queries UNTESTED $db->listDocuments(%options)

Returns results for the specified queries

POST /{db}/_bulk_docs UNTESTED $db->updateDocuments(\@docs, %options)

Inserts or updates multiple documents in to the database in a single request

POST /{db}/_bulk_get UNTESTED $db->inspectDocuments(\@docs, %options)

Fetches several documents at the given revisions

GET /{db}/_changes TODO $db->changes(%options)

Returns changes for the given database

POST /{db}/_changes TODO $db->changes(%options)

Returns changes for the given database for certain document IDs

POST /{db}/_compact DONE $db->compact(%options)

Starts a compaction for the database

POST /{db}/_compact/{ddoc} UNTESTED $db->compact(%options)

Starts a compaction for all the views in the selected design document

COPY /{db}/_design/{ddoc} DONE $ddoc->cloneInto($doc, %options)

Copies the design document

DONE $ddoc->appendTo($doc, %options)
DELETE /{db}/_design/{ddoc} DONE $ddoc->delete(%options)

Deletes the design document

GET /{db}/_design/{ddoc} DONE $ddoc->get(%options)

Returns the design document

HEAD /{db}/_design/{ddoc} DONE $ddoc->exists(%option)

Returns bare information in the HTTP Headers for the design document

PUT /{db}/_design/{ddoc} DONE $ddoc->update(\%data, %options)

Creates a new design document or new version of an existing one

GET /{db}/_design/{ddoc}/_info UNTESTED $ddoc->details(%options)

Returns view index information for the specified design document

GET /{db}/_design/{ddoc}/_list/{func}/{other-ddoc}/{view} UNTESTED $ddoc->list($function, $view, %options)

Executes a list function against the view from other design document

POST /{db}/_design/{ddoc}/_list/{func}/{other-ddoc}/{view} UNTESTED $ddoc->list($function, $view, %options)

Same as GET method for the related endpoint

GET /{db}/_design/{ddoc}/_list/{func}/{view} UNTESTED $ddoc->list($function, $view, %options)

Executes a list function against the view from the same design document

POST /{db}/_design/{ddoc}/_list/{func}/{view} UNTESTED $ddoc->list($function, $view, %options)

Same as GET method for the related endpoint

ANY /{db}/_design/{ddoc}/_rewrite/{path} UNSUPPORTED

Rewrites HTTP request for the specified path by using stored array of routing rules or JavaScript function

GET /{db}/_design/{ddoc}/_search/{index} UNTESTED $ddoc->indexFind($index, %options)

Returns results for the specified search index

GET /{db}/_design/{ddoc}/_search_info/{index} UNTESTED $ddoc->indexDetails($index, %options)

Returns metadata for the specified search index

GET /{db}/_design/{ddoc}/_show/{func} UNTESTED $ddoc->show($function, %options)

Executes a show function against null document

POST /{db}/_design/{ddoc}/_show/{func} UNTESTED $ddoc->show($function, %options)

Same as GET method for the related endpoint

GET /{db}/_design/{ddoc}/_show/{func}/{docid} UNTESTED $ddoc->show($function, %options)

Executes a show function against the specified document

POST /{db}/_design/{ddoc}/_show/{func}/{docid} UNTESTED $ddoc->show($function, %options)

Same as GET method for the related endpoint

POST /{db}/_design/{ddoc}/_update/{func} UNTESTED $ddoc->applyUpdate($function, %options)

Executes an update function against the null document

POST /{db}/_design/{ddoc}/_update/{func}/{docid} UNTESTED $ddoc->applyUpdate($function, %options)

Executes an update function against the specified document

GET /{db}/_design/{ddoc}/_view/{view} DONE $ddoc->viewFind($view, %options)

Returns results for the specified stored view

POST /{db}/_design/{ddoc}/_view/{view} UNTESTED $ddoc->viewFind($view, %options)

Returns results for the specified view

POST /{db}/_design/{ddoc}/_view/{view}/queries UNTESTED $ddoc->viewFind($view, %options)

Returns results for the specified queries

DELETE /{db}/_design/{ddoc}/{attname} DONE $ddoc->attDelete($name, %options)

Deletes an attachment of a design document

GET /{db}/_design/{ddoc}/{attname} DONE $ddoc->attLoad($name, %options)

Gets the attachment of a design document

HEAD /{db}/_design/{ddoc}/{attname} DONE $ddoc->attExists($name, %options)

Returns bare information in the HTTP Headers for the attachment

PUT /{db}/_design/{ddoc}/{attname} DONE $ddoc->attSave($name, $data, %options)

Adds an attachment of a design document

GET /{db}/_design_docs UNTESTED $db->listDesigns()

Returns a built-in view of all design documents in this database

POST /{db}/_design_docs UNTESTED $db->listDesigns()

Returns a built-in view of all design documents in this database

POST /{db}/_ensure_full_commit DONE $db->ensureFullCommit(%options)

Deprecated endpoint to support CouchDB versions < 3.0 replicators.

POST /{db}/_explain UNTESTED $db->findExplain(\%search, %options)

Identify which index is being used by a particular query.

POST /{db}/_find DONE $db->find([\%search, %options])

Find documents within a given database

GET /{db}/_index UNTESTED $db->listIndexes(%options)

List all indexes.

POST /{db}/_index UNTESTED $db->createIndex(\%filter, %options)

Create a new index.

UNTESTED $ddoc->createIndex(\%filter, %options)
DELETE /{db}/_index/{designdoc}/json/{name} UNTESTED $ddoc->deleteIndex($index, %options)

Delete an index

COPY /{db}/_local/{docid} PARTIAL $doc->cloneInto($doc, %options)

Copies the local document within the same database

PARTIAL $doc->appendTo($doc, %options)
DELETE /{db}/_local/{docid} DONE $doc->delete(%options)

Deletes the local document

GET /{db}/_local/{docid} DONE $doc->get(%options)

Returns the latest revision of the local document

PUT /{db}/_local/{docid} DONE $doc->update(\%data, %options)

Inserts a new version of the local document

GET /{db}/_local_docs UNTESTED $db->listDocuments(%options)

Returns a built-in view of all local (non-replicating) documents in this database

POST /{db}/_local_docs UNTESTED $db->listDocuments(%options)

Returns a built-in view of all local (non-replicating) documents in this database

POST /{db}/_missing_revs UNTESTED $db->revisionsMissing(\%plan, %options)

By given list of document revisions returns the document revisions that do not exist in the database

POST /{db}/_partition/{partition_id}/_explain UNTESTED $db->findExplain(\%search, %options)

Find index that is used with a query

POST /{db}/_partition/{partition_id}/_find UNTESTED $db->find([\%search, %options])

Query the partition specified by ``partition_id``

GET /{db}/_partition/{partition} UNTESTED $db->details(%options)

Returns document and size info for the given partition

GET /{db}/_partition/{partition}/_all_docs UNTESTED $db->listDocuments(%options)

Return all docs in the specified partition

GET /{db}/_partition/{partition}/_design/{ddoc}/_view/{view} UNTESTED $ddoc->viewFind($view, %options)

Execute a partitioned query

POST /{db}/_purge UNTESTED $db->purgeDocuments(\%plan, %options)

Purges documents entirely from database

GET /{db}/_purged_infos_limit UNTESTED $db->purgeRecordsLimit(%options)

Returns the limit of historical purges to store in the database

PUT /{db}/_purged_infos_limit UNTESTED $db->purgeRecordsLimitSet($limit, %options)

Sets the limit of historical purges to store in the database

POST /{db}/_revs_diff UNTESTED $db->revisionsDiff(\%plan, %options)

By given list of document revisions returns differences between the given revisions and ones that are in the database

GET /{db}/_revs_limit UNTESTED $db->revisionLimit(%options)

Returns the limit of historical revisions to store for a single document in the database

PUT /{db}/_revs_limit UNTESTED $db->revisionLimitSet($limit, %options)

Sets the limit of historical revisions to store for a single document in the database

GET /{db}/_security DONE $db->userRoles(%options)

Returns the special security object for the database

PUT /{db}/_security UNTESTED $db->userRolesChange(%options)

Sets the special security object for the database

GET /{db}/_shards UNTESTED $cluster->shardsForDB($db, %options)

Displays the shard map layout of a database

GET /{db}/_shards/{docid} UNTESTED $cluster->shardsForDoc($doc, %options)

Returns the specific shard in which a document is stored

POST /{db}/_sync_shards UNTESTED $cluster->syncShards($db, %options)

Trigger a synchronization of all shard replicas in the database

POST /{db}/_view_cleanup UNTESTED $db->purgeUnusedViews(%options)

Removes view files that are not used by any design document

COPY /{db}/{docid} PARTIAL $doc->cloneInto($doc, %options)

Copies the document within the same database

PARTIAL $doc->appendTo($doc, %options)
DELETE /{db}/{docid} DONE $doc->delete(%options)

Deletes the document

GET /{db}/{docid} DONE $doc->get(%options)

Returns the document

HEAD /{db}/{docid} DONE $doc->exists(%option)

Returns bare information in the HTTP Headers for the document

PUT /{db}/{docid} DONE $doc->update(\%data, %options)

Creates a new document or new version of an existing document

DELETE /{db}/{docid}/{attname} UNTESTED $doc->attDelete($name, %options)

Deletes an attachment of a document

GET /{db}/{docid}/{attname} UNTESTED $doc->attLoad($name, %options)

Gets the attachment of a document

HEAD /{db}/{docid}/{attname} UNTESTED $doc->attExists($name, %options)

Returns bare information in the HTTP Headers for the attachment

PUT /{db}/{docid}/{attname} UNTESTED $doc->attSave($name, $data, %options)

Adds an attachment of a document