This page shows a subset. The full, current catalog with all tools and prices: /agents.json · llms.txt
Pay per signed result in USDC on Base, Arbitrum, Polygon or Solana via x402 or MCP. No account, API key, subscription or minimum.
| Decision | HTTP (x402) | MCP tool | Price |
|---|---|---|---|
| Is this ordinary DE/AT product ready for a US carrier quote? USITC HTS + simple duty component + CPSC recalls + declared regulatory attributes |
POST /x402/us-import-readinessJSON includes job_id; free check: /free/us-import-readiness/check |
us_import_readiness_guardprepare: prepare_us_import_readiness | 0.25 USDC |
| Is this EU supplier invoice ready for buyer approval? EN 16931 + VIES + EU/UN/UK sanctions + VAT + trusted IBAN → READY / HOLD / DO NOT PAY |
POST /x402/invoice-to-payfree check: /free/invoice-to-pay/check |
invoice_to_pay_dossier_euprepare: prepare_invoice_to_pay_eu | 1.00 USDC |
| Can I onboard or pay this counterparty? VAT + sanctions + IBAN → clear / review / blocked |
GET /x402/counterparty?name=…&vat=…&iban=… |
check_counterparty_eu | $0.02 |
| Can I accept or send this EU e-invoice? official EN 16931 rules → valid / invalid with BR codes |
POST /x402/einvoice |
validate_einvoice_eu | $0.10 |
| Should my agent send this on-chain transaction? six evidenced checks → proceed / review / block; unknown is never approval |
GET /x402/preflight?sender=…&to=… |
tx_preflight | $0.02 |
Call the endpoint. You get HTTP 402 with a payment-required header containing the
payment requirements (scheme exact, asset USDC) for Base, Arbitrum, Polygon and Solana.
Sign and repeat the call with the PAYMENT-SIGNATURE header — any x402 v2 client SDK does this
automatically. Settlement runs through the PayAI facilitator; the payer needs no native gas token.
pip install "x402[evm]"
import requests
from x402.client import x402ClientSync
from x402.mechanisms.evm.exact.register import register_exact_evm_client
from x402.mechanisms.evm.signers import EthAccountSigner
from x402.http.clients.requests import wrapRequestsWithPayment
# 1) Send the same JSON to the free local input check first.
payload = {
"invoice_xml": complete_ubl_or_cii_xml,
"buyer_country": "AT", "expected_amount": "1250.00", "expected_currency": "EUR",
"trusted_payee_iban": iban_from_buyer_master_data
}
check = requests.post("https://api.eucompliance.tools/free/invoice-to-pay/check", json=payload)
check.raise_for_status()
assert check.json()["eligible_for_paid_dossier"] is True
# 2) Only if eligible, use an x402-enabled session for the 1.00-USDC dossier.
client = x402ClientSync()
register_exact_evm_client(client, EthAccountSigner(my_account), networks="eip155:8453")
session = wrapRequestsWithPayment(requests.Session(), client)
r = session.post("https://api.eucompliance.tools/x402/invoice-to-pay", json=payload)
print(r.json())
Five read-only endpoints with stable agent-chain-data/1 output contracts. They
match the concrete search intent of an agent instead of requiring it to construct raw JSON-RPC.
| Intent | x402 endpoint | Price |
|---|---|---|
| Wallet balance + pending nonce | GET /x402/wallet-balance?chain=base&address=… | $0.003 |
| Gas price + execution-fee estimate | GET /x402/gas-estimate?chain=base&to=… | $0.003 |
| Transaction status + revert reason | GET /x402/tx?chain=base&tx_hash=… | $0.002 |
| ERC-20 balance + allowance | GET /x402/token?chain=base&token=…&owner=… | $0.002 |
| Address type + runtime bytecode | GET /x402/contract-info?chain=base&address=… | $0.003 |
Supported data chains: Base, Ethereum, Arbitrum, Optimism and Polygon. No endpoint signs, approves, transfers or broadcasts a transaction.
First validate the exact request for free. The response returns the paid URL, exact price and safe payment cap without calling the model:
curl -X POST https://api.eucompliance.tools/free/agentllm/check \
-H 'content-type: application/json' \
-d '{"model":"agentllm/micro","messages":[{"role":"user","content":"Classify: invoice paid."}],"max_tokens":80}'
Then use the same JSON with an x402-enabled OpenAI transport:
pip install openai "x402[httpx,evm]" eth-account
import asyncio, os
from eth_account import Account
from openai import AsyncOpenAI
from x402 import x402Client
from x402.client import max_amount
from x402.http.clients import x402HttpxClient
from x402.mechanisms.evm.exact.register import register_exact_evm_client
from x402.mechanisms.evm.signers import EthAccountSigner
async def main():
payment = x402Client()
signer = EthAccountSigner(Account.from_key(os.environ["EVM_PRIVATE_KEY"]))
register_exact_evm_client(payment, signer, networks="eip155:8453")
payment.register_policy(max_amount(3000)) # hard cap: 0.003 USDC
async with x402HttpxClient(payment) as http_client:
client = AsyncOpenAI(base_url="https://api.eucompliance.tools/api/v1/micro",
api_key="x402", http_client=http_client)
response = await client.chat.completions.create(
model="agentllm/micro",
messages=[{"role": "user", "content": "Classify: invoice paid."}],
max_completion_tokens=80,
)
print(response.choices[0].message.content)
asyncio.run(main())
A normal OpenAI client without this payment transport stops at HTTP 402. Micro costs exactly
0.003 USDC with 2,400 UTF-8 input bytes, 8 messages and 300 output tokens. Basic remains at
https://api.eucompliance.tools/api/v1, model agentllm/basic, for exactly
0.005 USDC with 6,000 bytes and 750 output tokens. Both return standard
chat.completion fields plus a signed delivery receipt. See the free
machine quickstart, agent
skill and model catalog.
claude mcp add --transport http eu-compliance https://mcp.eucompliance.tools/mcp
For short inference, run free prepare_agentllm_micro and then
agentllm_micro for exactly 0.003 USDC. For US importing, run free
prepare_us_import_readiness and then
us_import_readiness_guard (its risk_answers object uses the exact eleven
fields shown in the catalog). For invoices, run free prepare_invoice_to_pay_eu before
invoice_to_pay_dossier_eu. Counterparty, e-invoice and transaction
pre-flight remain available for smaller jobs. VAT-ID, IBAN and receipt verification are free entry tools. Payment
travels in-band in the tool call (_meta); an unpaid call returns machine-readable
payment requirements.
PROCEED_TO_CARRIER_QUOTE, REVIEW_REQUIRED or
DO_NOT_FORWARD. It validates a supplied HTS code or returns non-binding current
USITC candidates, calculates only a simple ordinary-duty component, checks CPSC recall
candidates and routes declared regulated attributes. The free prepare tool returns the paid URL,
job ID and a recovery secret. No product URL, checkout, forwarding address, shipping booking or
carrier account is touched; no exact landed cost, binding classification or clearance is claimed.
READY_FOR_BUYER_APPROVAL, HOLD_FOR_REVIEW
or DO_NOT_PAY. Every result includes evidence paths, source timestamps, safe next
actions and a receipt whose complete envelope is signed. Missing evidence is never approval.
The service checks IBAN structure and trusted-data consistency, but never claims bank-account
ownership. READY_FOR_BUYER_APPROVAL does not prove delivery, internal approval or duplicate-ledger status. Input is
UBL/CII XML or ZUGFeRD/Factur-X with one embedded XML invoice, not an ordinary or scanned PDF.
One completed dossier is 1.00 USDC; no subscription or paid follow-up.
clear / review / blocked with reasons and a recommendation.
BR- rule code and severity; the signed result can be verified independently.
proceed / review / block with evidence and safe next actions.