https://xintel.aispace.bot
OpenAPI: https://xintel.aispace.bot/openapi.json — machine catalog of this API (what Xintel reports are, paths, pricing handshake). Paste into an x402 marketplace import or codegen tool.
Product: shared report bodies only — never profile, posts, or edges.
Price: $0.01 USDC × N reports on Base (chain 8453). The live unit price is extensions.unitPriceUsd in the 402.
Paid steps require a Base wallet funded with USDC. Browsing is free.
Routes
Three routes reach the same endpoints at the same$0.01/report price. Use the first one the environment supports.
The CLI is the default: it runs the full payment loop and removes the failure modes of the raw route — no
x402/viem install, no ESM/CJS mismatch, no 0x-prefix or x402Version handling. When the raw route fails in a given environment, the CLI is the resolution, not a workaround.
Route 1 — CLI (default)
One command buys a report.npx fetches and caches the package; nothing is installed. The CLI runs the entire 402 → sign → retry loop.
--json to any command for the raw response. XINTEL_AGENT_KEY is read from the environment only, never a flag. The client runs locally; the key never reaches Xintel’s servers.
This is the complete flow. The sections below cover the other two routes and the shared reference detail.
Route 2 — MCP
For persistent hosted agents, add the same package as an MCP server. One-time setup, then call the tools directly:Route 3 — Raw HTTP (fallback)
For environments that cannot run Node. Same endpoints and price as the CLI, with the402 → sign → retry loop implemented directly.
Steps
GET /api/intel/list— pick ausername(free, no auth).GET /api/intel/reports?username={u}— read the menu:id,createdAt,model,dateRange(free, no auth).- Choose a selection:
- All:
…&select=all - Range:
…&select=range&ids=a,band/orfrom=/to=(ISO, compared againstcreatedAt).
- All:
- On the 402: read
accepts[0]—network(eip155:8453),asset(USDC),amount(base units, 6dp),payTo. - Pay, then resend the identical URL with
X-402-Payment: <payload>(orX-Payment). - On 200: use
reports[]— each is anIntelReportSnapshot. Body:{ username, select, reportCount, chargedUsd, reports }.
The 402 challenge
amount is USDC base units (6 decimals — 10000 = $0.01). The asset is USDC on Base (chain 8453). payTo is the deployment’s receiver wallet.
Paying (step 5)
Use a standard x402 client with a funded Base USDC wallet. It readsaccepts[0], signs, and produces the header. The underlying instrument is an EIP-3009 TransferWithAuthorization for USDC on Base (USDC only — no gas).
amount, payTo, or asset.
Response shape (all routes)
A successful purchase returns:chargedUsd is the required amount (unit × N), not the settled amount — overpayment is not reflected here. Each IntelReportSnapshot carries id, createdAt, model, synthesisSettings, meta, computed analytics, AI narrative, an optional changeSummary, and previousReportId. Treat unknown fields as forward-compatible.
Constraints
- These routes never return bundle/corpus fields (profile, posts, edges).
- Do not reuse a
nonce/ payment id (409 payment_already_used). - Send the payment on the identical URL that returned the 402.
Errors
400 bad query · 402 pay and retry (or insufficient_payment) · 404 unknown handle or empty range · 409 payment reused · 501 settlement not configured · 502 upstream/storage failure · 503 store not configured.
A bare 402 with no settled retry is the normal payment handshake, not an error — read accepts and extensions, pay, then retry.
Reference
The pages above complete a purchase. These expand individual areas:- CLI & MCP — additional CLI and MCP options
- Raw HTTP — the fallback flow, step by step
- Auth and payment · Reports schema · Errors · Pricing
Machine index
Use the site’s/llms.txt, /llms-full.txt, and per-page .md exports. Agent rules are also injected via markdown.instructions in docs.json.