Catalog PyPI
PACKAGE EXPLORERView in registry

agenttax

PyPI

Python SDK for the AgentTax API — sales tax, use tax, and capital gains for AI agents

agenticai-agentcapital-gainscompliancefintechsales-taxtaxx402
Versions collected1
Direct dependencies3From release 0.2.0
Last observed20 Oct, 23:32 UTC

README

Version 0.2.0 documentation

AgentTax Python SDK

Sales tax, use tax, and capital gains for AI agents. Full docs at agenttax.io/api-docs.

Install

pip install agenttax

Quickstart — no signup required

from agenttax import AgentTaxClient

client = AgentTaxClient()          # keyless: demo mode, 50 calls/day

result = client.calculate(
    role="buyer",                  # buyer side needs no nexus setup
    amount=1000.00,
    buyer_state="TX",
    transaction_type="compute",
    counterparty_id="agent_seller_001",
)

print(result["total_tax"])         # use tax owed on the purchase
print(result["combined_rate"])     # the location's composed rate (state + local)
print(result["applied_rate"])      # the rate actually applied to compute total_tax
print(result["confidence"])        # {"score": ..., "level": ...}

Demo mode returns the tax figure, the rate and a confidence score. It omits the audit trail, jurisdiction breakdown and advisories, and it keeps no history.

API Key

Get a free API key at agenttax.io — 1,500 calls/month at no cost — for the full response plus transaction history, nexus monitoring, capital gains tracking and 1099 export.

client = AgentTaxClient(api_key="atx_live_...")

Why role="seller" returns $0.00 on a new account

A seller only has to collect tax where it has economic nexus, and a new account has none configured — so every seller-side calculation correctly returns total_tax 0 with final_determination: "no_nexus" until you set nexus up:

import requests
requests.post(
    "https://agenttax.io/api/v1/nexus",
    headers={"X-API-Key": "atx_live_..."},
    json={"nexus": {"TX": {"hasNexus": True, "reason": "Economic nexus"}}},
)

Or pass nexus_override={"TX": {"hasNexus": True}} to calculate() to model a seller position without saving it. Note the shape — a bare list of state codes is read as "no nexus" and silently returns $0.00. Buyer-side calls need none of this, which is why the quickstart above starts there.

Methods

calculate(**kwargs)

Calculate sales tax for a transaction.

ParameterTypeRequiredDescription
rolestr✓"seller" or "buyer"
amountfloat✓Transaction amount in USD
buyer_statestr✓Two-letter state code
transaction_typestr✓"saas", "compute", "consulting", etc.
counterparty_idstr✓Counterparty identifier
work_typestr"compute", "research", "content", "consulting", "trading"
is_b2bboolBusiness-to-business transaction
use_contextstr"enterprise_system", "individual", or "mixed" — Maryland-only in v1, declares whether the purchase is solely for commercial use in an enterprise computer system (TB-56); absent = unchanged is_b2b-proxy default
buyer_zipstr5-digit ZIP for local rate lookup

get_rates(state=None, format=None, explain=False)

Fetch sales tax rates for all 51 jurisdictions. No auth required.

get_capital_gains_rates(state=None)

Fetch state capital gains rates. No auth required.

get_local_rate(zip_code)

Fetch combined local + state rate for a ZIP code.

get_transactions(limit=50, offset=0, ...)

Fetch transaction history. Auth required.

log_trade(**kwargs) / get_trades(**kwargs)

Capital gains trade tracking (FIFO/LIFO/Specific ID). Auth required.

Error Handling

from agenttax import AgentTaxClient, AuthError, RateLimitError, ValidationError

client = AgentTaxClient(api_key="atx_live_...")

try:
    result = client.calculate(...)
except AuthError:
    # Invalid or missing API key
    pass
except RateLimitError:
    # Monthly quota exceeded — upgrade tier or wait
    pass
except ValidationError as e:
    # Bad request parameters
    print(e)

Free Tier

1,500 API calls/month at $0. Paid plans start at $25/month (10K calls). See agenttax.io/pricing.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.2.018 Sept 20263

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
agenttax/agenttax

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 23:32 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:e82b693336970d85fbb70f73423ebe589940af03af9a1e76fdd6cfd6c21a4981