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

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.

Explore Dynamic Services

Type Safety

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

Explore Dynamic Models

Smart Client

Intelligent session management, automatic retries, and connection pooling.

View Client Documentation

OData Filters

Powerful filtering with simple, intuitive syntax for complex queries.

View OData Filter Guide

Query Options

Advanced query options for sorting, selection, and pagination.

View Query Options Guide

Quick Start

Get up and running with Easy-Acumatica in minutes.

View Quick Start Guide

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()