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.
Explore Dynamic ServicesType Safety
Full type hints and IDE support with dynamically generated stubs for your exact instance.
Explore Dynamic ModelsSmart Client
Intelligent session management, automatic retries, and connection pooling.
View Client DocumentationOData Filters
Powerful filtering with simple, intuitive syntax for complex queries.
View OData Filter GuideGetting 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()