Hex pm Build Status License

Erlang / Elixir library for Apache CouchDB or IBM Cloudant. CouchDB provides you a full featured and easy-to-use client to access and manage multiple nodes.



Most of the Erlang/Elixir CouchDB API takes Database or Server record as an argument. This record contains information about the server's FQDN, the database name, etc. Parts of the API dealing with 'the server' will take a server record, while functions performing actions on databases and documents take a database record. Consider:

{ok, Server} = couchdb:server_record(<<"http://localhost:5984">>, []).

{:ok, server} = :couchdb.server_record("http://localhost:5984", [])

After a server or database record has been created one can now make the first actual call:

{ok, Info} = couchdb_server:info(Server).

{:ok, info} =


For issues, comments or feedback please create an issue.


V2.1.0 JSON library is now Jiffy

Version 2.1.0 switched to Jiffy as the JSON library. This fixes a bug with strings containing UTF-8 characters. Furthermore it improves performance and brings this CouchDB client closer to Apache CouchDB itself as it uses Jiffy too.

It should be noted that this change means a prerequisite is now introduced, the target environment must have a working C/C++ compiler.

Forked from Couchbeam

CouchDB is a a fork of couchbeam

Semantic versioning

To comply with Semantic Versioning the version number has been bumped to 2.0.0.

New uuid implementation

In Beta6 the original Apache CouchDB uuid implementation was added.