This page is generated when anything in the implementation changes, at least every release. Sorry for the current ugly presentation: functionality first.
The implementation is really new, therefore, not everything is ready and complete. Below, you find the follow conditions.
| DONE | 32 | Minimally tested: visual inspection only. | 
| 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. | 
Couch::DB method → CouchDB endpoint
| CouchDB 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->reshardStart(\%create, %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}/_design_docs/queries | UNTESTED | $db->listDesigns() | 
| 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}/_local_docs/queries | UNTESTED | $db->listDocuments(%options) | 
| 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 |