{"id":3457,"date":"2023-04-12T15:33:17","date_gmt":"2023-04-12T15:33:17","guid":{"rendered":"https:\/\/quebit.com\/askquebit\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\/"},"modified":"2026-01-21T16:26:12","modified_gmt":"2026-01-21T16:26:12","slug":"leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python","status":"publish","type":"post","link":"https:\/\/quebit.com\/askquebit\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\/","title":{"rendered":"How can you use TM1py with Python to interact with IBM Planning Analytics?"},"content":{"rendered":"<p>TM1py is a free Python package that extends the functionality of Planning Analytics by integrating the TM1 REST API with Python allowing the use of Python libraries. TM1py enhances data source integration, enables machine learning using python, and facilitates Planning Analytics object control using Python automation.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2031 alignnone\" src=\"https:\/\/quebit.com\/askquebit\/wp-content\/uploads\/2022\/02\/P1-min.jpg\" alt=\"\" width=\"320\" height=\"158\" \/><\/p>\n<p>In a recent internal &#8220;Hackathon&#8221; a group of QueBIT employees started on the path to see what could be accomplished using TM1py and find out how it can help improve our processes. During this quick experiment the team wanted to focus on developing a tool using Python and TM1py that would assist our consultants by easing the development, troubleshooting, and health check tasks that we undergo during our projects. The source code and releases of this project can be found on the QueBIT Consulting GitHub page here: <a href=\"https:\/\/github.com\/QueBITConsulting\/Tm1PyGuild\">https:\/\/github.com\/QueBITConsulting\/Tm1PyGuild<\/a> (This code is under development and should not be used in a Production environment)<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2027 alignnone\" src=\"https:\/\/quebit.com\/askquebit\/wp-content\/uploads\/2022\/02\/P2-min.jpg\" alt=\"\" width=\"655\" height=\"202\" \/><\/p>\n<p>During the development of functions built with TM1py, a range of solutions was created while keeping the intent of following QueBIT standards and best practices in mind. Starting with simple functions such as logging into the PA server, or printing a list of objects (cubes, dimensions, etc..). While these functions are relatively simple, they provide value in gathering important PA instance information near instantly. Once the team understood the basics of TM1py, we started digging into more complex problems and solutions. A function was created that would build our standard Process Statistics cube by creating all necessary dimensions and attributes, building the cube, and applying rules to the cube. Another function was built to apply the QueBIT standard boilerplate to all processes on the PA instance. These tasks may take many development hours when done manually but can now be finished in moments by running a function. Check the documentation on the GitHub page linked above to learn about other functions that have been created.<\/p>\n<p>Because TM1py is a Python package, it allows it to be used within QueBIT&#8217;s Euclid Studio. Euclid Studio is a special\u2013purpose ETL (Extract, Translate, Load) solution designed for business users and xP&amp;A. One of the nodes in Euclid Studio allows a user to create and run a python script. This node can then be scheduled or triggered to run when needed. This could be done to gather information of the PA instance, confirm data integrity, validate dimensions, and many other possibilities on a set schedule. To learn more about Euclid Studio see here: <a href=\"https:\/\/quebit.com\/euclid-studio\/\">https:\/\/quebit.com\/euclid-studio\/<\/a><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2028 alignnone\" src=\"https:\/\/quebit.com\/askquebit\/wp-content\/uploads\/2022\/02\/P3-min.jpg\" alt=\"\" width=\"614\" height=\"525\" \/><\/p>\n<p>Other than using TM1py directly within Euclid Studio, the team also packaged the python script into a command line executable file to ease the distribution of the functionality it provides. PyInstaller is used to bundle the python application whenever an update is made to the source code. The latest release can be found on the QueBIT Consulting GitHub page linked above.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2029 alignnone\" src=\"https:\/\/quebit.com\/askquebit\/wp-content\/uploads\/2022\/02\/P4-min.jpg\" alt=\"\" width=\"300\" height=\"169\" \/><\/p>\n<p>From the initial experience developing this suite of administrative functions with TM1py, we are interested in adding to its capabilities and determining what functions could be beneficial. If you have an idea for a new function or have a problem that you think can be solved with the Python integration that TM1py helps facilitate, please do not hesitate to add a suggestion in the &#8220;Issues&#8221; section of the GitHub page.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2030 alignnone\" src=\"https:\/\/quebit.com\/askquebit\/wp-content\/uploads\/2022\/02\/P5-min.jpg\" alt=\"\" width=\"667\" height=\"90\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>TM1py is a free Python package that extends the functionality of Planning Analytics by integrating the TM1 REST API with Python allowing the use of Python libraries. TM1py enhances data source integration, enables machine learning using python, and facilitates Planning Analytics object control using Python automation. In a recent internal &#8220;Hackathon&#8221; a group of QueBIT&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[24],"tags":[38,36,51],"class_list":["post-3457","post","type-post","status-publish","format-standard","hentry","category-ibm","tag-how-tos","tag-planning-analytics","tag-planning-analytics-how-tos"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How can you use TM1py with Python to interact with IBM Planning Analytics? - QueBIT<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/quebit.com\/askquebit\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How can you use TM1py with Python to interact with IBM Planning Analytics? - QueBIT\" \/>\n<meta property=\"og:description\" content=\"TM1py is a free Python package that extends the functionality of Planning Analytics by integrating the TM1 REST API with Python allowing the use of Python libraries. TM1py enhances data source integration, enables machine learning using python, and facilitates Planning Analytics object control using Python automation. In a recent internal &#8220;Hackathon&#8221; a group of QueBIT&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/quebit.com\/askquebit\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\/\" \/>\n<meta property=\"og:site_name\" content=\"QueBIT\" \/>\n<meta property=\"article:published_time\" content=\"2023-04-12T15:33:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-21T16:26:12+00:00\" \/>\n<meta name=\"author\" content=\"agoddard\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"agoddard\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\\\/\"},\"author\":{\"name\":\"agoddard\",\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/#\\\/schema\\\/person\\\/e52d72da0fd2f5f70d189343fe4f5084\"},\"headline\":\"How can you use TM1py with Python to interact with IBM Planning Analytics?\",\"datePublished\":\"2023-04-12T15:33:17+00:00\",\"dateModified\":\"2026-01-21T16:26:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\\\/\"},\"wordCount\":574,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/P1-min.jpg\",\"keywords\":[\"How To\u2019s\",\"Planning Analytics\",\"Planning Analytics How To's\"],\"articleSection\":[\"IBM\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/quebit.com\\\/askquebit\\\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\\\/\",\"url\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\\\/\",\"name\":\"How can you use TM1py with Python to interact with IBM Planning Analytics? - QueBIT\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/P1-min.jpg\",\"datePublished\":\"2023-04-12T15:33:17+00:00\",\"dateModified\":\"2026-01-21T16:26:12+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/#\\\/schema\\\/person\\\/e52d72da0fd2f5f70d189343fe4f5084\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/quebit.com\\\/askquebit\\\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\\\/#primaryimage\",\"url\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/P1-min.jpg\",\"contentUrl\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/P1-min.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How can you use TM1py with Python to interact with IBM Planning Analytics?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/#website\",\"url\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/\",\"name\":\"QueBIT\",\"description\":\"QueBIT\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/#\\\/schema\\\/person\\\/e52d72da0fd2f5f70d189343fe4f5084\",\"name\":\"agoddard\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d817b364cff1d66116debde8d1c85e5e76eeece9c5ae731b19276a6040231455?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d817b364cff1d66116debde8d1c85e5e76eeece9c5ae731b19276a6040231455?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d817b364cff1d66116debde8d1c85e5e76eeece9c5ae731b19276a6040231455?s=96&d=mm&r=g\",\"caption\":\"agoddard\"},\"sameAs\":[\"https:\\\/\\\/quebit.com\\\/askquebit\"],\"url\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/author\\\/agoddard\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How can you use TM1py with Python to interact with IBM Planning Analytics? - QueBIT","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/quebit.com\/askquebit\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\/","og_locale":"en_US","og_type":"article","og_title":"How can you use TM1py with Python to interact with IBM Planning Analytics? - QueBIT","og_description":"TM1py is a free Python package that extends the functionality of Planning Analytics by integrating the TM1 REST API with Python allowing the use of Python libraries. TM1py enhances data source integration, enables machine learning using python, and facilitates Planning Analytics object control using Python automation. In a recent internal &#8220;Hackathon&#8221; a group of QueBIT&hellip;","og_url":"https:\/\/quebit.com\/askquebit\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\/","og_site_name":"QueBIT","article_published_time":"2023-04-12T15:33:17+00:00","article_modified_time":"2026-01-21T16:26:12+00:00","author":"agoddard","twitter_card":"summary_large_image","twitter_misc":{"Written by":"agoddard","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/quebit.com\/askquebit\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\/#article","isPartOf":{"@id":"https:\/\/quebit.com\/askquebit\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\/"},"author":{"name":"agoddard","@id":"https:\/\/quebit.com\/askquebit\/#\/schema\/person\/e52d72da0fd2f5f70d189343fe4f5084"},"headline":"How can you use TM1py with Python to interact with IBM Planning Analytics?","datePublished":"2023-04-12T15:33:17+00:00","dateModified":"2026-01-21T16:26:12+00:00","mainEntityOfPage":{"@id":"https:\/\/quebit.com\/askquebit\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\/"},"wordCount":574,"commentCount":0,"image":{"@id":"https:\/\/quebit.com\/askquebit\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\/#primaryimage"},"thumbnailUrl":"https:\/\/quebit.com\/askquebit\/wp-content\/uploads\/2022\/02\/P1-min.jpg","keywords":["How To\u2019s","Planning Analytics","Planning Analytics How To's"],"articleSection":["IBM"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/quebit.com\/askquebit\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/quebit.com\/askquebit\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\/","url":"https:\/\/quebit.com\/askquebit\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\/","name":"How can you use TM1py with Python to interact with IBM Planning Analytics? - QueBIT","isPartOf":{"@id":"https:\/\/quebit.com\/askquebit\/#website"},"primaryImageOfPage":{"@id":"https:\/\/quebit.com\/askquebit\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\/#primaryimage"},"image":{"@id":"https:\/\/quebit.com\/askquebit\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\/#primaryimage"},"thumbnailUrl":"https:\/\/quebit.com\/askquebit\/wp-content\/uploads\/2022\/02\/P1-min.jpg","datePublished":"2023-04-12T15:33:17+00:00","dateModified":"2026-01-21T16:26:12+00:00","author":{"@id":"https:\/\/quebit.com\/askquebit\/#\/schema\/person\/e52d72da0fd2f5f70d189343fe4f5084"},"breadcrumb":{"@id":"https:\/\/quebit.com\/askquebit\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/quebit.com\/askquebit\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/quebit.com\/askquebit\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\/#primaryimage","url":"https:\/\/quebit.com\/askquebit\/wp-content\/uploads\/2022\/02\/P1-min.jpg","contentUrl":"https:\/\/quebit.com\/askquebit\/wp-content\/uploads\/2022\/02\/P1-min.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/quebit.com\/askquebit\/leveraging-tm1py-to-interact-with-ibm-planning-analytics-using-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/quebit.com\/askquebit\/"},{"@type":"ListItem","position":2,"name":"How can you use TM1py with Python to interact with IBM Planning Analytics?"}]},{"@type":"WebSite","@id":"https:\/\/quebit.com\/askquebit\/#website","url":"https:\/\/quebit.com\/askquebit\/","name":"QueBIT","description":"QueBIT","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/quebit.com\/askquebit\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/quebit.com\/askquebit\/#\/schema\/person\/e52d72da0fd2f5f70d189343fe4f5084","name":"agoddard","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/d817b364cff1d66116debde8d1c85e5e76eeece9c5ae731b19276a6040231455?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d817b364cff1d66116debde8d1c85e5e76eeece9c5ae731b19276a6040231455?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d817b364cff1d66116debde8d1c85e5e76eeece9c5ae731b19276a6040231455?s=96&d=mm&r=g","caption":"agoddard"},"sameAs":["https:\/\/quebit.com\/askquebit"],"url":"https:\/\/quebit.com\/askquebit\/author\/agoddard\/"}]}},"_links":{"self":[{"href":"https:\/\/quebit.com\/askquebit\/wp-json\/wp\/v2\/posts\/3457","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/quebit.com\/askquebit\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/quebit.com\/askquebit\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/quebit.com\/askquebit\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/quebit.com\/askquebit\/wp-json\/wp\/v2\/comments?post=3457"}],"version-history":[{"count":2,"href":"https:\/\/quebit.com\/askquebit\/wp-json\/wp\/v2\/posts\/3457\/revisions"}],"predecessor-version":[{"id":5110,"href":"https:\/\/quebit.com\/askquebit\/wp-json\/wp\/v2\/posts\/3457\/revisions\/5110"}],"wp:attachment":[{"href":"https:\/\/quebit.com\/askquebit\/wp-json\/wp\/v2\/media?parent=3457"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/quebit.com\/askquebit\/wp-json\/wp\/v2\/categories?post=3457"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/quebit.com\/askquebit\/wp-json\/wp\/v2\/tags?post=3457"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}