Analytics

Charts

After using SQL to gather, structure and analyze all of the necessary data for your analysis, you can build visualizations on top of that data. Mode offers a number of options for building visualizations, including built-in Charts and Tables.

You can use this resource to either get a single Chart or list of all Charts for a given Report’s Query in your Mode organization.

Chart object

Properties

view

required

object

view_version

required

integer

view_vegas

required

object

token

required

string

created_at

required

string

color_palette_token

string

_links

required

object

All resource responses contain a set of links that describe other related resources or actions that you can take on this resource. A link is comprised of two main pieces: its name (which describes its relationship to this resource) and its href (the URL of the related action or resource). All resources have at least a _self link which is the URL that will return a representation of this resource.

  • color_palette
  • creator
  • last_successful_run_preview
  • preview
  • report_run_viz_web
  • report_viz_web
  • self
{
  "view": {
    "bar": {...},
    "bigNumber": {...},
    "line": {
      "label": "ORDERED_COHORT_TYPE",
      "x": "TIME_ID",
      "y": [
        "Responses"
      ],
      "aggregate": "sum",
      "yminFromData": 1,
      "ymaxFromData": 592,
      "yminTotal": 1,
      "ymaxTotal": 592
    },
    "linePlusBar": {...},
    "scatter": {...},
    "pie": {...},
    "area": {...},
    "pivotTable": {...},
    "selectedChart": "line",
    "chartTitle": "NPS scores"
  },
  "view_version": 2,
  "view_vegas": {
    "title": "NPS scores",
    "chartType": "line",
    "encoding": {...},
    "format": {...},
    "colors": {...}
  },
  "token": "81e633e0bab6",
  "created_at": "2019-12-20T23:18:10.048Z",
  "color_palette_token": "e7826e782faa",
  "_links": {
    "self": {
      "href": "/api/organization/reports/1fdc4c3fc111/queries/24fa53340a03/charts/81e633e0bab6"
    },
    "color_palette": {
      "href": "/api/organization/color_palettes/e7826e782faa"
    },
    "report_viz_web": {
      "href": "/organization/reports/1fdc4c3fc111/viz/81e633e0bab6"
    },
    "preview": {
      "templated": true,
      "href": "/api/organization/reports/1fdc4c3fc111/runs/{token}/charts/81e633e0bab6/preview"
    },
    "report_run_viz_web": {
      "templated": true,
      "href": "/organization/reports/1fdc4c3fc111/runs/{token}/viz/81e633e0bab6"
    },
    "last_successful_run_preview": {
      "href": "/api/organization/reports/1fdc4c3fc111/runs/8b28804598bc/charts/81e633e0bab6/preview"
    },
    "creator": {
      "href": "/api/courtney_eriksson"
    }
  },
  "_forms": {...}
}

Get a chart

To retrieve information about a single Chart, send a GET request including the chart token to the Report Query’s charts resource.

URL Params

account

required
string Account (Organization or User) username

report

required
string Report token

query

required
string Query token

chart

required
string Chart token
Responses

200

Chart response

401

Unauthorized

404

Chart not found

GET /{account}/reports/{report}/queries/{query}/charts/{chart}

curl --include \
     --header "Content-Type: application/json" \
     --header "Accept: application/hal+json" \
  'https://app.mode.com/api/{organization}/reports/{report}/queries/{query}/charts/{chart}'
require 'http'

username = 'you_api_key'
password = 'you_api_secret'

headers = {
  content_type: 'application/json',
  accept: 'application/hal+json'
}

response = HTTP.basic_auth(user: username, pass: password)
               .headers(headers)
               .get('https://app.mode.com/api/{organization}/reports/{report}/queries/{query}/charts/{chart}')
puts response
from urllib2 import Request, urlopen

headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/hal+json'
}
request = Request('https://app.mode.com/api/{organization}/reports/{report}/queries/{query}/charts/{chart}', headers=headers)

response_body = urlopen(request).read()
print(response_body)
var request = require('request');

request({
  method: 'GET',
  url: 'https://app.mode.com/api/{organization}/reports/{report}/queries/{query}/charts/{chart}',
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/hal+json'
  }}, function (error, response, body) {
  console.log('Status:', response.statusCode);
  console.log('Headers:', JSON.stringify(response.headers));
  console.log('Response:', body);
});

List Charts for a Query

To return a list of all Charts for a given Query, send a GET request to the Report Query’s charts resource.

URL Params

account

required
string Account (Organization or User) username

report

required
string Report token

query

required
string Query token
Responses

200

Chart collection response

401

Unauthorized

404

Report not found

GET /{account}/reports/{report}/queries/{query}/charts

curl --include \
     --header "Content-Type: application/json" \
     --header "Accept: application/hal+json" \
  'https://app.mode.com/api/{organization}/reports/{report}/queries/{query}/charts'
require 'http'

username = 'you_api_key'
password = 'you_api_secret'

headers = {
  content_type: 'application/json',
  accept: 'application/hal+json'
}

response = HTTP.basic_auth(user: username, pass: password)
               .headers(headers)
               .get('https://app.mode.com/api/{organization}/reports/{report}/queries/{query}/charts')
puts response
from urllib2 import Request, urlopen

headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/hal+json'
}
request = Request('https://app.mode.com/api/{organization}/reports/{report}/queries/{query}/charts', headers=headers)

response_body = urlopen(request).read()
print(response_body)
var request = require('request');

request({
  method: 'GET',
  url: 'https://app.mode.com/api/{organization}/reports/{report}/queries/{query}/charts',
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/hal+json'
  }}, function (error, response, body) {
  console.log('Status:', response.statusCode);
  console.log('Headers:', JSON.stringify(response.headers));
  console.log('Response:', body);
});