In Cloudant you can have a design document with views and query indexes.
When creating map/reduce views you just update the entire design document. The Cloudant docs explicitly state that:
So, to store a view, we simply store the function definition within a design document. A design document can be created or updated just like any other document.
However, there is a dedicated API for creating an index.
Is there any reason to use the dedicated API for creating indexes? Otherwise I'd rather directly create design documents with both views and indexes.