Easy-Acumatica
A Python client for Acumatica's REST API. Dynamically generates models and service methods from your tenant's schema, supports OData queries, batch operations, caching, and a built-in interactive TUI for exploring the API.
Full documentation: easyacumatica.com/python
Installation
pip install easy-acumatica # core
pip install easy-acumatica[tui] # core + interactive TUI
Quick start
from easy_acumatica import AcumaticaClient
client = AcumaticaClient(
base_url="https://your-instance.acumatica.com",
username="...",
password="...",
tenant="...",
)
contact = client.models.Contact(DisplayName="Jane Doe", Email="jane@example.com")
client.contacts.put_entity(contact)
.env files and environment variables (ACUMATICA_URL, ACUMATICA_USERNAME,
ACUMATICA_PASSWORD, ACUMATICA_TENANT, ...) are picked up automatically when
the constructor is called with no arguments.
Interactive TUI (ea-debug)
Install the [tui] extra and launch the terminal UI:
pip install easy-acumatica[tui]
ea-debug
The TUI is a debug / exploration tool — connect to a tenant and browse:
- Services — every dynamically generated service. Pick one and run
get_list,get_by_id,get_by_keys,get_ad_hoc_schema,get_files,put_entity,put_file,delete_by_id,delete_by_keys. Query options ($top,$skip,$select,$expand,$orderby,$filter) get a form, destructive calls require a confirmation press, and a live "Equivalent Python" pane shows the call you can copy back into your script. - Models — every generated dataclass. Hit Enter on one to open the recursive model builder; the equivalent Python constructor renders next to the form as you type.
- Inquiries — every Generic Inquiry exposed in the tenant's metadata.
Each inquiry gets its own execution menu with the same OData query options
as
get_list. Inquiries that aren't published to OData (theExpose via ODataflag onSM208000) surface a clear error rather than a raw 403.
Type stubs
Run once after install for full IDE autocompletion:
generate-stubs --url "https://your-instance.acumatica.com" \
--username "..." --password "..." --tenant "..." \
--endpoint-version "24.109.0029"
PEP 561 .pyi files are written into the installed package so
VSCode/Pylance/Pyright/mypy discover them automatically. Regenerate after
schema changes. See STUBSETUP.md for advanced setups
(Lambda, read-only installs, multi-tenant).
Related projects
- Orbu — Docker app for managing Acumatica clients and endpoints with a GUI.
- easy-acumatica-npm — TypeScript / Node.js sister package.
License
MIT — see LICENSE.
Support
- Issues: GitHub Issues
- Documentation: easyacumatica.com/python
Metadata
Release files for easy-acumatica 0.6.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| easy_acumatica-0.6.1.tar.gz | 182.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| easy_acumatica-0.6.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 316.9 kB
Release files / easy_acumatica-0.6.1.tar.gz
| Download URL | easy_acumatica-0.6.1.tar.gz |
|---|---|
| Size | 182.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0d1f99425f167ef0861cc55ba6bd0d4488707f308003095ba0a98531a14b9a0d
|
|
BLAKE2b-256 checksum How to use checksums |
50aac8335138ddcc639af33009ef8492c174772e672a9f966ae33b9046813930
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|
Release files / easy_acumatica-0.6.1-py3-none-any.whl
| Download URL | easy_acumatica-0.6.1-py3-none-any.whl |
|---|---|
| Size | 134.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8b5ffbda7c69919bcea8adef19362d6b75ec5cbb6a57d10e026f842bd839f4d2
|
|
BLAKE2b-256 checksum How to use checksums |
1d1b290c8839caeed394e885d571fe508533928365c498647367e9e8b6ef9490
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|
Security for easy-acumatica 0.6.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.