Product Updates

DatoCMS changelog for new features and general improvements
API ClientsContent Management API
Released v0.6 of Ruby client
June 10th, 2018

We just rolled version 0.6 of our Ruby client!

The big change is that the methods the client makes available are generated at runtime based on the JSON Schema of our CMA. This means any new API endpoint — or changes to existing ones — will instantly be reflected to the client, without the need to upgrade to the latest client version.

We also added a new deserialize_response option to every call, that you can use if you want to retrieve the exact payload the DatoCMS returns:

require "dato"
client ="YOUR-API-KEY")
# `deserialize_response` is true by default:
access_token = client.access_tokens.create(name: "New token", role: "34")
# {
# "id" => "312",
# "hardcoded_type" => nil,
# "name" => "New token",
# "token" => "XXXX",
# "role" => "34"
# }
# if `deserialize_response` is false, this will be the result
access_token = client.access_tokens.create(
{ name: "New token", role: "34" },
deserialize_response: false
# {
# "data": {
# "type": "access_token",
# "id": "312",
# "attributes": {
# "name": "New token",
# "token": "XXXX",
# "hardcoded_type": nil
# },
# "relationships": {
# "role": {
# "data": {
# "type": "role",
# "id": "34"
# }
# }
# }
# }
# }

In our doc pages we also added some examples for the super-handy all_pages option which was already present since v0.3.29:

# if you want to fetch all the pages with just one call:
client.items.all({ "filter[type]" => "44" }, all_pages: true)
Better project transfer flow
June 3rd, 2018

We just published some changes to the way DatoCMS manages project transfers between two accounts.

When you transfer a site, the destination account will receive a request that will have to be manually accepted or declined. If the site is on a paying plan, the destination account will have to specify which billing profile will be used from now on to generate invoices.

Content Delivery API
Combine AND and OR logical expressions in Content Delivery API
May 31st, 2018

We just published the ability to combine AND and OR logical expressions in our GraphQL API! You can read more in our Doc page.

In the same page the different filters available for each type of field are now properly documented.

RSS feeds for Product Changelog and Blog
May 23rd, 2018

To make it easier to stay up-to-date with the latest development in DatoCMS, we just made available two Atom RSS feeds:

Docs, Guides and Demos
Better documentation for tree-like collections
May 23rd, 2018

We just updated our docs to better explain what tree-like collections are and how to use them:

Fixed "your card's security code is invalid" problem with Mastercards
May 22nd, 2018

Someone said to us that it looks like we don't want their money because we're too focused on polishing and adding features to DatoCMS to think about everyday mortal needs.

It's kinda true if you tried to use a Mastercard in the last days! We just fixed a subtle bug in our Dashboard related to cards with a CVC of 3 digits.

Sorry for the inconvenience, we really want your money!

Content Delivery API
Content Delivery API released in public
May 21st, 2018

The new Content Delivery API, powered by GraphQL, is online at last! You can now use DatoCMS to create public-facing apps of any kind!

  • The old REST API has been renamed Content Management API

  • The new Content Delivery API, which during beta period lived under, has been moved to a separate domain ( This change will enable performance optimizations in the very near future.

Here's the official announcement blog post.

Docs, Guides and Demos
Changes to CMA documentation
May 21st, 2018

We expanded our Content Management API documentation with some new (much needed) chapters:

  • Overview

  • Authentication

  • JSON Schema

  • Official clients

Content Delivery APIContent Management API
Status page
May 19th, 2018

We just released a new status page to better communicate downtime and system outages to our customers:

(Yes, it's not in HTTPS.. we're having some problems with Let's Encrypt)

API ClientsContent Management API
Released v2 of Content Management API
May 12th, 2018

We silently released v2 of our Content Management API. The major change is how file uploads are now handled:

  • We no longer have an "Image" and "Image gallery" field. Every existing image field has been converted to a "Single file" field, and every "Image gallery" field has been converted into a "Multiple files" field. We made sure to add a format validation so that only images can be uploaded, so everything should work exactly as before.

  • When fetching records from the API that contain single/multiple file fields, you will no longer receive the complete "Upload" payload, but just its ID. You can fetch all the info regarding an Upload using the GET /uploads/:id endpoint.

  • When creating/updating records that contain single/multiple file fields, you no longer have to pass the complete "Upload" payload, but just its ID (or array of IDs, in case it's a "multiple files" field).

  • We released a new version of all of our clients (JS/Ruby/GatsbyJS/Middleman) to reflect this change, while mantaining the old methods signature.

Despite the big change, we tried not to break sites using our old clients. If no X-Api-Version: 2 header is passed, we assume Version 1 of our API is requested, so the GET /items and GET /items/:id endpoints will keep on returning data in the old format.

Important: Content Management API v1 will be sunsetted on September 1st, and so please upgrade your projects dependencies before this date!