An unofficial Python library for interacting with the TeamDynamix REST APIs, providing a simple and intuitive scripts for managing TeamDynamix resources.
TeamDynamix is a powerful, enterprise-grade IT Service Management (ITSM) platform used by many respected educational and government organizations to manage ITIL-based operations and services. To learn more about TeamDynamix, visit TeamDynamix.com.
Note: This is an unofficial SDK and is not sanctioned or supported by TeamDynamix. Use at your own discretion and at your own risk.
This project is currently under active development. While some core functionality is implemented, we're continuously working on expanding coverage to remaining TeamDynamix APIs.
Robust Base Client Class
tdx_client = TeamDynamix(
base_url="https://your-instance.teamdynamix.com",
username="username",
password="password"
)
- Single responsibility as HTTP client
- Handles authentication and requests
- Configurable through initialization
- Authentication handling with automatic token refresh
- Rate limiting support
- Comprehensive ticket management
- Type hints for better IDE support
- Dataclass-based models
- AI-powered test ticket generation using OpenAI
The create_ticket.py
script provides an interactive way to generate test tickets with AI-generated content:
- Generates realistic ticket titles and descriptions using OpenAI
- Allows selection of ticket status (New, Open, In Process, etc.)
- Configurable through environment variables
- Interactive prompt for creating multiple tickets
- Copy
.env.example
to.env
- Fill in your TeamDynamix credentials and API details
- Add your OpenAI API key if using AI-generated content
pip install teamdynamix
from teamdynamix import TDClient
client = TeamDynamix(
base_url='https://your-instance.teamdynamix.com/TDWebApi',
username='username',
password='password'
)
The library includes a utility for generating test tickets with synthetic data using OpenAI. This can be useful for testing and development purposes:
from teamdynamix.utils import TicketGenerator
generator = TicketGenerator(client)
test_ticket = generator.create_test_ticket(category="Network Issues")
client = TeamDynamix(
base_url="https://your-instance.teamdynamix.com",
beid="your_beid",
web_services_key="your_web_services_key"
)
ticket = client.tickets.create(
AppID=123,
TypeID=456,
Title="Test Ticket",
AccountID=789,
StatusID=1,
PriorityID=1,
RequestorUid="user@example.com",
Description="Test ticket description"
)
ticket.update({
"Comments": "New comment",
"NewStatus": 2
})
The library supports two authentication methods:
- Username/Password
- BEID/Web Services Key (Administrative access)
Environment variables can be used for admin credentials:
BEID
WEB_SERVICES_KEY
All API methods are automatically rate-limited to comply with TeamDynamix API restrictions. The default limits are:
- Standard endpoints: 60 calls per minute
- Ticket creation: 120 calls per minute
Intent: This project was developed as a free service for fellow TeamDynamix users and is not supported by TeamDynamix. The license is intended to cover the use of the software for non-profit, educational, research, or personal projects.
Non-Commercial Use: This project is provided under the PolyForm Noncommercial License. Feel free to use it for educational, research, or personal projects.
Commercial Use: If you intend to use this software for profit-generating, revenue-driven, or otherwise commercial endeavors, please obtain a separate commercial license.
Contact for Commercial License: Ron Vallejo Email: vallejor@byui.edu
If you encounter any bugs or have feature requests, please file an issue on GitHub:
-
First, check if the issue has already been reported in the Issues section.
-
If not, create a new issue with:
- A clear, descriptive title
- A detailed description of the issue
- Steps to reproduce the problem
- Expected vs actual behavior
- Your environment details:
- Python version
- Library version
- TeamDynamix instance (if relevant)
- Operating system
Example bug report format: