Automation Anywhere A360 Python API Client
A high-performance Python library for interacting with the Automation Anywhere A360 (Control Room) API.
Business Value
This library enables you to automate the management and orchestration of the Automation Anywhere 360 infrastructure.By providing a structured, type-safe interface to the A360 Control Room, it allows you to:
- Programmatically manage devices, users, and lockers to reduce manual administrative overhead.
- Integrate A360 repository management and bot deployment into existing CI/CD workflows.
- Safely manage Credential Vault entries with built-in RSA encryption and optimized bulk retrieval.
- Monitor RPA performance with comprehensive bot metrics and execution history analysis.
- Execute API Tasks (HotBot) for high-frequency, low-latency automation needs.
- Orchestrate Bot Lifecycle (BLM) by automating the export and import of bots across environments.
Architecture
The project is built on modern Python standards with a focus on maintainability, security, and developer experience.
Core Services
The AAClient provides access to a comprehensive suite of 16 domain-specific services:
credentials: Secure management of Credential Vault entries.users: Control Room user and role management.lockers: Management of lockers, owners, and participants.devices: Monitoring and management of Bot Runners and device pools.repository: Interaction with the file repository (Upload, Download, Search).automations: Bot deployment (v3/v4), activity monitoring, and performance metrics.wlm: Workload Management (Queues, Work Items, and Models).audit: Retrieval and filtering of Control Room audit logs.api_task: Management and execution of API Tasks (HotBot).blm: Bot Lifecycle Management (Export, Import, and Promotion).aari: Orchestration of AARI processes and tasks.policy: Code analysis and policy management.license: Control Room license monitoring.scheduler: Management of automation schedules.triggers: Configuration of event-based triggers.ai_agent_studio: Integration with AI Agent Studio services.
Requirements
- Python: 3.10 or higher (Optimized for 3.14+ with
from __future__ import annotations) - Key Dependencies:
pydantic&pydantic-settings(v2, data validation andcamelCasealiasing)requests(HTTP communication with connection pooling)cryptography(RSA OAEP SHA-256 encryption)robocorp-vault(Secret container compatibility)
Usage
1. Initialization
from rpa_automationanywhere import AAClient
# Load connection details from .env (A360_USERNAME, A360_PASSWORD, A360_CONTROL_ROOM_URI)
with AAClient.from_env() as client:
print(f"Connected to: {client.api_client.base_url}")
devices = client.devices.list_devices()
2. Optimized Credential Retrieval
The client automatically handles A360's internal masking logic, ensuring sensitive values are correctly retrieved while optimizing network calls.
# Returns a robocorp.vault.SecretContainer for native compatibility
secret = client.credentials.get_secret("Legacy_ERP_Login")
print(f"Username: {secret.values['username']}")
# Even masked attributes are transparently fetched and available
print(f"Password: {secret.values['password']}")
3. RPA Metrics & Performance Analysis
Deliver actionable business insights using the built-in metrics engine.
metrics = client.automations.get_execution_metrics()
print(f"Overall Success Rate: {metrics.overall_success_rate:.2f}%")
for bot in metrics.bot_metrics:
print(f"Bot: {bot.file_name}")
print(f" - Success: {bot.success_count}/{bot.total_executions}")
print(f" - Avg Duration: {bot.avg_duration:.1f}s")
4. API Task Execution (HotBot)
Execute high-performance API Tasks by fetching access details and posting input data.
# 1. Get execution details
details = client.api_task.get_access_details(["/Bots/MyTaskBot"])
task = details.list[0]
# 2. Execute with input data
result = client.api_task.execute_task(
url=task.url,
headers=task.headers,
input_data={"customer_id": "12345"}
)
5. Bot Lifecycle Management (BLM)
Automate bot promotion between Dev, Test, and Prod environments.
# Export a bot package
export_req = BlmExportRequest(file_paths=["/Bots/MainBot"])
response = client.blm.export_bots(export_req)
# Wait for export to complete and download
status = client.blm.get_status(response.request_id, timeout=30)
archive_bytes = client.blm.download_exported_bots(status.download_file_id)
Security
- Exception Masking: Error messages are automatically truncated to prevent accidental leakage of sensitive data in logs.
- Payload Protection: All sensitive Vault attributes are encrypted locally using RSA OAEP SHA-256 before transmission.
- Persistent Sessions: Securely managed
requests.Sessionobjects handle authentication tokens and connection persistence.
Testing
The library includes a comprehensive test suite (70+ tests) with 100% coverage goals, utilizing pytest and advanced mocking.
pytest tests/
License
This project is licensed under the MIT License - see the LICENSE.txt file for details.
Release files for rpa-automationanywhere 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rpa_automationanywhere-2.0.0.tar.gz | 113.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rpa_automationanywhere-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 180.1 kB
Release files / rpa_automationanywhere-2.0.0.tar.gz
| Download URL | rpa_automationanywhere-2.0.0.tar.gz |
|---|---|
| Size | 113.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ca9a336f9f8c78a1a52af809390e5d219008256b8d476f1388c5d364c1ab4299
|
|
BLAKE2b-256 checksum How to use checksums |
78eb2d828177e4167a3cd7dca9e809c42b38afcdd3d5e947b11d68d3c5fdb3d8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.1
|
Release files / rpa_automationanywhere-2.0.0-py3-none-any.whl
| Download URL | rpa_automationanywhere-2.0.0-py3-none-any.whl |
|---|---|
| Size | 67.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
79c4e50a57c8e7f0f4f5f4fc7c9a2d9ae693ee7059f3377e8bdb4e2eebcba025
|
|
BLAKE2b-256 checksum How to use checksums |
f1e0108dedef68921d41b9bca2d564254ac6de613a74a1e1016fea8bed4ec30d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.1
|