Migrating to the new API

This page relates to major changes in Microreact released in 2020

Summary of breaking changes

New API
Old API

API Endpoint

https://microreact.org/api/projects/create/

https://microreact.org/api/project/

Request body

A valid .microreact JSON file

Old API request payload as documented in https://old.microreact.org/api-docs

Access-Token header

Required (Obtain your access token from https://microreact.org/my-account/settings)

Optional

Converting old API request payload

You can convert an old API request payload to a new .microreact JSON file using the schema convertor endpoint:

curl \
  --header "Content-type: application/json; charset=UTF-8" \
  --request POST \
  --data '{ "name": "hayu110x2c0smcm", "data": "https://raw.githubusercontent.com/microreact/data/main/data.csv" }' \
  https://microreact.org/api/schema/convert

The response is a valid .microreact JSON file

{
  "datasets": {
    "dataset-1": {
      "file": "data-file-1",
      "idFieldName": "id"
    }
  },
  "files": {
    "data-file-1": {
      "id": "data-file-1",
      "format": "text/csv",
      "name": "data.csv",
      "url": "https://raw.githubusercontent.com/microreact/data/main/data.csv"
    }
  },
  "maps": {
    "map-1": {
      "title": "Map",
      "latitudeField": "__latitude",
      "longitudeField": "__longitude"
    }
  },
  "meta": {
    "name": "hayu110x2c0smcm"
  },
  "tables": {
    "table-1": {
      "dataset": "dataset-1",
      "title": "Metadata",
      "columns": [
        {
          "field": "id"
        },
        {
          "field": "__latitude"
        },
        {
          "field": "__longitude"
        },
        {
          "field": "country"
        },
        {
          "field": "__year"
        },
        {
          "field": "__month"
        },
        {
          "field": "__day"
        }
      ]
    }
  },
  "timelines": {
    "timeline-1": {
      "title": "Timeline",
      "dataType": "year-month-day",
      "yearField": "__year",
      "monthField": "__month",
      "dayField": "__day"
    }
  },
  "schema": "https://microreact.org/schema/v1.json"
}

You can also pipe the response into the create project endpoint as in the following example:

curl \
  --header "Content-type: application/json; charset=UTF-8" \
  --request POST \
  --data '{ "name": "hayu110x2c0smcm", "data": "https://raw.githubusercontent.com/microreact/data/main/data.csv" }' \ # Old API request payload as documented in https://old.microreact.org/api-docs 
  https://microreact.org/api/schema/convert \
| \
curl \
  --header "Content-type: application/json; charset=UTF-8" \
  --header "Access-Token: eyJhbGciOiJIUzUxMiJ9..." \ # Obtain your access token from https://microreact.org/my-account/settings
  --data @- \
  https://microreact.org/api/projects/create

Last updated

Was this helpful?