Transactional API Tutor

The purpose of this Transactional API Tutor Script based on Python is to facilitate the learning process of Transactional API Calls using the Anaplan Platform. This version contemplates the most common Transactional API calls until November 09, 2020.

Download the Python Script file using the file attachment located to the right of this article. 

Steps to use it:

  1. Make sure the following Python libraries are installed on your environment over Python 3.8.5.
    Note: Click here to get guidance on how to install Python packages. 
  2. Open the file and change the parameters described below according to your needs. Choose either Username-Password authentication or CA-Certificate-based authentication.
    1. Username-Password-based authentication parameters:

    2. CA-certificate-based authentication parameters:
      Note: in the case of CA-Certificate-based authentication, make sure that you have the public and private key (.pem) files in place.
    3. Current date is always used to set the Current Period of the selected model.
    4. A set of Workspaces and Models accessible by your user or certificate will be presented to you during this Python script runtime so the subsequent Transactional API calls in the same script will be generated dynamically based on those parameters.


  1. The underlying Anaplan Transactional API Details are shown.
  2. Choose the correct option according to the underlying Anaplan Transactional API Endpoint.
  3. Notice the next underlying Transactional API Details based on the previous selection.
  4. Close that window by clicking on the red x at the top left corner.
  5. Notice the underlying Transactional API Response based on the Transaction API details shown on the previous screenshot.
  6. Close that window by clicking on the red x at the top left corner and continue the interaction with the API Transactional Tutor according to the script execution.

Feel free to post your feedback and suggestions in the comments below! I am more than happy to hear from you about your experience using the Python-based Transactional API Tutor script.

Additional Reference: Anaplan Integration API V2 Guide and Reference 

The content in this article has not been evaluated for all Anaplan implementations and may not be recommended for your specific situation.
Please consult your internal administrators prior to applying any of the ideas or steps in this article.

What a great feature! We used to have a WS allowance issues on several workspaces and I always wanted to set up automated monitoring with alert in case some limits are reached.


I found a workaround with getting that data from hypercare models though.

Thank you for your feedback on that @Hayk! I do appreciate it.



This is very helpful, Thank you very much


Only one thing we need to add is ,  if the private is key is protected with passphrase then we need to pass the passphrase as byte string to the load certificate method 


key = crypto.load_privatekey(crypto.FILETYPE_PEM, anaplan_private_certificate, (keyphrase.encode()))


Thank you


Thank you for your feedback and comment on that @timmapuramreddy! I do appreciate it.


I'm looking at the code you posted in the attachment after the authentication. Could you expand on what it is doing please? I couldn't see where elementID was declared. 


for index in range(0, NumberOfItems):
    # Key commands each step of the operation
    key = keyword[index]

    # Generate the set of IDs at the runtime their values are available        
    if key == 'workspaces':
        workspaceID = elementID

    elif key == 'models':
        modelID = elementID

    elif key == 'modules':
        moduleID = elementID
    elif key == 'views':
        viewID = elementID
    else: noelementID = 'true'

    # Generate the API Call URLs  
    if index==0: url[index]='workspaces?tenantDetails=true'
    elif index==1:url[index]='workspaces/' + workspaceID + '?tenantDetails=true'
    elif index==2:url[index]='models'
    elif index==3:url[index]='workspaces/' + workspaceID + '/models/' + modelID + '/currentperiod'
    elif index==4:url[index]='workspaces/' + workspaceID + '/models/' + modelID + '/currentperiod?date=' + today
    elif index==5:url[index]='models/' + modelID + '/modules'
    elif index==6:url[index]='models/' + modelID + '/views'
    elif index==7:url[index]='models/' + modelID + '/views/' + viewID
    elif index==8:url[index]='models/' + modelID + '/views/' + viewID + '/data?'
    elif index==9:url[index]='models/' + modelID + '/processes'  
    else:print('Index out of bond')

    # Define Current URL
    current_url = anaplan_api_url + url[index]




Version history
Last update:
‎11-10-2020 09:33 AM
Updated by:
About the Author