Data Sources

Viewing, creating, updating and managing data sources.

GET /datasources

Description

Get a list of all the data sources to which the user has access.

Permissions

dashboard.library

Resource URL

https://app.klipfolio.com/api/1.0/datasources

Parameters

client_id={id}

Example Request

GET https://app.klipfolio.com/api/1/datasources?client_id=0123456789abcdef0123456789abcdef

Example Response

{
  "meta": {
    "success": true,
    "status": 200,
    "count": 4,
    "total": 4
  },
  "data": {
    "datasources": [
      {
        "id": "c98bad42a8c8a63e0b5e6c0f7aca9898",
        "name": "Example: Marketing Web Analytics",
        "description": "Sample data you can use when trying out Klipfolio. This is an example of typical web analytics data that you might pull out of services like Google Analytics, GoSquared or Adobe Analytics.",
        "refresh_interval": 0,
        "date_last_refresh": "2016-06-17T13:33:57Z",
        "is_dynamic": false
      },
     
    ]
  }
}

GET /datasources/{id}

Description

Get the details for the specific data source id.

Permissions

dashboard.library

Resource URL

https://app.klipfolio.com/api/1.0/datasources/{id}

Parameters

id={datasource id}

Example Request

GET https://app.klipfolio.com/api/1/datasources/0123456789abcdef0123456789abcdef

Example Response

{
  "data": {
       "id":"0123456789abcdef0123456789abcdef",
       "company":"Self",
       "name":"Sample Datasource",
       "description":"Datasource sample details",
       "connector":"google_adwords",
       "format":"csv",
       "refresh_interval":432000,
       "created_by":"98765432109876543210987654321",
       "is_dynamic":false,
       "disabled":false,
       "date_created":"2014-11-04T20:26:22Z",
       "date_last_refresh":"2014-11-12T21:43:10Z"
  },
  "meta": {
      "status": 200,
      "success": true
  }

POST /datasources

Description

Create a data source. Data source properties can optionally be specified in the post data.

Permissions

datasource.create

Resource URL

https://app.klipfolio.com/api/1.0/datasources/{id}

Fields

name, description, format, connector, refresh_interval, properties, client_id (optional)

Where connector could be: 'box', 'comscore', 'db', 'dropbox', 'facebook', 'ftp', 'google_adwords', 'google_analytics', 'google_drive', 'google_spreadsheets', 'hubspot', 'iformbuilder', 'marketo', 'omniture', 'radian6', 'salesforce', 'searchMetrics', 'shopify', 'simple_rest', 'survey_monkey', 'versature', 'xero', 'xmla'

Example Requests

Note: optionally include 'client_id' in the post data to create a data source for a client.


POST https://app.klipfolio.com/api/1/datasources -d
“{'name': 'Example','description': 'This is a new data source', 'format': 'xml', 'connector': 'simple_rest', 'refresh_interval': 1800, 'properties': {'endpoint_url': 'http://test/data/scatter.xml', 'method': 'GET'}}”

This is an example request for a Google Analytics dynamic data source:

POST https://app.klipfolio.com/api/1/datasources -d "{'name': 'Test', 'description': 'Test', 'connector': 'google_analytics', 'format': 'csv', 'refresh_interval': 12345, 'properties': { 'endpoint_url': 'https://www.googleapis.com/analytics/v3/data/ga\?ids=ga:{props.profile_id}\&dimensions=ga:deviceCategory,ga:date\&metrics=ga:sessions\&start-date={date.add(-365).format()}\&end-date={date.today}\&max-results=10000', 'oauth_provider_id': 'google20', 'oauth_user_header': '123456abcdefg123456abcdef1234abcd12ab1234abcd', 'oauth_user_token': 'ab12.Ai-aA1G23BcD4EF5gHijk678lMNOpqrSTu-vW_x9Yzabcd1Efghij2kl3m4_N5OPQjQ', 'token_id': '123ab45c6a123b123a1abc1234abc12b1', 'prop:profile_id': '123456789'}}"

Example Response

Note that both the data source id and the corresponding data source instance id is returned.

{
 "meta": {
   "success": true,
   "status": 201,
   "location": "/datasources/5d8821caa9ac3b2a291496e182de13e2",
   "instance_location": "/datasource_instances/5d8821caa9ac3b2a291496e182de13e2"
 },
 "data": { }
}

PUT /datasources/{id}

Description

Update the specified data source.

Permissions

datasource.edit

Resource URL

https://app.klipfolio.com/api/1.0/datasources

Fields

name, description, refresh_interval

Example Request

PUT https://app.klipfolio.com/api/1/datasources/8ea607c46ba6a7ba6e4c16ee292d7608 -d
"{'name': 'Updated Data Source Name',
'description': 'This is cool info',
'refresh_interval': 14400}"

Example Response:

{ "meta": { "success": true, "status": 200 }, "data": { } }

Note: UseData Source Instances Data to update the specified data source with data.

DELETE /datasources/{id}

Description

Delete the data source associated with a specific data source ID.

Permissions

datasource.delete

Resource URL

https://app.klipfolio.com/api/1.0/datasources/{id}

Parameters

id={datasource id}

Example Request

DELETE https://app.klipfolio.com/api/1/datasources/0123456789abcdef0123456789abcdef

Example Response

{
"data": {},
"meta": {
    "status": 200,
    "success": true
}
}