# Amazap > Amazap helps an agent spend less on AI: fewer tokens, the right tool, or a direct read. Prices are in sats first, then ≈$. Amazap is built by Amboss Technologies, which also runs the Amboss Payments service Amazap uses. One MCP server and one credit balance. The agent pays per call over Lightning. Amazap also lists about 1,200 pay-per-call APIs from public L402 and x402 directories (402 Index, PayPerQ, Coinbase's x402 Bazaar) plus Amazap's own first-party services, Amazap Basics. Listings payable over Lightning can be bought in sats. USDC-only x402 listings are shown but not yet buyable. Amazap is the merchant of record: it buys each call from the seller and returns the seller's response to your agent. Install the MCP: - MCP URL: https://amazap.com/mcp (Streamable HTTP, OAuth sign-in with dynamic client registration) - Claude Code: `claude mcp add --transport http amazap https://amazap.com/mcp` - Claude (web/desktop): Customize, Connectors, Add custom connector, paste the MCP URL, Add - Cursor, VS Code: use the install buttons at https://amazap.com/mcp, or add an HTTP MCP server with the URL above - ChatGPT: developer mode, create an app, paste the MCP URL, choose OAuth, Scan Tools - Gemini app (US, English, personal Google accounts, 18 or older, Keep Activity on; add on the web, then it works on web and mobile): gemini.google.com, Settings & help, Connected Apps, Custom apps, Add a custom app, paste the MCP URL, Next, approve, name it Amazap, use @Amazap - Gemini CLI: `gemini mcp add --scope user --transport http amazap https://amazap.com/mcp`, then in Gemini `/mcp auth amazap` - Android Studio: Settings, Tools, AI, MCP Servers, paste `{"mcpServers":{"amazap":{"httpUrl":"https://amazap.com/mcp"}}}`, choose Start Login - Gemini Code Assist: VS Code agent mode uses `~/.gemini/settings.json`; IntelliJ server entry is `{"command":"npx","args":["mcp-remote","https://amazap.com/mcp"]}` - Approving the connection opens an agent account. A new account may get a small starter credit after verifying an email and linking the agent, subject to limits. You can add sats on the approval page or later with `top_up`. - Starter prompt: "Find me a weather API on Amazap and buy one current reading for Berlin." - Seeing old or missing tools? Some clients save the tool list. Remove the Amazap connector, add it again at https://amazap.com/mcp, and sign in. The current server version is shown at https://amazap.com/api/mcp. MCP tools: - `read_webpage`: one call reads a public page as Markdown. 6 sats ≈ $0.0047. Spends from the balance when the price is within the auto-approve limit - `lightning_node`: one call returns a Lightning node snapshot for a 66-hex pubkey. A pubkey with no public channels is a private node and is still charged. A malformed pubkey is refused before payment. 13 sats ≈ $0.01 - `lightning_liquidity`: one call returns current inbound-liquidity prices. No input. 26 sats ≈ $0.02 - `magma_liquidity`: one call returns structured live Magma data: a liquidity quote, the offer book, or one node. No Node or GraphQL setup. 1 sat ≈ $0.0008 from the credit balance. `GET https://amazap.com/basics/v1/magma` - `read_feed`: one call reads a public RSS, Atom, or JSON feed as compact JSON. An HTML page that links a feed is followed once. 13 sats ≈ $0.0041 - `make_qr`: one call returns a PNG QR code for a person to scan: a Lightning invoice, a URL, or text. 13 sats ≈ $0.01 - `squeeze_log`: one call shrinks a failed CI, test, or server log. Pass a url (a GitHub Actions job link or a raw log URL) or paste the log. 11 sats ≈ $0.0086 - `page_metadata`: one call returns link-preview data for a URL (title, description, canonical URL, share image, favicon, language, Open Graph, Twitter card, JSON-LD). 6 sats ≈ $0.0047 - `read_pdf`: one call reads a public PDF as Markdown with headings and tables. 26 sats ≈ $0.02 for up to 30 pages, scaled by pages read, minimum 5 sats - `repo_digest`: one call orients you in a public GitHub repo. Best on medium and large repos. 26 sats ≈ $0.02 - `search_catalog`: Find other paid tasks on Amazap (APIs, data, tools) by keyword. Each result shows one all-in sats price and a ready-to-use buy call - `describe_sku`: parameters, schema confidence, and all-in price for a SKU - `quote`: read-only all-in price with quoteId and expiry. `quote_id` is required on `buy`. Search and describe already return one, so call `quote` only when quantity or currency changes. Spends nothing - `buy`: Spends money from your Amazap balance. Pays for one SKU, or a basket, and returns the seller response. `quote_id` is required and must match the SKU, quantity, and price, along with `total_cost`, `max_total_sats`, and `accept_terms` copied from the example buy call. A different param set at the same all-in price uses that quote. A higher price at or under `max_total_sats` is re-quoted and bought in the same call. Charges nothing if the quote is stale, the SKU differs, the total is higher than `max_total_sats`, `accept_terms` is missing (`terms_required`), or a spend limit is exceeded. Each agent also has an hourly buy limit. A `rate_limited` error includes `limit`, `window`, `remaining`, and `retryAfterSeconds`, and the HTTP response sets `Retry-After`. A basket is one buy: put every SKU in `items` and pass one total for the list. Above the auto-approve limit, or when a listing says Partial credit only, the person confirms the exact all-in price, or buy returns `approval_required` and charges nothing until that quote is approved. If a listing is untested and the price is over 500 sats, confirm before buying. USDC-only rows return `not_yet_supported` and charge nothing - `orders`: recent buys for this agent. Optional include_results adds each stored result. The default is a short summary of order id, status, and charged, credited, and net sats - `get_order`: one order, including the stored result - `balance`: remaining sats, today's spend, and the per-call, per-day, and per-session limits - `spend_summary`: today's spend, this session's spend, remaining budgets, the limits, and the last 10 buys. Does not spend - `catalog_stats`: listing counts by source and protocol - `top_up`: creates a Lightning invoice and QR for the human to pay; moves no sats itself - `report_sku`: flag a bad schema, a junk response, or a dead SKU - `claim_failed_call`: claim a re-credit for a failed paid call within 72 hours of the call when it was not credited automatically. Optional `line` or `sku` picks one basket line; omit both when only one line can be claimed. Paid back as Amazap credits under the terms accepted at purchase, not cash - `report_outcome`: report how a delivered paid call went. Spends nothing. A service credit may be added to the balance when the paid call was at least 20 sats. A smaller call is recorded and is not credited. The credit is not cash - `list_my_endpoint`: probe one public https endpoint for an L402 challenge and return a listing draft plus a /sell link. Spends nothing and does not publish the listing. Buyers see one all-in price Pricing and credits: - Every quote, search row, and receipt is one all-in price in sats, with a local-currency estimate. That is what the buyer pays. - Amazap Basics cost their listed price. The price is in sats. The dollar figure is the equivalent at the current BTC rate. - Topping up buys prepaid Amazap service credits. Your payment becomes Amazap's, and credits can only be spent on services Amazap sells. We don't hold funds on your behalf, and credits can't be withdrawn or transferred. Credits stay valid while the account is used at least once a year. - A paid call that fails is credited back as Amazap service credit: automatically when the failure is confirmed at call time, or by `claim_failed_call` within 72 hours. Standard listings are credited in full. A listing marked Partial credit only returns our share of the price after the provider is paid, which may be zero, and a full credit if the provider was not paid. A purchase accepted under an older terms version keeps that version's partial-credit rule. Re-credits for provider failures are capped at 1,000 sats per account per day and 500 sats per provider per day. Failures caused by Amazap's own systems don't count toward these caps. Amounts above either cap wait for review. A listing is marked Partial credit only after 6 failures in its last 50 paid calls, or 8 of 50 for model listings. It is paused after 3 failures in its last 10 paid calls, 9 failures in its last 50, or 7 days marked Partial credit only. Direct purchases: if you pay a provider's own endpoint or invoice directly, that payment never reaches Amazap. Amazap isn't the seller of that call and can't credit it; the provider's terms apply. Failed calls are not refunded in sats or cash. Spend guardrails: - When Lightning payments are temporarily paused, `buy` and `buy_best` refuse before charging and return `payments_paused` and `retryAfter`. `quote`, `describe_sku`, and `balance` include `paymentsPaused` and `retryAfter` while that pause is on. Nothing is charged. - Each agent account has a per-call, per-day, and per-session limit. New accounts start at 500 sats per call, 2,000 sats per day, and 1,000 sats per session. Only the owner can change them, on https://amazap.com/balance while signed in. The agent has no tool that changes a limit or the auto-approve amount. Raising a limit asks the owner to confirm on that page. Lowering one saves immediately. A buy over a limit is refused, nothing is charged, and the error names the limit, the amount, what remains, and that page. - Buys of 50 sats or less are auto-approved. Above that, the agent asks the person to confirm the exact all-in price in sats and local currency. If the client cannot ask, `buy` returns `approval_required` and a short-lived link to that exact quote. Declining or letting the link expire charges nothing. After the person approves, the same `quote_id` can be bought. - A session is one open spend window per account, about one hour. A new access token does not start another window while the current one is open, so the session limit and the remaining session budget are the same number. After the window expires, the next call starts a new one. - `buy` needs a fresh `quote_id` from search, describe, or quote for this agent and the same SKU, quantity, and price. Params may differ. A missing or stale quote returns a new quote in the error. Repeating a `quote_id` never charges twice. The price shown is one all-in total. - The buy receipt includes `chargedSats`, `balanceAfterSats`, and the remaining call, day, and session budgets. `spend_summary` returns the same budgets and the last 10 buys. - A rolling minute allows 8 buys and 500 sats by default. Change either on https://amazap.com/balance. A number above the account maximum is refused. A buy over that minute returns `limit_exceeded` with `which` of `per_minute_calls` or `per_minute_sats`. Nothing is charged. The same `idempotency_key` on `buy` or `buy_best` returns the first order and does not charge again. Code Mode: A Code Mode client calls these tools from TypeScript. Copy fields from each result. `search_catalog` returns `id` and `exampleCall`. `quote` returns `quoteId`, `totalSats`, `totalCost`, and `buy`. `buy` takes those fields plus `idempotency_key`. Tool results include `structuredContent` with the same fields as the text JSON. Direct reads also return `content`, `truncated`, `total_length`, `order_id`, `sats_charged`, and `balance_sats`. `repo_digest.repo` accepts `owner/name` or a `https://github.com/owner/name` URL. ```ts const rows = await search_catalog({ query: "weather berlin" }); const row = rows.results[0]; const quoted = await quote({ sku: row.id, params: row.exampleCall?.params }); const bought = await buy({ sku: row.id, quote_id: quoted.quoteId, total_cost: quoted.totalCost, max_total_sats: quoted.totalSats, accept_terms: quoted.buy.accept_terms, params: quoted.buy.params, idempotency_key: "weather-berlin-1", }); if (bought.code === "approval_required") { // Show bought.totalCost and bought.approvalUrl, then retry the same buy. } ``` Amazap Basics (first-party L402 APIs, also callable directly with any L402 client): Buyers can pay Amazap Basics, and seller listings Amazap serves as merchant of record, with L402 or MPP Lightning (`lightning` / `charge`). Both use the same Lightning invoice and the same all-in sats price. A paid invoice can be redeemed once, by either credential. Bare GET and HEAD directory probes return L402 first and MPP Lightning second. - Page to Markdown: `GET https://amazap.com/basics/v1/markdown?url=` returns a public page as Markdown. Clean article Markdown. Use it when the page is long or cluttered. Skip it on a short or already clean page: the quote compares the tokens both ways and does not charge for that check. `mode=article` (default) or `mode=full`. Optional `frontmatter=true` and `max_chars`. 6 sats ≈ $0.0047. - Page Metadata: `GET https://amazap.com/basics/v1/metadata?url=` returns title, description, canonical URL, share image, favicon, language, Open Graph type, site name, Twitter card, and JSON-LD. Page text and links stay off unless `include_text` or `include_links` is set. 6 sats ≈ $0.0047. - PDF to Markdown: `GET https://amazap.com/basics/v1/pdf?url=` returns a public PDF (up to 20 MB, first 30 pages) as Markdown with headings and tables. 26 sats ≈ $0.02 for up to 30 pages, scaled by pages read, minimum 5 sats. - Feed Reader: `GET https://amazap.com/basics/v1/feed?url=` reads a public RSS, Atom, or JSON feed, or a blog page that links one, as compact JSON. 6 sats ≈ $0.0047. - QR Code: `GET https://amazap.com/basics/v1/qr?data=` returns a PNG QR image. 13 sats ≈ $0.01. - Lightning Liquidity Price Index: `GET https://amazap.com/basics/v1/liquidity` returns the current Amboss Magma inbound-liquidity price, available capacity at each APR percent, and fee and lock-time percentiles. 26 sats ≈ $0.02. Read-only. - Lightning Node Snapshot: `GET https://amazap.com/basics/v1/node?pubkey=` returns the current Amboss Space snapshot for one Lightning node pubkey. 13 sats ≈ $0.01. Current state only. - Log Squeezer: `POST https://amazap.com/basics/v1/logs` shrinks one build, test, or server log (up to 2 MB). Pass the raw text or a public https `url`, including a GitHub Actions job URL. Returns counts, key errors, a condensed log, and token estimates. 11 sats ≈ $0.0086. GET or HEAD with no body is a 402 directory probe. - Repo Digest: `GET https://amazap.com/basics/v1/repo?repo=` returns a compact Markdown digest of one public GitHub repository. 26 sats ≈ $0.02. A private or missing repository is refused before payment. - Package Facts: `GET https://amazap.com/basics/v1/package-facts?package=` returns the latest version, release date, deprecation or yank, OSV advisories, license, repository, weekly downloads, and breaking changes for one npm or PyPI package. fields=summary (the default) is 13 sats ≈ $0.01. fields=full is 21 sats ≈ $0.016. A malformed package name is refused before payment. GET or HEAD with no package is a 402 directory probe. - Lockfile Audit: `GET https://amazap.com/basics/v1/lockfile?url=` returns vulnerable, deprecated, unmaintained, and far-behind dependencies from one public lockfile (package-lock.json, pnpm-lock.yaml, poetry.lock, Cargo.lock, go.sum, or requirements.txt, up to 8 MB and 1,000 dependencies), grouped by severity, with a fixed version when one is published. 32 sats ≈ $0.025. No model is called. A private host, an unknown filename, or pasted text is refused before payment. GET or HEAD with no url is a 402 directory probe. Findings are from OSV and deps.dev and are not a security guarantee. - API Spec Digest: `GET https://amazap.com/basics/v1/api-spec-digest?url=` turns a public OpenAPI or Swagger URL (JSON or YAML, up to 50 MB) into a compact endpoint index with token estimates. 26 sats ≈ $0.02. A private host or pasted text is refused before payment. GET or HEAD with no url is a 402 directory probe. - Docs Digest: `GET https://amazap.com/basics/v1/docs-digest?url=` turns a public docs site into a compact digest of the outline, signatures, and short code examples, each with a source URL. Use when you'd otherwise read about 30+ docs pages at $1.25/M, 12+ at $3/M, or 3+ at $15/M; skip on models under about $0.65/M; pass a topic. Optional topic, version, and max_tokens. Uses llms.txt when the site publishes one. Excerpts, not a full copy. 50 sats ≈ $0.039. A private host or pasted text is refused before payment. GET or HEAD with no url is a 402 directory probe. - Site Map Digest: `GET https://amazap.com/basics/v1/site-map-digest?domain=` returns the URL tree of one public domain, grouped by section, with page counts and the newest pages. Use it before you read the site. Optional section. 13 sats ≈ $0.01. A private host is refused before payment. GET or HEAD with no domain is a 402 directory probe. - Pricing Page Extractor: `GET https://amazap.com/basics/v1/pricing-extract?url=` returns plans, price, currency, monthly versus annual, per seat, and limits. Each price comes with the exact words from the page. Pass a pricing URL or a company domain. JavaScript pages are rendered at the same price. Skip it on a short pricing page: the quote says to read directly. 13 sats ≈ $0.01. A private host or a robots.txt disallow is refused before payment. GET or HEAD with no url is a 402 directory probe. - Page Change Check: `GET https://amazap.com/basics/v1/page-change?url=` checks whether a public page, or one region of it, changed since the last check. Returns unchanged, changed, fetch_failed, or blocked. A failed check is never unchanged. Buy the diff only when the page changed. Use it for repeat monitoring. Skip it for a one-off read or a page under about 1.5k tokens: read it directly. 2 sats ≈ $0.0016 for a plain fetch. A rendered page is 6 sats ≈ $0.0047. A private host or a robots.txt disallow is refused before payment. GET or HEAD with no url is a 402 directory probe. - Page Change Diff: `GET https://amazap.com/basics/v1/page-change/diff?diff_id=` returns the lines that changed since the last check, with a short summary. Buy it only after a check says changed. 6 sats ≈ $0.0047. A private host is refused before payment. GET or HEAD with no diff_id is a 402 directory probe. - Weather: `GET https://amazap.com/basics/v1/weather?city=` returns current conditions, the next 24 hours, and a 7-day summary in metric and imperial units. Pass a city or latitude and longitude. Coverage is global. A markdown card that repeats the forecast is off unless card=true. 7 sats ≈ $0.0054. - Magma liquidity: `GET https://amazap.com/basics/v1/magma?query=quote` returns a live Magma quote, offer book, or node. 1 sat ≈ $0.0008 from the credit balance. query=node needs connection_uri. Optional rules for Claude Code and Cursor. Claude desktop uses the remote connector and does not need this file. Do not allowlist `buy` or `top_up`. Claude Code skill, `~/.claude/skills/amazap/SKILL.md` or `.claude/skills/amazap/SKILL.md`: ```markdown --- name: amazap description: Use Amazap when a bigger read would waste tokens. Use before reading a web page, a failed CI log, a PDF, an unfamiliar GitHub repo, a link preview, a feed, a QR code for someone to scan, or a Lightning node or liquidity question. --- # Amazap Amazap tools cost one fixed price in sats from a balance I funded. Calls under my auto-approve limit need no confirmation; don't ask before each one. Use Amazap when it replaces a bigger read: - `read_webpage`: Clean article Markdown. Use it when the page is long or cluttered. Skip it on a short or already clean page: the quote compares the tokens both ways and does not charge for that check. - A CI build or test failed and you have the job link or log URL (GitHub Actions works): `squeeze_log` with the url. Use it on a long CI log. It keeps the errors and the failing test; long GitHub Actions logs came out about 95% smaller in our tests; short logs shrink much less. Skip a short log. - A PDF link: `read_pdf`. - An unfamiliar GitHub repo: `repo_digest`. Best on large repos. - A link preview, title, share image or structured data for a URL: `page_metadata`. - An RSS, Atom or JSON feed, or what's new on a blog: `read_feed`. - A Lightning invoice or link for a person to scan: `make_qr`. - Lightning node or liquidity questions: `lightning_node`, `lightning_liquidity`. - Other data or APIs: `search_catalog`, then `buy`. Read it yourself when it's already in context, the page or log is short, the repo is small, or your fetch returns clean Markdown. Never send localhost, private or logged-in URLs. Above my auto-approve limit, ask me and show the all-in price. Failed calls and blocked sites are credited back: use your own fetch, don't retry. Don't repeat the cost line or call balance first. ``` Cursor rule, `.cursor/rules/amazap.mdc`: ```markdown --- description: Use Amazap when a bigger read would waste tokens. Use before reading a web page, a failed CI log, a PDF, an unfamiliar GitHub repo, a link preview, a feed, a QR code for someone to scan, or a Lightning node or liquidity question alwaysApply: false --- # Amazap Amazap tools cost one fixed price in sats from a balance I funded. Calls under my auto-approve limit need no confirmation; don't ask before each one. Use Amazap when it replaces a bigger read: - `read_webpage`: Clean article Markdown. Use it when the page is long or cluttered. Skip it on a short or already clean page: the quote compares the tokens both ways and does not charge for that check. - A CI build or test failed and you have the job link or log URL (GitHub Actions works): `squeeze_log` with the url. Use it on a long CI log. It keeps the errors and the failing test; long GitHub Actions logs came out about 95% smaller in our tests; short logs shrink much less. Skip a short log. - A PDF link: `read_pdf`. - An unfamiliar GitHub repo: `repo_digest`. Best on large repos. - A link preview, title, share image or structured data for a URL: `page_metadata`. - An RSS, Atom or JSON feed, or what's new on a blog: `read_feed`. - A Lightning invoice or link for a person to scan: `make_qr`. - Lightning node or liquidity questions: `lightning_node`, `lightning_liquidity`. - Other data or APIs: `search_catalog`, then `buy`. Read it yourself when it's already in context, the page or log is short, the repo is small, or your fetch returns clean Markdown. Never send localhost, private or logged-in URLs. Above my auto-approve limit, ask me and show the all-in price. Failed calls and blocked sites are credited back: use your own fetch, don't retry. Don't repeat the cost line or call balance first. ``` Claude Code `permissions.allow` (in user or project settings): `["mcp__amazap__read_webpage", "mcp__amazap__read_feed", "mcp__amazap__lightning_node", "mcp__amazap__lightning_liquidity", "mcp__amazap__magma_liquidity", "mcp__amazap__make_qr", "mcp__amazap__squeeze_log", "mcp__amazap__page_metadata", "mcp__amazap__read_pdf", "mcp__amazap__repo_digest"]`. Cursor `~/.cursor/permissions.json` or `.cursor/permissions.json`. Run Mode has to be on (Auto-review, Allowlist, or Run Everything). When this file sets `mcpAllowlist`, it replaces the in-app MCP allowlist. Use these tools, not a wildcard: ```json {"mcpAllowlist":["amazap:read_webpage","amazap:read_feed","amazap:lightning_node","amazap:lightning_liquidity","amazap:magma_liquidity","amazap:make_qr","amazap:squeeze_log","amazap:page_metadata","amazap:read_pdf","amazap:repo_digest"]} ``` ## Start here - [Install the Amazap MCP](https://amazap.com/mcp): MCP URL and per-client install steps - [Agentic payments explained](https://amazap.com/agentic-payments): what agentic payments are, L402 vs x402 vs cards, and how Amazap works - [Full documentation for agents](https://amazap.com/llms-full.txt): everything in this file, plus the HTTP API and receipts ## API - [OpenAPI spec for Amazap Basics](https://amazap.com/openapi.json): first-party L402 endpoints with USD prices - [Product search API](https://amazap.com/api/products): JSON catalog search (q, protocol, category, healthyOnly, limit, offset) - [Catalog stats](https://amazap.com/api/meta): live listing counts by source and protocol ## Catalog - [Storefront](https://amazap.com/): browse and search all listings - [Page to Markdown](https://amazap.com/product/amazap-basics-page-to-markdown): flagship Amazap Basics listing - [PDF to Markdown](https://amazap.com/product/amazap-basics-pdf-to-markdown): Amazap Basics listing - [Page Metadata](https://amazap.com/product/amazap-basics-page-metadata): Amazap Basics listing - [Feed Reader](https://amazap.com/product/amazap-basics-feed-reader): Amazap Basics listing - [QR Code](https://amazap.com/product/amazap-basics-qr-code): Amazap Basics listing - [Log Squeezer](https://amazap.com/product/amazap-basics-log-squeezer): Amazap Basics listing - [Repo Digest](https://amazap.com/product/amazap-basics-repo-digest): Amazap Basics listing - [Package Facts](https://amazap.com/product/amazap-basics-package-facts): Amazap Basics listing - [Lockfile Audit](https://amazap.com/product/amazap-basics-lockfile-audit): Amazap Basics listing - [API Spec Digest](https://amazap.com/product/amazap-basics-api-spec-digest): Amazap Basics listing - [Docs Digest](https://amazap.com/product/amazap-basics-docs-digest): Amazap Basics listing - [Site Map Digest](https://amazap.com/product/amazap-basics-site-map-digest): Amazap Basics listing - [Pricing Page Extractor](https://amazap.com/product/amazap-basics-pricing-page-extractor): Amazap Basics listing - [Page Change Check](https://amazap.com/product/amazap-basics-page-change-check): Amazap Basics listing - [Page Change Diff](https://amazap.com/product/amazap-basics-page-change-diff): Amazap Basics listing - [Weather](https://amazap.com/product/amazap-basics-weather): Amazap Basics listing ## Blog - [Blog](https://amazap.com/blog): notes on giving an AI a cleaner page to read - [Your AI Doesn't Need to Read the Whole API Spec. We Tested 6.](https://amazap.com/blog/api-spec-digest-benchmark): Big API specs run to millions of tokens. We tested 6 real ones. GitHub's spec is about 2.6 million tokens, and the digest for pull-request reviews was 1,020 tokens. - [A QR Code Your AI Can Hand Over, for About a Cent](https://amazap.com/blog/qr-code-for-ai-agents): Your AI agent can make a QR code that scans, for links, Lightning invoices or accented text, for about a cent. We tested 8 codes. All 8 scanned exactly. - [Your AI Doesn't Need to Read the Whole Failed Build. We Tested It.](https://amazap.com/blog/log-squeezer-benchmark): A failed build log can cost an AI dollars to read. We tested 9 real logs: Log Squeezer cut 95–99.5% of the tokens and kept the cause of the failure. - [Agent Payments by the Numbers (October 2026)](https://amazap.com/blog/agent-payments-statistics-october-2026): Agentic payments statistics for October 2026: MCP server counts, x402 volume, what actually works, and what agents can buy today. Every number sourced. - [Agents read 1,142 tokens for every token they write, and premium models bill the most for each one](https://amazap.com/blog/agents-read-1142-tokens): In one week of GitHub Copilot traffic, Microsoft counted 44.9 trillion tokens going into the model and 39.3 billion coming out, about 1,142 tokens read for every token written. - [Business token usage: the full research](https://amazap.com/blog/business-token-usage-research): Business AI usage is splitting in two. Token volume is moving to cheaper models. Spending is not moving with it. - [There Are 40,000 MCP Servers. How Does an Agent Find One That Works and Takes Payment?](https://amazap.com/blog/mcp-registry-40000-servers): The MCP Registry passed 40,000 servers. Crawls show 1 in 7 remote ones don't work and few take payment. Here's how agents can find tools that do. - [Cloudflare Monetization Gateway: What It Does, Who Can Use It, and the Alternatives](https://amazap.com/blog/cloudflare-monetization-gateway-alternatives): Cloudflare's Monetization Gateway lets sites charge AI agents per request. How it works, who can join the beta, and what to do if you can't yet. - [Page to Markdown: clean article text, without the page clutter](https://amazap.com/blog/token-benchmark-page-to-markdown): Page to Markdown returns the article as clean text, without the page clutter. The quote says when reading the page directly is cheaper. ## Optional - [Credits and failed-call policy](https://amazap.com/credits): how the balance and re-credits work - [Terms of Service](https://amazap.com/terms) - [Sell on Amazap](https://amazap.com/sell): list an L402 endpoint (API, data, content, compute, files, or a self-hosted model) - [Sell to agents guide](https://amazap.com/sell/guide): how to put an endpoint behind L402, price it, and list it - [Amboss](https://amboss.tech): Amazap is built by Amboss Technologies, which also runs the Amboss Payments service Amazap uses. - [L402 protocol](https://docs.lightning.engineering/the-lightning-network/l402): Lightning Labs' spec for HTTP 402 with Lightning