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


Articles


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

Dimension: GET https://localhost:8881/api/v1/Dimensions('Account')
Cube: GET https://localhost:8881/api/v1/Cubes('General Ledger')
Process: GET https://localhost:8881/api/v1/Processes('Bedrock.Cube.View.Create')
Chore: GET https://localhost:8881/api/v1/Chores('Nightly Load')
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])"
}