Search by intent with GET /recommend?task=..., or inspect the full machine-readable catalog.
Make your first paid call.
API Acre uses x402 v2 exact USDC payments on Base. The official buyer client reads the HTTP 402 challenge, signs the payment authorization, retries the request, and returns the result.
Use a low-value hot wallet with USDC on Base and set EVM_PRIVATE_KEY locally.
The x402 client handles the challenge and payment. Successful responses include settlement metadata.
Python
pip install "x402[httpx]" eth-account · raw example
import asyncio
import os
from eth_account import Account
from x402 import x402Client
from x402.http import x402HTTPClient
from x402.http.clients import x402HttpxClient
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client
async def main() -> None:
client = x402Client()
account = Account.from_key(os.environ["EVM_PRIVATE_KEY"])
register_exact_evm_client(client, EthAccountSigner(account))
response_parser = x402HTTPClient(client)
async with x402HttpxClient(client) as http:
response = await http.post(
"https://apiacre.com/v1/research/sec-filing-signals",
json={"identifier": "AAPL"},
)
await response.aread()
response.raise_for_status()
print(response.json())
print(
response_parser.get_payment_settle_response(
lambda name: response.headers.get(name)
)
)
asyncio.run(main())
TypeScript
npm install @x402/fetch @x402/evm @x402/core viem · raw example
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { wrapFetchWithPayment, x402HTTPClient } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";
const signer = privateKeyToAccount(process.env.EVM_PRIVATE_KEY as `0x${string}`);
const client = new x402Client();
client.register("eip155:*", new ExactEvmScheme(signer));
const fetchWithPayment = wrapFetchWithPayment(fetch, client);
const responseParser = new x402HTTPClient(client);
const response = await fetchWithPayment(
"https://apiacre.com/v1/research/sec-filing-signals",
{
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({ identifier: "AAPL" }),
},
);
if (!response.ok) throw new Error(`API Acre returned ${response.status}`);
console.log(await response.json());
console.log(await responseParser.processResponse(response));
Spend safely
Never expose a Ledger seed phrase or primary wallet private key. Fund a separate low-value buyer wallet, inspect the challenge price, network, and recipient before signing, enforce a per-call and daily budget, and keep idempotency keys when retrying.