client.login()
customers.get_list()
F.Cost >= 20.5
QueryOptions(Select=["FirstName"])
Version 0.5.4

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

main.py
Python
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.

Auto-Discovery
Custom Fields
Zero Config

Features

Core functionality for Acumatica API integration

Dynamic Discovery

Automatically discovers and adapts to your Acumatica schema, including custom fields and endpoints.

Learn more

Type Safety

Full type hints and IDE support with dynamically generated stubs for your exact instance.

Learn more

Smart Client

Intelligent session management, automatic retries, and connection pooling.

Learn more

OData Filters

Powerful filtering with simple, intuitive syntax for complex queries.

Learn more

Query Options

Advanced query options for sorting, selection, and pagination.

Learn more

Quick Start

Get up and running with Easy-Acumatica in minutes.

Learn more

Getting Started

Installation and basic setup

1

Install

Get the package from PyPI

Bash
pip install easy-acumatica
2

Configure

Set up .env file

Bash
ACUMATICA_URL=https://...
ACUMATICA_USERNAME=...
ACUMATICA_PASSWORD=...
ACUMATICA_TENANT=...
3

Initialize

Create client instance

Python
from easy_acumatica import AcumaticaClient

client = AcumaticaClient()
4

Use Services

Access endpoints

Python
# 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