Easy-Acumatica for Python
Python client library for Acumatica ERP REST API with automatic schema discovery, type hints, and OData support.
Quick Example
Basic usage with automatic schema discovery
from easy_acumatica import AcumaticaClient
from easy_acumatica.odata import QueryOptions, F
# Initialize client (auto-loads from .env)
client = AcumaticaClient()
# Access dynamically generated services
customers = client.customers.get_list()
# Create entities with type hints
new_customer = client.models.Customer(
CustomerID="CUST001",
CustomerName="Acme Corp"
)
client.customers.put_entity(new_customer)
# OData filtering with Python-style expressions
active_customers = client.customers.get_list(
options=QueryOptions(
filter=F.Status == "Active",
select=["CustomerID", "CustomerName"],
top=10
)
)Schema Discovery
Fetches the OpenAPI schema from your instance at runtime and generates models and services dynamically, including any custom fields or endpoints.
Features
Core functionality for Acumatica API integration
Dynamic Discovery
Automatically discovers and adapts to your Acumatica schema, including custom fields and endpoints.
Learn moreType Safety
Full type hints and IDE support with dynamically generated stubs for your exact instance.
Learn moreGetting Started
Installation and basic setup
Install
Get the package from PyPI
pip install easy-acumaticaConfigure
Set up .env file
ACUMATICA_URL=https://...
ACUMATICA_USERNAME=...
ACUMATICA_PASSWORD=...
ACUMATICA_TENANT=...Initialize
Create client instance
from easy_acumatica import AcumaticaClient
client = AcumaticaClient()Use Services
Access endpoints
# Service endpoints are attributes
customers = client.customers.get_list()Upgrading from 0.4.x?
Version 0.5.4 adds automatic .env file loading, differential caching for faster initialization, and a built-in task scheduler. Check the migration guide for details on new features.
View Migration Guide