TM1 REST API
Overview
The TM1 REST API is a new way of accessing data and everything else in TM1. Rather than being a proprietary API like old TM1 interfaces it is based on web standards making it accessible to a wide range of developers.
REST stands for REpresentational State Transfer and is an architectural style (not a standard) that has become the common way of designing API for applications on the internet. The TM1 REST API does however support the OData standard (v4) which provides a common way for accessing data through queries and also updating data. OData is used by multiple vendors and is supported by companies like Microsoft, SAP and of course IBM.
Examples:
Retrieve the TM1 REST API $metadata document
The $metadata document contains all of the information about the resources and functions of the TM1 REST API.
GET https://localhost:8881/api/v1/$metadata
Retrieve a list of TM1 objects
Dimensions:GET https://localhost:8881/api/v1/Dimensions
Cubes:GET https://localhost:8881/api/v1/Cubes
Processes:GET https://localhost:8881/api/v1/Processes
Chores:GET https://localhost:8881/api/v1/Chores
Applications: GET https://localhost:8881/api/v1/Contents('Applications')/Contents
Retrieve a single object
Dimensions:GET https://localhost:8881/api/v1/Dimensions(‘Account’)
Cubes:GET https://localhost:8881/api/v1/Cubes(‘General Ledger’)
Processes:GET https://localhost:8881/api/v1/Processes (‘Bedrock.Cube.View.Create’)
Application Folder: GET https://localhost:8881/api/v1/Contents('Applications')/Contents('Finance')/Contents
Retrieve a list of cube names
GET https://localhost:8881/api/v1/Cubes?$select=Name
Retrieve a list of cube names and their dimensions
GET https://localhost:8881/api/v1/Cubes?$select=Name&$expand=Dimensions($select=Name)
Retrieve a dimension and its elements
GET https://localhost:8881/api/v1/Dimensions('Account')/Hierarchies('Account')?$expand=Elements
Execute a view and retrieve its contents
POST https://localhost:8881/api/v1/Cubes('General Ledger')/Views('P&L')/tm1.Execute?$expand=Cells
Execute a view and retrieve its contents and structure
POST https://localhost:8881/api/v1/Cubes('General Ledger')/Views('P&L')/tm1.Execute?$expand=Axes($expand=Hierarchies($select=Name),Tuples($expand=Members($select=Name))),Cells
Execute a MDX statement and retrieve its contents and structure
POST https://tm1server:8881/api/v1/ExecuteMDX??$expand=Axes($expand=Hierarchies($select=Name),Tuples($expand=Members($select=Name))),Cells
{ “MDX”:”SELECT {[Version].[Actual]} ON COLUMNS, { ([Department].[Corporate], [Region].[United Kingdom], [General Ledger Measure].[Amount]), ([Department].[Corporate], [Region].[United Kingdom], [General Ledger Measure].[Comment]), ([Department].[2], [Region].[England], [General Ledger Measure].[Amount]) } ON ROWS FROM [General Ledger] WHERE ([Version].[Actual], [Year].[2012], [Period].[Mar], [Currency].[Local], [Account].[Salaries])”}