Python wrapper for the Acumatica REST API
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file easy_acumatica-0.6.1.tar.gz.
File metadata
- Download URL: easy_acumatica-0.6.1.tar.gz
- Upload date:
- Size: 182.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d1f99425f167ef0861cc55ba6bd0d4488707f308003095ba0a98531a14b9a0d
|
|
| MD5 |
46f3e91900341ad5c2362b0216c82599
|
|
| BLAKE2b-256 |
50aac8335138ddcc639af33009ef8492c174772e672a9f966ae33b9046813930
|
File details
Details for the file easy_acumatica-0.6.1-py3-none-any.whl.
File metadata
- Download URL: easy_acumatica-0.6.1-py3-none-any.whl
- Upload date:
- Size: 134.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b5ffbda7c69919bcea8adef19362d6b75ec5cbb6a57d10e026f842bd839f4d2
|
|
| MD5 |
524388f804aa17f4e5e2babdc9b3611d
|
|
| BLAKE2b-256 |
1d1b290c8839caeed394e885d571fe508533928365c498647367e9e8b6ef9490
|