This project has been archived by its maintainers, and is no longer receiving any updates.
simpleapps-com-augur-api
Python client library for Augur microservices.
Installation
pip install simpleapps-com-augur-api
Pin the version. Versions are CalVer (YYYY.MM.PATCH), and a month roll can carry breaking changes when the Augur API changes upstream. Pin an exact version (==2026.9.7) or stay within a month (~=2026.9.0), and read the release notes before moving to a new month.
Quick Start
from augur_api import AugurAPI
api = AugurAPI(
token="your-bearer-token",
site_id="your-site-id",
)
# Access any service via api.{service_name}
items = api.items.inv_mast.list(limit=10)
customers = api.customers.customer.list(limit=10)
orders = api.orders.oe_hdr.lookup()
# statusCd takes one code or a list (sent as statusCd=704,705)
from augur_api.services.items.generated.schemas import InvMastListParams
items = api.items.inv_mast.list(InvMastListParams(status_cd=[704, 705]))
Service Access Pattern
All services are accessed through the unified AugurAPI client:
api.items # Items service
api.customers # Customers service
api.orders # Orders service
api.pricing # Pricing service
api.commerce # Commerce service
# ... one property per service (see https://items.augur-api.com/llms.txt)
Documentation
| Resource | URL |
|---|---|
| Full API Reference | https://augur-api.info |
| Endpoint Hints | https://{service}.augur-api.com/llms.txt |
| Parameters | https://{service}.augur-api.com/endpoints.jsonl |
| OpenAPI Spec | https://{service}.augur-api.com/openapi.json |
Example: Items Service
- https://items.augur-api.com/llms.txt
- https://items.augur-api.com/endpoints.jsonl
- https://items.augur-api.com/openapi.json
Each llms.txt lists all other available services for discovery.
Authentication
All endpoints require:
site_id- Site identifiertoken- Bearer authentication token
api = AugurAPI(
site_id="your-site-id",
token="your-bearer-token",
)
Configuration
from augur_api import AugurAPI, AugurAPIConfig
# With custom configuration
config = AugurAPIConfig(
token="your-bearer-token",
site_id="your-site-id",
timeout=30.0,
retries=3,
retry_delay=1.0,
)
api = AugurAPI.from_config(config)
# From context (for framework integration)
api = AugurAPI.from_context(context)
Edge Caching
Enable Cloudflare edge caching on any GET request using the edge_cache parameter:
# Sub-hour caching
items = api.items.inv_mast.list(limit=10, edge_cache="30s") # 30 seconds
items = api.items.inv_mast.list(limit=10, edge_cache="1m") # 1 minute
items = api.items.inv_mast.list(limit=10, edge_cache="5m") # 5 minutes
# Hourly caching (1, 2, 3, 4, 5, or 8 hours)
items = api.items.inv_mast.list(limit=10, edge_cache=1) # 1 hour
items = api.items.inv_mast.list(limit=10, edge_cache=8) # 8 hours
| Value | Duration |
|---|---|
"30s" |
30 seconds |
"1m" |
1 minute |
"5m" |
5 minutes |
1 - 5, 8 |
1-5 or 8 hours |
The client automatically transforms edge_cache to Cloudflare's cacheSiteId{N} format.
Error Handling
from augur_api import (
AugurAPI,
AugurError,
AuthenticationError,
NotFoundError,
RateLimitError,
ValidationError,
)
api = AugurAPI(token="...", site_id="...")
try:
response = api.items.inv_mast.get(12345)
except ValidationError as e:
print(f"Bad request: {e.message}")
except AuthenticationError as e:
print(f"Auth failed: {e.message}")
except NotFoundError as e:
print(f"Item not found: {e.message}")
except RateLimitError as e:
print(f"Rate limited: {e.message}")
except AugurError as e:
print(f"API error: {e.code} - {e.message}")
The status decides the class: 400 → ValidationError, 401 → AuthenticationError, 404 → NotFoundError, 429 → RateLimitError, anything else (including 403 and network failures) → AugurError. e.endpoint is the path template (/inv-mast/{invMastUid}), and messages never contain parameter values.
Endpoint Registry and call()
AugurAPI.endpoints() lists every endpoint (id, method, path template, params). call() invokes one by id or alias id, with no typed method:
result = api.call(
"items.invMast.doc.get",
path_params={"invMastUid": 12345},
query={"edgeCache": 1},
)
result.http_status # 200
result.envelope # Envelope (count, data, message, ..., total_results) or None
result.body # parsed JSON, or the raw text when the body isn't JSON
- Arguments are checked before any request: path params must match exactly, query keys must be declared, and a body is allowed only on POST/PUT. Violations raise
InvalidArgumentError. - A 2xx always returns; there is no schema validation. Use the typed methods when you want validated, typed responses.
- Non-2xx responses raise the same errors as the typed methods.
Path Values
Each path value is percent-encoded as one segment: letters, digits and - . _ ~ ! $ & ' ( ) * + , ; = : @ are sent as they are, and anything else (/, ?, #, %, spaces, non-ASCII) as %XX. So bin D/S goes out as /bins/D%2FS, which the API decodes back to D/S. Pass the raw value, never a pre-encoded one (% becomes %25). Each value is checked against its endpoint's pathPatterns registry entry, never guessed from the param name: integer params (and string ids the route keeps to digits, such as contacts id and orderNo) MUST match ^\d+$, agr-site serviceName MUST match ^[a-z0-9_]+$, and a param with no pattern (bin, companyId, siteId) MUST be non-empty. A rejected value raises InvalidArgumentError naming the param and pattern, never the value.
api.call("items.locations.bins.get", path_params={"locationId": 100, "bin": "D/S"})
Only routes whose backend decodes path values find such values. Elsewhere, use the query parameter where there is one.
For AI Agents
See SKILL.md for guidance on using this package with AI assistance.
License
MIT
Metadata
Release files for simpleapps-com-augur-api 2026.10.12
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 | |
|---|---|---|---|---|
| simpleapps_com_augur_api-2026.10.12.tar.gz | 356.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| simpleapps_com_augur_api-2026.10.12-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 644.5 kB
Release files / simpleapps_com_augur_api-2026.10.12.tar.gz
| Download URL | simpleapps_com_augur_api-2026.10.12.tar.gz |
|---|---|
| Size | 356.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
acdeb9bb89e9754c4a284a5a5a42c5ac0436cd9ee7482cb8c85d29b77249c984
|
|
BLAKE2b-256 checksum How to use checksums |
77e52fae35bd630bfa69f13bfcc9303cdfdcff2725e60735a710fc3f41256d76
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / simpleapps_com_augur_api-2026.10.12-py3-none-any.whl
| Download URL | simpleapps_com_augur_api-2026.10.12-py3-none-any.whl |
|---|---|
| Size | 287.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d9a80dbc1ec4b7ad838d52f0f8e498a059948b7840122cab130d920cef5871d5
|
|
BLAKE2b-256 checksum How to use checksums |
07d214185b9af3922526006991f8c8019303d44882c9ae404735f55a5e22d70d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for simpleapps-com-augur-api 2026.10.12
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.
To learn more about protecting yourself from malicious actors, visit our package security documentation.