Discovery API

The discovery API offers a RESTful API for discovering Journey Analytics's metadata. Developers can use this API to check which of the platform's resources are available and get details about the following resources (JSON):

Setup for all APIs

EndpointAll APIs use the same URI:

https://app.cooladata.com/api/v3

HeaderAll APIs require the following authentication to be included in the request header. Replace [User_API_Token] with the user API token found in the user profile side-bar:

Authorization: Token {User_API_Token}

Method: GETAll the APIs use the method GET.

Projects

Returns a list of all the projects the user has permissions for.Full URI:

https://app.cooladata.com/api/v3/projects

Response:

[
  {
    "id": [project_id],
    "name": [project_name],
    "token": [project_token]
  },
  ...
]

Example

Query:

https://app.cooladata.com/api/v3/projects
Authorization: Token IrdY70oSJL3pbsidnQyJTRaclLmg75DGVFIUfpFL

Response:

[
  {
    "id": 123456,
    "name": "My First Project",
    "token": "qh9d70mh9aa4xol6ondekeff4dhq2w0u"
  }
]

Events

Returns a list of all the events in the project and their corresponding category. See Events for more information on events and properties.

Full URI:

https://app.cooladata.com/api/v3/projects/{project_id}/events

Replace {project_id} with the ID of the specific project.

Response:

[{
   "name": "event_name",
   "category": "event_category"
},
...
]

Example

Query:

https://app.cooladata.com/api/v3/projects/123456/events
Authorization: Token IrdY70oSJL3pbsidnQyJTRaclLmg75DGVFIUfpFL

Response:

[{
    "name": "signup",
    "category": "onboarding"
},
...
]

Properties (Data Columns)

Returns a list of all the properties in the project and their corresponding details. See Events for more information on events and properties.

Full URI:

https://app.cooladata.com/api/v3/projects/{project_id}/cql/columns

Replace {project_id} with the ID of the specific project.

Response:

The following fields are returned in the response:

  • id – Column ID
  • name – Column name
  • source –
  • data_type –
  • scope –
  • classifications –
  • virtual –
  • candidate – See Data Scheme Configuration
  • lookupsCupSize – Max number of values that will be saved in the auto-complete list for the property
  • refreshing – Is the auto-complete list overwritten with new values if the max size is exceeded
  • created – Create date
  • modified – Last modified date
  • configJson – (can be ignored)
[{
    "created": [epoch timestamp in miliseconds],
    "modified": [epoch timestamp in miliseconds],
    "id": 123456,
    "source": "[string]",
    "name": "[string]",
    "scope": "[string]",
    "configJson": "{}",
    "candidate": [boolean],
    "lookupsCupSize": [integer],
    "data_type": "[string]",
    "virtual": [boolean],
    "classifications": ["string",...],
    "refreshing": [boolean]
},
...
]

Example

Query:

https://app.cooladata.com/api/v3/projects/123456/cql/columns
Authorization: Token IrdY70oSJL3pbsidnQyJTRaclLmg75DGVFIUfpFL

Response:

[{
    "created": 1425385386000,
    "modified": 1425385386000,
    "id": 124018,
    "source": "session_os",
    "name": "device_os",
    "scope": "SESSION",
    "configJson": "{}",
    "candidate": false,
    "lookupsCupSize": 300,
    "data_type": "STRING",
    "virtual": false,
    "classifications": ["DIMENSION"],
    "refreshing": false
},
...
]

Lookup

Returns a list of all the values in the property's (column's) auto-complete list.Full URI:

https://app.cooladata.com/api/v3/projects/{project_id}/{column_id}/lookup

Replace {project_id} with the ID of the specific project and [column_id] with the ID of the specific property (column) from the property discovery API.

Response:

{
  "lookupsValuesAlphabetical": [
    "[string]",
    ...
  ]
}

Example

Query:

https://app.cooladata.com/api/v3/projects/123456/654321/lookup
Authorization: Token IrdY70oSJL3pbsidnQyJTRaclLmg75DGVFIUfpFL

Response:

{
  "lookupsValuesAlphabetical": [
    "Antalya",
    "Barcelona",
    "Dubai",
    "Guangzhou",
    "Kuala Lumpur",
    "London"
    "Miami",
    "New York",
    "Taipei"
  ]
}

Views

Returns a list of all the tables the user can query in the project.Full URI:

https://app.cooladata.com/api/v3/projects/{project_id}/views

Replace {project_id} with the ID of the specific project.Response:

Currently the response only includes CoolaData's default database (does not include Aggregation Tables and external data sources).

[
  {
    "name": "[project_name]"
  },
  ...
]

Example

Query:

https://app.cooladata.com/api/v3/projects/123456/views
Authorization: Token IrdY70oSJL3pbsidnQyJTRaclLmg75DGVFIUfpFL

Response:

[{
    "name": "CoolaData"
   }
]

Linked Data Sources

Returns a list of all the external data sources linked to the project.Full URI:

https://app.cooladata.com/api/v3/projects/{project_id}/linked_data_sources

Replace {project_id} with the ID of the specific project.Response:

[{
    "id": ,
    "name": "",
    "type": "",
    "connection": ,
    "description": "",
    "properties": ,
    "googleBucket": "",
    "googleProjectName": "",
    "googleDataSet": ""
}, ...
]

Example

Query:

https://app.cooladata.com/api/v3/projects/123456/linked_data_sources
Authorization: Token IrdY70oSJL3pbsidnQyJTRaclLmg75DGVFIUfpFL

Response:

The following example response includes an example of each type of data sources currently available. The actual response will only include the data sources set up in the project.

[{
    "id": 1,
    "name": "MySQL",
    "type": "MYSQL",
    "connection": null,
    "description": "example external MySQL",
    "properties": null,
    "googleBucket": "",
    "googleProjectName": "",
    "googleDataSet": ""
}, {
    "id": 2,
    "name": "MsSQL",
    "type": "SQL_SERVER",
    "connection": "jdbc:sqlserver://URL;DatabaseName=DATABASE_NAME;user=USER_NAME;password=PASSWORD",
    "description": "null",
    "properties": null,
    "googleBucket": "",
    "googleProjectName": "",
    "googleDataSet": ""
}, {
    "id": 3,
    "name": "RedShift",
    "type": "REDSHIFT",
    "connection": "username:password@host:port/database",
    "description": "null",
    "properties": null,
    "googleBucket": "",
    "googleProjectName": "",
    "googleDataSet": ""
}, {
    "id": 4,
    "name": "BigQuery",
    "type": "EXTERNAL_BIG_QUERY",
    "connection": "",
    "description": "",
    "properties": null,
    "googleBucket": null,
    "googleProjectName": "example_project",
    "googleDataSet": "example_dataset"
}, {
    "id": 5,
    "name": "GoogleBucket",
    "type": "GOOGLE_BUCKET",
    "connection": "",
    "description": "",
    "properties": null,
    "googleBucket": "project-bucketId",
    "googleProjectName": "",
    "googleDataSet": ""
}]

Tables

Returns a list of all data tables per specific external data source:

https://app.cooladata.com/api/v3/projects/{project_id}/{dataSourceId}/sys_tables

Data Columns

Returns a list of all data columns per specific external data source table:

https://app.cooladata.com/api/v3/projects/{project_id}/{dataSourceId}/{tableName}/sys_columns