Hey everyone, I wanted to share the Anaplan Python SDK with you. It's a Python Library that wraps all Anaplan APIs and makes it easier to interact with Anaplan programmatically. It is mostly designed with Data Integration Scenarios in mind, but it does support all APIs including ALM, SCIM, Audit, and Cloud Works.
Please note that this is aimed at people who are comfortable with Python and programming in general, but is accessible to beginners as well. If you are not familiar with Python, you might want to check out some introductory resources first.
✨ Key Features
- Complete API coverage: Access to Bulk, Transactional, ALM, SCIM, Audit, and Cloud Works APIs
- Sync & Async options: Use either synchronous or asynchronous code based on your needs
- Simple authentication: Supports all Anaplan auth strategies including OAuth, Basic, and Certificate Authentication
- Type Safety: Pydantic models to match Anaplan's API resources and full type hints across the SDK
- Python-friendly design: Built following modern Python patterns (>=3.10.4). Integrates nicely with the larger Python data ecosystem.
📚 Documentation
There's comprehensive documentation available to help you get started and guides on how to implement common use cases. Here's where you can find everything:
The project is fully open-source and available on GitHub: GitHub Repository.
💻 Brief Showcase
import anaplan_sdk
anaplan = anaplan_sdk.Client(
workspace_id="your_workspace_id",
model_id="your_model_id",
user_email="admin@company.com",
password="my_super_secret_password",
)
# See resources
file = anaplan.get_files()
imports = anaplan.get_imports()
exports = anaplan.get_exports()
actions = anaplan.get_actions(sort_by="name")
processes = anaplan.get_processes(sort_by="name", descending=True)
# Upload a file
anaplan.upload_file(113000000000, b"Hello Anaplan")
# Run an action
anaplan.run_action(112000000000)
# Or in one call
anaplan.upload_and_import(113000000000, b"Hello Anaplan", 112000000000)
# Run an export and download the result
content = anaplan.export_and_download(116000000000)
# Get all items in a List
list_items = anaplan.tr.get_list_items(101000000299)
# Run a CloudWorks Integration
anaplan.cw.run_integration("0404fdc2be0f4634952c31e23ff7d01f")
# Get Logs from the last 14 days
logs = anaplan.audit.get_events(14)
Please refer to the Guides section in the documentation for more detailed examples and use cases.
🤝 Feedback & Contributing
Any kind of contribution or feedback is very welcome and encouraged. If you find a bug or have a feature request, please open an issue on GitHub. If you find any sharp edges or have ideas for improvements, please do let me know. If you have a use case you would like to see in the documentation, or you think the docs could be improved, please also open a PR or issue.
I will try to keep the SDK up to date with the latest Anaplan API changes and support new features as they come out. If you are aware of any changes that should be made, please let me know.