Skip to main content

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 (the Expose via OData flag on SM208000) 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).

  • 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

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)

Source distribution for easy-acumatica 0.6.1
File Size Uploaded Provenance
easy_acumatica-0.6.1.tar.gz 182.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for easy-acumatica 0.6.1
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

0.6.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page